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.
Flux d’authentification
Le processus d'authentification auprès des groupes d'utilisateurs Amazon Cognito peut être décrit comme un flux dans lequel les utilisateurs font un choix initial, soumettent des informations d'identification et répondent à des défis supplémentaires. Lorsque vous implémentez l'authentification de connexion gérée dans votre application, Amazon Cognito gère le flux de ces demandes et de ces défis. Lorsque vous implémentez des flux avec un AWS SDK dans le back-end de votre application, vous devez élaborer la logique des demandes, inviter les utilisateurs à saisir des informations et relever les défis.
En tant qu'administrateur d'applications, vos caractéristiques d'utilisateur, vos exigences de sécurité et votre modèle d'autorisation vous aident à déterminer comment vous souhaitez autoriser les utilisateurs à se connecter. Posez-vous les questions suivantes.
-
Dois-je autoriser les utilisateurs à se connecter avec les informations d'identification d'autres fournisseurs d'identité (IdPs) ?
-
Le nom d'utilisateur et le mot de passe sont-ils une preuve d'identité suffisante ?
-
Mes demandes d'authentification par nom d'utilisateur/mot de passe peuvent-elles être interceptées ? Est-ce que je veux que mon application transmette des mots de passe ou négocie l'authentification à l'aide de hachages et de sels ?
-
Dois-je autoriser les utilisateurs à ignorer la saisie du mot de passe et à recevoir un mot de passe à usage unique qui les connecte ?
-
Dois-je autoriser les utilisateurs à se connecter à l'aide d'une empreinte digitale, d'un visage ou d'une clé de sécurité matérielle ?
-
Quand dois-je exiger l'authentification multifactorielle (MFA), le cas échéant ?
-
Est-ce que je souhaite conserver les sessions utilisateur sans avoir à nouveau à saisir les informations d'identification ?
-
Dois-je étendre mon modèle d'autorisation au-delà des fonctionnalités intégrées d'Amazon Cognito ?
Lorsque vous aurez les réponses à ces questions, vous pourrez apprendre à activer les fonctionnalités pertinentes et à les implémenter dans les demandes d'authentification effectuées par votre application.
Une fois que vous avez configuré les flux de connexion pour un utilisateur, vous pouvez vérifier son statut actuel en matière de MFA et de facteurs d'authentification basés sur le choix à l'aide des demandes adressées à GetUserAuthFactorsl'opération API. Cette opération nécessite une autorisation avec le jeton d'accès d'un utilisateur connecté. Il renvoie les facteurs d'authentification utilisateur et les paramètres MFA.
Rubriques
Connectez-vous avec un tiers IdPs
Les groupes d'utilisateurs Amazon Cognito servent d'intermédiaire pour les sessions d'authentification entre les services IdPs Sign in with Apple, Login with Amazon et OpenID Connect (OIDC). Ce processus est également appelé connexion fédérée ou authentification fédérée. L'authentification fédérée n'utilise aucun des flux d'authentification que vous pouvez intégrer à votre client d'application. Au lieu de cela, vous attribuez un groupe d'utilisateurs configuré IdPs à votre client d'application. La connexion fédérée se produit lorsque les utilisateurs sélectionnent leur IdP dans la connexion gérée ou lorsque votre application ouvre une session avec une redirection vers leur page de connexion IdP.
Avec la connexion fédérée, vous déléguez les facteurs d'authentification principaux et MFA à l'IdP de l'utilisateur. Amazon Cognito n'ajoute pas les autres flux avancés de cette section à un utilisateur fédéré, sauf si vous les liez à un utilisateur local. Les utilisateurs fédérés non liés ont des noms d'utilisateur, mais il s'agit d'un magasin de données attributaires mappées qui ne sont généralement pas utilisées pour la connexion indépendamment du flux basé sur le navigateur.
Ressources de mise en œuvre
Connectez-vous avec des mots de passe persistants
Dans les groupes d'utilisateurs Amazon Cognito, chaque utilisateur possède un nom d'utilisateur. Il peut s'agir d'un numéro de téléphone, d'une adresse e-mail ou d'un identifiant choisi ou fourni par l'administrateur. Les utilisateurs de ce type peuvent se connecter avec leur nom d'utilisateur et leur mot de passe, et éventuellement fournir un MFA. Les groupes d'utilisateurs peuvent effectuer une connexion par nom d'utilisateur et mot de passe à l'aide d'opérations d'API et de méthodes du SDK publiques ou authentifiées par IAM. Votre application peut directement envoyer le mot de passe à votre groupe d'utilisateurs pour authentification. Votre groupe d'utilisateurs répond à des défis supplémentaires ou aux jetons Web JSON (JWTs) résultant d'une authentification réussie.
Connectez-vous à l'aide de mots de passe persistants et d'une charge utile sécurisée
Le protocole SRP (Secure Remote Password) constitue une autre forme de méthode de connexion par nom d'utilisateur et mot de passe dans les groupes d'utilisateurs. Cette option envoie la preuve de la connaissance d'un mot de passe (hachage et sel de mot de passe) que votre groupe d'utilisateurs peut vérifier. En l'absence d'informations secrètes lisibles dans la demande adressée à Amazon Cognito, votre application est la seule entité qui traite les mots de passe saisis par les utilisateurs. L'authentification SRP implique des calculs mathématiques qu'il est préférable d'effectuer par un composant existant que vous pouvez importer dans votre SDK. Le SRP est généralement implémenté dans des applications côté client telles que les applications mobiles. Pour plus d'informations sur le protocole, consultez la page d'accueil du Stanford SRP
La initiate-challenge-respond séquence d'authentification Amazon Cognito valide les utilisateurs et leurs mots de passe avec le SRP. Vous devez configurer votre groupe d'utilisateurs et votre client d'application pour prendre en charge l'authentification SRP, puis implémenter la logique des demandes de connexion et des réponses aux défis dans votre application. Vos bibliothèques SRP peuvent générer des nombres aléatoires et des valeurs calculées qui démontrent à votre groupe d'utilisateurs que vous êtes en possession du mot de passe d'un utilisateur. Votre application saisit ces valeurs calculées dans les ChallengeParameters
champs au format JSON AuthParameters
et dans les opérations d'API des groupes d'utilisateurs Amazon Cognito et dans les méthodes du SDK pour l'authentification.
Connexion sans mot de passe avec mots de passe à usage unique
Les mots de passe peuvent être perdus ou volés. Vous souhaiterez peut-être vérifier uniquement que vos utilisateurs ont accès à une adresse e-mail, à un numéro de téléphone ou à une application d'authentification vérifiés. La solution consiste à se connecter sans mot de passe. Votre application peut inviter les utilisateurs à saisir leur nom d'utilisateur, leur adresse e-mail ou leur numéro de téléphone. Amazon Cognito génère ensuite un mot de passe à usage unique (OTP), un code qu'ils doivent confirmer. Un code réussi termine l'authentification.
Les flux d'authentification sans mot de passe ne sont pas compatibles avec l'authentification multifactorielle (MFA) requise dans votre groupe d'utilisateurs. Si le MFA est facultatif dans votre groupe d'utilisateurs, les utilisateurs qui ont activé le MFA ne peuvent pas se connecter en utilisant un premier facteur sans mot de passe. Les utilisateurs qui n'ont pas de préférence MFA dans un groupe d'utilisateurs optionnel peuvent se connecter sans mot de passe. Pour de plus amples informations, veuillez consulter Ce qu'il faut savoir sur le MFA pour groupes d'utilisateurs.
Lorsqu'un utilisateur saisit correctement un code reçu dans un SMS ou un e-mail dans le cadre de l'authentification sans mot de passe, en plus d'authentifier l'utilisateur, votre groupe d'utilisateurs marque l'adresse e-mail ou l'attribut de numéro de téléphone non vérifié de l'utilisateur comme vérifié. Le statut de l'utilisateur est également passé de UNCONFIRMED
àCONFIRMED
, que vous ayez ou non configuré votre groupe d'utilisateurs pour vérifier automatiquement les adresses e-mail ou les numéros de téléphone.
Nouvelles options avec connexion sans mot de passe
Lorsque vous activez l'authentification sans mot de passe dans votre groupe d'utilisateurs, cela modifie le fonctionnement de certains flux d'utilisateurs.
-
Les utilisateurs peuvent s'inscrire sans mot de passe et choisir un facteur sans mot de passe lorsqu'ils se connectent. Vous pouvez également créer des utilisateurs sans mot de passe en tant qu'administrateur.
-
Les utilisateurs que vous importez à l'aide d'un fichier CSV peuvent se connecter immédiatement sans mot de passe. Ils ne sont pas tenus de définir un mot de passe avant de se connecter.
-
Les utilisateurs qui n'ont pas de mot de passe peuvent envoyer des demandes d'ChangePasswordAPI sans le
PreviousPassword
paramètre.
Connexion automatique avec OTPs
Les utilisateurs qui s'inscrivent et confirment leur compte utilisateur par e-mail ou SMS OTPs peuvent se connecter automatiquement en utilisant le facteur sans mot de passe correspondant à leur message de confirmation. Dans l'interface utilisateur de connexion gérée, les utilisateurs qui confirment leurs comptes et sont éligibles à la connexion OTP avec le mode de livraison du code de confirmation passent automatiquement à leur première connexion après avoir fourni le code de confirmation. Dans votre application personnalisée dotée d'un AWS SDK, transmettez les paramètres suivants à une opération InitiateAuthor AdminInitiateAuth.
-
Le
Session
paramètre issu de la réponse de ConfirmSignUpl'API en tant que paramètre deSession
demande. -
Un AuthFlowde
USER_AUTH
.
Vous pouvez réussir un PREFERRED_CHALLENGE de EMAIL_OTP
ouSMS_OTP
, mais ce n'est pas obligatoire. Le Session
paramètre fournit une preuve d'authentification et Amazon Cognito l'ignore AuthParameters
lorsque vous transmettez un code de session valide.
L'opération de connexion renvoie la réponse indiquant la réussite de l'authentification AuthenticationResult, sans difficulté supplémentaire si les conditions suivantes sont réunies.
-
Le
Session
code est valide et n'a pas expiré. -
L'utilisateur est éligible à la méthode d'authentification OTP.
Connexion sans mot de passe avec clés de passe WebAuthn
Les clés d'accès sont sécurisées et imposent un niveau d'effort relativement faible aux utilisateurs. La connexion par clé d'accès utilise des authentificateurs, des appareils externes avec lesquels les utilisateurs peuvent s'authentifier. Les mots de passe classiques exposent les utilisateurs à des vulnérabilités telles que le phishing, le devinage de mots de passe et le vol d'informations d'identification. Grâce aux clés d'accès, votre application peut bénéficier de mesures de sécurité avancées sur les téléphones portables et autres appareils connectés ou intégrés aux systèmes d'information. Un processus de connexion par clé d'accès courant commence par un appel à votre appareil qui appelle votre mot de passe ou votre gestionnaire d'informations d'identification, par exemple le trousseau iOS ou le gestionnaire de mots de passe Google Chrome. Le gestionnaire d'informations d'identification intégré à l'appareil les invite à sélectionner une clé d'accès et à l'autoriser à l'aide d'un mécanisme d'identification ou de déverrouillage de l'appareil existant. Les téléphones modernes sont équipés de scanners faciaux, de lecteurs d'empreintes digitales, de modèles de déverrouillage et d'autres mécanismes, dont certains répondent à la fois à ce que vous connaissez et à ce que vous utilisez selon les principes d'une authentification forte. Dans le cas de l'authentification par clé biométrique, les clés d'accès représentent ce que vous êtes.
Vous souhaiterez peut-être remplacer les mots de passe par l'authentification par empreinte digitale, faciale ou clé de sécurité. Il s'agit d'une clé d'accès ou WebAuthnd'une authentification. Il est courant que les développeurs d'applications autorisent les utilisateurs à enregistrer un appareil biométrique après s'être connectés pour la première fois avec un mot de passe. Avec les groupes d'utilisateurs Amazon Cognito, votre application peut configurer cette option de connexion pour les utilisateurs. L'authentification par clé d'accès n'est pas éligible à l'authentification multifactorielle (MFA).
Les flux d'authentification sans mot de passe ne sont pas compatibles avec l'authentification multifactorielle (MFA) requise dans votre groupe d'utilisateurs. Si le MFA est facultatif dans votre groupe d'utilisateurs, les utilisateurs qui ont activé le MFA ne peuvent pas se connecter en utilisant un premier facteur sans mot de passe. Les utilisateurs qui n'ont pas de préférence MFA dans un groupe d'utilisateurs optionnel peuvent se connecter sans mot de passe. Pour de plus amples informations, veuillez consulter Ce qu'il faut savoir sur le MFA pour groupes d'utilisateurs.
Que sont les clés d'accès ?
Les clés d'accès simplifient l'expérience utilisateur en éliminant le besoin de mémoriser ou de saisir OTPs des mots de passe complexes. Les clés de passe sont basées sur WebAuthn les CTAP2 normes élaborées par le World Wide Web Consortium
Lorsqu'un utilisateur enregistre un authentificateur auprès d'un site Web ou d'une application, celui-ci crée une paire de clés publique-privée. WebAuthn les navigateurs et les plateformes soumettent la clé publique au back-end de l'application du site Web ou de l'application. L'authentificateur conserve la clé privée, la clé et les métadonnées relatives à l'utilisateur et à l'application. IDs Lorsque l'utilisateur souhaite s'authentifier dans l'application enregistrée avec son authentificateur enregistré, l'application génère un défi aléatoire. La réponse à ce défi est la signature numérique du défi générée avec la clé privée de l'authentificateur pour cette application et cet utilisateur, ainsi que les métadonnées pertinentes. Le navigateur ou la plateforme d'application reçoit la signature numérique et la transmet au back-end de l'application. L'application valide ensuite la signature avec la clé publique enregistrée.
Note
Votre application ne reçoit aucun secret d'authentification fourni par les utilisateurs à leur authentificateur, pas plus qu'elle ne reçoit d'informations sur la clé privée.
Voici quelques exemples et fonctionnalités des authentificateurs actuellement sur le marché. Un authentificateur peut répondre à l'une ou à l'ensemble de ces catégories.
-
Certains authentificateurs vérifient l'utilisateur à l'aide de facteurs tels qu'un code PIN, une saisie biométrique avec un visage ou une empreinte digitale, ou un mot de passe avant d'accorder l'accès, garantissant ainsi que seul l'utilisateur légitime peut autoriser les actions. Les autres authentificateurs ne disposent pas de fonctionnalités de vérification utilisateur, et certains peuvent ignorer la vérification utilisateur lorsqu'une application ne l'exige pas.
-
Certains authentificateurs, par exemple les jetons YubiKey matériels, sont portables. Ils communiquent avec les appareils via des connexions USB, Bluetooth ou NFC. Certains authentificateurs sont locaux et liés à une plate-forme, par exemple Windows Hello sur un PC ou Face ID sur un iPhone. Un authentificateur lié à l'appareil peut être transporté par l'utilisateur s'il est suffisamment petit, comme un appareil mobile. Parfois, les utilisateurs peuvent connecter leur authentificateur matériel à de nombreuses plateformes différentes grâce à une communication sans fil. Par exemple, les utilisateurs de navigateurs de bureau peuvent utiliser leur smartphone comme authentificateur par clé d'accès lorsqu'ils scannent un code QR.
-
Certaines clés d'accès liées à la plateforme sont synchronisées avec le cloud afin de pouvoir être utilisées à partir de plusieurs emplacements. Par exemple, les clés d'accès Face ID sur les iPhones synchronisent les métadonnées des clés d'accès avec les comptes Apple des utilisateurs dans leur trousseau iCloud. Ces clés d'accès permettent une authentification fluide sur tous les appareils Apple, au lieu d'obliger les utilisateurs à enregistrer chaque appareil indépendamment. Les applications d'authentification logicielles telles que 1Password, Dashlane et Bitwarden synchronisent les clés d'accès sur toutes les plateformes sur lesquelles l'utilisateur a installé l'application.
En WebAuthn termes de terminologie, les sites Web et les applications sont des parties fiables. Chaque clé d'accès est associée à un identifiant de partie utilisatrice spécifique, un identifiant unifié qui représente les sites Web ou les applications qui acceptent l'authentification par clé d'accès. Les développeurs doivent sélectionner avec soin leur identifiant de partie utilisatrice afin de disposer de la bonne portée de l'authentification. Un identifiant de partie de confiance typique est le nom de domaine racine d'un serveur Web. Une clé d'accès avec cette spécification d'identifiant de partie utilisatrice peut authentifier ce domaine et ces sous-domaines. Les navigateurs et les plateformes refusent l'authentification par clé d'accès lorsque l'URL du site Web auquel un utilisateur souhaite accéder ne correspond pas à l'identifiant de la partie utilisatrice. De même, pour les applications mobiles, une clé d'accès ne peut être utilisée que si le chemin de l'application est présent dans les fichiers d'.well-known
association que l'application met à disposition sur le chemin indiqué par l'identifiant de la partie utilisatrice.
Les clés d'accès sont détectables. Ils peuvent être automatiquement reconnus et utilisés par un navigateur ou une plateforme sans que l'utilisateur ait à saisir un nom d'utilisateur. Lorsqu'un utilisateur visite un site Web ou une application qui prend en charge l'authentification par clé d'accès, il peut choisir parmi une liste de clés d'accès que le navigateur ou la plateforme connaît déjà, ou il peut scanner un code QR.
Comment Amazon Cognito implémente-t-il l'authentification par clé d'accès ?
Les clés d'accès sont une fonctionnalité optionnelle disponible dans tous les plans de fonctionnalités, à l'exception de Lite. Il n'est disponible que dans le flux d'authentification basé sur les choix. Avec la connexion gérée, Amazon Cognito gère la logique de l'authentification par clé d'accès. Vous pouvez également utiliser l'API des groupes d'utilisateurs Amazon Cognito AWS SDKs pour effectuer une authentification par clé d'accès dans le back-end de votre application.
Amazon Cognito reconnaît les clés d'accès créées à l'aide de l'un des deux algorithmes cryptographiques asymétriques ES256 (-7) et (-257). RS256 La plupart des authentificateurs prennent en charge les deux algorithmes. Par défaut, les utilisateurs peuvent configurer n'importe quel type d'authentificateur, par exemple des jetons matériels, des téléphones intelligents mobiles et des applications d'authentification logicielle. Amazon Cognito ne prend actuellement pas en charge l'application des attestations
Dans votre groupe d'utilisateurs, vous pouvez configurer la vérification des utilisateurs pour qu'elle soit préférée ou obligatoire. Ce paramètre est défini par défaut sur préféré dans les demandes d'API qui ne fournissent pas de valeur, et le paramètre préféré est sélectionné par défaut dans la console Amazon Cognito. Lorsque vous définissez la validation utilisateur sur « préféré », les utilisateurs peuvent configurer des authentificateurs qui ne disposent pas de cette fonctionnalité, et les opérations d'enregistrement et d'authentification peuvent réussir sans vérification de l'utilisateur. Pour rendre obligatoire la vérification des utilisateurs lors de l'enregistrement et de l'authentification par clé d'accès, remplacez ce paramètre par obligatoire.
L'ID de partie de confiance (RP) que vous avez défini dans la configuration de votre clé d'accès est une décision importante. Lorsque vous ne spécifiez pas le contraire et que la version de votre marque de domaine est une connexion gérée, votre groupe d'utilisateurs attend par défaut le nom de votre domaine personnalisé comme identifiant RP. Si vous n'avez pas de domaine personnalisé et que vous ne spécifiez pas le contraire, votre groupe d'utilisateurs utilise par défaut un ID RP de votre domaine de préfixe. Vous pouvez également configurer votre RP ID pour qu'il soit un nom de domaine ne figurant pas dans la liste des suffixes publics (PSL). La saisie de votre identifiant RP s'applique à l'enregistrement et à l'authentification par clé d'accès dans le cadre de la connexion gérée et de l'authentification du SDK. La clé de passe ne fonctionne que dans les applications mobiles où Amazon Cognito peut localiser .well-known
un fichier d'association avec votre ID RP comme domaine. Il est recommandé de déterminer et de définir la valeur de votre identifiant de partie utilisatrice avant que votre site Web ou votre application ne soit accessible au public. Si vous modifiez votre identifiant RP, vos utilisateurs doivent s'enregistrer à nouveau avec le nouveau RP ID.
Chaque utilisateur peut enregistrer jusqu'à 20 clés d'accès. Ils ne peuvent enregistrer une clé d'accès qu'après s'être connectés au moins une fois à votre groupe d'utilisateurs. La connexion gérée élimine les efforts importants liés à l'enregistrement par clé d'accès. Lorsque vous activez l'authentification par clé d'accès pour un groupe d'utilisateurs et un client d'application, votre groupe d'utilisateurs doté d'un domaine de connexion géré rappelle aux utilisateurs finaux d'enregistrer une clé d'accès après avoir ouvert un nouveau compte utilisateur. Vous pouvez également appeler le navigateur des utilisateurs à tout moment pour les diriger vers une page de connexion gérée pour l'enregistrement par clé d'accès. Les utilisateurs doivent fournir un nom d'utilisateur pour qu'Amazon Cognito puisse lancer l'authentification par clé d'accès. La connexion gérée gère cela automatiquement. La page de connexion invite à saisir un nom d'utilisateur, confirme que l'utilisateur possède au moins une clé d'accès enregistrée, puis invite à se connecter par clé d'accès. De même, les applications basées sur le SDK doivent demander un nom d'utilisateur et le fournir dans la demande d'authentification.
Lorsque vous configurez l'authentification du groupe d'utilisateurs à l'aide de clés d'accès et que vous disposez d'un domaine personnalisé et d'un domaine préfixe, l'ID RP est par défaut le nom de domaine complet (FQDN) de votre domaine personnalisé. Pour définir un domaine de préfixe comme ID RP dans la console Amazon Cognito, supprimez votre domaine personnalisé ou entrez le FQDN du domaine de préfixe en tant que domaine tiers.
MFA après connexion
Vous pouvez configurer les utilisateurs qui se connectent à l'aide d'un flux de nom d'utilisateur et de mot de passe pour qu'ils soient invités à effectuer une vérification supplémentaire à l'aide d'un mot de passe à usage unique provenant d'un e-mail, d'un message SMS ou d'une application de génération de code. La MFA est différente de la connexion sans mot de passe, un premier facteur d'authentification avec des mots de passe à usage unique ou des clés d' WebAuthn accès qui n'incluent pas la MFA. La MFA utilisée dans les groupes d'utilisateurs est un modèle défi-réponse, dans lequel un utilisateur démontre d'abord qu'il connaît le mot de passe, puis qu'il a accès à son appareil de second facteur enregistré.
Ressources de mise en œuvre
Actualiser les jetons
Lorsque vous souhaitez que les utilisateurs restent connectés sans saisir à nouveau leurs informations d'identification, les jetons d'actualisation sont l'outil dont dispose votre application pour conserver la session d'un utilisateur. Les applications peuvent présenter des jetons d'actualisation à votre groupe d'utilisateurs et les échanger contre de nouveaux identifiants et jetons d'accès. Grâce à l'actualisation des jetons, vous pouvez vous assurer qu'un utilisateur connecté est toujours actif, obtenir des informations actualisées sur les attributs et mettre à jour les droits de contrôle d'accès sans intervention de l'utilisateur.
Ressources de mise en œuvre
Authentification personnalisée
Vous souhaiterez peut-être configurer une méthode d'authentification pour vos utilisateurs qui n'est pas répertoriée ici. Vous pouvez le faire grâce à une authentification personnalisée à l'aide de déclencheurs Lambda. Dans une séquence de fonctions Lambda, Amazon Cognito lance un défi, pose une question à laquelle les utilisateurs doivent répondre, vérifie l'exactitude de la réponse, puis détermine si un autre défi doit être lancé. Les questions et réponses peuvent inclure des questions de sécurité, des demandes adressées à un service CAPTCHA, des demandes à une API de service MFA externe, ou tout cela en séquence.
Ressources de mise en œuvre
Flux d'authentification personnalisé
Les groupes d'utilisateurs Amazon Cognito permettent aussi d'utiliser les flux d'authentification personnalisés, qui peuvent vous aider à créer un modèle d'authentification basé sur une demande de vérification/réponse à l'aide des déclencheurs AWS Lambda .
Le flux d'authentification personnalisé permet des cycles de stimulation/réponse personnalisés pour répondre à des besoins différents. Le flux commence par un appel à l'opération d'API InitiateAuth
qui indique le type d'authentification qui sera utilisé, et fournit les paramètres d'authentification initiaux. Amazon Cognito répond à l'appel InitiateAuth
avec l'un des types d'informations suivants :
-
Une stimulation pour l'utilisateur avec une session et des paramètres.
-
Une erreur si l'utilisateur ne parvient pas à s'authentifier.
-
Les jetons d'identification, d'accès et d'actualisation si les paramètres fournis dans l'appel
InitiateAuth
sont suffisants pour connecter l'utilisateur. (En règle générale, l'utilisateur ou l'appli doit d'abord répondre à une stimulation, mais votre code personnalisé doit le déterminer.)
Si Amazon Cognito répond à l'appel InitiateAuth
avec une demande de vérification, l'application recueille davantage d'informations et appelle l'opération RespondToAuthChallenge
. Cet appel fournit les réponses à la demande de vérification et les renvoie à la session. Amazon Cognito répond à l'appel RespondToAuthChallenge
de la même manière qu'à l'appel InitiateAuth
. Si l'utilisateur s'est connecté, Amazon Cognito fournit des jetons ou si l'utilisateur n'est pas connecté, Amazon Cognito fournit une autre demande de vérification ou une erreur. Si Amazon Cognito renvoie une autre demande de vérification, la séquence se reproduit et l'application appelle RespondToAuthChallenge
jusqu'à ce que l'utilisateur se connecte avec succès ou qu'une erreur soit retournée. Pour plus d'informations sur les opérations d'API InitiateAuth
et RespondToAuthChallenge
, consultez la documentation sur les API.
Flux d'authentification personnalisé et stimulations
Pour initier un flux d'authentification personnalisé, une appli peut appeler InitiateAuth
avec CUSTOM_AUTH
comme paramètre Authflow
. Avec un flux d'authentification personnalisé, trois déclencheurs Lambda contrôlent les demandes de vérification et la vérification des réponses.
-
Le déclencheur Lambda
DefineAuthChallenge
utilise en entrée un tableau de session de demandes de vérification et de réponses précédentes. Il affiche ensuite le nom de la demande de vérification suivante et les booléens qui indiquent si l'utilisateur est authentifié et peut recevoir des jetons. Ce déclencheur Lambda est une machine d'état qui contrôle le parcours de l'utilisateur au fil des stimulations. -
Le déclencheur Lambda
CreateAuthChallenge
prend un nom de demande de vérification en entrée et génère le défi et les paramètres permettant d'évaluer la réponse. QuandDefineAuthChallenge
retourneCUSTOM_CHALLENGE
comme demande de vérification suivante, le flux d'authentification appelleCreateAuthChallenge
. Le déclencheur LambdaCreateAuthChallenge
transmet le type de demande de vérification suivant dans le paramètre de métadonnées de demande de vérification. -
La fonction Lambda
VerifyAuthChallengeResponse
évalue la réponse et renvoie une valeur booléenne indiquant si la réponse était valide.
Un flux d'authentification personnalisé peut également utiliser une combinaison de stimulations intégrées, telles que la vérification de mot de passe via le protocole SRP et la MFA par SMS. Il peut utiliser des stimulations personnalisées, telles que CAPTCHA ou des questions secrètes.
Utiliser la vérification de mot de passe par protocole SRP dans le flux d'authentification personnalisé
Si vous souhaitez inclure le protocole SRP dans un flux d'authentification personnalisé, vous devez commencer par SRP.
-
Pour lancer la vérification de mot de passe par protocole SRP dans un flux personnalisé, l'appli appelle
InitiateAuth
avecCUSTOM_AUTH
en tant queAuthflow
. Dans le mappageAuthParameters
, la demande de votre application inclutSRP_A:
(la valeur SRP A) etCHALLENGE_NAME: SRP_A
. -
Le flux
CUSTOM_AUTH
invoque le déclencheur LambdaDefineAuthChallenge
avec une session initiale dechallengeName: SRP_A
etchallengeResult: true
. Votre fonction Lambda répond avecchallengeName: PASSWORD_VERIFIER
,issueTokens: false
etfailAuthentication: false
. -
L'appli doit ensuite appeler
RespondToAuthChallenge
avecchallengeName: PASSWORD_VERIFIER
et les autres paramètres requis pour le protocole SRP dans la cartechallengeResponses
. -
Si Amazon Cognito vérifie le mot de passe,
RespondToAuthChallenge
appelle le déclencheur LambdaDefineAuthChallenge
avec une deuxième session dechallengeName: PASSWORD_VERIFIER
etchallengeResult: true
. À ce stade, le déclencheur LambdaDefineAuthChallenge
répond avecchallengeName: CUSTOM_CHALLENGE
pour démarrer la stimulation personnalisée. -
Si l'authentification MFA est activée pour un utilisateur, une fois qu'Amazon Cognito a vérifié le mot de passe, l'utilisateur est invité à configurer MFA ou à se connecter avec MFA.
Note
La page web de connexion hébergée Amazon Cognito ne peut pas activer les Déclencheurs Lambda création d'une stimulation d'authentification personnalisée.
Pour plus d'informations sur les déclencheurs Lambda, ainsi qu'un exemple de code, consultez Personnalisation des flux de travail de groupe d'utilisateurs avec des déclencheurs Lambda.
Flux d'authentification pour la migration d'utilisateurs
Un déclencheur Lambda de migration d'utilisateur facilite la migration d'utilisateurs à partir d'un système de gestion des utilisateurs hérité vers votre groupe d'utilisateurs. Si vous choisissez le flux d'authentification USER_PASSWORD_AUTH
, les utilisateurs n'ont pas à réinitialiser leurs mots de passe durant la migration des utilisateurs. Ce flux envoie les mots de passe de vos utilisateurs au service via une connexion SSL cryptée pendant l'authentification.
Lorsque vous avez migré tous vos utilisateurs, changez de flux et passez au flux SRP plus sécurisé. Le flux SRP n'envoie aucun mot de passe sur le réseau.
Pour en savoir plus sur les déclencheurs Lambda, consultez Personnalisation des flux de travail de groupe d'utilisateurs avec des déclencheurs Lambda.
Pour plus d'informations sur la migration d'utilisateurs avec un déclencheur Lambda, consultez Importation d'utilisateurs avec un déclencheur Lambda de migration d'utilisateur.