Utilisation de la connexion SAML initiée par le SP - 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.

Utilisation de la connexion SAML initiée par le SP

La meilleure pratique consiste à implémenter une connexion service-provider-initiated (initiée par le SP) à votre groupe d'utilisateurs. Amazon Cognito lance la session de votre utilisateur et le redirige vers votre IdP. Avec cette méthode, vous avez le meilleur contrôle sur les personnes qui présentent les demandes de connexion. Vous pouvez également autoriser la connexion initiée par l'IdP sous certaines conditions. Pour plus d’informations, consultez Lancement de séance SAML dans les groupes d'utilisateurs Amazon Cognito.

Le processus suivant montre comment les utilisateurs se connectent à votre groupe d'utilisateurs via un fournisseur SAML.

Schéma du flux d'authentification de la connexion SAML initiée par Amazon Cognito SP.
  1. Votre utilisateur saisit son adresse e-mail sur une page de connexion. Pour déterminer la redirection de votre utilisateur vers son IdP, vous pouvez collecter son adresse e-mail dans une application personnalisée ou invoquer l'interface utilisateur hébergée en mode Web. Vous pouvez configurer votre interface utilisateur hébergée pour afficher une liste d'adresses e-mail IdPs ou pour ne demander qu'une adresse e-mail.

  2. Votre application appelle le point de terminaison de redirection de votre groupe d'utilisateurs et demande une session avec l'ID client correspondant à l'application et l'identifiant IdP correspondant à l'utilisateur.

  3. Amazon Cognito redirige votre utilisateur vers l'IdP avec une demande SAML, éventuellement signée, dans un élément. AuthnRequest

  4. L'IdP authentifie l'utilisateur de manière interactive ou à l'aide d'une session mémorisée dans un cookie de navigateur.

  5. L'IdP redirige votre utilisateur vers le point de terminaison de réponse SAML de votre groupe d'utilisateurs avec l'assertion SAML éventuellement cryptée dans sa charge utile POST.

    Note

    Amazon Cognito annule les sessions qui ne reçoivent pas de réponse dans les 5 minutes et redirige l'utilisateur vers l'interface utilisateur hébergée. Lorsque votre utilisateur rencontre ce résultat, il reçoit un message Something went wrong d'erreur.

  6. Après avoir vérifié l'assertion SAML et mappé les attributs utilisateur à partir des demandes figurant dans la réponse, Amazon Cognito crée ou met à jour en interne le profil de l'utilisateur dans le groupe d'utilisateurs. Généralement, votre groupe d'utilisateurs renvoie un code d'autorisation à la session de navigation de l'utilisateur.

  7. Votre utilisateur présente son code d'autorisation à votre application, qui échange le code contre des jetons Web JSON (JWT).

  8. Votre application accepte et traite le jeton d'identification de votre utilisateur comme authentification, génère des demandes autorisées aux ressources avec leur jeton d'accès et stocke leur jeton d'actualisation.

Lorsqu'un utilisateur s'authentifie et reçoit un code d'autorisation octroyé, le groupe d'utilisateurs renvoie des jetons d'identification, d'accès et d'actualisation. Le jeton d'identification est un objet d'authentification pour la gestion des identités basée sur l'OIDC. Le jeton d'accès est un objet d'autorisation dont le champ d'application est OAuth 2.0. Le jeton d'actualisation est un objet qui génère un nouvel identifiant et des jetons d'accès lorsque les jetons actuels de votre utilisateur ont expiré. Vous pouvez configurer la durée des jetons des utilisateurs dans le client d'application de votre groupe d'utilisateurs.

Vous pouvez également choisir la durée des jetons d'actualisation. Une fois le jeton d'actualisation d'un utilisateur expiré, celui-ci doit se reconnecter. S'ils se sont authentifiés via un IdP SAML, la durée de session de vos utilisateurs est définie par l'expiration de leurs jetons, et non par l'expiration de leur session avec leur IdP. Votre application doit stocker le jeton d'actualisation de chaque utilisateur et renouveler sa session à son expiration. L'interface utilisateur hébergée conserve les sessions utilisateur dans un cookie de navigateur valide pendant 1 heure.