

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à.

# Utilizzo di provider di identità social con un pool di utenti
<a name="cognito-user-pools-social-idp"></a>

Gli utenti di app Web e per dispositivi mobili possono accedere tramite provider di identità social (IdP) come Facebook, Google, Amazon e Apple. Con l'interfaccia utente Web ospitata integrata, Amazon Cognito fornisce la gestione dei token per gli utenti autenticati. In questo modo, i sistemi back-end possono standardizzare un set di token del bacino d'utenza. È necessario abilitare l'accesso gestito per l'integrazione con i provider di identità social supportati. Quando Amazon Cognito crea le tue pagine di accesso gestite, crea endpoint OAuth 2.0 che Amazon Cognito, il tuo OIDC e i social network utilizzano per lo scambio di informazioni. IdPs Per ulteriori informazioni, consulta la [Documentazione di riferimento delle API Auth dei bacini d'utenza di Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html).

Puoi aggiungere un IdP social in oppure puoi utilizzare Console di gestione AWS la AWS CLI o l'API Amazon Cognito. 

**Nota**  
L'accesso tramite terze parti (federazione) è disponibile per i bacini d'utenza Amazon Cognito. Questa funzione è indipendente dalla federazione tramite pool di identità di Amazon Cognito (identità federate).

**Topics**
+ [Configura un account e un'applicazione social IdP per sviluppatori](#cognito-user-pools-social-idp-step-1)
+ [Configura il tuo pool di utenti con un IdP social](#cognito-user-pools-social-idp-step-2)
+ [Test della configurazione dell'IdP social](#cognito-user-pools-social-idp-step-3)

## Configura un account e un'applicazione social IdP per sviluppatori
<a name="cognito-user-pools-social-idp-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.

------
#### [ Facebook ]

Per le informazioni più recenti sulla configurazione degli account e dell'autenticazione degli sviluppatori Meta, consulta [Meta App Development](https://developers.facebook.com/docs/development).

**Come registrare un'applicazione con Facebook/Meta**

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).

1. Inserisci un nome per l'app Facebook, quindi scegli **Create App ID** (Crea ID dell'app).

1. Nella barra di navigazione a sinistra, scegli **Settings** (Impostazioni) e successivamente **Basic** (Di base).

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

1. Nella parte inferiore della pagina, scegli **\+Add Platform** (\+Aggiungi piattaforma).

1. Scegli **Website** (Sito Web).

1. Alla voce **Website** (Sito Web), inserisci il percorso della pagina di accesso per l'app in **URL del sito**.

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

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

1. Inserisci il percorso della directory principale del dominio del bacino d'utenza in **App Domains** (Domini app).

   ```
   https://{{mydomain.auth.us-east-1.amazoncognito.com}}
   ```

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

1. Nella barra di navigazione, scegli **Add Products** (Aggiungi prodotti) e successivamente **Set up** (Imposta) per il prodotto **Facebook Login** (Accedi con Facebook).

1. Nella barra di navigazione, scegli **Facebook Login** (Accedi con Facebook) e successivamente **Settings** (Impostazioni).

   **Inserisci il percorso dell'`/oauth2/idpresponse`endpoint per il dominio del tuo pool di utenti in Valid Redirect. OAuth URIs**

   ```
   https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/idpresponse
   ```

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

------
#### [ Login with Amazon ]

Per le informazioni più recenti sulla configurazione degli account sviluppatore e sull'autenticazione di Login with Amazon, consulta [Login with Amazon Documentation](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html).

**Come registrare un'applicazione con Login with Amazon**

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.

   Nella barra di navigazione disponibile nella parte superiore della pagina, scegli **Apps and Services** (App e servizi) e successivamente **Login with Amazon** (Accedi con 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://{{mydomain.auth.us-east-1.amazoncognito.com}}
   ```

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

   ```
   https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/idpresponse
   ```

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

------
#### [ Google ]

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.

**Come registrare un'applicazione con Google**

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 Servizi**, quindi schermata di **consenso Oauth**.

1. Inserisci le informazioni sull'app, un **App domain** (Dominio dell'app), gli **Authorized domains** (Domini autorizzati) e le **Developer contact information** (Informazioni di contatto dello sviluppatore). Gli **Authorized domains** (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** e 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 l'indirizzo e-mail e qualsiasi altro utente di test autorizzato, quindi scegli **SAVE AND CONTINUE** (Salva e continua).

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

1. Scegli **CREATE CREDENTIALS**, quindi 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://{{mydomain.auth.us-east-1.amazoncognito.com}}
   ```

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

   ```
   https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/idpresponse
   ```

1. Scegli **CREATE** (Crea).

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

------
#### [ Sign in with Apple ]

Per la maggior parte delle up-to-date informazioni sulla configurazione dell'accesso con Apple, consulta [Configurazione dell'ambiente per l'accesso con Apple nella documentazione](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) per gli sviluppatori di Apple.

**Come registrare un'applicazione con Sign in with Apple (SIWA)**

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. **Nella pagina **Registra un nuovo identificatore**, scegli **App IDs**, quindi scegli Continua.**

1. Nella pagina **Select a type** (Seleziona un tipo), scegli **App**, quindi **Continue** (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-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. **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)**, digitare una descrizione.

   1. In **Identifier (Identificatore)**, digitare un identificatore. Prendi nota dell'ID servizi poiché 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-step-2).

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

1. Scegli l'ID servizi 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 **\+** accanto a **Sito Web URLs**. 

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

      ```
      {{mydomain.auth.us-east-1.amazoncognito.com}}
      ```

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

      ```
      https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/idpresponse
      ```

   1. Scegli **Next** (Successivo), quindi **Done** (Fatto). 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. 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** (Configura chiave) seleziona l'ID dell'app creato in precedenza come **Primary App ID** (ID app principale). Scegli **Save** (Salva).

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

1. Nella pagina **Download Your Key (download della chiave)**, scegli **Download** per scaricare la chiave privata, quindi prendi nota dell' **ID chiave** visualizzato, poi scegli **Done (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-step-2).

------

## Configura il tuo pool di utenti con un IdP social
<a name="cognito-user-pools-social-idp-step-2"></a>

**Per configurare un pool di utenti (social IdP) con Console di gestione AWS**

1. Passa alla [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Se richiesto, inserisci le tue AWS credenziali.

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

1. Scegli un pool di utenti esistente dall'elenco o crea un pool di utenti.

1. Scegli il menu **Social e provider esterni**, quindi seleziona **Aggiungi un provider di identità**.

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

1. Scegli uno dei seguenti passaggi, in base al provider di identità social che hai selezionato:
   + **Google** e **Login with Amazon**: inserisci l'**ID del client dell'app** e il **segreto client dell'app** generato nella sezione precedente.
   + **Facebook**: inserisci l'**ID del client dell'app** e il **segreto del client dell'app** generato nella sezione precedente, quindi scegli una versione API (ad esempio, versione 2.12). Ti consigliamo di selezionare la versione più recente possibile in quanto ogni versione dell'API di Facebook ha un ciclo di vita e una data di deprecazione. 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 servizio**, l'**ID team**, l'**ID chiave** e la **chiave privata** generati nella sezione precedente.

1. Inserisci i nomi degli **ambiti autorizzati** che intendi 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/cognito-user-pools-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 rileva degli errori dopo aver chiuso la pagina di accesso di Apple (può derivare da errori interni di Amazon Cognito o da un errore di scrittura dello sviluppatore)
   + L'identificatore ID del servizio viene utilizzato tra pool di utenti e and/or altri servizi di autenticazione
   + Uno sviluppatore aggiunge ambiti dopo che l'utente finale ha effettuato l'accesso in precedenza (non viene recuperata nessuna nuova informazione)
   + Uno sviluppatore elimina l'utente e quindi l'utente effettua nuovamente l'accesso rimuovendo l'app dal profilo dell'ID Apple

1. Mappa gli attributi dal provider di identità al bacino d'utenza. Per ulteriori informazioni, vedi [Specificazione di mappature degli attributi del provider di identità per il pool di utenti](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html).

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

1. Dal menu **App client**, seleziona un client di app dall'elenco. Per aggiungere il nuovo provider di identità social al client dell'app, vai alla scheda **Pagine di accesso** e seleziona **Modifica** nella **configurazione delle pagine di accesso gestite**.

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

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

Nella tua applicazione, devi richiamare un browser nel client dell'utente in modo che possa accedere con il suo provider di social network. Prova l'accesso con il tuo social provider dopo aver completato le procedure di configurazione nelle sezioni precedenti. L'URL di esempio seguente carica la pagina di accesso per il tuo pool di utenti con un dominio prefisso.

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

Questo link è la pagina a cui Amazon Cognito ti indirizza quando accedi al menu **App** client, selezioni un client per l'app, accedi alla scheda **Pagine di accesso** e selezioni **Visualizza** pagina di accesso. Per ulteriori informazioni sui domini del pool di utenti, consulta. [Configurazione di un dominio di bacino d'utenza](cognito-user-pools-assign-domain.md) Per ulteriori informazioni sui client delle app, inclusi client IDs e callback URLs, consulta. [Impostazioni specifiche dell'applicazione con client di app](user-pool-settings-client-apps.md)

Il seguente collegamento di esempio imposta il reindirizzamento silenzioso a un provider di social network dal parametro [Endpoint Authorize](authorization-endpoint.md) with an `identity_provider` query. Questo URL ignora l'accesso interattivo al pool di utenti con accesso gestito e va direttamente alla pagina di accesso IdP.

```
https://{{mydomain.auth.us-east-1.amazoncognito.com}}/oauth2/authorize?identity_provider={{Facebook|Google|LoginWithAmazon|SignInWithApple}}&response_type=code&client_id={{1example23456789}}&redirect_uri={{https://www.example.com}}
```