

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.

# 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é à son IdP, Amazon Cognito collecte son code au `oauth2/idpresponse` point de terminaison du fournisseur externe. Avec le jeton d'accès qui en résulte, votre groupe d'utilisateurs interroge le point de `userInfo` terminaison IdP pour récupérer les attributs des utilisateurs. Votre groupe d'utilisateurs compare ensuite les attributs reçus aux règles de mappage d'attributs que vous avez définies et renseigne le profil et le jeton d'identification de l'utilisateur 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 qui correspondent aux attributs que vous souhaitez mapper à 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 IdPs ](cognito-user-pools-oidc-idp.md#cognito-user-pools-oidc-step-2-substep-9) pour qu'elles soient différentes de celles que vous autorisez et demandez dans le client [ de l'](user-pool-settings-client-apps.md#user-pool-settings-client-apps-scopes)application et la demande d'authentification 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'OIDC IdP.

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 à l'aide d'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 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 vers le `jwks_uri` point de terminaison IdP à partir des URL de l'émetteur dans votre configuration IdP et demande les clés de signature de jetons au point de terminaison JSON Web Key Set (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 des jetons.

1. Votre groupe d'utilisateurs autorise une demande au `userInfo` terminal IdP à l'aide du jeton d'accès. L'IdP répond avec les données utilisateur en fonction des étendues du jeton 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 des attributs IdP mappés aux attributs de profil du pool 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](https://docs.aws.amazon.com/fr_fr/cognito/latest/developerguide/images/flow-cup-oidc-endpoints.png)


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

OIDC est une couche d'identité au-dessus d'OAuth 2.0, qui spécifie les jetons d'identité JSON-formatted (JWT) émis par IdPs les applications clientes OIDC (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 la configuration de votre IdP pour chaque jeton d'ID IdP qu'il traite.

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.