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. 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 le vérifie, puis émet des jetons Web JSON (JWT) pour que les applications puissent les traiter avec les bibliothèques OIDC. Ce chapitre explique comment configurer vos groupes d'utilisateurs et vos clients d'applications pour différents flux d'authentification dans différents environnements d'applications. Il couvre 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 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.
Avant de configurer les détails, choisissez l'approche d'authentification adaptée à votre application. L'outil d'aide à la décision suivant résume les deux points d'entrée et, dans une application personnalisée, les deux flux de connexion initiaux. Chaque option renvoie à sa section détaillée.
- Voulez-vous qu'Amazon Cognito héberge les pages de connexion ou crée votre propre interface ?
-
Si vous recherchez le chemin le moins exigeant, utilisez la connexion gérée. Amazon Cognito héberge les pages de connexion, de déconnexion et de réinitialisation du mot de passe, et votre application traite le résultat avec une bibliothèque cliente OpenID Connect (OIDC). La connexion gérée présente automatiquement les méthodes d'authentification autorisées par votre groupe d'utilisateurs et la configuration de votre client d'applications.
Si vous souhaitez créer votre propre interface utilisateur et contrôler la logique de connexion, utilisez un AWS SDK. Votre application appelle directement l'API des groupes d'utilisateurs et vous implémentez la logique défi-réponse.
- Dans une application personnalisée, collectez-vous la méthode de connexion auprès de l'utilisateur ou la déclarez-vous à l'avance ?
-
Choisissez l'authentification basée sur les choix (le
USER_AUTHflux) lorsque vous souhaitez proposer aux utilisateurs une liste des méthodes de connexion disponibles et les laisser en sélectionner une. Ce flux est le seul moyen de proposer une connexion sans mot de passe et par clé d'accès.Choisissez l'authentification basée sur le client lorsque votre application sait déjà comment l'utilisateur va se connecter et déclare le flux dès le départ, par exemple.
USER_SRP_AUTHClient-basedl'authentification est le seul moyen d'utiliser les flux de jetons d'authentification et d'actualisation personnalisés. - Conditions préalables à l'authentification basée sur les choix
-
Choice-based l'authentification s'applique à la fois à la connexion gérée et aux AWS SDK. Pour l'utiliser, ajoutez-le
ALLOW_USER_AUTHaux flux d'authentification autorisés de votre client d'application. Les méthodes sans mot de passe et clé d'accès nécessitent en outre un domaine de connexion géré et un plan de fonctionnalités supérieur au niveau Lite (Essentials ou Plus).
Rubriques
Application-specific paramètres avec les clients de l'application
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 groupe d'utilisateurs avec des fournisseurs d'identité tiers
Exemple de session d'authentification
Le schéma et le guide étape par étape 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 à l'aide d'un nom d'utilisateur et d'un mot de passe, demander un code à usage unique dans un e-mail ou choisir une option d'empreinte digitale.
-
Sign-in invite : 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 son nom d'utilisateur ou l'invite à le saisir.
-
Options de demande : votre application demande les options de connexion de l'utilisateur par le biais d'une demande d'
InitiateAuthAPI avec leUSER_AUTHflux, demandant les méthodes de connexion disponibles pour l'utilisateur. -
Envoyer les options de connexion : Amazon Cognito répond
PASSWORDparEMAIL_OTP, et.WEB_AUTHNLa 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 les option/Enter 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/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_MFAdé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
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 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 (JWT). 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
InitiateAuthdemande avec le jeton d'actualisation enregistré par l'utilisateur. -
Émission de jetons : Amazon Cognito renvoie un nouvel identifiant et accède aux JWT. 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 des administrateurs pour les serveurs principaux 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.