Desencadenador de Lambda para verificar la respuesta al desafío de autenticación - Amazon Cognito

Desencadenador de Lambda para verificar la respuesta al desafío de autenticación


            Desencadenadores de Lambda de desafío
Verificación de la respuesta a los desafíos de autenticación

Amazon Cognito invoca este desencadenador para verificar si la respuesta del usuario final a un desafío de autenticación personalizado es o no es válida. Forma parte del flujo de autenticación personalizado de un grupo de usuarios.

La solicitud de este disparador contiene los parámetros privateChallengeParameters y challengeAnswer. El desencadenador de Lambda para crear el desafío de autenticación devuelve los valores de privateChallengeParameters, que contienen la respuesta esperada del usuario. El parámetro challengeAnswer contiene la respuesta del usuario al desafío.

La respuesta contiene el atributo answerCorrect, que se establece en true si el usuario ha completado correctamente el desafío, o el atributo false, en caso contrario.

El bucle de desafíos se repetirá hasta que todos los desafíos tengan respuesta.

Parámetros del desencadenador de Lambda para verificar el desafío de autenticación

Estos son los parámetros requeridos para esta función de Lambda, además de los parámetros comunes.

JSON
{ "request": { "userAttributes": { "string": "string", . . . }, "privateChallengeParameters": { "string": "string", . . . }, "challengeAnswer": { "string": "string", . . . }, "clientMetadata": { "string": "string", . . . }, "userNotFound": boolean }, "response": { "answerCorrect": boolean } }

Parámetros de la solicitud para verificar desafíos de autenticación

userAttributes

Uno o varios pares de nombre y valor que representan atributos de usuario.

userNotFound

Este valor booleano se rellena cuando PreventUserExistenceErrors se establece como ENABLED en el cliente del grupo de usuarios.

privateChallengeParameters

Este parámetro proviene del disparador Create Auth Challenge (Crear desafío de autenticación) y se compara con el valor de challengeAnswer de un usuario para determinar si el usuario ha superado el desafío.

Solo el desencadenador de Lambda para verificar la respuesta al desafío de autenticación utiliza este parámetro. Debe contener toda la información necesaria para validar la respuesta del usuario al desafío. Eso incluye el parámetro publicChallengeParameters, que contiene la pregunta que se formula al usuario y privateChallengeParameters, que contiene las respuestas válidas a la pregunta.

challengeAnswer

La respuesta del usuario al desafío.

clientMetadata

Uno o varios pares de clave-valor que puede proporcionar como datos de entrada personalizados a la función de Lambda que especifica destinada al desencadenador para verificar el desafío de autenticación. Puede transferir estos datos a la función de Lambda mediante el parámetro ClientMetadata de las acciones de la API AdminRespondToAuthChallenge y RespondToAuthChallenge.

Parámetros de la respuesta para verificar desafíos de autenticación

answerCorrect

Establezca este parámetro en true si el usuario ha respondido correctamente al desafío o en false, en caso contrario.

Ejemplo de verificación de la respuesta a los desafíos de autenticación

En este ejemplo, la función de Lambda comprueba si la respuesta del usuario a un desafío coincide con la respuesta esperada. El parámetro answerCorrect se establece en true si la respuesta del usuario coincide con la respuesta esperada.

Node.js
exports.handler = (event, context, callback) => { if (event.request.privateChallengeParameters.answer == event.request.challengeAnswer) { event.response.answerCorrect = true; } else { event.response.answerCorrect = false; } // Return to Amazon Cognito callback(null, event); }