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.
Authentification auprès des groupes d'utilisateurs Amazon Cognito
Amazon Cognito propose plusieurs méthodes d'authentification des utilisateurs. Tous les groupes d'utilisateurs, que vous possédiez un domaine ou non, peuvent authentifier les utilisateurs dans l'API des groupes d'utilisateurs. Si vous ajoutez un domaine à votre groupe d'utilisateurs, vous pouvez utiliser les points de terminaison de groupe d'utilisateurs. L'API des groupes d'utilisateurs prend en charge divers modèles d'autorisation et flux de demandes pour les demandes d'API.
Pour vérifier l'identité des utilisateurs, Amazon Cognito prend en charge les flux d'authentification qui intègrent des types de défis en plus des mots de passe tels que les mots de passe à usage unique et les clés d'accès pour e-mails et SMS.
Rubriques
Mettre en œuvre des flux d'authentification
Que vous implémentiez une connexion gérée ou une interface d'application personnalisée avec un AWS SDK pour l'authentification, vous devez configurer votre client d'application pour les types d'authentification que vous souhaitez implémenter. Les informations suivantes décrivent la configuration des flux d'authentification dans vos clients d'application et dans votre application.
Ce qu'il faut savoir sur l'authentification auprès des groupes d'utilisateurs
Tenez compte des informations suivantes lors de la conception de votre modèle d'authentification avec les groupes d'utilisateurs Amazon Cognito.
- Flux d'authentification dans la connexion gérée et dans l'interface utilisateur hébergée
-
La connexion gérée et l'interface utilisateur hébergée classique proposent différentes options d'authentification. Vous pouvez uniquement effectuer une authentification sans mot de passe et par clé d'accès dans le cadre d'une connexion gérée.
- Les flux d'authentification personnalisés sont uniquement disponibles dans l'authentification du AWS SDK
-
Vous ne pouvez pas créer de flux d'authentification personnalisés, ni d'authentification personnalisée avec des déclencheurs Lambda, avec une connexion gérée ou l'interface utilisateur hébergée classique. L'authentification personnalisée est disponible dans l'authentification avec AWS SDKs.
- Connexion gérée pour la connexion à un fournisseur d'identité externe (IdP)
-
Vous ne pouvez pas connecter les utilisateurs par le biais d' IdPsune authentification tierce avec AWS SDKs. Vous devez implémenter la connexion gérée ou l'interface utilisateur hébergée classique, rediriger vers l'objet d'authentification obtenu IdPs, puis le traiter avec les bibliothèques OIDC de votre application. Pour plus d'informations sur la connexion gérée, consultezConnexion gérée par le groupe d'utilisateurs.
- Effet de l'authentification sans mot de passe sur les autres fonctionnalités de l'utilisateur
-
L'activation de la connexion sans mot de passe avec des mots de passe ou des clés d'accès à usage unique dans votre groupe d'utilisateurs et votre client d'application a un effet sur la création et la migration des utilisateurs. Lorsque la connexion sans mot de passe est active :
-
Les administrateurs peuvent créer des utilisateurs sans mot de passe. Le modèle de message d'invitation par défaut change pour ne plus inclure l'espace réservé au
{###}
mot de passe. Pour de plus amples informations, veuillez consulter Création de comptes d’utilisateur en tant qu’administrateur. -
Pour les SignUpopérations basées sur le SDK, les utilisateurs ne sont pas tenus de fournir un mot de passe lors de leur inscription. La connexion gérée et l'interface utilisateur hébergée nécessitent un mot de passe sur la page d'inscription, même si l'authentification sans mot de passe est autorisée. Pour de plus amples informations, veuillez consulter Inscription et confirmation des comptes d’utilisateur.
-
Les utilisateurs importés à partir d'un fichier CSV peuvent se connecter immédiatement à l'aide des options sans mot de passe, sans réinitialiser leur mot de passe, si leurs attributs incluent une adresse e-mail ou un numéro de téléphone pour une option de connexion sans mot de passe disponible. Pour de plus amples informations, veuillez consulter Importation d'utilisateurs dans des groupes d'utilisateurs depuis un fichier CSV.
-
L'authentification sans mot de passe n'invoque pas le déclencheur Lambda de migration des utilisateurs.
-
Les utilisateurs qui se connectent avec un premier facteur sans mot de passe ne peuvent pas ajouter de facteur d'authentification multifactorielle (MFA) à leur session. Seuls les flux d'authentification par mot de passe prennent en charge le MFA.
-
- La partie qui utilise le mot de passe ne URLs peut pas figurer sur la liste des suffixes publics
-
Vous pouvez utiliser les noms de domaine que vous possédez, par exemple
www.example.com
, comme ID de partie de confiance (RP) dans la configuration de votre clé d'accès. Cette configuration est destinée à prendre en charge les applications personnalisées qui s'exécutent sur des domaines que vous possédez. La liste de suffixes publics, ou PSL, contient des domaines de haut niveau protégés. Amazon Cognito renvoie un message d'erreur lorsque vous tentez de définir l'URL de votre RP vers un domaine sur la PSL.
Rubriques
Durée du flux de session d'authentification
En fonction des caractéristiques de votre groupe d'utilisateurs, vous pouvez être amené à relever plusieurs défis RespondToAuthChallenge
avant que votre application ne récupère les jetons sur Amazon Cognito. InitiateAuth
Amazon Cognito inclut une chaîne de session dans la réponse à chaque demande. Pour combiner vos requêtes d'API dans un flux d'authentification, incluez la chaîne de session de la réponse à la demande précédente dans chaque demande suivante. Par défaut, vos utilisateurs disposent de trois minutes pour terminer chaque défi avant l'expiration de la chaîne de session. Pour modifier cette période, modifiez la Durée de session d'authentification du client d'application. La procédure suivante explique comment modifier ce paramètre dans la configuration de votre client d'application.
Note
Les paramètres de durée de session du flux d'authentification s'appliquent à l'authentification avec l'API des groupes d'utilisateurs Amazon Cognito. La connexion gérée définit la durée de session à 3 minutes pour l'authentification multifactorielle et à 8 minutes pour les codes de réinitialisation du mot de passe.
Pour plus d'informations sur les clients d'application, consultez Paramètres spécifiques à l'application avec les clients d'applications.
Comportement de verrouillage en cas d'échec des tentatives de connexion
Après cinq tentatives infructueuses de connexion non authentifiée ou authentifiée par IAM avec un mot de passe, Amazon Cognito verrouille votre utilisateur pendant une seconde. La durée du verrouillage double ensuite après chaque nouvelle tentative infructueuse, jusqu'à un maximum d'environ 15 minutes. Les tentatives effectuées pendant une période de verrouillage génèrent une exception Password attempts exceeded
et n'affectent pas la durée des périodes de verrouillage suivantes. Pour un nombre cumulé de tentatives de connexion infructueuses n, à l'exclusion des exceptions Password
attempts exceeded
, Amazon Cognito verrouille votre utilisateur pendant 2^(n-5) secondes. Pour restaurer l'état initial du verrouillage (n=0), votre utilisateur doit parvenir à se connecter à l'issue d'une période de verrouillage ou ne lancer à aucun moment de tentative de connexion pendant 15 minutes consécutives après le verrouillage. Ce comportement est susceptible d'être modifié. Ce comportement ne s'applique pas aux défis personnalisés à moins qu'ils n'effectuent également une authentification basée sur un mot de passe.
Exemple de session d'authentification
Le schéma et le step-by-step guide suivants illustrent un scénario typique dans lequel un utilisateur se connecte à une application. L'exemple d'application présente à un utilisateur plusieurs options de connexion. Ils en sélectionnent un en saisissant leurs informations d'identification, en fournissant un facteur d'authentification supplémentaire et en se connectant.

Imaginez une application avec une page de connexion où les utilisateurs peuvent se connecter avec un nom d'utilisateur et un mot de passe, demander un code à usage unique dans un e-mail ou choisir une option d'empreinte digitale.
-
Demande de connexion : votre application affiche un écran d'accueil avec un bouton de connexion.
-
Demande de connexion : l'utilisateur sélectionne Se connecter. À partir d'un cookie ou d'un cache, votre application récupère leur nom d'utilisateur ou les invite à le saisir.
-
Options de demande : votre application demande les options de connexion de l'utilisateur par le biais d'une demande d'
InitiateAuth
API avec leUSER_AUTH
flux, demandant les méthodes de connexion disponibles pour l'utilisateur. -
Envoyer les options de connexion : Amazon Cognito répond
PASSWORD
parEMAIL_OTP
, et.WEB_AUTHN
La réponse inclut un identifiant de session que vous pourrez rejouer dans la réponse suivante. -
Options d'affichage : votre application affiche des éléments d'interface utilisateur permettant à l'utilisateur de saisir son nom d'utilisateur et son mot de passe, d'obtenir un code à usage unique ou de scanner son empreinte digitale.
-
Choisissez l'option/Entrez les informations d'identification : l'utilisateur saisit son nom d'utilisateur et son mot de passe.
-
Lancer l'authentification : votre application fournit les informations de connexion de l'utilisateur avec une demande d'
RespondToAuthChallenge
API qui confirme la connexion par nom d'utilisateur/mot de passe et fournit le nom d'utilisateur et le mot de passe. -
Valider les informations d'identification : Amazon Cognito confirme les informations d'identification de l'utilisateur.
-
Défi supplémentaire : l'utilisateur dispose d'une authentification multifactorielle configurée à l'aide d'une application d'authentification. Amazon Cognito renvoie un
SOFTWARE_TOKEN_MFA
défi. -
Demande de défi : votre application affiche un formulaire demandant un mot de passe à usage unique basé sur le temps (TOTP) à l'application d'authentification de l'utilisateur.
-
Défi de réponse : L'utilisateur soumet le TOTP.
-
Répondre au défi : dans une autre
RespondToAuthChallenge
demande, votre application fournit le TOTP de l'utilisateur. -
Validez la réponse au défi : Amazon Cognito confirme le code de l'utilisateur et détermine que votre groupe d'utilisateurs est configuré pour ne pas adresser de défis supplémentaires à l'utilisateur actuel.
-
Émission de jetons : Amazon Cognito renvoie l'identifiant, l'accès et l'actualisation des jetons Web JSON ()JWTs. L'authentification initiale de l'utilisateur est terminée.
-
Stocker les jetons : votre application met en cache les jetons de l'utilisateur afin de pouvoir référencer les données utilisateur, autoriser l'accès aux ressources et mettre à jour les jetons lorsqu'ils expirent.
-
Afficher le contenu autorisé : votre application détermine l'accès de l'utilisateur aux ressources en fonction de son identité et de ses rôles, et fournit le contenu de l'application.
-
Accès au contenu : l'utilisateur est connecté et commence à utiliser l'application.
-
Demander du contenu avec un jeton expiré : ultérieurement, l'utilisateur demande une ressource qui nécessite une autorisation. Le jeton mis en cache de l'utilisateur a expiré.
-
Jetons d'actualisation : votre application fait une
InitiateAuth
demande avec le jeton d'actualisation enregistré par l'utilisateur. -
Émission de jetons : Amazon Cognito renvoie un nouvel identifiant et un nouvel accès. JWTs La session de l'utilisateur est actualisée en toute sécurité sans qu'il soit nécessaire de saisir des informations d'identification supplémentaires.
Vous pouvez utiliser des AWS Lambda déclencheurs pour personnaliser la façon dont les utilisateurs s'authentifient. Ces déclencheurs émettent et vérifient leurs propres défis dans le cadre du flux d'authentification.
Vous pouvez également utiliser le flux d'authentification de l'administration pour des serveurs backend sécurisés. Vous pouvez utiliser le flux d'authentification de migration des utilisateurs pour rendre la migration des utilisateurs possible sans qu'ils aient à réinitialiser leur mot de passe.