Desencadenador de Lambda para definir el desafío de autenticación
El desencadenador de creación de desafíos de autenticación es una función de Lambda que contiene los detalles de todos los desafíos que el desencadenador de definición de desafíos de autenticación ha declarado. Procesa el nombre del desafío que el desencadenador de definición de desafíos de autenticación ha declarado y devuelve un valor publicChallengeParameters
que la aplicación debe presentar al usuario. A continuación, esta función proporciona al grupo de usuarios la respuesta al desafío, privateChallengeParameters
, que el grupo de usuarios pasa, a su vez, al desencadenador de verificación del desafío de autenticación. Mientras que el desencadenador de definición de desafíos de autenticación administra la secuencia del desafío, el desencadenador de creación de desafíos de autenticación administra el contenido del desafío.
- Creación de desafíos de autenticación
-
Amazon Cognito invoca este desencadenador después de Define Aut Challenge (Definir desafío de autenticación) si se ha especificado un desafío personalizado como parte del desencadenador Define Auth Challenge (Definir desafío de autenticación). Crea un flujo de autenticación personalizado.
Este desencadenador de Lambda se invoca para crear un desafío que se presenta al usuario. La solicitud de este desencadenador de Lambda incluye los parámetros challengeName
y session
. challengeName
es una cadena y es el nombre del siguiente desafío al usuario. El valor de este atributo se establece en el desencadenador de Lambda para definir el desafío de autenticación.
El bucle de desafíos se repetirá hasta que todos los desafíos tengan respuesta.
Temas
Parámetros del desencadenador de Lambda para crear 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.
Parámetros de la solicitud para crear 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 comoENABLED
en el cliente del grupo de usuarios. - challengeName
-
El nombre del nuevo desafío.
- session
-
El elemento session consiste en una matriz de elementos de
ChallengeResult
que contienen, cada uno, los elementos siguientes:- challengeName
-
El tipo de desafío. Puede ser uno de los siguientes:
"CUSTOM_CHALLENGE"
,"PASSWORD_VERIFIER"
,"SMS_MFA"
,"DEVICE_SRP_AUTH"
,"DEVICE_PASSWORD_VERIFIER"
o"ADMIN_NO_SRP_AUTH"
. - challengeResult
-
Establezca este parámetro en
true
si el usuario ha respondido correctamente al desafío o enfalse
, en caso contrario. - challengeMetadata
-
El nombre del desafío personalizado. Solo se usa si
challengeName
es"CUSTOM_CHALLENGE"
.
- 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 crear desafíos 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. La solicitud que llama a la función de definición de desafíos de autenticación no incluye los datos transferidos en el parámetro ClientMetadata en las operaciones de la API AdminInitiateAuth y InitiateAuth.
Parámetros de la respuesta para crear desafíos de autenticación
- publicChallengeParameters
-
Uno o varios pares de clave y valor para que la aplicación cliente los use en el desafío que se va a presentar al usuario. Este parámetro debe contener toda la información necesaria para que el desafío que se presente al usuario sea preciso.
- privateChallengeParameters
-
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. Dicho de otro modo, el parámetro
publicChallengeParameters
contiene la pregunta que se formula al usuario yprivateChallengeParameters
contiene las respuestas válidas a la pregunta. - challengeMetadata
-
El nombre del desafío personalizado, si se trata de uno.
Ejemplo de creación de desafíos de autenticación
Se crea un CAPTCHA como desafío para el usuario. La URL de la imagen del CAPTCHA se añade a los parámetros de desafío públicos como "captchaUrl
", mientras que la respuesta esperada se añade a los parámetros de desafío privados.