Flux d'authentification du fournisseur d'identité de groupe d'utilisateurs OIDC - Amazon Cognito

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

Lorsque l'utilisateur se connecte à votre application à l'aide d'un IdP OIDC, il passe par le flux d'authentification suivant.

  1. L'utilisateur est dirigé vers la page de connexion intégrée Amazon Cognito, et invité à se connecter via un IdP OIDC tel que Salesforce.

  2. L'utilisateur est redirigé vers le point de terminaison authorization du fournisseur d'identité OIDC.

  3. Une fois que l'utilisateur est authentifié, l'IdP OIDC le redirige vers Amazon Cognito avec un code d'autorisation.

  4. Amazon Cognito échange le code d'autorisation avec l'IdP OIDC pour obtenir un jeton d'accès.

  5. Amazon Cognito crée ou met à jour le compte utilisateur dans votre groupe d'utilisateurs.

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


                    Flux d'authentification du fournisseur d'identité OIDC pour le groupe d'utilisateurs
Note

Amazon Cognito annule les demandes d'authentification qui ne se terminent pas dans les 5 minutes et redirige l'utilisateur vers l'interface utilisateur hébergée. La page affiche un message d'erreur Something went wrong.

L'OIDC est une couche d'identité qui s'ajoute à OAuth 2.0, qui spécifie les jetons d'identité au format JSON (JWT) émis par les applications clientes OIDC (parties IdPs 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 standard pour la gestion des identités et le jeton d'accès est un jeton OAuth 2.0 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.

Comment un groupe d'utilisateurs traite les demandes d'un fournisseur OIDC

Lorsque votre utilisateur effectue une connexion avec un fournisseur OIDC tiers, l'interface utilisateur hébergée Amazon Cognito 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.

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

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

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

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

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