

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Configuration de Google en tant qu'IdP de pool d'identités
<a name="google"></a>

Les pools d'identités Amazon Cognito fonctionnent avec Google pour fournir une authentification fédérée aux utilisateurs de vos applications mobiles. Cette section explique comment enregistrer et configurer votre application avec Google comme fournisseur d'identité.

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

**Note**  
Si votre application utilise Google et qu'elle est disponible sur plusieurs plateformes mobiles, vous devez configurer Google en tant que [fournisseur OpenID Connect](open-id.md). Ajoutez tous les clients créés IDs en tant que valeurs d'audience supplémentaires pour une meilleure intégration. Pour en savoir plus sur le modèle d'identité à plusieurs clients de Google, consultez [cette page](https://developers.google.com/accounts/docs/CrossClientAuth).

**Configuration de Google**

Pour activer la connexion Google pour Android, créez un projet de console Google Developers pour votre application.

1. Accédez à la [console Google Developers](https://console.developers.google.com/) et créez un projet.

1. Choisissez **APIs & Services**, puis **écran de OAuth consentement**. Personnalisez les informations que Google montre à vos utilisateurs quand il leur demande de consentir à partager leurs données de profil avec votre application.

1. Choisissez **Identifiants**, puis **Créer des identifiants**. Choisissez l'**ID OAuth client**. Sélectionnez **Android** comme **Type d'application**. Créez un ID client distinct pour chaque plateforme où vous développez votre application.

1. Dans **Identifiants**, choisissez **Gérer les comptes de service**. Choisissez **Créer un compte de service**. Saisissez les détails de votre compte de service, puis choisissez **Créer et continuer**.

1. Accordez au compte de service l'accès à votre projet. Accordez aux utilisateurs l'accès au compte de service selon les besoins de votre application.

1. Choisissez votre nouveau compte de service, choisissez l'onglet **Clés** et **Ajouter une clé**. Créez et téléchargez une nouvelle clé JSON.

Pour plus d'informations sur l'utilisation de la console Google Developers, consultez[Créer et gérer des projets](https://cloud.google.com/resource-manager/docs/creating-managing-projects) dans la documentation Google Cloud.

Pour plus d'informations sur la façon d'intégrer Google à votre application Android, consultez [Authentifier les utilisateurs avec Sign in with Google](https://developer.android.com/identity/sign-in/credential-manager-siwg) dans la documentation Google Identity.

**Pour ajouter un fournisseur d'identité (IdP) Google**

1. Choisissez **Groupes d'identités** dans la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Sélectionnez une réserve d'identités.

1. Choisissez l'onglet **Accès utilisateur**.

1. Sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez **Google**.

1. Entrez l'**ID client** du OAuth projet que vous avez créé sur [Google Cloud Platform](https://console.cloud.google.com/). Pour plus d'informations, consultez la section [Configuration de la OAuth version 2.0](https://support.google.com/cloud/answer/6158849) dans l'*aide de la console Google Cloud Platform*.

1. Pour définir le rôle demandé par Amazon Cognito lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez **Paramètres de rôle**.

   1. Vous pouvez attribuer aux utilisateurs de ce fournisseur d'identité le **rôle par défaut** que vous avez configuré lorsque vous avez configuré votre **rôle authentifié**, ou vous pouvez sélectionner **Choisir un rôle avec des règles**.

     1. Si vous avez choisi **Choisir un rôle avec des règles**, saisissez la **demande** source issue de l'authentification de votre utilisateur, l'**opérateur** avec lequel vous souhaitez comparer ce champ standard, la **valeur** qui entraînera une correspondance avec ce choix de rôle et le **rôle** que vous souhaitez attribuer si l'**attribution de rôle** correspond. Sélectionnez **Ajouter un autre** pour créer une règle supplémentaire basée sur une condition différente.

     1. Choisissez une **résolution de rôle**. Lorsque les champs standard de votre utilisateur ne correspondent pas à vos règles, vous pouvez refuser les informations d'identification ou émettre des informations d'identification pour votre **rôle authentifié**.

1. Pour modifier les balises de principal qu'Amazon Cognito attribue lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez **Attributs de contrôle d'accès**.

   1. Pour n'appliquer aucune balise de principal, choisissez **Inactif**.

   1. Pour appliquer les balises de principal en fonction des champs standard `sub` et `aud`, choisissez **Utiliser les mappages par défaut**.

   1. Pour créer votre propre schéma personnalisé d'attributs pour les balises de principal, choisissez **Utiliser des mappages personnalisés**. Saisissez ensuite une **clé de balise** que vous souhaitez obtenir à partir de chaque **demande** que vous souhaitez représenter dans une balise.

1. Cliquez sur **Enregistrer les modifications**.

**Utilisation de Google**

Pour activer la connexion avec Google dans votre application, suivez les instructions fournies dans la [documentation Google pour Android](https://developers.google.com/identity/sign-in/android/start). Lorsqu'un utilisateur se connecte, il demande un jeton d'authentification OpenID Connect à Google. Amazon Cognito utilise alors ce jeton pour authentifier l'utilisateur et générer un identifiant unique.

L'exemple de code suivant illustre comment récupérer le jeton d'authentification auprès du service 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>

**Note**  
Si votre application utilise Google et qu'elle est disponible sur plusieurs plateformes mobiles, configurez Google en tant que [fournisseur OpenID Connect](open-id.md). Ajoutez tous les clients créés IDs en tant que valeurs d'audience supplémentaires pour une meilleure intégration. Pour en savoir plus sur le modèle d'identité à plusieurs clients de Google, consultez [cette page](https://developers.google.com/accounts/docs/CrossClientAuth).

**Configuration de Google**

Pour activer la connexion Google pour iOS, créez un projet de console Google Developers pour votre application.

1. Accédez à la [console Google Developers](https://console.developers.google.com/) et créez un projet.

1. Choisissez **APIs & Services**, puis **écran de OAuth consentement**. Personnalisez les informations que Google montre à vos utilisateurs quand il leur demande de consentir à partager leurs données de profil avec votre application.

1. Choisissez **Identifiants**, puis **Créer des identifiants**. Choisissez l'**ID OAuth client**. Sélectionnez **iOS** comme **Type d'application**. Créez un ID client distinct pour chaque plateforme où vous développez votre application.

1. Dans **Identifiants**, choisissez **Gérer les comptes de service**. Choisissez **Créer un compte de service**. Saisissez les détails de votre compte de service, puis choisissez **Créer et continuer**.

1. Accordez au compte de service l'accès à votre projet. Accordez aux utilisateurs l'accès au compte de service selon les besoins de votre application.

1. Choisissez votre nouveau compte de service. Choisissez l'onglet **Clés** et **Ajouter une clé**. Créez et téléchargez une nouvelle clé JSON.

Pour plus d'informations sur l'utilisation de la console Google Developers, consultez[Créer et gérer des projets](https://cloud.google.com/resource-manager/docs/creating-managing-projects) dans la documentation Google Cloud.

Pour plus d'informations sur l'intégration de Google dans votre application iOS, consultez [Google Sign-In for iOS](https://developers.google.com/identity/sign-in/ios/start-integrating) dans la documentation Google Identity.

**Pour ajouter un fournisseur d'identité (IdP) Google**

1. Choisissez **Groupes d'identités** dans la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Sélectionnez une réserve d'identités.

1. Choisissez l'onglet **Accès utilisateur**.

1. Sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez **Google**.

1. Entrez l'**ID client** du OAuth projet que vous avez créé sur [Google Cloud Platform](https://console.cloud.google.com/). Pour plus d'informations, consultez la section [Configuration de la OAuth version 2.0](https://support.google.com/cloud/answer/6158849) dans l'*aide de la console Google Cloud Platform*.

1. Pour définir le rôle demandé par Amazon Cognito lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez **Paramètres de rôle**.

   1. Vous pouvez attribuer aux utilisateurs de ce fournisseur d'identité le **rôle par défaut** que vous avez configuré lorsque vous avez configuré votre **rôle authentifié**, ou vous pouvez sélectionner **Choisir un rôle avec des règles**.

     1. Si vous avez choisi **Choisir un rôle avec des règles**, saisissez la **demande** source issue de l'authentification de votre utilisateur, l'**opérateur** avec lequel vous souhaitez comparer ce champ standard, la **valeur** qui entraînera une correspondance avec ce choix de rôle et le **rôle** que vous souhaitez attribuer si l'**attribution de rôle** correspond. Sélectionnez **Ajouter un autre** pour créer une règle supplémentaire basée sur une condition différente.

     1. Choisissez une **résolution de rôle**. Lorsque les champs standard de votre utilisateur ne correspondent pas à vos règles, vous pouvez refuser les informations d'identification ou émettre des informations d'identification pour votre **rôle authentifié**.

1. Pour modifier les balises de principal qu'Amazon Cognito attribue lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez **Attributs de contrôle d'accès**.

   1. Pour n'appliquer aucune balise de principal, choisissez **Inactif**.

   1. Pour appliquer les balises de principal en fonction des champs standard `sub` et `aud`, choisissez **Utiliser les mappages par défaut**.

   1. Pour créer votre propre schéma personnalisé d'attributs pour les balises de principal, choisissez **Utiliser des mappages personnalisés**. Saisissez ensuite une **clé de balise** que vous souhaitez obtenir à partir de chaque **demande** que vous souhaitez représenter dans une balise.

1. Cliquez sur **Enregistrer les modifications**.

**Utilisation de Google**

Pour activer la connexion avec Google dans votre application, reportez-vous à la [documentation Google pour iOS](https://developers.google.com/identity/sign-in/ios/start/). Une authentification réussie produit un jeton d'authentification OpenID Connect, qu'Amazon Cognito utilise pour authentifier l'utilisateur et générer un identifiant unique.

Une authentification réussie produit un objet `GTMOAuth2Authentication` contenant un `id_token` qu'Amazon Cognito utilise pour authentifier l'utilisateur et générer un identifiant unique :

```
- (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>

**Note**  
Si votre application utilise Google et qu'elle est disponible sur plusieurs plateformes mobiles, configurez Google en tant que [fournisseur OpenID Connect](open-id.md). Ajoutez tous les clients créés IDs en tant que valeurs d'audience supplémentaires pour une meilleure intégration. Pour en savoir plus sur le modèle d'identité à plusieurs clients de Google, consultez [cette page](https://developers.google.com/accounts/docs/CrossClientAuth).

**Configuration de Google**

Pour activer la connexion Google pour iOS, créez un projet de console Google Developers pour votre application.

1. Accédez à la [console Google Developers](https://console.developers.google.com/) et créez un projet.

1. Choisissez **APIs & Services**, puis **écran de OAuth consentement**. Personnalisez les informations que Google montre à vos utilisateurs quand il leur demande de consentir à partager leurs données de profil avec votre application.

1. Choisissez **Identifiants**, puis **Créer des identifiants**. Choisissez l'**ID OAuth client**. Sélectionnez **iOS** comme **Type d'application**. Créez un ID client distinct pour chaque plateforme où vous développez votre application.

1. Dans **Identifiants**, choisissez **Gérer les comptes de service**. Choisissez **Créer un compte de service**. Saisissez les détails de votre compte de service, puis choisissez **Créer et continuer**.

1. Accordez au compte de service l'accès à votre projet. Accordez aux utilisateurs l'accès au compte de service selon les besoins de votre application.

1. Choisissez votre nouveau compte de service, choisissez l'onglet **Clés** et **Ajouter une clé**. Créez et téléchargez une nouvelle clé JSON.

Pour plus d'informations sur l'utilisation de la console Google Developers, consultez[Créer et gérer des projets](https://cloud.google.com/resource-manager/docs/creating-managing-projects) dans la documentation Google Cloud.

Pour plus d'informations sur l'intégration de Google dans votre application iOS, consultez [Google Sign-In for iOS](https://developers.google.com/identity/sign-in/ios/start-integrating) dans la documentation Google Identity.

Choisissez **Manage Identity Pools (Gérer les groupes d'identité)** dans la [page d'accueil de la console Amazon Cognito](https://console.aws.amazon.com/cognito/home).

**Configuration du fournisseur externe dans la console Amazon Cognito**

1. Choisissez le nom du groupe d'identités dans lequel vous souhaitez activer Google comme fournisseur externe. La page **Dashboard** (Tableau de bord) correspondant à votre groupe d'identités s'affiche.

1. Dans l'angle supérieur droit de la page **Dashboard (Tableau de bord)**, choisissez **Edit identity pool (Modifier le groupe d'identités)**. La page Edit identity pool (Modifier le groupe d'identités) s'affiche.

1. Faites défiler l'affichage vers le bas et choisissez **Authentication providers** (Fournisseurs d'authentification) pour développer cette option.

1. Choisissez l'onglet **Google**.

1. Sélectionnez **Unlock (Déverrouiller)**.

1. Saisissez l'ID client Google que vous avez obtenu auprès de Google, puis choisissez **Save Changes** (Enregistrer les modifications).

**Utilisation de Google**

Pour activer la connexion avec Google dans votre application, reportez-vous à la [documentation Google pour iOS](https://developers.google.com/identity/sign-in/ios/start/). Une authentification réussie produit un jeton d'authentification OpenID Connect, qu'Amazon Cognito utilise pour authentifier l'utilisateur et générer un identifiant unique.

Une authentification réussie produit un objet `GTMOAuth2Authentication` qui contient un jeton `id_token`. Amazon Cognito utilise ce jeton pour authentifier l'utilisateur et générer un identifiant unique :

```
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>

**Note**  
Si votre application utilise Google et qu'elle est disponible sur plusieurs plateformes mobiles, vous devez configurer Google en tant que [fournisseur OpenID Connect](open-id.md). Ajoutez tous les clients créés IDs en tant que valeurs d'audience supplémentaires pour une meilleure intégration. Pour en savoir plus sur le modèle d'identité à plusieurs clients de Google, consultez [cette page](https://developers.google.com/accounts/docs/CrossClientAuth).

**Configuration de Google**

Pour activer Google Sign-in pour une application JavaScript Web, créez un projet de console Google Developers pour votre application.

1. Accédez à la [console Google Developers](https://console.developers.google.com/) et créez un projet.

1. Choisissez **APIs & Services**, puis **écran de OAuth consentement**. Personnalisez les informations que Google montre à vos utilisateurs quand il leur demande de consentir à partager leurs données de profil avec votre application.

1. Choisissez **Identifiants**, puis **Créer des identifiants**. Choisissez l'**ID OAuth client**. Sélectionnez **Application web** comme **Type d'application**. Créez un ID client distinct pour chaque plateforme où vous développez votre application.

1. Dans **Identifiants**, choisissez **Gérer les comptes de service**. Choisissez **Créer un compte de service**. Saisissez les détails de votre compte de service, puis choisissez **Créer et continuer**.

1. Accordez au compte de service l'accès à votre projet. Accordez aux utilisateurs l'accès au compte de service selon les besoins de votre application.

1. Choisissez votre nouveau compte de service, choisissez l'onglet **Clés** et **Ajouter une clé**. Créez et téléchargez une nouvelle clé JSON.

Pour plus d'informations sur l'utilisation de la console Google Developers, consultez[Créer et gérer des projets](https://cloud.google.com/resource-manager/docs/creating-managing-projects) dans la documentation Google Cloud.

Pour plus d'informations sur l'intégration de Google dans votre application web, consultez [Se connecter avec Google](https://developers.google.com/identity/gsi/web/guides/overview) dans la documentation Google Identity.

**Configuration du fournisseur externe dans la console Amazon Cognito**

**Pour ajouter un fournisseur d'identité (IdP) Google**

1. Choisissez **Groupes d'identités** dans la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Sélectionnez une réserve d'identités.

1. Choisissez l'onglet **Accès utilisateur**.

1. Sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez **Google**.

1. Entrez l'**ID client** du OAuth projet que vous avez créé sur [Google Cloud Platform](https://console.cloud.google.com/). Pour plus d'informations, consultez la section [Configuration de la OAuth version 2.0](https://support.google.com/cloud/answer/6158849) dans l'*aide de la console Google Cloud Platform*.

1. Pour définir le rôle demandé par Amazon Cognito lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez **Paramètres de rôle**.

   1. Vous pouvez attribuer aux utilisateurs de ce fournisseur d'identité le **rôle par défaut** que vous avez configuré lorsque vous avez configuré votre **rôle authentifié**, ou vous pouvez sélectionner **Choisir un rôle avec des règles**.

     1. Si vous avez choisi **Choisir un rôle avec des règles**, saisissez la **demande** source issue de l'authentification de votre utilisateur, l'**opérateur** avec lequel vous souhaitez comparer ce champ standard, la **valeur** qui entraînera une correspondance avec ce choix de rôle et le **rôle** que vous souhaitez attribuer si l'**attribution de rôle** correspond. Sélectionnez **Ajouter un autre** pour créer une règle supplémentaire basée sur une condition différente.

     1. Choisissez une **résolution de rôle**. Lorsque les champs standard de votre utilisateur ne correspondent pas à vos règles, vous pouvez refuser les informations d'identification ou émettre des informations d'identification pour votre **rôle authentifié**.

1. Pour modifier les balises de principal qu'Amazon Cognito attribue lorsqu'il délivre des informations d'identification aux utilisateurs qui se sont authentifiés auprès de ce fournisseur, configurez **Attributs de contrôle d'accès**.

   1. Pour n'appliquer aucune balise de principal, choisissez **Inactif**.

   1. Pour appliquer les balises de principal en fonction des champs standard `sub` et `aud`, choisissez **Utiliser les mappages par défaut**.

   1. Pour créer votre propre schéma personnalisé d'attributs pour les balises de principal, choisissez **Utiliser des mappages personnalisés**. Saisissez ensuite une **clé de balise** que vous souhaitez obtenir à partir de chaque **demande** que vous souhaitez représenter dans une balise.

1. Cliquez sur **Enregistrer les modifications**.

**Utilisation de Google**

Pour activer la connexion avec Google dans votre application, reportez-vous à la [documentation Google pour le web](https://developers.google.com/identity/gsi/web/guides/overview).

Une authentification réussie produit un objet de réponse contenant un jeton `id_token` qu'Amazon Cognito utilise pour authentifier l'utilisateur et générer un identifiant unique :

```
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.
     });
  }
}
```