Flux d'authentification SAML de fournisseur d'identité de groupe d'utilisateur - Amazon Cognito

Flux d'authentification SAML de fournisseur d'identité de groupe d'utilisateur

Vous pouvez intégrer les fournisseurs d'identité SAML directement à partir de votre groupe d'utilisateurs.

  1. L'application lance le processus d'inscription et de connexion en dirigeant l'utilisateur vers l'interface utilisateur hébergée par AWS. Une application mobile peut utiliser un affichage web pour afficher les pages hébergées par AWS.

  2. Généralement, votre groupe d'utilisateurs détermine le fournisseur d'identité pour votre utilisateur à partir de son adresse e-mail.

    Sinon, si votre application a collecté des informations avant de diriger l'utilisateur vers votre groupe d'utilisateurs, elle fournit ces informations à Amazon Cognito par le biais d'un paramètre de requête.

  3. L'utilisateur est redirigé vers le fournisseur d'identité.

  4. Si nécessaire, le fournisseur d'identité authentifie l'utilisateur. Si le fournisseur d'identité reconnaît que l'utilisateur a une session active, le fournisseur d'identité ignore la phase d'authentification pour proposer une authentification unique (SSO).

  5. Le fournisseur d'identité publie l'assertion SAML sur le service Amazon Cognito.

    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.

  6. Après avoir vérifié l'assertion SAML et collecté les attributs utilisateur (revendications) de l'assertion, Amazon Cognito crée ou met à jour en interne le profil d'utilisateur dans le groupe d'utilisateurs. Amazon Cognito renvoie les jetons OIDC à l'application pour l'utilisateur désormais connecté.

Le schéma suivant illustre le flux d'authentification pour ce processus :


                    Diagramme de flux d'authentification quand Amazon Cognito utilise un fournisseur d'identité SAML avec un groupe d'utilisateurs.

Lorsqu'un utilisateur s'authentifie, 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, tandis que le jeton d'accès est un jeton OAuth 2.0 standard. L'ID et les jetons d'accès expirent au bout d'une heure. Votre application peut utiliser un jeton d'actualisation pour obtenir de nouveaux jetons sans que l'utilisateur ait besoin de s'authentifier à nouveau.

En tant que développeur, vous pouvez choisir le délai d'expiration des jetons d'actualisation, ce qui modifie la fréquence à laquelle les utilisateurs doivent s'authentifier à nouveau. Si l'utilisateur s'est authentifié via un fournisseur d'identité externe en tant qu'utilisateur fédéré, votre application utilise toujours les jetons Amazon Cognito avec le jeton d'actualisation pour déterminer le délai avant la nouvelle authentification de l'utilisateur, quel que soit le moment où le jeton du fournisseur d'identité externe expire. Le groupe d'utilisateurs utilise automatiquement le jeton d'actualisation pour obtenir de nouveaux jetons d'identification et d'accès lorsqu'ils expirent. Si le jeton d'actualisation a également expiré, le serveur lance automatiquement l'authentification via les pages de votre application hébergées par AWS.

Sensibilité à la casse des noms d'utilisateur SAML

Lorsqu'un utilisateur fédéré tente de se connecter, le fournisseur d'identité SAML transmet un NameId unique depuis le répertoire du fournisseur d'identité vers Amazon Cognito dans l'assertion SAML de l'utilisateur. Amazon Cognito identifie un utilisateur fédéré SAML par sa demande NameId. Quels que soient les paramètres de sensibilité à la casse de votre groupe d'utilisateurs, Amazon Cognito exige qu'un utilisateur fédéré d'un fournisseur d'identité SAML transmette une demande NameId unique et sensible à la casse. Si vous mappez un attribut comme email à NameId, et que votre utilisateur change d'adresse e-mail, il ne peut pas se connecter à votre application.

Mappez NameId dans vos assertions SAML à partir d'un attribut de fournisseur d'identité dont les valeurs ne changent pas.

Par exemple, Carlos possède un profil utilisateur dans votre groupe d'utilisateurs insensible à la casse provenant d'une assertion SAML ADFS (Active Directory Federation Services) qui a transmis une valeur NameId de Carlos@example.com. La prochaine fois que Carlos tente de se connecter, votre fournisseur d'identité ADFS transmet une valeur NameId de carlos@example.com. Comme NameId doit être une correspondance exacte qui respecte la casse, la connexion ne réussit pas.

Si vos utilisateurs ne peuvent pas se connecter après le changement de NameID, supprimez leurs profils utilisateur de votre groupe d'utilisateurs. Amazon Cognito créera de nouveaux profils utilisateur la prochaine fois qu'ils se connecteront.