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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

El disparador de verificación de autenticación es una función de Lambda que compara la respuesta proporcionada por un usuario con una respuesta conocida. Esta función indica al grupo de usuarios si el usuario ha respondido correctamente a la solicitud. Cuando el activador de verificación de autenticación responde con una answerCorrect detrue, la secuencia de autenticación puede continuar.

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

Amazon Cognito lama a este desencadenador para verificar si la respuesta del usuario a un desafío de autenticación personalizado es o no 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 definir 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. Si el usuario finaliza correctamente el desafío, Amazon Cognito establece el valor del atributo en true. Si el usuario no finaliza correctamente el desafío, Amazon Cognito establece el valor del atributo en false.

El bucle de desafíos se repite hasta que los usuarios respondan a todos los desafíos.

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

La solicitud que Amazon Cognito envía a esta función de Lambda es una combinación de los parámetros que se indican a continuación y los parámetros comunes que Amazon Cognito agrega a todas las solicitudes.

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

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

userAttributes

Este parámetro contiene uno o varios pares de nombre-valor que representan atributos de usuario.

userNotFound

Cuando Amazon Cognito establece PreventUserExistenceErrors en ENABLED para su cliente de grupo de usuarios, Amazon Cognito rellena este booleano.

privateChallengeParameters

Este parámetro proviene del desencadenador para definir el desafío de autenticación. Para determinar si el usuario ha superado un desafío, Amazon Cognito compara los parámetros con los del usuario. challengeAnswer

Este parámetro contiene toda la información necesaria para validar la respuesta del usuario al desafío. Esta información incluye la pregunta que Amazon Cognito presenta al usuario (publicChallengeParameters) y las respuestas válidas a la pregunta (privateChallengeParameters). Solo el desencadenador de Lambda de verificación de la respuesta al desafío de autenticación utiliza este parámetro.

challengeAnswer

Este valor de parámetro es la respuesta del usuario al desafío.

clientMetadata

Este parámetro contiene uno o varios pares de clave-valor que puede proporcionar como datos de entrada personalizados a la función de Lambda para verificar el desencadenador del desafío de autenticación. Para pasar estos datos a la función Lambda, utilice el ClientMetadata parámetro en las operaciones AdminRespondToAuthChallengey RespondToAuthChallengeAPI. Amazon Cognito no incluye los datos del ClientMetadata parámetro ni de AdminInitiateAuthlas InitiateAuthAPIoperaciones en la solicitud que pasa a la función de verificación de autenticación.

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

answerCorrect

Si el usuario finaliza correctamente el desafío, Amazon Cognito establece este parámetro en true. Si el usuario no finaliza correctamente el desafío, Amazon Cognito establece el parámetro en false.

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. Amazon Cognito establece el parámetro answerCorrect en true si la respuesta del usuario coincide con la respuesta esperada.

Node.js
const handler = async (event) => { if ( event.request.privateChallengeParameters.answer === event.request.challengeAnswer ) { event.response.answerCorrect = true; } else { event.response.answerCorrect = false; } return event; }; export { handler };