Déclencheur Lambda création d'une stimulation d'authentification - Amazon Cognito

Déclencheur Lambda création d'une stimulation d'authentification


            Déclencheurs Lambda de stimulation
Create auth challenge

Amazon Cognito appelle ce déclencheur après la Définition d'une stimulation d'authentification si une stimulation personnalisée a été spécifiée dans le déclencheur Définition d'une stimulation d'authentification. Il crée un flux d'authentification personnalisé.

Ce déclencheur Lambda est appelé pour créer une stimulation à présenter à l'utilisateur. La demande de ce déclencheur Lambda inclut les paramètres challengeName et session. challengeName est une chaîne et constitue le nom de la prochaine demande de vérification pour l'utilisateur. La valeur de cet attribut est définie dans le déclencheur Lambda Définition d'une stimulation d'authentification.

La boucle de stimulation se répète jusqu'à ce que toutes les réponses soient apportées à la stimulation.

Paramètres du déclencheur Lambda création d'une stimulation d'authentification

Il s'agit des paramètres qu'Amazon Cognito transmet à cette fonction Lambda avec les informations d'événements figurant dans les paramètres communs.

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "challengeName": "string", "session": [ ChallengeResult, . . . ], "clientMetadata": { "string": "string", . . . }, "userNotFound": boolean }, "response": { "publicChallengeParameters": { "string": "string", . . . }, "privateChallengeParameters": { "string": "string", . . . }, "challengeMetadata": "string" } }

Paramètres de demande de création d'une stimulation d'authentification

userAttributes

Une ou plusieurs paires nom-valeur représentant des attributs utilisateur.

userNotFound

Cette valeur booléenne est utilisée lorsque PreventUserExistenceErrors est défini sur ENABLED pour votre client de groupe d'utilisateurs.

challengeName

Nom de la nouvelle demande de vérification.

séance

L'élément session est un tableau d'éléments ChallengeResult, chacun d'entre eux contenant les éléments suivants :

challengeName

Type de demande de vérification. Soit "CUSTOM_CHALLENGE", "PASSWORD_VERIFIER", "SMS_MFA", "DEVICE_SRP_AUTH", "DEVICE_PASSWORD_VERIFIER" ou "ADMIN_NO_SRP_AUTH".

challengeResult

Défini sur true si l'utilisateur a répondu à la demande de vérification avec succès, ou sur false dans le cas contraire.

challengeMetadata

Votre nom pour la demande de vérification personnalisée. Utilisé uniquement si challengeName est "CUSTOM_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 Création d'une stimulation d'authentification. Vous pouvez utiliser le paramètre ClienMetadata dans les actions d'API AdminRespondToAuthChallenge et RespondToAuthChallenge pour transmettre ces données à votre fonction Lambda. La demande qui appelle la fonction de définition de la demande de vérification d'authentification n'inclut pas les données transmises dans le paramètre ClientMetadata dans les opérations d'API AdminInitiateAuth et InitiateAuth.

Paramètres de réponse de création d'une stimulation d'authentification

publicChallengeParameters

Une ou plusieurs paires clé-valeur que l'application client doit utiliser dans la demande de vérification à présenter à l'utilisateur. Ce paramètre doit contenir toutes les informations nécessaires pour présenter avec précision la demande de vérification à l'utilisateur.

privateChallengeParameters

Ce paramètre est utilisé uniquement par le déclencheur Lambda Vérification de la réponse à la stimulation d'authentification. Ce paramètre doit contenir toutes les informations qui sont nécessaire pour valider la réponse de l'utilisateur à la demande de vérification. En d'autres termes, le paramètre publicChallengeParameters contient la question qui est posée à l'utilisateur et privateChallengeParameters contient les réponses valides pour la question.

challengeMetadata

Votre nom pour la demande de vérification personnalisée, s'il s'agit d'une demande de vérification personnalisée.

Exemple de création d'une stimulation d'authentification

Une image CAPTCHA est créée en tant que demande de vérification pour l'utilisateur. L'URL de l'image CAPTCHA est ajoutée aux paramètres de demande de vérification publics sous la forme « captchaUrl », et la réponse attendue est ajoutée aux paramètres de demande de vérification privés.

Node.js
exports.handler = (event, context, callback) => { if (event.request.challengeName == 'CUSTOM_CHALLENGE') { event.response.publicChallengeParameters = {}; event.response.publicChallengeParameters.captchaUrl = 'url/123.jpg' event.response.privateChallengeParameters = {}; event.response.privateChallengeParameters.answer = '5'; event.response.challengeMetadata = 'CAPTCHA_CHALLENGE'; } //Return to Amazon Cognito. callback(null, event); }