

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

# Configurazione di Google come IdP del pool di identità
<a name="google"></a>

I pool di identità di Amazon Cognito collaborano con Google per fornire l'autenticazione federata agli utenti delle tue applicazioni mobili. Questa sezione spiega come registrare e impostare la tua applicazione con Google come provider di identità.

## Android
<a name="set-up-google-1.android"></a>

**Nota**  
Se l'app utilizza Google ed è disponibile su più piattaforme per dispositivi mobili, è necessario configurarla come [provider OpenID Connect](open-id.md). Aggiungi tutti i client creati IDs come valori di audience aggiuntivi per una migliore integrazione. Per ulteriori informazioni sul modello di identità di più client di Google, consulta l'articolo [Cross-client Identity](https://developers.google.com/accounts/docs/CrossClientAuth).

**Configurazione di Google**

Per attivare Google Sign-in per Android, è necessario creare un progetto di console di Google Developers per l'applicazione.

1. Vai alla [console di Google Developers](https://console.developers.google.com/) e crea un nuovo progetto.

1. Scegli **APIs & Servizi**, quindi **schermata di OAuth consenso**. Personalizza le informazioni che Google mostra agli utenti quando richiede il consenso per condividere i dati del profilo con la tua app.

1. Scegli **Credentials** (Credenziali), quindi **Create credentials** (Crea credenziali). Scegli l'**ID OAuth cliente**. Seleziona **Android** per **Application type** (Tipo di applicazione). Crea un ID client separato per ogni piattaforma in cui sviluppi la tua app.

1. Da **Credentials** (Credenziali), scegli **Manage service accounts** (Gestione degli account del servizio). Scegli **Create service account (Crea account del servizio)**. Inserisci i dettagli dell'account del servizio, quindi scegli **Create and continue** (Crea e continua).

1. Concedi all'account del servizio l'accesso al tuo progetto. Concedi agli utenti l'accesso all'account del servizio come richiesto dall'app.

1. Scegli il tuo nuovo account del servizio, seleziona la scheda **Keys** (Chiavi) e **Add key** (Aggiungi chiave). Crea e scarica una nuova chiave JSON.

Per ulteriori informazioni su come utilizzare la console di Google Developers, consulta [Creating and managing projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) (Creazione e gestione di progetti) nella documentazione di Google Cloud.

Per ulteriori informazioni su come integrare Google nella tua app Android, consulta [Autenticare gli utenti con Accedi con Google](https://developer.android.com/identity/sign-in/credential-manager-siwg) nella documentazione di Google Identity.

**Per aggiungere un gestore dell'identità digitale di Google**

1. Scegli **Pool di identità** dalla [console di Amazon Cognito](https://console.aws.amazon.com/cognito/home). Seleziona un pool di identità.

1. Seleziona la scheda **Accesso utente**.

1. Seleziona **Aggiungi provider di identità**.

1. Seleziona **Google**.

1. Inserisci l'**ID cliente** del OAuth progetto che hai creato su [Google Cloud Platform](https://console.cloud.google.com/). Per ulteriori informazioni, consulta [Configurazione OAuth 2.0](https://support.google.com/cloud/answer/6158849) nella *guida della console di Google Cloud Platform*.

1. Per impostare il ruolo richiesto da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Impostazioni ruolo**.

   1. Puoi assegnare agli utenti di tale IdP il **ruolo predefinito** impostato quando hai configurato il **ruolo autenticato** oppure selezionare l'opzione **Scegli ruolo con regole**.

     1. Se scegli l'opzione **Scegli ruolo con regole**, inserisci la **Richiesta** dall'autenticazione dell'utente, l'**Operatore** con cui desideri confrontare la richiesta, il **Valore** che determina una corrispondenza a questa scelta di ruolo e il **Ruolo** che desideri assegnare quando l'**Assegnazione del ruolo** corrisponde. Seleziona **Aggiungi un altro** per creare una regola aggiuntiva basata su una condizione diversa.

     1. Scegli una **Risoluzione del ruolo**. Quando le richieste dell'utente non corrispondono alle regole, puoi negare le credenziali o emettere credenziali per il **Ruolo autenticato**.

1. Per modificare i tag principali assegnati da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Attributi per il controllo degli accessi**.

   1. Per non applicare alcun tag principale, scegli **Inattivo**.

   1. Per applicare i tag principali in base alle richieste `sub` e `aud`, scegli **Utilizza mappature predefinite**.

   1. Per creare un tuo schema personalizzato di attributi dei tag principali, scegli **Utilizza mappature personalizzate**. Quindi, inserisci una **Chiave tag** che deve essere originata da ciascuna **Richiesta** che desideri rappresentare in un tag.

1. Seleziona **Salva modifiche**.

**Utilizzo di Google**

Per abilitare l'accesso con Google nella tua applicazione, segui le istruzioni della [documentazione di Google per Android](https://developers.google.com/identity/sign-in/android/start). Quando un utente esegue l'accesso, viene richiesto un token di autenticazione OpenID Connect a Google. Quindi, Amazon Cognito utilizza il token per autenticare l'utente e generare un identificatore univoco.

Il seguente codice di esempio illustra come recuperare il token di autenticazione da Google Play:

```
GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE);
String token = GoogleAuthUtil.getToken(getApplicationContext(), accounts[0].name,
        "audience:server:client_id:YOUR_GOOGLE_CLIENT_ID");
Map<String, String> logins = new HashMap<String, String>();
logins.put("accounts.google.com", token);
credentialsProvider.setLogins(logins);
```

## iOS - Objective-C
<a name="set-up-google-1.ios-objc"></a>

**Nota**  
Se l'app utilizza Google ed è disponibile su più piattaforme per dispositivi mobili, è necessario configurare Google come [provider OpenID Connect](open-id.md). Aggiungi tutti i client creati IDs come valori di audience aggiuntivi per una migliore integrazione. Per ulteriori informazioni sul modello di identità di più client di Google, consulta l'articolo [Cross-client Identity](https://developers.google.com/accounts/docs/CrossClientAuth).

**Configurazione di Google**

Per abilitare Google Sign-in per iOS, è necessario creare un progetto di console di Google Developers per la tua applicazione.

1. Vai alla [console di Google Developers](https://console.developers.google.com/) e crea un nuovo progetto.

1. Scegli **APIs & Servizi**, quindi **schermata di OAuth consenso**. Personalizza le informazioni che Google mostra agli utenti quando richiede il consenso per condividere i dati del profilo con la tua app.

1. Scegli **Credentials** (Credenziali), quindi **Create credentials** (Crea credenziali). Scegli l'**ID OAuth cliente**. Seleziona **iOS** per **Application type** (Tipo di applicazione). Crea un ID client separato per ogni piattaforma in cui sviluppi la tua app.

1. Da **Credentials** (Credenziali), scegli **Manage service accounts** (Gestione degli account del servizio). Scegli **Create service account (Crea account del servizio)**. Inserisci i dettagli dell'account del servizio e scegli **Create and continue** (Crea e continua).

1. Concedi all'account del servizio l'accesso al tuo progetto. Concedi agli utenti l'accesso all'account del servizio come richiesto dall'app.

1. Scegli il tuo nuovo account del servizio. Scegli la scheda **Keys (Chiavi)** e **Add key (Aggiungi chiave)**. Crea e scarica una nuova chiave JSON.

Per ulteriori informazioni su come utilizzare la console di Google Developers, consulta [Creating and managing projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) (Creazione e gestione di progetti) nella documentazione di Google Cloud.

Per ulteriori informazioni sull'integrazione di Google nell'app iOS, consulta [Google Sign-In per iOS](https://developers.google.com/identity/sign-in/ios/start-integrating) nella documentazione di Google Identity.

**Per aggiungere un gestore dell'identità digitale di Google**

1. Scegli **Pool di identità** dalla [console di Amazon Cognito](https://console.aws.amazon.com/cognito/home). Seleziona un pool di identità.

1. Seleziona la scheda **Accesso utente**.

1. Seleziona **Aggiungi provider di identità**.

1. Seleziona **Google**.

1. Inserisci l'**ID cliente** del OAuth progetto che hai creato su [Google Cloud Platform](https://console.cloud.google.com/). Per ulteriori informazioni, consulta [Configurazione OAuth 2.0](https://support.google.com/cloud/answer/6158849) nella *guida della console di Google Cloud Platform*.

1. Per impostare il ruolo richiesto da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Impostazioni ruolo**.

   1. Puoi assegnare agli utenti di tale IdP il **ruolo predefinito** impostato quando hai configurato il **ruolo autenticato** oppure selezionare l'opzione **Scegli ruolo con regole**.

     1. Se scegli l'opzione **Scegli ruolo con regole**, inserisci la **Richiesta** dall'autenticazione dell'utente, l'**Operatore** con cui desideri confrontare la richiesta, il **Valore** che determina una corrispondenza a questa scelta di ruolo e il **Ruolo** che desideri assegnare quando l'**Assegnazione del ruolo** corrisponde. Seleziona **Aggiungi un altro** per creare una regola aggiuntiva basata su una condizione diversa.

     1. Scegli una **Risoluzione del ruolo**. Quando le richieste dell'utente non corrispondono alle regole, puoi negare le credenziali o emettere credenziali per il **Ruolo autenticato**.

1. Per modificare i tag principali assegnati da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Attributi per il controllo degli accessi**.

   1. Per non applicare alcun tag principale, scegli **Inattivo**.

   1. Per applicare i tag principali in base alle richieste `sub` e `aud`, scegli **Utilizza mappature predefinite**.

   1. Per creare un tuo schema personalizzato di attributi dei tag principali, scegli **Utilizza mappature personalizzate**. Quindi, inserisci una **Chiave tag** che deve essere originata da ciascuna **Richiesta** che desideri rappresentare in un tag.

1. Seleziona **Salva modifiche**.

**Utilizzo di Google**

Per abilitare l'accesso con Google nella tua applicazione, segui la [documentazione Google per iOS](https://developers.google.com/identity/sign-in/ios/start/). In caso di autenticazione corretta, si genera un token di autenticazione di OpenID Connect, utilizzato da Amazon Cognito per autenticare l'utente e generare un identificatore univoco.

In caso di autenticazione corretta, viene generato un oggetto `GTMOAuth2Authentication` contenente un `id_token`, utilizzato da Amazon Cognito per autenticare l'utente e generare un identificatore univoco:

```
- (void)finishedWithAuth: (GTMOAuth2Authentication *)auth error: (NSError *) error {
        NSString *idToken = [auth.parameters objectForKey:@"id_token"];
        credentialsProvider.logins = @{ @(AWSCognitoLoginProviderKeyGoogle): idToken };
    }
```

## iOS - Swift
<a name="set-up-google-1.ios-swift"></a>

**Nota**  
Se l'app utilizza Google ed è disponibile su più piattaforme per dispositivi mobili, è necessario configurare Google come [provider OpenID Connect](open-id.md). Aggiungi tutti i client creati IDs come valori di audience aggiuntivi per una migliore integrazione. Per ulteriori informazioni sul modello di identità di più client di Google, consulta l'articolo [Cross-client Identity](https://developers.google.com/accounts/docs/CrossClientAuth).

**Configurazione di Google**

Per abilitare Google Sign-in per iOS, è necessario creare un progetto di console di Google Developers per la tua applicazione.

1. Vai alla [console di Google Developers](https://console.developers.google.com/) e crea un nuovo progetto.

1. Scegli **APIs & Servizi**, quindi **schermata di OAuth consenso**. Personalizza le informazioni che Google mostra agli utenti quando richiede il consenso per condividere i dati del profilo con la tua app.

1. Scegli **Credentials** (Credenziali), quindi **Create credentials** (Crea credenziali). Scegli l'**ID OAuth cliente**. Seleziona **iOS** per **Application type** (Tipo di applicazione). Crea un ID client separato per ogni piattaforma in cui sviluppi la tua app.

1. Da **Credentials** (Credenziali), scegli **Manage service accounts** (Gestione degli account del servizio). Scegli **Create service account (Crea account del servizio)**. Inserisci i dettagli dell'account del servizio e scegli **Create and continue** (Crea e continua).

1. Concedi all'account del servizio l'accesso al tuo progetto. Concedi agli utenti l'accesso all'account del servizio come richiesto dall'app.

1. Scegli il tuo nuovo account del servizio, seleziona la scheda **Keys** (Chiavi) e **Add key** (Aggiungi chiave). Crea e scarica una nuova chiave JSON.

Per ulteriori informazioni su come utilizzare la console di Google Developers, consulta [Creating and managing projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) (Creazione e gestione di progetti) nella documentazione di Google Cloud.

Per ulteriori informazioni sull'integrazione di Google nell'app iOS, consulta [Google Sign-In per iOS](https://developers.google.com/identity/sign-in/ios/start-integrating) nella documentazione di Google Identity.

Scegli **Gestisci pool di identità** dalla [home page della console Amazon Cognito](https://console.aws.amazon.com/cognito/home):

**Configurazione del provider esterno nella console Amazon Cognito**

1. Scegli il nome del pool di identità per cui vuoi abilitare Google come provider esterno. Viene visualizzata la pagina **Dashboard** (Pannello di controllo) per il tuo pool di identità.

1. Nell'angolo in alto a destra della pagina **Dashboard (Pannello di controllo)**, scegli **Edit identity pool (Modifica pool di identità)**. Viene visualizzata la pagina Edit identity pool (Modifica pool di identità).

1. Scorri verso il basso e scegli **Authentication providers (Provider di autenticazione)** per espandere la sezione.

1. Scegli la scheda **Google** .

1. Scegli **Unlock (Sblocca)**.

1. Inserisci l'ID client ottenuto da Google, quindi scegli **Save Changes (Salva le modifiche)**.

**Utilizzo di Google**

Per abilitare l'accesso con Google nella tua applicazione, segui la [documentazione Google per iOS](https://developers.google.com/identity/sign-in/ios/start/). In caso di autenticazione corretta, viene generato un token di autenticazione OpenID Connect, utilizzato da Amazon Cognito per autenticare l'utente e generare un identificatore univoco.

L'autenticazione completata restituisce un oggetto `GTMOAuth2Authentication` contenente un `id_token`. Amazon Cognito utilizza questo token per autenticare l'utente e generare un identificatore univoco:

```
func finishedWithAuth(auth: GTMOAuth2Authentication!, error: NSError!) {
    if error != nil {
      print(error.localizedDescription)
    }
    else {
      let idToken = auth.parameters.objectForKey("id_token")
      credentialsProvider.logins = [AWSCognitoLoginProviderKey.Google.rawValue: idToken!]
    }
}
```

## JavaScript
<a name="set-up-google-1.javascript"></a>

**Nota**  
Se l'app utilizza Google ed è disponibile su più piattaforme per dispositivi mobili, è necessario configurare Google come [provider OpenID Connect](open-id.md). Aggiungi tutti i client creati IDs come valori di audience aggiuntivi per una migliore integrazione. Per ulteriori informazioni sul modello di identità di più client di Google, consulta l'articolo [Cross-client Identity](https://developers.google.com/accounts/docs/CrossClientAuth).

**Configurazione di Google**

Per abilitare Google Sign-in per un'app JavaScript web, crea un progetto di console Google Developers per la tua applicazione.

1. Vai alla [console di Google Developers](https://console.developers.google.com/) e crea un nuovo progetto.

1. Scegli **APIs & Servizi**, quindi **schermata di OAuth consenso**. Personalizza le informazioni che Google mostra agli utenti quando chiede il consenso a condividere i dati del profilo con la tua app.

1. Scegli **Credentials** (Credenziali), quindi **Create credentials** (Crea credenziali). Scegli l'**ID OAuth cliente**. Seleziona **Web application** (Applicazione Web) per **Application type** (Tipo di applicazione). Crea un ID client separato per ogni piattaforma in cui sviluppi la tua app.

1. Da **Credentials** (Credenziali), scegli **Manage service accounts** (Gestione degli account del servizio). Scegli **Create service account (Crea account del servizio)**. Inserisci i dettagli dell'account del servizio e scegli **Create and continue** (Crea e continua).

1. Concedi all'account del servizio l'accesso al tuo progetto. Concedi agli utenti l'accesso all'account del servizio come richiesto dall'app.

1. Scegli il tuo nuovo account del servizio, seleziona la scheda **Keys** (Chiavi) e **Add key** (Aggiungi chiave). Crea e scarica una nuova chiave JSON.

Per ulteriori informazioni su come utilizzare la console di Google Developers, consulta [Creating and managing projects](https://cloud.google.com/resource-manager/docs/creating-managing-projects) (Creazione e gestione di progetti) nella documentazione di Google Cloud.

Per ulteriori informazioni su come integrare Google nella tua app Web, consulta [Sign In With Google](https://developers.google.com/identity/gsi/web/guides/overview) nella documentazione di Google Identity.

**Configurazione del provider esterno nella console Amazon Cognito**

**Per aggiungere un gestore dell'identità digitale di Google**

1. Scegli **Pool di identità** dalla [console di Amazon Cognito](https://console.aws.amazon.com/cognito/home). Seleziona un pool di identità.

1. Seleziona la scheda **Accesso utente**.

1. Seleziona **Aggiungi provider di identità**.

1. Seleziona **Google**.

1. Inserisci l'**ID cliente** del OAuth progetto che hai creato su [Google Cloud Platform](https://console.cloud.google.com/). Per ulteriori informazioni, consulta [Configurazione OAuth 2.0](https://support.google.com/cloud/answer/6158849) nella *guida della console di Google Cloud Platform*.

1. Per impostare il ruolo richiesto da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Impostazioni ruolo**.

   1. Puoi assegnare agli utenti di tale IdP il **ruolo predefinito** impostato quando hai configurato il **ruolo autenticato** oppure selezionare l'opzione **Scegli ruolo con regole**.

     1. Se scegli l'opzione **Scegli ruolo con regole**, inserisci la **Richiesta** dall'autenticazione dell'utente, l'**Operatore** con cui desideri confrontare la richiesta, il **Valore** che determina una corrispondenza a questa scelta di ruolo e il **Ruolo** che desideri assegnare quando l'**Assegnazione del ruolo** corrisponde. Seleziona **Aggiungi un altro** per creare una regola aggiuntiva basata su una condizione diversa.

     1. Scegli una **Risoluzione del ruolo**. Quando le richieste dell'utente non corrispondono alle regole, puoi negare le credenziali o emettere credenziali per il **Ruolo autenticato**.

1. Per modificare i tag principali assegnati da Amazon Cognito quando emette credenziali per gli utenti che hanno eseguito l'autenticazione con questo provider, configura **Attributi per il controllo degli accessi**.

   1. Per non applicare alcun tag principale, scegli **Inattivo**.

   1. Per applicare i tag principali in base alle richieste `sub` e `aud`, scegli **Utilizza mappature predefinite**.

   1. Per creare un tuo schema personalizzato di attributi dei tag principali, scegli **Utilizza mappature personalizzate**. Quindi, inserisci una **Chiave tag** che deve essere originata da ciascuna **Richiesta** che desideri rappresentare in un tag.

1. Seleziona **Salva modifiche**.

**Utilizzo di Google**

Per abilitare l'accesso con Google nella tua applicazione, segui la [documentazione Google per Web](https://developers.google.com/identity/gsi/web/guides/overview).

In caso di autenticazione corretta, viene generato un oggetto di risposta contenente un `id_token`, utilizzato da Amazon Cognito per autenticare l'utente e generare un identificatore univoco:

```
function signinCallback(authResult) {
  if (authResult['status']['signed_in']) {

     // Add the Google access token to the Amazon Cognito credentials login map.
     AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: 'IDENTITY_POOL_ID',
        Logins: {
           'accounts.google.com': authResult['id_token']
        }
     });

     // Obtain AWS credentials
     AWS.config.credentials.get(function(){
        // Access AWS resources here.
     });
  }
}
```