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.
Administre los métodos de autenticación en AWS SDK
Los usuarios de los grupos de usuarios de Amazon Cognito pueden iniciar sesión con una variedad de opciones o factores de inicio de sesión inicial. En algunos casos, los usuarios pueden hacer un seguimiento con autenticación multifactor (MFA). Estos primeros factores incluyen el nombre de usuario y la contraseña, la contraseña de un solo uso, la clave de acceso y la autenticación personalizada. Para obtener más información, consulte Flujos de autenticación. Cuando su aplicación tiene componentes de interfaz de usuario integrados e importa un módulo AWS del SDK, debe crear la lógica de la aplicación para la autenticación. Debe elegir uno de los dos métodos principales y, a partir de ese método, los mecanismos de autenticación que desee implementar.
Puede implementar la autenticación basada en el cliente, en la que la aplicación, o el cliente, declare el tipo de autenticación por adelantado. La otra opción es la autenticación basada en opciones, en la que la aplicación recopila un nombre de usuario y solicita los tipos de autenticación disponibles para los usuarios. Puede implementar estos modelos juntos en la misma aplicación o dividirlos entre los clientes de la aplicación, según lo que necesite. Cada método tiene características que son únicas; por ejemplo, la autenticación personalizada, en el método basado en el cliente, y la autenticación sin contraseña, en el caso del método basado en opciones.
En las aplicaciones personalizadas que se autentican con la implementación del AWS SDK de la API de grupos de usuarios, debes estructurar las solicitudes de API para adaptarlas a la configuración del grupo de usuarios, la configuración del cliente de la aplicación y las preferencias del lado del cliente. Una sesión InitiateAuth que comience con un AuthFlow de USER_AUTH empieza con la autenticación basada en opciones. Amazon Cognito responde a su API con un desafío del método de autenticación preferido o una lista de opciones. Una sesión que comienza con AuthFlow de CUSTOM_AUTH pasa directamente a la autenticación personalizada con activadores Lambda.
Algunos métodos de autenticación están fijos en uno de los dos tipos de flujo y algunos métodos están disponibles en ambos.
Temas
Choice-based authentication
La aplicación puede solicitar los siguientes métodos de autenticación en la autenticación basada en opciones. Declare estas opciones en el PREFERRED_CHALLENGE parámetro InitiateAutho o AdminInitiateAuthen el ChallengeName parámetro o. RespondToAuthChallengeAdminRespondToAuthChallenge
importante
Choice-based el inicio de sesión tiene dos requisitos previos. El cliente de la aplicación debe activar el flujo de ALLOW_USER_AUTH autenticación, y los métodos sin contraseña y con clave de paso (EMAIL_OTP,SMS_OTP,WEB_AUTHN) requieren un grupo de usuarios en el plan de funciones Essentials o Plus; no están disponibles en el nivel Lite. PASSWORD(incluido el SRP) está disponible en todos los planes de funciones. Si tus usuarios no ven un método basado en una elección, confirma tanto el flujo entre la aplicación y el cliente como el plan de funciones antes de continuar con la solución de problemas.
Para revisar estas opciones en su contexto de API, consulte. ChallengeName RespondToAuthChallenge
Choice-based el inicio de sesión genera un desafío en respuesta a tu solicitud inicial. Este desafío verifica que la opción solicitada esté disponible o proporciona una lista de las opciones disponibles. La aplicación puede mostrar estas opciones a los usuarios, quienes, a continuación, introducen las credenciales del método de inicio de sesión preferido y proceden a autenticarse en las respuestas a las preguntas.
Dispone de las siguientes opciones basadas en opciones en su flujo de autenticación. Todas las solicitudes de este tipo requieren que su aplicación primero recopile un nombre de usuario o lo recupere de una memoria caché.
-
Solicite opciones solo con
AuthParametersdeUSERNAME. Amazon Cognito devuelve un desafíoSELECT_CHALLENGE. A partir de ahí, la aplicación puede solicitar al usuario que seleccione un desafío y devuelva esta respuesta a su grupo de usuarios. -
Solicite un desafío preferido con
AuthParametersdePREFERRED_CHALLENGEy los parámetros del desafío que prefiera, si los hubiera. Por ejemplo, si solicita unPREFERRED_CHALLENGEdePASSWORD_SRP, también debe incluirSRP_A. Si el usuario, el grupo de usuarios y el cliente de la aplicación están configurados para el desafío preferido, Amazon Cognito responde con el siguiente paso de ese desafío, por ejemplo,PASSWORD_VERIFIERen elPASSWORD_SRPflujo o CodeDeliveryDetailsen los flujosEMAIL_OTPandSMS_OTP. Si el desafío preferido no está disponible, Amazon Cognito responde conSELECT_CHALLENGEy una lista de los desafíos disponibles. -
Deje que los usuarios inicien sesión en primer lugar y, luego, solicite las opciones de autenticación basadas en opciones. Una GetUserAuthFactorssolicitud con el token de acceso de un usuario que ha iniciado sesión devuelve sus factores de autenticación basados en opciones disponibles y su configuración de MFA. Con esta opción, un usuario puede iniciar sesión primero con el nombre de usuario y la contraseña y, a continuación, activar otra forma de autenticación. También puede usar esta operación para seleccionar opciones adicionales para un usuario que haya iniciado sesión con un desafío preferido.
A fin de configurar el cliente de aplicación para la autenticación basada en opciones, añada ALLOW_USER_AUTH a los flujos de autenticación permitidos. También debe elegir los factores basados en opciones que desee permitir en la configuración de su grupo de usuarios. El siguiente proceso ilustra cómo elegir los factores de autenticación basados en opciones.
Client-based authentication
Client-based la autenticación admite los siguientes flujos de autenticación. Declare estas opciones en el AuthFlow parámetro InitiateAutho AdminInitiateAuth.
-
USER_PASSWORD_AUTHyADMIN_USER_PASSWORD_AUTHSign-in con contraseñas persistentes
MFA después del inicio de sesión
Este flujo de autenticación es equivalente a
PASSWORDen la autenticación basada en opciones. -
USER_SRP_AUTHSign-in con contraseñas persistentes y una carga segura
MFA después del inicio de sesión
Este flujo de autenticación es equivalente a
PASSWORD_SRPen la autenticación basada en opciones. -
REFRESH_TOKEN_AUTHEste flujo de autenticación solo está disponible en la autenticación basada en el cliente.
-
CUSTOM_AUTHEste flujo de autenticación solo está disponible en la autenticación basada en el cliente.
Con la autenticación basada en el cliente, Amazon Cognito da por sentado que usted ha determinado cómo quiere autenticarse el usuario antes de que este comience los flujos de autenticación. La lógica para determinar el factor de inicio de sesión que un usuario quiere proporcionar debe determinarse con la configuración predeterminada o con mensajes personalizados; luego, debe declararse en la primera solicitud a su grupo de usuarios. La solicitud InitiateAuth declara un AuthFlow de inicio de sesión que se corresponde directamente con una de las opciones de la lista, como USER_SRP_AUTH. Con esta declaración, la solicitud también incluye los parámetros para iniciar la autenticación, como USERNAME, SECRET_HASH y SRP_A. Amazon Cognito podría complementar esta solicitud con desafíos adicionales, como PASSWORD_VERIFIER para el SRP o SOFTWARE_TOKEN_MFA para el inicio de sesión con contraseña, con TOTP y MFA.
A fin de configurar el cliente de aplicación para la autenticación basada en el cliente, añada cualquier flujo de autenticación distinto de ALLOW_USER_AUTH en los flujos de autenticación permitidos. Algunos ejemplos sonALLOW_USER_PASSWORD_AUTH,ALLOW_CUSTOM_AUTH,ALLOW_REFRESH_TOKEN_AUTH. Para permitir los flujos de autenticación basados en el cliente, no se requiere ninguna configuración adicional del grupo de usuarios.
Step-up autenticación con el flujo USER_AUTH
Se solicita una autenticación progresiva en el USER_AUTH flujo existente con las operaciones y. InitiateAuthRespondToAuthChallenge No hay nuevas operaciones de API. Las operaciones correspondientes del lado del servidor admiten los mismos parámetros AdminInitiateAuthy AdminRespondToAuthChallengecomportamientos de escalonamiento y, opcionalmente, también AdminInitiateAuth pueden utilizar un token de acceso. Este flujo funciona tanto cuando un usuario tiene un token de identificación existente como cuando se autentica en un nivel objetivo por primera vez. Para obtener más información sobre el flujo, consulteUn ejemplo de sesión de autenticación.
Para obtener más información sobre los niveles de ACR y los valores de AMR, consulte. Niveles de autenticación con afirmaciones de ACR y AMR
nota
Step-up la autenticación requiere el plan de funciones Essentials o Plus.
Usted introduce los parámetros de escalonamiento en el AuthParameters mapa de su InitiateAuth (oAdminInitiateAuth) solicitud: los nuevos TARGET_ACR_VALUES yMAX_AGE, junto con los existentes USERNAMEACCESS_TOKEN, yPREFERRED_CHALLENGE. Para conocer la definición y las restricciones de cada parámetro, consulte InitiateAuthy AdminInitiateAuthen la referencia de la API de grupos de usuarios de Amazon Cognito.
En la siguiente tabla se describe cómo Amazon Cognito responde a las combinaciones de estos parámetros.
| Parameters | Comportamiento |
|---|---|
TARGET_ACR_VALUESy, con satisfacción ACCESS_TOKEN MAX_AGE |
Amazon Cognito hace que el usuario pase de los factores actuales del token al nivel satisfactorio de mayor prioridad. |
TARGET_ACR_VALUESyACCESS_TOKEN, sin estar satisfecho MAX_AGE |
Amazon Cognito autentica al usuario desde cero hasta el nivel objetivo. |
TARGET_ACR_VALUESsin ACCESS_TOKEN |
Amazon Cognito autentica al usuario desde cero hasta el nivel objetivo. |
| Ninguno de los dos parámetros | El USER_AUTH flujo se comporta como lo hace sin una autenticación intensificada. |
Tenga en cuenta el siguiente comportamiento al diseñar un flujo de autenticación escalonado.
-
Step-up la autenticación es todo o nada. Si alcanzar el nivel objetivo requiere varios desafíos, por ejemplo, una contraseña y un TOTP para el nivel 4, y el usuario no supera alguno de los desafíos, el intento de mejora fracasa por completo. Amazon Cognito no emite tokens intermedios.
-
Si el token presentado ya alcanza o supera el nivel solicitado, Amazon Cognito devuelve un error en lugar de emitir un nuevo token. Esto impide que las aplicaciones utilicen la autenticación escalonada como mecanismo de actualización de los tokens.
-
El usuario ya debe tener los factores necesarios para satisfacer un nivel solicitado. Si el usuario no tiene ningún factor configurado para cumplir el nivel objetivo solicitado, Amazon Cognito devuelve un error. Step-upla autenticación no solicita al usuario que configure nuevos factores.
-
El MFA es un suelo. Si la configuración de MFA del usuario o del grupo de usuarios requiere MFA, el inicio de sesión inicial sigue exigiendo y solicitando ese desafío de MFA incluso cuando el nivel objetivo es inferior y, de otro modo, no requeriría MFA. El MFA que solicita la protección contra amenazas (funciones de seguridad avanzadas) también se aplica en el inicio de sesión inicial, incluso cuando el nivel de ACR objetivo solicitado no requeriría el MFA.
TARGET_ACR_VALUESno se puede suprimir un mensaje de MFA obligatorio. Como máximo, el objetivo puede influir en cuál de los varios factores de MFA habilitados que solicita Amazon Cognito. Si una solicitud escalonada se dirige a un nivel inferior, por ejemplo, el nivel 1, para un usuario que debe usar MFA, Amazon Cognito aplica silenciosamente el MFA requerido. Incrementa el nivel de usuario y no devuelve ningún error.
Para solicitar una autenticación avanzada se TARGET_ACR_VALUES requiere el plan de funciones Essentials o Plus. Para obtener más información, consulte Requisitos del plan de funciones.