

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiungi l'accesso tramite social al tuo pool di utenti
<a name="tutorial-create-user-pool-social-idp"></a>

Offrire agli utenti la possibilità di accedere alla tua applicazione tramite i loro provider di identità pubblici o social esistenti può migliorare la loro esperienza di autenticazione. I pool di utenti di Amazon Cognito si integrano con i più diffusi provider di identità social (IdPs) come Facebook, Google, Amazon e Apple, offrendo agli utenti comode opzioni di accesso che già conoscono.

Quando configuri l'accesso tramite social, offri ai tuoi utenti un'alternativa alla creazione di un account dedicato solo per la tua applicazione. Ciò può migliorare i tassi di conversione e rendere il processo di registrazione più semplice. Dal punto di vista dell'utente, può applicare le credenziali social esistenti per autenticarsi rapidamente, senza doversi preoccupare di ricordare un altro nome utente e una password.

La configurazione di un IdP social nel tuo pool di utenti richiede alcuni passaggi chiave. È necessario registrare l'applicazione presso il provider di servizi sociali per ottenere un ID cliente e un segreto. Quindi puoi aggiungere la configurazione social IdP al tuo pool di utenti, specificando gli ambiti che desideri richiedere e gli attributi del pool di utenti che desideri mappare dagli attributi IdP. In fase di esecuzione, Amazon Cognito gestisce lo scambio di token con il provider, mappa gli attributi utente ed emette token all'applicazione nel formato del pool di utenti condiviso.

## Registrazione con un IdP social
<a name="cognito-user-pools-social-step-1"></a>

Prima di creare un IdP social con Amazon Cognito, è necessario registrare l'applicazione con l'IdP social in modo da ricevere un ID client e un segreto client.

### Registrazione di un'app con Facebook
<a name="register-an-app-with-facebook"></a>

1. Creazione di un [account sviluppatore con Facebook](https://developers.facebook.com/docs/facebook-login).

1. [Accedi](https://developers.facebook.com/) con le tue credenziali di Facebook.

1. Nel menu **My Apps** (Le mie app), scegli **Create New App** (Crea nuova app). 

   Se non disponi di un'app Facebook esistente, vedrai un'opzione diversa. Scegli **Create App (Crea app)**.

1. Nella pagina **Crea un'app**, scegli un caso d'uso per l'app, quindi scegli **Avanti**.

1. Inserisci un nome per la app Facebook, quindi scegli **Crea l'app**.

1. Nella barra di navigazione a sinistra, scegli **Impostazioni app** e quindi **Base**.

1. Prendi nota di **ID app** e **Segreto app**. Li utilizzerai nella sezione successiva.

1. Nella parte inferiore della pagina, scegli **\$1 Aggiungi piattaforma**.

1. Nella schermata **Seleziona piattaforma**, seleziona le tue piattaforme, quindi scegli **Avanti**.

1. Scegli **Save changes** (Salva modifiche).

1. Per i **domini dell'app**, inserisci il dominio del bacino d'utenza.

   ```
   https://your_user_pool_domain
   ```

1. Scegli **Save changes** (Salva modifiche).

1. Dalla barra di navigazione, scegli **Prodotti**, quindi scegli **Configura** da **Facebook Login**.

1. Nel menu **Facebook Login** **Configura**, scegli **Impostazioni**.

   Inserisci l'URL di reindirizzamento in ** OAuth Reindirizzamento URIs valido**. L'URL di reindirizzamento è costituito dal dominio del pool di utenti con l'endpoint. `/oauth2/idpresponse`

   ```
   https://your_user_pool_domain/oauth2/idpresponse
   ```

1. Scegli **Save changes** (Salva modifiche).

### Registrazione di un'app con Amazon
<a name="register-an-app-with-amazon"></a>

1. Creazione di un [account sviluppatore con Amazon](https://developer.amazon.com/login-with-amazon).

1. [Accedi](https://developer.amazon.com/lwa/sp/overview.html) con le tue credenziali di Amazon.

1. È necessario creare un profilo di sicurezza Amazon per ricevere l'ID client di Amazon e il segreto client.

   Scegli **App e servizi** dalla barra di navigazione nella parte superiore della pagina, quindi scegli **Login with Amazon**.

1. Scegli **Create a Security Profile** (Crea un profilo di sicurezza).

1. Digita un **Security Profile Name** (nome profilo sicurezza), una **Security Profile Description** (descrizione profilo sicurezza) e un **Consent Privacy Notice URL** (URL consenso informativa privacy).

1. Scegli **Save** (Salva).

1. Scegli **Client ID** (ID client) e **Client Secret** (Segreto client) per mostrare i dati relativi. Li utilizzerai nella sezione successiva.

1. Passa il mouse sull'icona a forma di ingranaggio e scegli **Web Settings** (Impostazioni Web), quindi Scegli **Edit** (Modifica).

1. Inserisci il dominio del bacino d'utenza nel campo **Allowed Origins** (origini consentite).

   ```
   https://<your-user-pool-domain>
   ```

1. Inserisci il dominio del pool di utenti con l'`/oauth2/idpresponse`endpoint in **Allowed Return URLs**.

   ```
   https://<your-user-pool-domain>/oauth2/idpresponse
   ```

1. Scegli **Save** Salva.

### Registrazione di un'app con Google
<a name="register-an-app-with-google"></a>

Per ulteriori informazioni sulla OAuth versione 2.0 nella piattaforma Google Cloud, consulta [Informazioni sull'autenticazione e l'autorizzazione](https://developers.google.com/workspace/guides/auth-overview) nella documentazione di Google Workspace for Developers.

1. Creazione di un [account sviluppatore con Google](https://developers.google.com/identity).

1. Accedi alla [console Piattaforma Google Cloud](https://console.cloud.google.com/home/dashboard).

1. Nella barra di navigazione in alto, scegli **Select a project** (Seleziona un progetto). Se hai già un progetto nella piattaforma Google, nel menu viene visualizzato il tuo progetto predefinito.

1. Scegli **Nuovo progetto**.

1. Immetti un nome per il progetto e scegli **Crea**.

1. Nella barra di navigazione a sinistra, scegli **APIs e Servizi**, quindi scegli Schermata di consenso **Oauth.**

1. Inserisci le informazioni sull'app, un **dominio dell'app**, i **domini autorizzati** e le informazioni di contatto **dello sviluppatore**. I **domini autorizzati** devono includere `amazoncognito.com` e la radice del dominio personalizzato. Ad esempio: `example.com`. Seleziona **Salva e continua**.

1. 1. In **Ambiti**, scegli **Aggiungi o rimuovi ambiti**, quindi scegli almeno i seguenti ambiti. OAuth

   1. `.../auth/userinfo.email`

   1. `.../auth/userinfo.profile`

   1. openid

1. In **Test users** (Utenti di test), scegli **Add users** (Aggiungi utenti). Inserisci il tuo indirizzo e-mail e tutti gli altri utenti di test autorizzati, quindi scegli **SALVA** E CONTINUA.

1. Espandi nuovamente la barra di navigazione a sinistra, scegli **APIs e Servizi**, quindi scegli **Credenziali**. 

1. Scegli **CREATE CREDENTIALS**, quindi scegli ID **OAuth cliente**.

1. Scegli un **Application type** (Tipo di applicazione) e assegna un **Name** (Nome) al client.

1. In ** JavaScript Origini autorizzate**, scegli **AGGIUNGI URI**. Immetti il dominio del pool di utenti.

   ```
   https://<your-user-pool-domain>
   ```

1. In **Reindirizzamento autorizzato URIs**, scegli **AGGIUNGI URI**. Inserisci il percorso dell'endpoint `/oauth2/idpresponse` del dominio del pool di utenti.

   ```
   https://<your-user-pool-domain>/oauth2/idpresponse
   ```

1. Seleziona **CREATE**.

1. Memorizza in modo sicuro i valori visualizzati da Google in **Il tuo ID client** e **Il tuo segreto del client**. Fornisci questi valori ad Amazon Cognito quando aggiungi un gestore dell'identità digitale (IdP) Google.

### Come registrare un'app con Apple
<a name="register-an-app-with-apple"></a>

Per ulteriori informazioni sulla configurazione della funzionalità di accesso con Apple, consulta la sezione relativa alla [configurazione dell'ambiente per la funzionalità di accesso con Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) nella documentazione per gli sviluppatori Apple.

1. Creazione di un [account sviluppatore con Apple](https://developer.apple.com/programs/enroll/).

1. [Accedi](https://developer.apple.com/account/#/welcome) con le tue credenziali Apple.

1. Sulla barra di navigazione a sinistra, scegli **Certificates, Identifiers & Profiles** (Certificati, identificatori e profili).

1. Nel riquadro di navigazione a sinistra, scegli **Identifiers** (Identificatori).

1. Nella pagina **Identifiers** (Identificatori), scegli l'icona **\$1**.

1. **Nella pagina **Registra un nuovo identificatore**, scegli **App IDs**, quindi scegli Continua.**

1. Nella pagina **Seleziona un tipo**, scegli **App**, quindi scegli **Continua**.

1. Nella pagina **Register an App ID** (Registra un'ID app), procedi come indicato di seguito:

   1. In **Description** (Descrizione), inserisci una descrizione.

   1. In **App ID Prefix** (Prefisso ID app), inserisci un **Bundle ID** ID bundle. Prendi nota del valore alla voce **Prefisso ID app**. Ne avrai bisogno per configurare Apple come provider di identità in [Configura il tuo pool di utenti con un IdP social](cognito-user-pools-social-idp.md#cognito-user-pools-social-idp-step-2).

   1. In **Funzionalità**, scegli **Accedi con Apple**, quindi scegli **Modifica**.

   1. **Nella pagina Accedi con Apple: configurazione dell'ID app**, scegli di configurare l'app come principale o raggruppata con altre app IDs, quindi scegli **Salva**.

   1. Scegli **Continua**.

1. Nella pagina **Confirm your App ID** (Conferma l'ID app), scegli **Register** (Registra).

1. Nella pagina **Identifiers** (Identificatori), scegli l'icona **\$1**.

1. **Nella pagina **Registra un nuovo identificatore**, scegli **Servizi IDs**, quindi scegli Continua.**

1. Nella pagina **Register a Services ID** (Registra un ID servizi), procedi nel modo seguente:

   1. In **Description** (Descrizione), inserisci una descrizione.

   1. Alla voce **Identifier** (Identificatore), inserisci un identificatore. Prendi nota di questo ID dei servizi perché avrai bisogno di questo valore dopo aver scelto Apple come provider di identità in[Configura il tuo pool di utenti con un IdP social](cognito-user-pools-social-idp.md#cognito-user-pools-social-idp-step-2).

   1. Scegli **Continua**, quindi scegli **Registra**.

1. Scegli l'ID dei servizi che hai appena creato dalla pagina Identificatori.

   1. Scegli **Sign In with Apple** (Accedi con Apple), quindi scegli **Configure** (Configura).

   1. Nella pagina **Web Authentication Configuration** (Configurazione autenticazione Web), seleziona l'ID dell'app creato in precedenza come **Primary App ID** (ID app principale). 

   1. Scegli l'icona **\$1** accanto a **Sito Web URLs**. 

   1. In **Domains and subdomains** (Domini e sottodomini), inserisci il dominio del pool di utenti senza prefisso `https://`.

      ```
      <your-user-pool-domain>
      ```

   1. In **Return URLs**, inserisci il percorso dell'`/oauth2/idpresponse`endpoint del dominio del tuo pool di utenti.

      ```
      https://<your-user-pool-domain>/oauth2/idpresponse
      ```

   1. Scegli **Avanti**, quindi scegli **Fine.** Non è necessario verificare il dominio.

   1. Scegli **Continua**, quindi **Salva**.

1. Nel riquadro di navigazione a sinistra, scegli **Keys** (Chiavi).

1. Nella pagina **Keys** (Chiavi), scegli l'icona **\$1**.

1. Nella pagina **Register a New Key**, (Registra una nuova chiave) procedi nel modo seguente:

   1. Alla voce **Key Name (nome chiave)**, digita un nome della chiave. 

   1. Scegli **Accedi con Apple**, quindi scegli **Configura**.

   1. Nella pagina **Configure Key**, seleziona l'ID dell'app che hai creato in precedenza come **ID app principale**. Scegli **Save** (Salva).

   1. Scegli **Continue** (Continua), quindi scegli **Register** (Registra).

1. Nella pagina **Scarica la tua chiave**, scegli **Scarica** per scaricare la chiave privata, prendi nota dell'**ID chiave** mostrato, quindi scegli **Fine**. Avrai bisogno di questa chiave privata e del valore di **Key ID** (ID chiave) visualizzato in questa pagina dopo aver scelto Apple come provider di identità in [Configura il tuo pool di utenti con un IdP social](cognito-user-pools-social-idp.md#cognito-user-pools-social-idp-step-2).

## Aggiunta di un IdP social al bacino d'utenza
<a name="cognito-user-pools-social-step-2"></a>

In questa sezione viene configurato un IdP social nel bacino d'utenza utilizzando l'ID client e il segreto client della sezione precedente.

**Per configurare un provider di identità social per un pool di utenti con Console di gestione AWS**

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). È possibile che ti vengano richieste le AWS credenziali.

1. Scegli **User Pools** (Pool di utenti).

1. Scegli un bacino d'utenza esistente dall'elenco o [creane uno nuovo](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

1. Scegli il menu **Social e provider esterni**. Individua **Federated sign-in (accesso federato)** e seleziona **Add an identity provider (aggiungi un provider di identità)**.

1. Scegli un provider di identità social: **Facebook**, **Google**, **Login with Amazon** o **Accedi con Apple**.

1. Scegli uno tra i seguenti passaggi, in base alla tua scelta del provider di identità social:
   + **Google** e **Login with Amazon**: inserisci l'**ID client** dell'**app e il segreto del client** dell'app generati nella sezione precedente.
   + **Facebook**: inserisci l'**ID client** dell'**app e il segreto del client** dell'app generati nella sezione precedente, quindi scegli una versione dell'API (ad esempio, la versione 2.12). Ti consigliamo di scegliere la versione più recente possibile: ogni API di Facebook ha un ciclo di vita e una data di obsolescenza. Gli ambiti e gli attributi di Facebook possono variare a seconda delle versioni dell'API. Ti consigliamo di testare l'accesso alla tua identità social con Facebook per assicurarti che la federazione funzioni come previsto.
   + **Accedi con Apple**: inserisci l'ID dei **servizi, l'ID** del **team, l'ID della** chiave e **la chiave** **privata** generati nella sezione precedente.

1. Inserisci i nomi degli **ambiti autorizzati** che desideri utilizzare. Gli ambiti definiscono a quali attributi utente (ad esempio `name` e `email`) intendi accedere con l'app. Per Facebook, devono essere separati da virgole. Per Google e Login with Amazon, devono essere separati da spazi. Per Sign in with Apple, seleziona le caselle di controllo per gli ambiti cui desideri accedere.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/cognito/latest/developerguide/tutorial-create-user-pool-social-idp.html)

   All'utente dell'app viene richiesto il consenso a fornire questi attributi all'app. Per ulteriori informazioni sugli ambiti dei provider di social, consulta la documentazione di Google, Facebook, Login with Amazon e Accedi con Apple. 

   Nel caso di Accedi con Apple, di seguito sono riportati scenari utente in cui gli ambiti potrebbero non essere restituiti:
   + Un utente finale riscontra degli errori dopo aver lasciato la pagina di accesso di Apple (possono essere dovuti a errori interni di Amazon Cognito o a qualsiasi altro errore scritto dallo sviluppatore).
   + L'identificatore ID del servizio viene utilizzato tra pool di utenti e altri servizi di autenticazione. and/or 
   + Uno sviluppatore aggiunge altri ambiti dopo che l'utente ha effettuato l'accesso. Gli utenti recuperano nuove informazioni solo quando si autenticano e quando aggiornano i token.
   + Uno sviluppatore elimina l'utente e quindi l'utente accede nuovamente senza rimuovere l'app dal proprio profilo ID Apple.

1. Mappa gli attributi dal provider di identità al bacino d'utenza. Per ulteriori informazioni, consulta [Cose da sapere sulle mappature](cognito-user-pools-specifying-attribute-mapping.md#cognito-user-pools-specifying-attribute-mapping-requirements).

1. Scegli **Create** (Crea).

1. Dal menu **App client**, scegli uno dei client dell'app nell'elenco e **Modifica le impostazioni dell'interfaccia utente ospitata**. Aggiungi il nuovo provider di identità social al client dell'App alla voce **Identity providers** (Provider di identità).

1. Scegli **Save changes** (Salva modifiche).

## Test della configurazione dell'IdP social
<a name="cognito-user-pools-social-step-3"></a>

Puoi creare un URL di accesso utilizzando gli elementi delle due sezioni precedenti. Utilizzalo per testare la tua configurazione IdP social.

```
https://mydomain.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

Per individuare il dominio, vai alla pagina della console **Domain name** (Nome dominio) del bacino d'utenza. Il valore di client\$1id è disponibile nella pagina **App client settings** Impostazioni client di applicazioni. Utilizza l'URL di callback per il parametro **redirect\$1uri**. Questo è l'URL della pagina a cui l'utente verrà reindirizzato dopo aver completato la procedura di autenticazione.

**Nota**  
Amazon Cognito annulla le richieste di autenticazione che non vengono completate entro 5 minuti e reindirizza l'utente all'accesso gestito. Viene visualizzato il messaggio di errore `Something went wrong` nella pagina.