Personalización de flujos de trabajo de grupos de usuarios con desencadenadores de Lambda - Amazon Cognito

Personalización de flujos de trabajo de grupos de usuarios con desencadenadores de Lambda

Amazon Cognito trabaja con funciones de AWS Lambda para modificar el comportamiento de autenticación de su grupo de usuarios. Puede configurar su grupo de usuarios para que invoque automáticamente funciones de Lambda antes de su primer registro, después de que completen la autenticación y en varias etapas intermedias. Sus funciones pueden modificar el comportamiento predeterminado de su flujo de autenticación, realizar solicitudes a la API para modificar su grupo de usuarios u otros recursos de AWS y comunicarse con sistemas externos. El código de las funciones de Lambda es suyo. Amazon Cognito envía datos de eventos a su función, espera a que la función procese los datos y, en la mayoría de los casos, anticipa un evento de respuesta que refleja cualquier cambio que desee realizar en la sesión.

Dentro del sistema de eventos de solicitud y respuesta, puede introducir sus propios retos de autenticación, migrar usuarios entre su grupo de usuarios y otro almacén de identidades, personalizar mensajes y modificar tokens web JSON (JWT).

Los disparadores de Lambda pueden personalizar la respuesta que Amazon Cognito ofrece al usuario después de iniciar una acción en su grupo de usuarios. Por ejemplo, puede impedir el inicio de sesión de un usuario que, de otro modo, lo conseguiría. El usuario también puede realizar operaciones en tiempo de ejecución en su entorno de AWS, API externas, bases de datos o almacenes de identidades. El disparador de migración de usuarios, por ejemplo, puede combinar una acción externa con un cambio en Amazon Cognito: puede buscar la información del usuario en un directorio externo y, a continuación, establecer los atributos de un nuevo usuario en función de esa información externa.

Cuando tiene un disparador de Lambda asignado a su grupo de usuarios, Amazon Cognito interrumpe su flujo predeterminado para solicitar información a su función. Amazon Cognito genera un evento de JSON y lo pasa a la función. El evento contiene información sobre la solicitud del usuario para crear una cuenta de usuario, iniciar sesión, restablecer una contraseña o actualizar un atributo. La función tendrá entonces la oportunidad de realizar una acción o de enviar de vuelta el evento sin modificarlo. Un evento devuelto sin modificar notifica a su grupo de usuarios que debe continuar con la acción predeterminada para el evento. Por ejemplo, el desencadenador Antes del registro puede confirmar automáticamente a los usuarios para el origen del desencadenador PreSignUp_SignUp, pero devolver el evento sin cambios en el caso de los usuarios externos y creados por el administrador.

En la siguiente tabla se resumen algunas formas de utilizar los desencadenadores de Lambda para personalizar las operaciones del grupo de usuarios:

Flujo del grupo de usuarios Operación Descripción

Flujo de autenticación personalizado

Definición de desafíos de autenticación Determina el siguiente desafío en un flujo de autenticación personalizado
Creación de desafíos de autenticación Crea un desafío en un flujo de autenticación personalizado
Verificación de la respuesta a los desafíos de autenticación Determina si una respuesta es correcta en un flujo de autenticación personalizado
Eventos de autenticación Desencadenador de Lambda Antes de la autenticación Validación personalizada para aceptar o denegar la solicitud de inicio de sesión
Desencadenador de Lambda Después de la autenticación Registra eventos para los análisis personalizados
Desencadenador de Lambda de pregeneración de tokens. Aumenta o suprime las notificaciones de tokens
Registro Desencadenador de Lambda Antes del registro. Realiza una validación personalizada que acepta o rechaza la solicitud de inscripción
Desencadenador de Lambda de posconfirmación. Agrega mensajes de bienvenida personalizados o el registro de eventos para los análisis personalizados
Migración del desencadenador de Lambda del usuario Migra un usuario desde un directorio de usuarios existente a los grupos de usuarios
Mensajes Desencadenador de Lambda para mensajes personalizados Realiza una personalización avanzada y localiza mensajes
Creación de tokens Desencadenador de Lambda de pregeneración de tokens. Añade o elimina atributos en tokens de identificación
Proveedores externos de correo electrónico y SMS Desencadenadores de Lambda para remitentes personalizados Usa un proveedor de terceros para enviar mensajes SMS y de correo electrónico

Conceptos importantes sobre los desencadenadores de Lambda

Al preparar sus grupos de usuarios para funciones de Lambda, tenga en cuenta lo siguiente:

  • Es posible que los eventos que Amazon Cognito envía a los desencadenadores de Lambda cambien con las nuevas características. Es posible que cambien las posiciones de los elementos de respuesta y solicitud en la jerarquía JSON o que se agreguen los nombres de los elementos. En la función de Lambda, puede esperar recibir los pares clave-valor del elemento de entrada que se describen en esta guía, pero una validación de entrada más estricta puede provocar errores en las funciones.

  • Puede elegir una de las múltiples versiones de los eventos que Amazon Cognito envía a algunos desencadenadores. Es posible que algunas versiones requieran que acepte un cambio en los precios de Amazon Cognito. Para obtener más información acerca de los precios, consulte Precios de Amazon Cognito. Para personalizar los tokens de acceso en una Desencadenador de Lambda de pregeneración de tokens., debe configurar su grupo de usuarios con un plan de características que no sea Lite y actualizar la configuración del desencadenador de Lambda para utilizar la versión 2 de eventos.

  • Excepto por Desencadenadores de Lambda para remitentes personalizados, Amazon Cognito invoca funciones de Lambda de forma sincrónica. Cuando Amazon Cognito llama a la función de Lambda, esta debe responder en un plazo de 5 segundos. Si no es así y si se puede volver a intentar la llamada, Amazon Cognito vuelve a intentar la llamada. Después de tres intentos fallidos, la función agota el tiempo de espera. No puede cambiar ese valor de tiempo de espera de cinco segundos. Para obtener más información, consulte Modelo de programación de Lambda en la guía para desarrolladores de AWS Lambda.

    Amazon Cognito no reintenta las llamadas a funciones que devuelven un Error de invocación con un código de estado HTTP de 500-599. Estos códigos indican un problema de configuración que hace que Lambda no pueda lanzar la función. Para obtener más información, consulte Control de errores y reintentos automáticos en AWS Lambda.

  • No puede declarar una versión de función en la configuración de su desencadenador de Lambda. Los grupos de usuarios de Amazon Cognito invocan la última versión de su función de forma predeterminada. No obstante, puede asociar una versión de función a un alias y establecer su desencadenador LambdaArn al ARN del alias en una solicitud a la API CreateUserPool o UpdateUserPool. Esta opción no está disponible en la Consola de administración de AWS. Para obtener más información acerca de los alias, consulte Alias de función de Lambda en la Guía para desarrolladores de AWS Lambda.

  • Si elimina un desencadenador de Lambda, deberá actualizar el desencadenador correspondiente en el grupo de usuarios. Por ejemplo, si elimina el desencadenador posterior a la autenticación, deberá establecer el desencadenador Posterior a la autenticación del grupo de usuarios correspondiente en none (ninguno).

  • Si la función de Lambda no devuelve los parámetros de solicitud y respuesta a Amazon Cognito o devuelve un error, el evento de autenticación no se realiza correctamente. Puede devolver un error en la función para impedir que un usuario se registre, autentique, genere el token o cualquier otra etapa del flujo de autenticación que invoque un desencadenador de Lambda.

    El inicio de sesión administrado devuelve los errores que los desencadenadores de Lambda generan como texto de error sobre la solicitud de inicio de sesión. La API de los grupos de usuarios de Amazon Cognito devuelve los errores de activación en formato [trigger] failed with error [error text from response]. Como práctica recomendada, en las funciones de Lambda solo genere errores que quiera que vean los usuarios. Utilice métodos de salida como print() para registrar cualquier información confidencial o de depuración en CloudWatch Logs. Para ver un ejemplo, consulta Ejemplo de antes de registrarse: denegar el registro si el nombre de usuario tiene menos de cinco caracteres.

  • Puede agregar una función de Lambda en otra Cuenta de AWS como desencadenador del grupo de usuarios. Debe agregar desencadenadores multicuentas con las operaciones de la API CreateUserPool y UpdateUserPool o LOS equivalentes en CloudFormation y AWS CLI. No puede agregar funciones para varias cuentas en la Consola de administración de AWS.

  • Al agregar un desencadenador de Lambda en la consola de Amazon Cognito, Amazon Cognito agrega una política basada en recursos a la función que permite al grupo de usuarios invocar la función. Cuando crea un desencadenador de Lambda fuera de la consola de Amazon Cognito, incluida una función entre cuentas, debe agregar permisos a la política basada en recursos de la función de Lambda. Los permisos agregados deben permitir a Amazon Cognito invocar la función en nombre del grupo de usuarios. Puede agregar permisos desde la consola de Lambda o usar la operación de la API AddPermission de Lambda.

    Ejemplo de política basada en recursos de Lambda

    En el siguiente ejemplo de política basada en recursos de Lambda otorga a Amazon Cognito una capacidad limitada para invocar una función Lambda. Amazon Cognito solo puede invocar la función cuando lo hace en nombre del grupo de usuarios en la condición aws:SourceArn y en la cuenta en la condición aws:SourceAccount.

    JSON
    { "Version":"2012-10-17", "Id": "default", "Statement": [ { "Sid": "LambdaCognitoIdpTrust", "Effect": "Allow", "Principal": { "Service": "cognito-idp.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:111122223333:function:MyFunction", "Condition": { "StringEquals": { "AWS:SourceAccount": "111122223333" }, "ArnLike": { "AWS:SourceArn": "arn:aws:cognito-idp:us-east-1:111122223333:userpool/us-east-1_EXAMPLE" } } } ] }

Adición de un desencadenador de Lambda a un grupo de usuarios

Para agregar un desencadenador de Lambda a un grupo de usuarios con la consola, siga estos pasos:
  1. Use la consola de Lambda para crear una función de Lambda. Para obtener más información sobre las funciones de Lambda, consulte la Guía para desarrolladores de AWS Lambda.

  2. Diríjase a la consola de Amazon Cognito y luego elija User Pools (Grupos de usuarios).

  3. Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.

  4. Seleccione el menú Extensiones y localice los desencadenadores de Lambda.

  5. Elija Add a Lambda trigger (Agregar un desencadenador Lambda).

  6. Seleccione una Category (Categoría) de desencadenador de Lambda en función de la fase de autenticación que desee personalizar.

  7. Seleccione Assign Lambda function (Asignar función Lambda) y seleccione una función en la misma Región de AWS que el grupo de usuarios.

    nota

    Si las credenciales de AWS Identity and Access Management (IAM) tienen permiso para actualizar la función de Lambda, Amazon Cognito agrega una política basada en recursos de Lambda. Con esta política, Amazon Cognito puede llamar a la función que seleccione. Si las credenciales de sesión iniciada no tienen permisos de IAM suficientes, debe actualizar la política basada en recursos por separado. Para obtener más información, consulte Conceptos importantes sobre los desencadenadores de Lambda.

  8. Elija Save changes (Guardar cambios).

  9. En la consola de Lambda, puede registrar la función de Lambda con CloudWatch. Para obtener más información, consulte Acceso a CloudWatch Logs para Lambda.

Evento desencadenador de Lambda para un grupo de usuarios

Amazon Cognito transfiere la información del evento a la función de Lambda. A continuación, la función de Lambda devuelve el mismo objeto de evento a Amazon Cognito con los cambios en la respuesta. Si la función devuelve el evento de entrada sin modificarlo, Amazon Cognito procederá con el comportamiento predeterminado. A continuación, se muestran los parámetros que son comunes a todos los eventos de entrada del desencadenador de Lambda. Para conocer la sintaxis de los eventos específicos de cada desencadenador, consulte el esquema de eventos de la sección de esta guía para cada desencadenador.

JSON
{ "version": "string", "triggerSource": "string", "region": AWSRegion, "userPoolId": "string", "userName": "string", "callerContext": { "awsSdkVersion": "string", "clientId": "string" }, "request": { "userAttributes": { "string": "string", .... } }, "response": {} }

Parámetros comunes del desencadenador de Lambda para un grupo de usuarios

versión

El número de versión de la función de Lambda.

triggerSource

El nombre del evento que desencadenó la función de Lambda. Consulte para ver una descripción del origen de cada disparador (triggerSource) Conexión de disparadores de Lambda a las operaciones funcionales del grupo de usuarios.

region

Región de AWS como instancia AWSRegion.

userPoolId

El ID del grupo de usuarios.

userName

El nombre de usuario del usuario actual.

callerContext

Metadatos sobre la solicitud y el entorno del código. Contiene los campos awsSdkVersion y clientId.

awsSdkVersion

La versión del SDK de AWS que generó la solicitud.

clientId

El ID de cliente de la aplicación del grupo de usuarios.

solicitud

Detalles de la solicitud de API de su usuario. Incluye los siguientes campos y cualquier parámetro de solicitud que sea específico del disparador. Por ejemplo, un evento que Amazon Cognito envía a un desencadenador de autenticación previa también contendrá un parámetro userNotFound. Puede procesar el valor de este parámetro para realizar una acción personalizada cuando el usuario intente iniciar sesión con un nombre de usuario no registrado.

userAttributes

Uno o varios pares de clave-valor de nombres y valores de atributos de usuario, por ejemplo "email": "john@example.com".

respuesta

Este parámetro no contiene ninguna información en la solicitud original. La función de Lambda debe devolver el evento completo a Amazon Cognito y añadir los parámetros de devolución a response. Para ver qué parámetros de devolución puede incluir la función, consulte la documentación del disparador que desee utilizar.

Metadatos del cliente

Puede enviar parámetros personalizados a sus funciones de desencadenación de Lambda en las operaciones API y las solicitudes Punto de conexión de token. Con los metadatos del cliente, su aplicación puede recopilar información adicional sobre el entorno en el que se originan las solicitudes. Al pasar los metadatos del cliente a las funciones de Lambda, estas pueden procesar los datos adicionales y utilizarlos para registrar o personalizar los flujos de autenticación. Los metadatos del cliente son pares de cadenas que usted elige y diseña en formato clave-valor JSON.

Casos de uso de ejemplo de metadatos de cliente

Este es un ejemplo de cómo pasar los metadatos del cliente al desencadenador Antes del registro.

SignUp request

A continuación, tiene un ejemplo de solicitud SignUp con metadatos de cliente que Amazon Cognito transfiere a un desencadenador Antes del registro.

POST HTTP/1.1 Host: cognito-idp.us-east-1.amazonaws.com X-Amz-Date: 20230613T200059Z Accept-Encoding: gzip, deflate, br X-Amz-Target: AWSCognitoIdentityProviderService.SignUp User-Agent: <UserAgentString> Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature> Content-Length: <PayloadSizeBytes> { "ClientId": "1example23456789", "Username": "mary_major", "Password": "<Password>", "SecretHash": "<Secret hash>", "ClientMetadata": { "IpAddress" : "192.0.2.252", "GeoLocation" : "Netherlands (Kingdom of the) [NL]" } "UserAttributes": [ { "Name": "name", "Value": "Mary" }, { "Name": "email", "Value": "mary_major@example.com" }, { "Name": "phone_number", "Value": "+12065551212" } ], }
Lambda trigger input event

La solicitud da como resultado el siguiente cuerpo de solicitud para su función Antes del registro.

{ "callerContext": { "awsSdkVersion": "aws-sdk-unknown-unknown", "clientId": "1example23456789" }, "region": "us-west-2", "request": { "clientMetadata": { "GeoLocation": "Netherlands (Kingdom of the) [NL]", "IpAddress": "192.0.2.252" }, "userAttributes": { "email": "mary_major@example.com", "name": "Mary", "phone_number": "+12065551212" }, "validationData": null }, "response": { "autoConfirmUser": false, "autoVerifyEmail": false, "autoVerifyPhone": false }, "triggerSource": "PreSignUp_SignUp", "userName": "mary_major2", "userPoolId": "us-west-2_EXAMPLE", "version": "1" }
Metadatos del cliente para credenciales de cliente máquina a máquina (M2M)

Puede pasar los metadatos del cliente en las solicitudes M2M. Los metadatos del cliente son información adicional de un entorno de usuario o aplicación que puede contribuir a los resultados de una Desencadenador de Lambda de pregeneración de tokens.. En las operaciones de autenticación con una entidad principal de usuario, puede pasar los metadatos del cliente al desencadenador Antes de la generación del token en el cuerpo de las solicitudes de API AdminRespondToAuthChallenge y RespondToAuthChallenge. Dado que las aplicaciones dirigen el flujo de generación de tokens de acceso para M2M con solicitudes directas al Punto de conexión de token, tienen un modelo diferente. En el cuerpo POST de las solicitudes de token para las credenciales de los clientes, pase un parámetro aws_client_metadata con el objeto de metadatos del cliente codificado en la URL (x-www-form-urlencoded) a cadena. Para obtener una solicitud de ejemplo, consulte Credenciales de cliente con autorización básica. A continuación, puede ver un ejemplo de parámetro que transfiere los pares clave-valor {"environment": "dev", "language": "en-US"}.

aws_client_metadata=%7B%22environment%22%3A%20%22dev%22,%20%22language%22%3A%20%22en-US%22%7D
Atributos de usuario temporales: validationData

Algunas operaciones de autenticación también tienen un parámetro validationData. Al igual que los metadatos de los clientes, esta es una oportunidad para pasar información externa que Amazon Cognito no recopila automáticamente a los desencadenadores de Lambda. El campo de datos de validación está diseñado para proporcionar a la función de Lambda un contexto de usuario adicional en las operaciones de registro e inicio de sesión. SignUp y AdminCreateUser pasan validationData al desencadenador Antes del registro. InitiateAuth y AdminInitiateAuth pasan ClientMetadata en el cuerpo de la solicitud de la API como validationData en el evento de entrada a los desencadenadores Antes de la autenticación y Migrar usuario.

Para asignar las operaciones de la API a las funciones a las que pueden pasar los metadatos del cliente, consulte las secciones sobre los orígenes de activación que aparecen a continuación.

Conexión de las operaciones de la API a los disparadores de Lambda

En las siguientes secciones, se describen los disparadores de Lambda a los que invoca Amazon Cognito a partir de la actividad de su grupo de usuarios.

Cuando la aplicación inicia la sesión de los usuarios a través de la API de los grupos de usuarios, el inicio de sesión administrado o los puntos de conexión de grupo de usuarios de Amazon Cognito, Amazon Cognito invoca las funciones de Lambda en función del contexto de la sesión. Para obtener más información sobre la API de los grupos de usuarios de Amazon Cognito y los puntos de conexión del grupo de usuarios, consulte Descripción de la autenticación mediante API, OIDC y páginas de inicio de sesión administrado. En las tablas de las secciones siguientes, se describen los eventos que hacen que Amazon Cognito invoque una función y la cadena triggerSource que Amazon Cognito incluye en la solicitud.

Disparadores de Lambda en la API de Amazon Cognito

En la siguiente tabla, se describen las cadenas de origen de los disparadores de Lambda que Amazon Cognito puede invocar cuando la aplicación crea, inicia sesión o actualiza a un usuario local.

Orígenes de desencadenadores de usuarios locales en la API de Amazon Cognito
Operación de la API Disparador de Lambda Origen del disparador

AdminCreateUser

Antes del registro

PreSignUp_AdminCreateUser

Antes de la generación del token

TokenGeneration_NewPasswordChallenge

Mensaje personalizado

CustomMessage_AdminCreateUser

Remitente de correo electrónico personalizado

CustomEmailSender_AdminCreateUser

Remitente de SMS personalizado

CustomSMSSender_AdminCreateUser

SignUp

Antes del registro

PreSignUp_SignUp

Mensaje personalizado

CustomMessage_SignUp

Remitente de correo electrónico personalizado

CustomEmailSender_SignUp

Remitente de SMS personalizado

CustomSMSSender_SignUp

ConfirmSignUp

AdminConfirmSignUp

Después de la confirmación

PostConfirmation_ConfirmSignUp

InitiateAuth

AdminInitiateAuth

Antes de la autenticación

PreAuthentication_Authentication

Después de la autenticación

PostAuthentication_Authentication

Definir desafío de autenticación

DefineAuthChallenge_Authentication

Crear desafío de autenticación

CreateAuthChallenge_Authentication

Verificación de desafío de autenticación

VerifyAuthChallenge_Authentication

Antes de la generación del token

TokenGeneration_Authentication

TokenGeneration_AuthenticateDevice

TokenGeneration_RefreshTokens

Migrar usuario

UserMigration_Authentication

Mensaje personalizado

CustomMessage_Authentication

Remitente de correo electrónico personalizado

CustomEmailSender_AccountTakeOverNotification

CustomEmailSender_Authentication

Remitente de SMS personalizado

CustomSMSSender_Authentication

RespondToAuthChallenge

AdminRespondToAuthChallenge

Después de la autenticación

PostAuthentication_Authentication

Definir desafío de autenticación

DefineAuthChallenge_Authentication

Crear desafío de autenticación

CreateAuthChallenge_Authentication

Verificación de desafío de autenticación

VerifyAuthChallenge_Authentication

Antes de la generación del token

TokenGeneration_Authentication

TokenGeneration_AuthenticateDevice

TokenGeneration_RefreshTokens

Mensaje personalizado

CustomMessage_Authentication

Remitente de correo electrónico personalizado

CustomEmailSender_AccountTakeOverNotification

CustomEmailSender_Authentication

Remitente de SMS personalizado

CustomSMSSender_Authentication

ForgotPassword

Migración de usuario

UserMigration_ForgotPassword

Mensaje personalizado

CustomMessage_ForgotPassword

Remitente de correo electrónico personalizado

CustomEmailSender_ForgotPassword

Remitente de SMS personalizado

CustomSMSSender_ForgotPassword

ConfirmForgotPassword

Después de la confirmación

PostConfirmation_ConfirmForgotPassword

UpdateUserAttributes

AdminUpdateUserAttributes

Mensaje personalizado

CustomMessage_UpdateUserAttribute

Remitente de correo electrónico personalizado

CustomEmailSender_UpdateUserAttribute

Remitente de SMS personalizado

CustomSMSSender_UpdateUserAttribute

VerifyUserAttributes

Mensaje personalizado

CustomMessage_VerifyUserAttribute

Remitente de correo electrónico personalizado

CustomEmailSender_VerifyUserAttribute

Remitente de SMS personalizado

CustomSMSSender_VerifyUserAttribute

GetTokensFromRefreshToken

Antes de la generación del token

TokenGeneration_Authentication

Desencadenadores de Lambda para los usuarios locales de Amazon Cognito en el inicio de sesión administrado

En la siguiente tabla, se describen las cadenas de origen de los desencadenadores de Lambda que Amazon Cognito puede invocar cuando un usuario local inicia sesión en el grupo de usuarios con el inicio de sesión administrado.

Orígenes de desencadenadores de usuarios locales en el inicio de sesión administrado
URI en el inicio de sesión administrado Disparador de Lambda Origen del disparador
/signup Antes del registro

PreSignUp_SignUp

Mensaje personalizado

CustomMessage_SignUp

Remitente de correo electrónico personalizado

CustomEmailSender_SignUp

Remitente de SMS personalizado

CustomSMSSender_SignUp

/confirmuser Después de la confirmación

PostConfirmation_ConfirmSignUp

/login Antes de la autenticación

PreAuthentication_Authentication

Antes de la generación del token

TokenGeneration_Authentication

TokenGeneration_AuthenticateDevice

TokenGeneration_RefreshTokens

Migración de usuario

UserMigration_Authentication

Mensaje personalizado

CustomMessage_Authentication

Remitente de correo electrónico personalizado

CustomEmailSender_AccountTakeOverNotification

CustomEmailSender_Authentication

Remitente de SMS personalizado

CustomSMSSender_Authentication

/forgotpassword Migración de usuario

UserMigration_ForgotPassword

Mensaje personalizado

CustomMessage_ForgotPassword

Remitente de correo electrónico personalizado

CustomEmailSender_ForgotPassword

Remitente de SMS personalizado

CustomSMSSender_ForgotPassword

/confirmforgotpassword Después de la confirmación

PostConfirmation_ConfirmForgotPassword

Desencadenadores de Lambda para usuarios federados

Puede utilizar los siguientes desencadenadores de Lambda para personalizar los flujos de trabajo del grupo de usuarios para los usuarios que inician sesión con un proveedor federado.

nota

Los usuarios federados pueden usar el inicio de sesión administrado para iniciar sesión o pueden generar una solicitud a Autorizar punto de conexión que los redirija de forma silenciosa a la página de inicio de sesión de su proveedor de identidad. No puede iniciar la sesión de usuarios federados con la API de grupos de usuarios de Amazon Cognito.

Orígenes de los desencadenadores de usuarios federados
Evento de inicio de sesión Disparador de Lambda Origen del disparador
Primer inicio de sesión Antes del registro

PreSignUp_ExternalProvider

Después de la confirmación

PostConfirmation_ConfirmSignUp

Antes de la generación del token

TokenGeneration_HostedAuth

Inicios de sesión posteriores Antes de la autenticación

PreAuthentication_Authentication

Después de la autenticación

PostAuthentication_Authentication

Antes de la generación del token

TokenGeneration_HostedAuth

El inicio de sesión federado no llama a ningún Desencadenadores de Lambda de desafío de autenticación personalizado, Migración del desencadenador de Lambda del usuario, Desencadenador de Lambda para mensajes personalizados o Desencadenadores de Lambda para remitentes personalizados en el grupo de usuarios.

Conexión de disparadores de Lambda a las operaciones funcionales del grupo de usuarios

Cada disparador de Lambda cumple un rol funcional en su grupo de usuarios. Por ejemplo, un disparador puede modificar su flujo de registro o añadir un desafío de autenticación personalizado. El evento que Amazon Cognito envía a una función de Lambda puede reflejar una de las múltiples acciones que componen ese rol funcional. Por ejemplo, Amazon Cognito invoca un disparador previo al registro cuando el usuario se registra y cuando crea un usuario. Cada uno de estos casos para el mismo rol funcional tiene su propio valor de triggerSource. La función de Lambda puede procesar los eventos entrantes de forma diferente según la operación que la haya invocado.

Amazon Cognito también invoca todas las funciones asignadas cuando un evento se corresponde con el origen de un disparador. Por ejemplo, cuando un usuario inicia sesión en un grupo de usuarios al que ha asignado los disparadores de migración de usuario y autenticación previa, activa ambos.

Disparadores de inscripción, confirmación e inicio de sesión (autenticación)
Desencadenador Valor de triggerSource Evento
Antes del registro PreSignUp_SignUp Antes del registro.
Antes del registro PreSignUp_AdminCreateUser Antes del registro cuando un administrador crea un nuevo usuario.
Antes del registro PreSignUp_ExternalProvider Antes del registro para proveedores de identidad externos.
Después de la confirmación PostConfirmation_ConfirmSignUp Posterior a la confirmación de la inscripción.
Después de la confirmación PostConfirmation_ConfirmForgotPassword Posterior a la confirmación de la contraseña olvidada.
Antes de la autenticación PreAuthentication_Authentication Antes de la autenticación.
Después de la autenticación PostAuthentication_Authentication Después de la autenticación.
Disparadores de desafío de autenticación personalizados
Desencadenador Valor de triggerSource Evento
Definir desafío de autenticación DefineAuthChallenge_Authentication Definición de desafíos de autenticación.
Crear desafío de autenticación CreateAuthChallenge_Authentication Creación de desafíos de autenticación.
Verificación de desafío de autenticación VerifyAuthChallengeResponse_Authentication Verificación de la respuesta a los desafíos de autenticación.
Disparadores anteriores a la generación del token
Desencadenador Valor de triggerSource Evento
Antes de la generación del token TokenGeneration_HostedAuth Amazon Cognito autentica al usuario desde su página de inicio de sesión en el inicio de sesión administrado.
Antes de la generación del token TokenGeneration_Authentication Se completó la autenticación del usuario o la actualización del token.
Antes de la generación del token TokenGeneration_NewPasswordChallenge El administrador crea el usuario. Amazon Cognito lo llama cuando el usuario debe cambiar una contraseña temporal.
Antes de la generación del token TokenGeneration_AuthenticateDevice Fin de la autenticación de un dispositivo de usuario.
Antes de la generación del token TokenGeneration_RefreshTokens Un usuario intenta actualizar los tokens de identidad y acceso.
Disparadores de migración de usuarios
Desencadenador Valor de triggerSource Evento
Migración de usuario UserMigration_Authentication Migración de usuarios durante el inicio de sesión.
Migración de usuario UserMigration_ForgotPassword Migración de usuarios durante el flujo de recuperación de contraseñas olvidadas.
Disparadores de mensaje personalizado
Desencadenador Valor de triggerSource Evento
Mensaje personalizado CustomMessage_SignUp Mensaje personalizado cuando un usuario se registra en el grupo de usuarios.
Mensaje personalizado CustomMessage_AdminCreateUser Mensaje personalizado al crear un usuario como administrador y Amazon Cognito le envía una contraseña temporal.
Mensaje personalizado CustomMessage_ResendCode Mensaje personalizado cuando el usuario actual solicita un nuevo código de confirmación.
Mensaje personalizado CustomMessage_ForgotPassword Mensaje personalizado cuando el usuario solicita un restablecimiento de contraseña.
Mensaje personalizado CustomMessage_UpdateUserAttribute Mensaje personalizado cuando un usuario cambia su dirección de correo electrónico o número de teléfono y Amazon Cognito envía un código de verificación.
Mensaje personalizado CustomMessage_VerifyUserAttribute Mensaje personalizado cuando un usuario agrega una dirección de correo electrónico o un número de teléfono y Amazon Cognito envía un código de verificación.
Mensaje personalizado CustomMessage_Authentication Mensaje personalizado cuando un usuario que ha configurado la MFA por SMS inicia sesión.
Desencadenadores de remitente personalizados
Desencadenador Valor de triggerSource Evento
Remitente personalizado

CustomEmailSender_SignUp

CustomSmsSender_SignUp

Cuando un usuario se registra en su grupo de usuarios.
Remitente personalizado

CustomEmailSender_AdminCreateUser

CustomSmsSender_AdminCreateUser

Cuando crea un usuario como administrador y Amazon Cognito le envía una contraseña temporal.
Remitente personalizado

CustomEmailSender_ForgotPassword

CustomSmsSender_ForgotPassword

Cuando el usuario solicita un restablecimiento de contraseña.
Remitente personalizado

CustomEmailSender_UpdateUserAttribute

CustomSmsSender_UpdateUserAttribute

Cuando un usuario cambia su dirección de correo electrónico o número de teléfono y Amazon Cognito envía un código de verificación.
Remitente personalizado

CustomEmailSender_VerifyUserAttribute

CustomSmsSender_VerifyUserAttribute

Cuando un usuario agrega una dirección de correo electrónico o un número de teléfono y Amazon Cognito envía un código de verificación.
Remitente personalizado

CustomEmailSender_Authentication

CustomSmsSender_Authentication

Cuando un usuario que ha configurado la MFA u OTP por SMS o correo electrónico inicia sesión.
Remitente personalizado CustomEmailSender_AccountTakeOverNotification Cuando la configuración de protección contra amenazas adopta una acción automática contra el intento de inicio de sesión de un usuario y la acción correspondiente al nivel de riesgo incluye una notificación.