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.
Déclencheur Lambda Définition d'une stimulation d'authentification
Le déclencheur de défi define auth est une fonction Lambda qui gère la séquence de défi dans un flux d'authentification personnalisé. Il déclare le succès ou l'échec de la séquence de défis et définit le défi suivant si la séquence n'est pas encore terminée.
- Define auth challenge
-
Amazon Cognito appelle ce déclencheur pour initier le flux d'authentification personnalisé.
La demande de ce déclencheur Lambda contient session
. Le paramètre session
est un tableau contenant toutes les demandes de vérification présentées à l'utilisateur dans le processus d'authentification en cours. La demande inclut également le résultat correspondant. Le tableau session
stocke les détails des demandes de vérification (ChallengeResult
) dans l'ordre chronologique. La demande de vérification session[0]
représente la première demande de vérification que l'utilisateur reçoit.
Vous pouvez demander à Amazon Cognito de vérifier les mots de passe utilisateur avant d'émettre vos stimulations personnalisées. Tous les déclencheurs Lambda associés à la catégorie Authentification des quotas de taux de demande s'exécuteront lorsque vous effectuez l'SRPauthentification dans un flux de défis personnalisé. Voici un aperçu du processus :
-
Votre application initie la connexion en appelant
InitiateAuth
ouAdminInitiateAuth
avec le mappageAuthParameters
. Les paramètres doivent inclureCHALLENGE_NAME: SRP_A,
et les valeurs pourSRP_A
etUSERNAME
. -
Amazon Cognito appelle votre déclencheur Lambda Définition de la question de sécurité d'authentification avec une session initiale qui contient
challengeName: SRP_A
etchallengeResult: true
. -
Après réception de ces entrées, votre fonction Lambda répond avec
challengeName: PASSWORD_VERIFIER
,issueTokens: false
,failAuthentication: false
. -
Si la vérification du mot de passe réussit, Amazon Cognito appelle votre fonction Lambda à nouveau avec une nouvelle session contenant
challengeName: PASSWORD_VERIFIER
etchallengeResult: true
. -
Pour initier vos demandes de vérification personnalisées, votre fonction Lambda répond avec
challengeName: CUSTOM_CHALLENGE
,issueTokens: false
etfailAuthentication: false
. Si vous ne souhaitez pas démarrer votre flux d'authentification personnalisé avec la vérification du mot de passe, vous pouvez initier une connexion avec le mappageAuthParameters
en incluantCHALLENGE_NAME: CUSTOM_CHALLENGE
. -
La boucle de stimulation se répète jusqu'à ce que toutes les réponses soient apportées à la stimulation.
Voici un exemple de InitiateAuth
demande de démarrage qui précède l'authentification personnalisée par un SRP flux.
{ "AuthFlow": "CUSTOM_AUTH", "ClientId": "1example23456789", "AuthParameters": { "CHALLENGE_NAME": "SRP_A", "USERNAME": "testuser", "SRP_A": "[SRP_A]", "SECRET_HASH": "[secret hash]" } }
Rubriques
Paramètres du déclencheur Lambda Définition d'une stimulation d'authentification
La demande qu’Amazon Cognito transmet à cette fonction Lambda est une combinaison des paramètres ci-dessous et des paramètres courants qu’Amazon Cognito ajoute à toutes les demandes.
Paramètres de demande de définition de la stimulation d'authentification
Quand Amazon Cognito appelle votre fonction Lambda, Amazon Cognito fournit les paramètres suivants :
- userAttributes
-
Une ou plusieurs paires nom-valeur représentant les attributs utilisateur.
- userNotFound
-
Booléen renseigné par Amazon Cognito quand
PreventUserExistenceErrors
est défini surENABLED
pour votre client de groupe d'utilisateurs. Une valeurtrue
signifie que l'ID utilisateur (nom d'utilisateur, adresse e-mail, etc.) ne correspond à aucun utilisateur existant. QuandPreventUserExistenceErrors
a pour valeurENABLED
, le service n'informe pas l'application des utilisateurs inexistants. Nous vous recommandons de faire en sorte que vos fonctions Lambda conservent la même expérience utilisateur et tiennent compte de la latence. De cette façon, l'appelant ne peut pas détecter un comportement différent quand l'utilisateur existe ou n'existe pas. - séance
-
Tableau d'éléments
ChallengeResult
. Chacun contient les éléments suivants :- challengeName
-
L'un des types de défis suivants :
CUSTOM_CHALLENGE
SRP_A
,PASSWORD_VERIFIER
,SMS_MFA
,EMAIL_OTP
,SOFTWARE_TOKEN_MFA
,DEVICE_SRP_AUTH
,DEVICE_PASSWORD_VERIFIER
, ouADMIN_NO_SRP_AUTH
.Lorsque votre fonction de définition du défi d'authentification lance un
PASSWORD_VERIFIER
défi à un utilisateur qui a configuré l'authentification multifactorielle, Amazon Cognito lance ensuiteSMS_MFA
un défiEMAIL_OTP
, ou.SOFTWARE_TOKEN_MFA
Voici les instructions pour saisir un code d'authentification multifactoriel. Dans votre fonction, incluez la gestion des événements d'entrée provenant deSMS_MFA
EMAIL_OTP
, et desSOFTWARE_TOKEN_MFA
défis. Vous n'avez pas besoin d'invoquer de MFA défis dans votre fonction de définition du défi d'authentification.Important
Quand votre fonction détermine si un utilisateur s'est authentifié correctement et doit recevoir des jetons, vérifiez toujours
challengeName
dans votre fonction de définition de la stimulation d'authentification et s'il correspond à la valeur attendue. - challengeResult
-
Défini sur
true
si l'utilisateur a répondu à la demande de vérification avec succès, ou surfalse
dans le cas contraire. - challengeMetadata
-
Votre nom pour la demande de vérification personnalisée. Utilisé uniquement si
challengeName
estCUSTOM_CHALLENGE
.
- clientMetadata
-
Une ou plusieurs paires clé-valeur que vous pouvez fournir en tant qu'entrée personnalisée à la fonction Lambda que vous spécifiez pour le déclencheur Définition d'une stimulation d'authentification. Pour transmettre ces données à votre fonction Lambda, vous pouvez utiliser le
ClientMetadata
paramètre dans les opérations AdminRespondToAuthChallengeet RespondToAuthChallengeAPI. La demande qui invoque la fonction de défi define auth n'inclut pas les données transmises dans le ClientMetadata paramètre in AdminInitiateAuthand InitiateAuthAPIoperations.
Paramètres de réponse de définition de la stimulation d'authentification
Dans la réponse, vous pouvez renvoyer l'étape suivante du processus d'authentification.
- challengeName
-
Chaîne contenant le nom de la prochaine demande de vérification. Si vous souhaitez présenter une nouvelle demande de vérification pour votre utilisateur, spécifiez ici son nom.
- issueTokens
-
Si vous déterminez que l'utilisateur a suffisamment répondu aux demandes de vérification d'authentification, définissez la valeur
true
. Si l'utilisateur n'a pas suffisamment répondu aux demandes de vérification, définissez la valeurfalse
. - failAuthentication
-
Si vous souhaitez mettre fin au processus d'authentification actuel, définissez la valeur
true
. Pour poursuivre le processus d'authentification actuel, définissez la valeurfalse
.
Exemple de définition de la stimulation d'authentification
Cet exemple définit une série de demandes de vérification d'authentification et émet des jetons seulement si l'utilisateur répond avec succès à toutes les demandes de vérification.