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 avec les groupes d'utilisateurs Amazon Cognito
Amazon Cognito propose plusieurs méthodes d'authentification des utilisateurs. Les utilisateurs peuvent se connecter à l'aide de mots de WebAuthn passe et de clés d'accès. Amazon Cognito peut leur envoyer un mot de passe à usage unique par e-mail ou SMS. Vous pouvez implémenter des fonctions Lambda qui orchestrent votre propre séquence de défis et de réponses. Il s'agit de flux d'authentification. Dans les flux d'authentification, les utilisateurs fournissent un secret et Amazon Cognito vérifie le secret, puis émet des jetons Web JSON (JWT) que les applications peuvent traiter avec les bibliothèques OIDC. Dans ce chapitre, nous verrons comment configurer vos groupes d'utilisateurs et vos clients d'applications pour différents flux d'authentification dans différents environnements d'applications. Vous découvrirez les options relatives à l'utilisation des pages de connexion hébergées de la connexion gérée et à la création de votre propre logique et de votre propre interface dans un AWS SDK.
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 des 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 les e-mails et les SMS.
Rubriques
Paramètres spécifiques à l'application avec les clients d'applications
Ce qu'il faut savoir sur l'authentification auprès des groupes d'utilisateurs
Configuration des méthodes d'authentification pour la connexion gérée
Modèles d'autorisation pour l'authentification par API et SDK
Connexion au pool d'utilisateurs avec des fournisseurs d'identité tiers
Mettre en œuvre des flux d'authentification
Que vous mettiez en œuvre 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 les clients de votre application et dans votre application.
Ce qu'il faut savoir sur l'authentification auprès des groupes d'utilisateurs
Prenez en compte les 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 l'interface utilisateur hébergée
-
Connexion gérée par le groupe d'utilisateursLa connexion gérée propose plus d'options d'authentification que l'interface utilisateur hébergée classique. Par exemple, les utilisateurs peuvent effectuer une authentification sans mot de passe et par clé d'accès uniquement dans le cadre d'une connexion gérée.
- Les flux d'authentification personnalisés ne sont disponibles que dans l'authentification du AWS SDK
-
Vous ne pouvez pas effectuer 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 Authentification avec AWS les SDK.
- Connexion gérée pour la connexion à un fournisseur d'identité externe (IdP)
-
Vous ne pouvez pas connecter les utilisateurs par l'intermédiaire d'un tiers lors de l'authentification IdPs à l'aide de AWS kits de développement logiciel. Vous devez implémenter la connexion gérée ou l'interface utilisateur hébergée classique, rediriger vers IdPs, puis traiter l'objet d'authentification qui en résulte 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 à l'aide de mots de passe à usage unique ou de clés d'accès dans votre groupe d'utilisateurs et le client de l'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 est modifié 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 SDK-based SignUp opérations, 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 depuis un fichier CSV peuvent se connecter immédiatement à l'aide d'options sans mot de passe, sans réinitialisation du 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 de mot de passe à usage unique (OTP) ne peuvent pas ajouter de facteur d'authentification multifacteur (MFA) à leur session. Les clés d'accès avec vérification par l'utilisateur peuvent satisfaire aux exigences du MFA lorsqu'elles sont configurées avec.
MULTI_FACTOR_WITH_USER_VERIFICATION
-
- Les URL des parties utilisant une clé d'accès ne peuvent pas figurer sur la liste de suffixes publique
-
Vous pouvez utiliser des noms de domaine qui vous appartiennent, par exemple
www.example.com, comme identifiant de partie utilisatrice (RP) dans votre configuration de 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 votre URL RP sur un domaine de la PSL.
Rubriques
Durée du flux de session d'authentification
En fonction des fonctionnalités de votre groupe d'utilisateurs, vous pouvez être amené à répondre à plusieurs défis RespondToAuthChallenge avant que votre application ne récupère les jetons d'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 fixe la durée de la 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 de connexion infructueuses avec le mot de passe d'un utilisateur, que celles-ci soient demandées via des opérations non authentifiées ou IAM-authorized via une API, 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 guide étape par étape suivants illustrent un scénario type dans lequel un utilisateur se connecte à une application. L'exemple d'application présente à l'utilisateur plusieurs options de connexion. Ils en sélectionnent un en saisissant leurs informations d'identification, fournissent un facteur d'authentification supplémentaire et se connectent.
Imaginez une application dotée d'une page de connexion où les utilisateurs peuvent se connecter à l'aide d'un nom d'utilisateur et d'un mot de passe, demander un code à usage unique dans un message électronique ou choisir une option d'empreinte digitale.
-
Sign-in invite : votre application affiche un écran d'accueil avec un bouton de connexion.
-
Demander la 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 à l'aide d'une demande d'
InitiateAuthAPI contenant leUSER_AUTHflux, demandant les méthodes de connexion disponibles pour l'utilisateur. -
Envoyer des options de connexion : Amazon Cognito répond par
PASSWORDEMAIL_OTP, et.WEB_AUTHNLa réponse inclut un identifiant de session que vous pouvez réécouter 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 option/Enter 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'
RespondToAuthChallengeAPI qui confirme la connexion par nom d'utilisateur et mot de passe et fournit le nom d'utilisateur et le mot de passe. -
Validez les informations d'identification : Amazon Cognito confirme les informations d'identification de l'utilisateur.
-
Défi supplémentaire : l'authentification multifactorielle de l'utilisateur est configurée à l'aide d'une application d'authentification. Amazon Cognito propose un
SOFTWARE_TOKEN_MFAdéfi. -
Invite de défi : votre application affiche un formulaire demandant un mot de passe à usage unique basé sur le temps (TOTP) à partir de l'application d'authentification de l'utilisateur.
-
Réponse au défi : l'utilisateur soumet le TOTP.
-
Répondre au défi : Dans une autre
RespondToAuthChallengedemande, 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 lancer aucun défi supplémentaire à l'utilisateur actuel.
-
Jetons d'émission : Amazon Cognito renvoie l'identification, l'accès et l'actualisation des jetons Web JSON (JWT). L'authentification initiale de l'utilisateur est terminée.
-
Stockez 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é : plus tard, l'utilisateur demande une ressource nécessitant une autorisation. Le jeton mis en cache de l'utilisateur a expiré.
-
Jetons d'actualisation : votre application envoie une
InitiateAuthdemande à l'aide du jeton d'actualisation enregistré par l'utilisateur. -
Émettez des jetons : Amazon Cognito renvoie un nouvel identifiant et accède à JWTS. La session de l'utilisateur est actualisée en toute sécurité sans qu'il soit demandé d'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.