

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.

# Utilisation de fournisseurs d'identité sociale avec un pool d'utilisateurs
<a name="cognito-user-pools-social-idp"></a>

Vos utilisateurs d'applications mobiles et Web peuvent se connecter via des fournisseurs d'identité sociaux (IdP) comme Facebook, Google, Amazon et Apple. Avec l'interface utilisateur web hébergée intégrée, Amazon Cognito permet de traiter et de gérer tous les utilisateurs authentifiés. Vos systèmes backend peuvent ainsi utiliser un ensemble de jetons de groupe d'utilisateurs standard. Vous devez activer la connexion gérée pour intégrer les fournisseurs d'identité sociale pris en charge. Lorsqu'Amazon Cognito crée vos pages de connexion gérées, il crée des points de terminaison OAuth 2.0 qu'Amazon Cognito, votre OIDC et les réseaux sociaux utilisent pour échanger des informations. IdPs Pour plus d'informations, consultez la [Référence d'API pour l'authentification des groupes d'utilisateurs Amazon Cognito.](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-userpools-server-contract-reference.html)

Vous pouvez ajouter un IdP social dans le ou vous pouvez utiliser la AWS Management Console AWS CLI ou l'API Amazon Cognito. 

**Note**  
La connexion via un tiers (fédération) est disponible dans les groupes d'utilisateurs Amazon Cognito. Cette fonctionnalité est indépendante de la fédération via les groupes d'identités Amazon Cognito (identités fédérées).

**Topics**
+ [Configurer un compte de développeur et une application IdP sur les réseaux sociaux](#cognito-user-pools-social-idp-step-1)
+ [Configurez votre groupe d'utilisateurs avec un IdP social](#cognito-user-pools-social-idp-step-2)
+ [Test de la configuration de votre fournisseur d'identité social](#cognito-user-pools-social-idp-step-3)

## Configurer un compte de développeur et une application IdP sur les réseaux sociaux
<a name="cognito-user-pools-social-idp-step-1"></a>

Avant de créer un fournisseur d'identité social avec Amazon Cognito, vous devez enregistrer votre application auprès du fournisseur d'identité social pour recevoir un ID client et une clé secrète de client.

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

Pour obtenir les dernières informations sur la configuration des comptes de développeur Meta et l'authentification, consultez [Meta App Development](https://developers.facebook.com/docs/development).

**Comment enregistrer une application sur Facebook/Meta**

1. Créez un [compte développeur avec Facebook](https://developers.facebook.com/docs/facebook-login).

1. [Connectez-vous](https://developers.facebook.com/) avec vos informations d'identification Facebook.

1. Dans le menu **Mes applications**, choisissez **Créer une nouvelle application**.

1. Saisissez un nom pour votre application Facebook, puis choisissez **Créer un ID d'application**.

1. Dans la barre de navigation de gauche, sélectionnez **Paramètres**, puis **Basique**.

1. Notez l'**ID d'app** et la **Clé secrète d'application**. Vous les utiliserez dans la section suivante.

1. Au bas de la page, choisissez **\+ Ajouter une plateforme**.

1. Choisissez **Site Web**.

1. Sous **Site Web**, Saisissez le chemin d'accès à la page de connexion de votre application dans **URL du site**.

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

1. Choisissez **Save changes** (Enregistrer les modifications).

1. Saisissez le chemin d'accès à la racine du domaine de votre groupe d'utilisateurs dans **App Domains (Domaines d'application)**.

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

1. Sélectionnez **Enregistrer les modifications**.

1. Dans la barre de navigation, choisissez **Ajouter un produit**, puis **Configurer ** depuis le produit **Connexion avec Facebook**.

1. Dans la barre de navigation, choisissez **Connexion avec Facebook**, puis **Paramètres**.

   Entrez le chemin d'accès au `/oauth2/idpresponse` point de terminaison pour le domaine de votre groupe d'utilisateurs dans **Valid OAuth Redirect URIs**.

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

1. Sélectionnez **Enregistrer les modifications**.

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

Pour obtenir les dernières informations concernant la configuration des comptes de développeur Login with Amazon et l'authentification, consultez la [documentation Login with Amazon](https://developer.amazon.com/docs/login-with-amazon/documentation-overview.html).

**Comment enregistrer une application avec Login with Amazon**

1. Créez un [compte développeur avec Amazon](https://developer.amazon.com/login-with-amazon).

1. [Connectez-vous](https://developer.amazon.com/lwa/sp/overview.html) avec vos informations d'identification Amazon.

1. Vous devez créer un profil de sécurité Amazon pour recevoir l'ID client et de la clé secrète de client Amazon.

   Choisissez **Apps and Services (Applications et services)** dans la barre de navigation en haut de la page, puis sélectionnez **Login with Amazon**.

1. Sélectionnez **Create a Security Profile (Créer un profil de sécurité)**.

1. Saisissez un **Nom du profil de sécurité**, une **Description du profil de sécurité** et une **URL de consentement à l'avis de confidentialité**.

1. Choisissez **Save** (Enregistrer).

1. Choisissez **Client ID (ID client)** et **Client Secret (Secret client)** pour afficher l'ID et le secret client. Vous les utiliserez dans la section suivante.

1. Passez le curseur sur l'engrenage et choisissez l'icône **Web Settings (Paramètres web)**, puis **Modifier**.

1. Saisissez le domaine de votre groupe d'utilisateurs dans le champ **Allowed Origins (Origines autorisées)**.

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

1. Entrez le domaine de votre groupe d'utilisateurs avec le `/oauth2/idpresponse` point de terminaison dans **Allowed Return URLs**.

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

1. Choisissez **Enregistrer**.

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

Pour plus d'informations sur la OAuth version 2.0 de la plateforme Google Cloud, consultez la section [En savoir plus sur l'authentification et l'autorisation](https://developers.google.com/workspace/guides/auth-overview) dans la documentation de Google Workspace for Developers.

**Comment enregistrer une application auprès de Google**

1. Créez un [compte développeur avec Google](https://developers.google.com/identity).

1. Connectez-vous à la [console Google Cloud Platform](https://console.cloud.google.com/home/dashboard).

1. Dans la barre de navigation supérieure, choisissez **Select a project** (Sélectionner un projet). Si vous avez déjà un projet sur la plateforme Google, ce menu affiche votre projet par défaut.

1. Sélectionnez **NEW PROJECT** (NOUVEAU PROJET).

1. Saisissez le nom de votre produit, puis choisissez **CREATE** (CRÉER).

1. Dans la barre de navigation de gauche, choisissez **APIs Services**, puis écran de **consentement Oauth**.

1. Saisissez les informations sur l'application, avec **App domain** (Domaine d'application), **Authorized domains** (Domaines autorisés) et **Developer contact information** (Coordonnées du développeur). Vos **Authorized domains** (Domaines autorisés) doivent inclure `amazoncognito.com` et la racine de votre domaine personnalisé, par exemple `example.com`. Choisissez **SAVE AND CONTINUE** (ENREGISTRER ET CONTINUER).

1. 1. Sous **Étendue**, choisissez **Ajouter ou supprimer des étendues**, puis choisissez, au minimum, les étendues suivantes OAuth .

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

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

   1. openid

1. Sous **Test users** (Utilisateurs test), choisissez **Add users** (Ajouter des utilisateurs). Saisissez votre adresse e-mail et tout autre utilisateur test autorisé, puis choisissez **SAVE AND CONTINUE** (ENREGISTRER ET CONTINUER).

1. Agrandissez à nouveau la barre de navigation de gauche, **APIs puis choisissez Services**, puis **Informations d'identification**. 

1. Choisissez **CREATE CREDENTIALS**, puis sur **ID OAuth client**.

1. Choisissez un **Application type** (Type d'application) et donnez à votre client un **Name** (Nom).

1. Sous ** JavaScript Origines autorisées**, choisissez **AJOUTER UN URI**. Saisissez le domaine de votre groupe d'utilisateurs.

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

1. Sous **Redirection autorisée URIs**, choisissez **AJOUTER UN URI**. Entrez le chemin d'accès au point de terminaison `/oauth2/idpresponse` de votre domaine de groupe d'utilisateurs.

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

1. Choisissez **CREATE** (CRÉER).

1. Stockez en toute sécurité les valeurs que Google affiche sous **Your client ID** (ID de votre client) et **Your client secret** (Secret de votre client). Fournissez ces valeurs à Amazon Cognito lorsque vous ajoutez un fournisseur d'identité Google.

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

Pour en up-to-date savoir plus sur la configuration de Sign in with Apple, consultez la [section Configuration de votre environnement pour Sign in with Apple](https://developer.apple.com/documentation/signinwithapple/configuring-your-environment-for-sign-in-with-apple) dans la documentation destinée aux développeurs Apple.

**Comment enregistrer une application avec Sign in with Apple (SIWA)**

1. Créez un [compte développeur Apple](https://developer.apple.com/programs/enroll/).

1. [Connectez-vous](https://developer.apple.com/account/#/welcome) avec vos informations d'identification Apple.

1. Dans la barre de navigation de gauche, choisissez **Certificates, Identifiers & Profiles** (Certificats, identifiants et profils).

1. Dans la barre de navigation de gauche, choisissez **Identifiers (Identifiants)**.

1. Dans la page **Identifiers (Identifiants)**, choisissez l'icône **\+**.

1. Sur la page **Enregistrer un nouvel identifiant**, choisissez **App IDs**, puis choisissez **Continuer**.

1. Sur la page **Select a type** (Sélectionner un type), choisissez **App** (Application), puis **Continue** (Continuer).

1. Dans la page **Register an App ID (Enregistrer un ID d'application)**, procédez comme suit :

   1. Sous **Description**, entrez une description.

   1. Sous **App ID Prefix** (Préfixe d'ID d'application), saisissez un **Bundle ID** (ID de bundle). Notez la valeur sous **Make a note of the value under (Préfixe d'ID d'application)**. Vous utiliserez cette valeur après avoir choisi Apple comme fournisseur d'identité dans [Configurez votre groupe d'utilisateurs avec un IdP social](#cognito-user-pools-social-idp-step-2).

   1. Sous **Capabilities (Capacités)**, choisissez **Sign In with Apple (Connexion avec Apple)**, puis **Edit (Modifier)**.

   1. Sur la page **Connexion avec Apple : configuration de l'identifiant de l'application**, choisissez de configurer l'application comme application principale ou de la regrouper avec une autre application IDs, puis sélectionnez **Enregistrer**.

   1. Sélectionnez **Continuer**.

1. Dans la page **Confirm your App ID (Confirmer votre ID d'application)**, choisissez **Register (Inscrire)**.

1. Dans la page **Identifiers (Identifiants)**, choisissez l'icône **\+**.

1. Sur la page **Enregistrer un nouvel identifiant**, sélectionnez **Services IDs**, puis choisissez **Continuer**.

1. Dans la page **Register an App ID (Enregistrer un ID d'application)**, procédez comme suit :

   1. Dans **Description**, saisissez une description.

   1. Sous **Identifier (Identifiant)**, saisissez un identifiant. Notez les ID de ces services, car vous en aurez besoin après avoir choisi Apple comme fournisseur d'identité dans [Configurez votre groupe d'utilisateurs avec un IdP social](#cognito-user-pools-social-idp-step-2).

   1. Choisissez **Continue** (Continuer), puis **Register** (Enregistrer).

1. Choisissez l'ID de services que vous venez de créer à partir de la page Identifiants.

   1. Sélectionnez **Sign In with Apple (Connexion avec Apple)**, puis choisissez **Configure (Configurer)**.

   1. Sur la page **Web Authentication Configuration** (Configuration de l'authentification web), sélectionnez l'ID d'application que vous avez créé précédemment comme **Primary App ID** (ID d'application principale). 

   1. Cliquez sur l'icône **\+** à côté de **Site Web URLs**. 

   1. Sous **Domains and subdomains** (Domaines et sous-domaines), entrez le domaine de votre groupe d'utilisateurs sans utiliser de préfixe `https://`.

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

   1. Sous **Retour URLs**, entrez le chemin d'accès au `/oauth2/idpresponse` point de terminaison du domaine de votre groupe d'utilisateurs.

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

   1. Choisissez **Next** (Suivant), puis **Done** (Terminé). Vous n'avez pas besoin de vérifier le domaine.

   1. Choisissez **Continue** (Continuer), puis **Save** (Enregistrer).

1. Dans la barre de navigation de gauche, choisissez **Keys (Clés)**.

1. Dans la page **Keys (Clés)**, choisissez l'icône **\+**.

1. Dans la page **Register a New Key (Enregistrer une nouvelle clé)**, procédez comme suit :

   1. Sous **Key Name (Nom de clé)**, saisissez un nom de clé. 

   1. Sélectionnez **Sign In with Apple (Connexion avec Apple)**, puis choisissez **Configure (Configurer)**.

   1. Sur la page **Configure Key** (Configurer la clé), sélectionnez l'ID d'application que vous avez créé précédemment comme **Primary App ID** (ID d'application principale). Choisissez **Enregistrer**.

   1. Choisissez **Continue (Continuer)**, puis **Register (Enregistrer)**.

1. Dans la page **Télécharger votre clé**, choisissez **Télécharger** pour télécharger la **clé privée**, puis choisissez **Terminé**. Vous aurez besoin de cette clé privée et de la valeur **Key ID (ID de clé)** affichées sur cette page après avoir choisi Apple comme fournisseur d'identité dans [Configurez votre groupe d'utilisateurs avec un IdP social](#cognito-user-pools-social-idp-step-2).

------

## Configurez votre groupe d'utilisateurs avec un IdP social
<a name="cognito-user-pools-social-idp-step-2"></a>

**Pour configurer un IdP social de groupe d'utilisateurs avec AWS Management Console**

1. Accédez à la [console Amazon Cognito](https://console.aws.amazon.com/cognito/home). Si vous y êtes invité, entrez vos AWS informations d'identification.

1. Choisissez **Groupes d’utilisateurs**.

1. Choisissez un groupe d'utilisateurs existant dans la liste ou créez-en un.

1. Choisissez le menu **Fournisseurs sociaux et externes**, puis sélectionnez **Ajouter un fournisseur d'identité**.

1. Choisissez un fournisseur d'identité social : **Facebook**, **Google**, **Login with Amazon** ou **Connexion avec Apple**.

1. Exécutez l'une des étapes suivantes en fonction du fournisseur d'identité social que vous choisissez :
   + **Google** et **Login with Amazon** : Saisissez le l'**ID du client d'application** et la **clé secrète du client** générés dans la section précédente.
   + **Facebook** : Saisissez l'**ID du client d'application** et la **clé secrète du client** générés dans la section précédente, puis choisissez une version d'API (par exemple, la version 2.12). Nous recommandons de choisir la dernière version possible, car chaque API Facebook a un cycle de vie et une date d'arrêt de prise en charge. Les périmètres et attributs Facebook peuvent varier d'une version d'API à l'autre. Nous vous recommandons de tester votre connexion d'identité sociale avec Facebook pour vous assurer que la fédération fonctionne comme prévu.
   + **Se connecter avec Apple** : Saisissez l'**ID de service**, l'**ID d'équipe**, l'**ID de clé**, et la **clé privée** générés dans la section précédente.

1. Saisissez les noms des **périmètres autorisés** que vous voulez utiliser. Les périmètres définissent les attributs d'utilisateur (tels que `name` et `email`) auxquels vous souhaitez accéder avec votre application. Pour Facebook, ils doivent être séparés par des virgules. Pour Google et Login with Amazon, ils doivent être séparés par des espaces. Pour Sign in with Apple (Connexion avec Apple), activez les cases des périmètres auxquelles vous souhaitez accéder.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/cognito-user-pools-social-idp.html)

   L'utilisateur de l'application est invité à accepter de fournir ces attributs à votre application. Pour plus d'informations sur les périmètres d'application des fournisseurs sociaux, consultez la documentation de Google, Facebook, Login with Amazon et Login with Apple. 

   Dans le cas de Sign in with Apple, les scénarios d'utilisation où les périmètres ne peuvent pas être renvoyés sont les suivants :
   + Un utilisateur final rencontre une erreur après avoir quitté la page Apple de connexion (erreur interne au sein d'Amazon Cognito ou toute autre erreur écrite par le développeur).
   + L'identifiant de service est utilisé dans les groupes d'utilisateurs ( and/or autres services d'authentification).
   + Un développeur ajoute des périmètres supplémentaires après que l'utilisateur s'est connecté (aucune nouvelle information n'est extraite).
   + Un développeur supprime l'utilisateur et l'utilisateur se connecte à nouveau sans supprimer l'application de son profil Apple

1. Mappez les attributs de votre fournisseur d'identité dans votre groupe d'utilisateurs. Pour de plus amples informations, veuillez consulter [Spécification des mappages d'attribut du fournisseur d'identité pour votre groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-specifying-attribute-mapping.html).

1. Choisissez **Créer**.

1. Dans le menu **App clients**, sélectionnez un client d'application dans la liste. Pour ajouter le nouveau fournisseur d'identité sociale au client de l'application, accédez à l'onglet **Pages de connexion** et sélectionnez **Modifier** dans la **configuration des pages de connexion gérées**.

1. Sélectionnez **Enregistrer les modifications**.

## Test de la configuration de votre fournisseur d'identité social
<a name="cognito-user-pools-social-idp-step-3"></a>

Dans votre application, vous devez appeler un navigateur dans le client de l'utilisateur afin qu'il puisse se connecter auprès de son fournisseur de réseau social. Testez la connexion auprès de votre fournisseur de réseau social après avoir terminé les procédures de configuration décrites dans les sections précédentes. L'exemple d'URL suivant charge la page de connexion de votre groupe d'utilisateurs avec un domaine préfixé.

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

Ce lien est la page vers laquelle Amazon Cognito vous dirige lorsque vous accédez au menu des **clients de l'application**, que vous sélectionnez un client d'application, que vous accédez à l'onglet **Pages de connexion**, puis que vous sélectionnez **Afficher la page de connexion**. Pour plus d'informations sur les domaines du groupe d'utilisateurs, consultez[Configuration d'un domaine de groupe d'utilisateurs](cognito-user-pools-assign-domain.md). Pour plus d'informations sur les clients de l'application, y compris le client IDs et le rappel URLs, consultez[Paramètres spécifiques à l'application avec les clients d'applications](user-pool-settings-client-apps.md).

L'exemple de lien suivant permet de configurer une redirection silencieuse vers un fournisseur social à partir du [Point de terminaison d’autorisation](authorization-endpoint.md) paramètre de `identity_provider` requête. Cette URL contourne la connexion interactive au groupe d'utilisateurs par une connexion gérée et permet d'accéder directement à la page de connexion de l'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}}
```