

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é OIDC avec un pool d'utilisateurs
<a name="cognito-user-pools-oidc-idp"></a>

Les utilisateurs peuvent se connecter à votre application à l'aide de leurs comptes existants auprès des fournisseurs d'identité OpenID Connect (OIDC) (). IdPs Avec les fournisseurs OIDC, les utilisateurs de systèmes d'authentification unique indépendants peuvent fournir des informations d'identification existantes tandis que votre application reçoit des jetons OIDC au format partagé de groupes d'utilisateurs. Pour configurer un IdP OIDC, configurez votre IdP pour gérer votre groupe d'utilisateurs en tant que RP et configurez votre application pour gérer votre groupe d'utilisateurs en tant qu'IdP. Amazon Cognito sert d'étape intermédiaire entre plusieurs OIDC IdPs et vos applications. Votre groupe d'utilisateurs applique des règles de mappage d'attributs aux demandes contenues dans les identifiants et les jetons d'accès que votre fournisseur transmet directement à votre groupe d'utilisateurs. [Amazon Cognito émet ensuite de nouveaux jetons en fonction des attributs utilisateur mappés et de tout ajustement supplémentaire que vous avez apporté au flux d'authentification avec les déclencheurs Lambda.](cognito-user-pools-working-with-lambda-triggers.md#lambda-triggers-for-federated-users)

Les utilisateurs qui se connectent avec un IdP OIDC ne sont pas tenus de fournir de nouveaux identifiants ou informations pour accéder à votre application de pool d'utilisateurs. Votre application peut les rediriger silencieusement vers leur IdP pour se connecter, avec un pool d'utilisateurs comme outil en arrière-plan qui normalise le format du jeton pour votre application. Pour en savoir plus sur la redirection IdP, consultez. [Point de terminaison d’autorisation](authorization-endpoint.md)

Comme pour les autres fournisseurs d'identité tiers, vous devez enregistrer votre application auprès du fournisseur OIDC et obtenir des informations sur l'application IdP que vous souhaitez connecter à votre groupe d'utilisateurs. L'IdP OIDC d'un groupe d'utilisateurs nécessite un identifiant client, un secret client, les étendues que vous souhaitez demander et des informations sur les points de terminaison des services du fournisseur. Votre groupe d'utilisateurs peut découvrir les points de terminaison OIDC du fournisseur à partir d'un point de terminaison de découverte ou vous pouvez les saisir manuellement. Vous devez également examiner les jetons d'identification du fournisseur et créer des mappages d'attributs entre l'IdP et les attributs de votre groupe d'utilisateurs.

![\[Flux d'authentification du fournisseur d'identité OIDC pour le groupe d'utilisateurs\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/flow-cup-oidc-endpoints.png)


Consultez [Flux d'authentification du fournisseur d'identité de groupe d'utilisateurs OIDC](cognito-user-pools-oidc-flow.md) pour plus de détails sur ce flux d'authentification.

**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 OIDC avec les groupes d'identités Amazon Cognito.

Vous pouvez ajouter un IdP OIDC à votre groupe d'utilisateurs selon la méthode API AWS Management Console du groupe d'utilisateurs, par AWS CLI le biais de ou avec celle-ci. [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Topics**
+ [Conditions préalables](#cognito-user-pools-oidc-idp-prerequisites)
+ [Enregistrer une application auprès d'un IdP OIDC](#cognito-user-pools-oidc-idp-step-1)
+ [Ajout d'un fournisseur d'identité OIDC à votre groupe d'utilisateurs​](#cognito-user-pools-oidc-idp-step-2)
+ [Test de la configuration de votre IdP OIDC](#cognito-user-pools-oidc-idp-step-3)
+ [Flux d'authentification du fournisseur d'identité de groupe d'utilisateurs OIDC](cognito-user-pools-oidc-flow.md)

## Conditions préalables
<a name="cognito-user-pools-oidc-idp-prerequisites"></a>

Avant de commencer, vous avez besoin de ce qui suit :
+ Un groupe d'utilisateurs avec une application client et un domaine de groupe d'utilisateurs. Pour plus d'informations, consultez [Créer un groupe d'utilisateurs](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).
+ Un fournisseur d'identité (IdP) OIDC avec la configuration suivante : 
  + Prend en charge l'authentification client `client_secret_post`. Amazon Cognito ne vérifie pas la revendication `token_endpoint_auth_methods_supported` au point de terminaison de découverte OIDC pour votre fournisseur d'identité. Amazon Cognito ne prend pas en charge l'authentification client `client_secret_basic`. Pour plus d'informations sur l'authentification client, consultez [Client Authentication](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication) dans la documentation sur OpenID Connect.
  + Utilise uniquement HTTPS pour les points de terminaison OIDC tels que `openid_configuration`, `userInfo` et `jwks_uri`.
  + Utilise uniquement les ports TCP 80 et 443 pour les points de terminaison OIDC.
  + Ne signe les jetons d'identification qu'avec les algorithmes HMAC-SHA, ECDSA ou RSA.
  + Publie un champ standard `kid` d'identifiant de clé dans son `jwks_uri` et inclut un champ standard `kid` dans ses jetons.
  + Présente une clé publique non expirée avec une chaîne de confiance de l'autorité de certification racine valide.

## Enregistrer une application auprès d'un IdP OIDC
<a name="cognito-user-pools-oidc-idp-step-1"></a>

Avant d'ajouter un IdP OIDC à la configuration de votre groupe d'utilisateurs et de l'attribuer à des clients d'applications, vous devez configurer une application cliente OIDC dans votre IdP. Votre groupe d'utilisateurs est l'application tierce qui gérera l'authentification auprès de votre IdP.

**Pour vous inscrire avec un fournisseur d'identité OIDC**

1. Créez un compte développeur avec le fournisseur d'identité OIDC.  
**Liens vers l'OIDC IdPs**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/cognito-user-pools-oidc-idp.html)

1. Enregistrez l'URL du domaine de votre groupe d'utilisateurs avec le point de terminaison `/oauth2/idpresponse` auprès de votre fournisseur d'identité (IdP) OIDC Cela garantit que l'IdP OIDC l'acceptera d'Amazon Cognito lors de l'authentification des utilisateurs.

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

1. Sélectionnez les [étendues](cognito-user-pools-define-resource-servers.md#cognito-user-pools-define-resource-servers-about-scopes) que vous souhaitez que votre annuaire d'utilisateurs partage avec votre groupe d'utilisateurs. Le scope **openid** est requis pour que l'OIDC puisse fournir IdPs des informations aux utilisateurs. Le `email` champ d'application est nécessaire pour autoriser l'accès aux `email_verified` [réclamations `email`](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) et. Les champs d'application supplémentaires de la spécification OIDC concernent `profile` tous les attributs utilisateur et `phone` pour `phone_number` et. `phone_number_verified`

1. L'IdP OIDC vous fournit un ID client et un clé secrète de client. Notez ces valeurs et ajoutez-les à la configuration de l'IdP OIDC que vous ajouterez ultérieurement à votre groupe d'utilisateurs.

**Exemple : Utilisation de Salesforce en tant qu'IdP OIDC avec votre groupe d'utilisateurs**

 Vous utilisez un fournisseur d'identité OIDC lorsque vous souhaitez établir une approbation entre un fournisseur d'identité compatible OIDC, tel que Salesforce, et votre groupe d'utilisateurs.

1. [Créez un compte](https://developer.salesforce.com/signup) sur le site web Salesforce Developers.

1. [Connectez-vous](https://developer.salesforce.com) avec le compte développeur que vous avez créé à l'étape précédente.

1. Dans votre page Salesforce, procédez de l'une des manières suivantes :
   +  Si vous utilisez Lightning Experience, choisissez l'icône d'engrenage de configuration, puis choisissez **Setup Home** (Page d'accueil de configuration).
   +  Si vous utilisez Salesforce et que vous voyez **Setup (Configurer)** dans l'en-tête de l'interface utilisateur, choisissez cette option.
   +  Si vous utilisez Salesforce Classic et que vous ne voyez pas **Setup (Configurer)** dans l'en-tête, choisissez votre nom dans la barre de navigation supérieure, puis choisissez **Setup (Configurer)** dans la liste déroulante.

1. Dans la barre de navigation de gauche, sélectionnez **Company Settings (Paramètres de l'entreprise)**. 

1. Dans la barre de navigation, choisissez **Domaine**, saisissez un domaine, puis choisissez **Créer**. 

1. Dans la barre de navigation de gauche, sous **Outils de plateforme** puis choisissez **Applications**. 

1. Choisissez **App Manager (Gestionnaire d'applications)**.

1. 

   1. Choisissez **Nouvelle application connectée**.

   1. Renseignez les champs obligatoires.

      Sous **Start URL** (URL de lancement), saisissez une URL au niveau du point de terminaison `/authorize` pour le domaine de groupe d'utilisateurs qui se connecte avec votre fournisseur d'identité Salesforce. Quand vos utilisateurs accèdent à votre application connectée, Salesforce les dirige vers cette URL pour terminer la connexion. Salesforce redirige ensuite les utilisateurs vers l'URL de rappel que vous avez associée à votre client d'application.

      ```
      https://mydomain.auth.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
      ```

   1. Activez **OAuth les paramètres** et entrez l'URL du point de `/oauth2/idpresponse` terminaison pour le domaine de votre groupe d'utilisateurs dans **Callback URL**. Il s'agit de l'URL à laquelle Salesforce émet le code d'autorisation qu'Amazon Cognito échange contre un OAuth jeton.

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

1. Sélectionnez vos [règles](https://openid.net/specs/openid-connect-basic-1_0.html#Scopes). Vous devez inclure l'étendue **openid**. Pour accorder l'accès aux [demandes](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) **email** et **email\$1verified**, ajoutez l'étendue **email**. Séparez les étendues par des espaces.

1. Choisissez **Créer**.

   Dans Salesforce, l'ID client est appelé **Consumer Key (Clé consommateur)**et la clé secrète du client est appelée **Consumer Secret (Clé secrète du consommateur)**. Notez l'ID client et la clé secrète du client. Vous les utiliserez dans la section suivante.

## Ajout d'un fournisseur d'identité OIDC à votre groupe d'utilisateurs​
<a name="cognito-user-pools-oidc-idp-step-2"></a>

Après avoir configuré votre IdP, vous pouvez configurer votre groupe d'utilisateurs pour gérer les demandes d'authentification avec un IdP OIDC.

------
#### [ Amazon Cognito console ]

**Ajouter un IdP OIDC dans la console**

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

1. Choisissez **Groupes d'utilisateurs** dans le menu de navigation.

1. Choisissez un groupe d’utilisateurs existant dans la liste ou [créez-en un](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

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

1. Choisissez un fournisseur d'identité **OpenID Connect**.

1. Entrez un **nom de fournisseur** unique.

1. Entrez l'ID du **client** IdP. Il s'agit de l'ID du client d'application que vous créez dans votre IdP OIDC. L'ID client que vous fournissez doit être un fournisseur OIDC que vous avez configuré avec une URL de rappel de. `https://[your user pool domain]/oauth2/idpresponse`

1. Entrez le secret du **client** IdP. Il doit s'agir du secret client pour le même client d'application que celui de l'étape précédente.

1. <a name="cognito-user-pools-oidc-step-2-substep-9"></a>Saisissez les **périmètres d'autorisation** pour ce fournisseur. Les périmètres définissent les groupes d'attributs utilisateur (tels que `name` et `email`) que votre demande demandera à votre fournisseur. Les étendues doivent être séparées par des espaces, conformément à la spécification [OAuth2.0](https://tools.ietf.org/html/rfc6749#section-3.3).

   Votre IdP peut inviter les utilisateurs à consentir à fournir ces attributs à votre application lorsqu'ils se connectent.

1. Choisissez une **méthode de demande d'attribut**. IdPspeuvent nécessiter que les demandes adressées à leurs `userInfo` points de terminaison soient formatées comme suit : ou`GET`. `POST` Le point de `userInfo` terminaison Amazon Cognito nécessite des `HTTP GET` demandes, par exemple.

1. Choisissez une **méthode de configuration selon** laquelle vous souhaitez que votre groupe d'utilisateurs détermine le chemin d'accès aux principaux points de terminaison de la fédération OIDC sur votre IdP. En général, IdPs hébergez un `/well-known/openid-configuration` point de terminaison sur une URL de base de l'émetteur. Si tel est le cas pour votre fournisseur, l'option de **remplissage automatique de l'URL de l'émetteur** vous invite à saisir cette URL de base, tente d'accéder au `/well-known/openid-configuration` chemin à partir de là et lit les points de terminaison qui y sont répertoriés. Il se peut que vous ayez des chemins de terminaison atypiques ou que vous souhaitiez transmettre des demandes à un ou plusieurs points de terminaison via un autre proxy. Dans ce cas, sélectionnez **Saisie manuelle** et spécifiez les chemins pour les `jwks_uri` points de terminaison `authorization` `token``userInfo`,, et.
**Note**  
L'URL doit commencer par `https://` et ne doit pas se terminer par une barre oblique `/`. Seuls les numéros de port 443 et 80 peuvent être utilisés avec cette URL. Par exemple, Salesforce utilise cette URL :  
`https://login.salesforce.com`   
Si vous choisissez le remplissage automatique, le document de découverte doit utiliser HTTPS pour les valeurs suivantes :`authorization_endpoint`, `token_endpoint`, `userinfo_endpoint`, et `jwks_uri`. Sinon, la connexion échoue.

1. Configurez vos règles de mappage d'attributs sous **Mapper les attributs entre votre fournisseur OpenID Connect et** votre groupe d'utilisateurs. L'**attribut du groupe d'utilisateurs** est l'attribut de *destination* du profil utilisateur Amazon Cognito et l'attribut OpenID **Connect est l'attribut** *source* que vous souhaitez qu'Amazon Cognito trouve dans une demande ou une réponse portant un jeton d'identification. `userInfo` Amazon Cognito associe automatiquement la **sous-réclamation** OIDC au profil de l'`username`utilisateur de destination.

   Pour de plus amples informations, veuillez consulter [Mappage des attributs d'IdP aux profils et aux jetons](cognito-user-pools-specifying-attribute-mapping.md).

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

1. Dans le menu **App clients**, sélectionnez un client d'application dans la liste. Accédez à l'onglet **Pages de connexion** et sous **Configuration des pages de connexion gérées**, sélectionnez **Modifier**. Localisez **les fournisseurs d'identité** et ajoutez votre nouvel IdP OIDC.

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

------
#### [ API/CLI ]

Consultez la configuration OIDC dans le deuxième exemple à [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#API_CreateIdentityProvider_Example_2)l'adresse. Vous pouvez modifier cette syntaxe et l'utiliser comme corps de requête de`CreateIdentityProvider`,`UpdateIdentityProvider`, ou comme fichier `--cli-input-json` d'entrée pour [create-identity-provider](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-identity-provider.html).

------

## Test de la configuration de votre IdP OIDC
<a name="cognito-user-pools-oidc-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 OIDC. Testez la connexion auprès de votre fournisseur 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 configure une redirection silencieuse vers le `MyOIDCIdP` fournisseur à partir du [Point de terminaison d’autorisation](authorization-endpoint.md) avec un 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=MyOIDCIdP&response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com
```

# Flux d'authentification du fournisseur d'identité de groupe d'utilisateurs OIDC
<a name="cognito-user-pools-oidc-flow"></a>

Avec la connexion OpenID Connect (OIDC), votre groupe d'utilisateurs automatise un flux de connexion par code d'autorisation avec votre fournisseur d'identité (IdP). Une fois que votre utilisateur s'est connecté avec son IdP, Amazon Cognito collecte son code sur le point de terminaison `oauth2/idpresponse` du fournisseur externe. Avec le jeton d'accès obtenu, votre groupe d'utilisateurs interroge le point de `userInfo` terminaison IdP pour récupérer les attributs utilisateur. Votre groupe d'utilisateurs compare ensuite les attributs reçus aux règles de mappage d'attributs que vous avez définies et remplit le profil de l'utilisateur et le jeton d'identification en conséquence.

Les étendues OAuth 2.0 que vous demandez dans la configuration de votre fournisseur OIDC définissent les attributs utilisateur que l'IdP fournit à Amazon Cognito. Pour des raisons de sécurité, demandez uniquement les étendues correspondant aux attributs que vous souhaitez associer à votre groupe d'utilisateurs. Par exemple, si votre groupe d'utilisateurs le demande`openid profile`, vous obtiendrez tous les attributs possibles, mais si vous le demandez, `openid email phone_number` vous n'obtiendrez que l'adresse e-mail et le numéro de téléphone de l'utilisateur. Vous pouvez configurer les étendues que vous [demandez à OIDC de](cognito-user-pools-oidc-idp.md#cognito-user-pools-oidc-step-2-substep-9) manière IdPs à ce qu'elles soient différentes de celles que vous autorisez et demandez dans la demande d'authentification du [client de l'application](user-pool-settings-client-apps.md#user-pool-settings-client-apps-scopes) et du groupe d'utilisateurs.

Lorsque votre utilisateur se connecte à votre application à l'aide d'un IdP OIDC, votre groupe d'utilisateurs exécute le flux d'authentification suivant.

1. Un utilisateur accède à votre page de connexion gérée et choisit de se connecter avec son IdP OIDC.

1. Votre application dirige le navigateur de l'utilisateur vers le point de terminaison d'autorisation de votre groupe d'utilisateurs.

1. Votre groupe d'utilisateurs redirige la demande vers le point de terminaison d'autorisation de l'IdP OIDC.

1. Votre IdP affiche une invite de connexion.

1. Dans votre application, la session de votre utilisateur affiche une invite de connexion pour l'IdP OIDC.

1. L'utilisateur saisit ses informations d'identification pour l'IdP ou présente un cookie pour une session déjà authentifiée.

1. Une fois que votre utilisateur s'est authentifié, l'IdP OIDC est redirigé vers Amazon Cognito avec un code d'autorisation.

1. Votre groupe d'utilisateurs échange le code d'autorisation contre des identifiants et des jetons d'accès. Amazon Cognito reçoit des jetons d'accès lorsque vous configurez votre IdP avec les scopes. `openid` Les revendications contenues dans le jeton d'identification et dans la `userInfo` réponse sont déterminées par des étendues supplémentaires issues de la configuration de votre IdP, par exemple `profile` et. `email`

1. Votre IdP émet les jetons demandés.

1. Votre groupe d'utilisateurs détermine le chemin d'accès au point de `jwks_uri` terminaison IdP à partir de l'émetteur dans URLs votre configuration IdP et demande les clés de signature des jetons au point de terminaison du jeu de clés Web JSON (JWKS).

1. L'IdP renvoie les clés de signature depuis le point de terminaison JWKS.

1. Votre groupe d'utilisateurs valide les jetons IdP à partir des données de signature et d'expiration contenues dans les jetons.

1. Votre groupe d'utilisateurs autorise une demande adressée au point de terminaison `userInfo` IdP avec le jeton d'accès. L'IdP répond en fournissant des données utilisateur en fonction de l'étendue des jetons d'accès.

1. Votre groupe d'utilisateurs compare le jeton d'identification et la `userInfo` réponse de l'IdP aux règles de mappage d'attributs de votre groupe d'utilisateurs. Il écrit les attributs IdP mappés dans les attributs de profil du groupe d'utilisateurs.

1. Amazon Cognito émet les jetons de porteur à votre application, lesquels peuvent inclure des jetons d'identité, d'accès et d'actualisation.

1. Votre application traite les jetons du groupe d'utilisateurs et connecte l'utilisateur.

![\[Flux d'authentification du fournisseur d'identité OIDC pour le groupe d'utilisateurs\]](http://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/flow-cup-oidc-endpoints.png)


**Note**  
Amazon Cognito annule les demandes d'authentification qui ne sont pas traitées dans les 5 minutes et redirige l'utilisateur vers une connexion gérée. La page affiche un message d'erreur `Something went wrong`.

L'OIDC est une couche d'identité supérieure à la OAuth version 2.0, qui spécifie les jetons d'identité au format JSON (JWT) émis par les applications clientes OIDC ( IdPs parties utilisatrices). Consultez la documentation de votre IdP OIDC pour plus d'informations sur l'ajout d'Amazon Cognito en tant que partie utilisatrice d'OIDC.

Lorsqu'un utilisateur s'authentifie avec un octroi de code d'autorisation, le groupe d'utilisateurs retourne les jetons d'identification, d'accès et d'actualisation. Le jeton d'identification est un jeton [OIDC](http://openid.net/specs/openid-connect-core-1_0.html) standard pour la gestion des identités, et le jeton d'accès est un jeton [OAuth 2.0](https://oauth.net/2/) standard. Pour plus d'informations sur les types d'octroi que le client de votre application de groupe d'utilisateurs peut prendre en charge, consultez [Point de terminaison d’autorisation](authorization-endpoint.md).

## Comment un groupe d'utilisateurs traite les demandes d'un fournisseur OIDC
<a name="how-a-cognito-user-pool-processes-claims-from-an-oidc-provider"></a>

Lorsque votre utilisateur termine sa connexion auprès d'un fournisseur OIDC tiers, la connexion gérée récupère un code d'autorisation auprès de l'IdP. Votre groupe d'utilisateurs échange le code d'autorisation contre des jetons d'accès et d'identification avec le point de terminaison `token` de votre IdP. Votre groupe d'utilisateurs ne transmet pas ces jetons à votre utilisateur ou application, mais s'en sert pour créer un profil utilisateur avec les données qu'il présente dans les demandes de ses propres jetons.

 Amazon Cognito ne valide pas le jeton d'accès de manière indépendante. En effet, il demande des informations d'attribut utilisateur au point de terminaison `userInfo` du fournisseur et s'attend à ce que la demande soit refusée si le jeton n'est pas valide.

Amazon Cognito valide le jeton d'identification du fournisseur en effectuant les vérifications suivantes :

1. Vérifie que le fournisseur a signé le jeton avec un algorithme issu de l'ensemble suivant : RSA, HMAC, Elliptic Curve.

1. Si le fournisseur a signé le jeton avec un algorithme de signature asymétrique, vérifie que l'ID de la clé de signature figurant dans la demande `kid` du jeton est répertorié sur le point de terminaison `jwks_uri` du fournisseur. Amazon Cognito actualise la clé de signature depuis le point de terminaison JWKS dans votre configuration IdP pour chaque jeton d'identification IdP traité.

1. Compare la signature du jeton d'identification à la signature qu'il attend en fonction des métadonnées du fournisseur.

1. Compare la demande `iss` à l'émetteur OIDC configuré pour l'IdP.

1. Vérifie que la demande `aud` correspond à l'ID client configuré sur l'IdP ou qu'elle contient l'ID client configuré si la demande `aud` contient plusieurs valeurs.

1. Vérifie que l'horodatage figurant dans la demande `exp` n'est pas antérieur à l'heure actuelle.

Votre groupe d'utilisateurs valide le jeton d'identification, puis tente d'envoyer une demande au point de terminaison `userInfo` du fournisseur avec le jeton d'accès du fournisseur. Il récupère les informations de profil utilisateur que les portées du jeton d'accès l'autorisent à lire. Votre groupe d'utilisateurs recherche ensuite les attributs utilisateur obligatoires que vous avez définis dans votre groupe d'utilisateurs. Vous devez créer des mappages d'attributs dans la configuration de votre fournisseur pour les attributs obligatoires. Votre groupe d'utilisateurs vérifie le jeton d'identification du fournisseur et la réponse `userInfo`. Votre groupe d'utilisateurs écrit toutes les demandes qui correspondent aux règles de mappage dans les attributs utilisateur du profil utilisateur du groupe d'utilisateurs. Votre groupe d'utilisateurs ignore les attributs qui correspondent à une règle de mappage, mais qui ne sont pas obligatoires et qui ne se trouvent pas dans les demandes du fournisseur.