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.
Autenticación con grupos de usuarios de Amazon Cognito
Amazon Cognito incluye varios métodos para autenticar a los usuarios. Los usuarios pueden iniciar sesión con WebAuthn contraseñas y claves de acceso. Amazon Cognito puede enviarles una contraseña de un solo uso en un mensaje de correo electrónico o SMS. Puede implementar funciones Lambda que organicen su propia secuencia de desafíos y respuestas. Se trata de flujos de autenticación. En los flujos de autenticación, los usuarios proporcionan un secreto y Amazon Cognito lo verifica y, a continuación, emite tokens web JSON (JWTs) para que las aplicaciones los procesen con las bibliotecas de OIDC. En este capítulo, analizaremos cómo configurar los grupos de usuarios y los clientes de aplicaciones para varios flujos de autenticación en distintos entornos de aplicaciones. Conocerás las opciones para usar las páginas de inicio de sesión alojadas del inicio de sesión gestionado y para crear tu propia lógica y interfaz en un AWS SDK.
Todos los grupos de usuarios, tengan o no un dominio, pueden autenticar usuarios en la API de grupos de usuarios. Si agrega un dominio al grupo de usuarios, puede utilizar los puntos de conexión del grupo de usuarios. La API de grupos de usuarios admite una variedad de modelos de autorización y flujos de solicitud para las solicitudes de API.
Para verificar la identidad de los usuarios, Amazon Cognito admite flujos de autenticación que incorporan tipos de desafíos además de contraseñas, como contraseñas de un solo uso y claves de acceso de correo electrónico y SMS.
Temas
Implemente flujos de autenticación
Ya sea que esté implementando un inicio de sesión administrado o una interfaz de aplicación personalizada con un AWS SDK para la autenticación, debe configurar el cliente de la aplicación para los tipos de autenticación que desee implementar. La siguiente información describe la configuración de los flujos de autenticación en los clientes de la aplicación y en la aplicación.
Aspectos que debe saber sobre la autenticación con grupos de usuarios
Tenga en cuenta la siguiente información al diseñar su modelo de autenticación con los grupos de usuarios de Amazon Cognito.
- La autenticación fluye en el inicio de sesión administrado y en la interfaz de usuario alojada
-
El inicio de sesión gestionado y la interfaz de usuario alojada clásica tienen diferentes opciones de autenticación. Solo puede realizar la autenticación sin contraseña y con clave de paso en el inicio de sesión administrado.
- Los flujos de autenticación personalizados solo están disponibles en la autenticación del SDK AWS
-
No puede realizar flujos de autenticación personalizados ni autenticaciones personalizadas con activadores Lambda, con el inicio de sesión administrado o la interfaz de usuario alojada clásica. La autenticación personalizada está disponible en Authentication with AWS SDKs.
- Inicio de sesión gestionado para el inicio de sesión con un proveedor de identidad externo (IdP)
-
No puedes iniciar sesión a los usuarios mediante la autenticación de un tercero IdPs con. AWS SDKs Debe implementar el inicio de sesión administrado o la clásica interfaz de usuario alojada, redirigir al objeto de autenticación resultante y IdPs, a continuación, procesarlo con las bibliotecas OIDC de su aplicación. Para obtener más información sobre el inicio de sesión gestionado, consulte. Inicio de sesión administrado por un grupo de usuarios
- Efecto de autenticación sin contraseña en otras funciones de usuario
-
La activación del inicio de sesión sin contraseña con contraseñas de un solo uso o claves de acceso en el grupo de usuarios y en el cliente de la aplicación repercute en la creación y migración de los usuarios. Cuando el inicio de sesión sin contraseña está activo:
-
Los administradores pueden crear usuarios sin contraseñas. La plantilla de mensaje de invitación predeterminada cambia para dejar de incluir el marcador de posición de la
{###}
contraseña. Para obtener más información, consulte Creación de cuentas de usuario como administrador. -
En el caso de SignUplas operaciones basadas en el SDK, los usuarios no están obligados a proporcionar una contraseña al registrarse. El inicio de sesión administrado y la interfaz de usuario alojada requieren una contraseña en la página de registro, incluso si se permite la autenticación sin contraseña. Para obtener más información, consulte Inscripción y confirmación de cuentas de usuario.
-
Los usuarios importados de un archivo CSV pueden iniciar sesión inmediatamente con opciones sin contraseña, sin necesidad de restablecer la contraseña, si sus atributos incluyen una dirección de correo electrónico o un número de teléfono para una opción de inicio de sesión sin contraseña disponible. Para obtener más información, consulte Importación de usuarios en grupos de usuarios desde un archivo CSV.
-
La autenticación sin contraseña no invoca el activador Lambda de migración de usuarios.
-
Los usuarios que inician sesión con un primer factor sin contraseña no pueden añadir un factor de autenticación multifactor (MFA) a su sesión. Solo los flujos de autenticación basados en contraseñas admiten MFA.
-
- La persona que confía en la clave de acceso no URLs puede figurar en la lista pública de sufijos
-
Puedes usar los nombres de dominio de tu propiedad, por ejemplo
www.example.com
, como ID de la parte que confía (RP) en la configuración de tu clave de paso. Esta configuración está pensada para admitir aplicaciones personalizadas que se ejecutan en dominios de tu propiedad. La lista pública de sufijos, o PSL, contiene dominios de alto nivel protegidos. Amazon Cognito devuelve un error cuando intenta establecer la URL de RP en un dominio de la PSL.
Temas
Duración del flujo de la sesión de autenticación
En función de las características de su grupo de usuarios, puede terminar respondiendo a varios desafíos RespondToAuthChallenge
antes de que su aplicación InitiateAuth
recupere los tokens de Amazon Cognito. Amazon Cognito incluye una cadena de sesión en la respuesta a cada solicitud. Para combinar las solicitudes de la API en un flujo de autenticación, incluya la cadena de sesión de la respuesta a la solicitud anterior en cada solicitud posterior. De forma predeterminada, los usuarios tienen tres minutos para completar cada desafío antes de que caduque la cadena de sesión. Para ajustar este periodo, cambie el cliente de la aplicación Duración de la sesión de flujo de autenticación. En el siguiente procedimiento, se describe cómo cambiar esta configuración en la configuración del cliente de la aplicación.
nota
La configuración de la duración de la sesión del flujo de autenticación se aplica a la autenticación con la API de los grupos de usuarios de Amazon Cognito. El inicio de sesión administrado establece la duración de la sesión en 3 minutos para la autenticación multifactorial y 8 minutos para los códigos de restablecimiento de contraseñas.
Para obtener más información acerca de los clientes de aplicación, consulte Ajustes específicos de una aplicación en los clientes de aplicación.
Comportamiento de bloqueo en caso de intentos de inicio de sesión fallidos
Tras cinco intentos fallidos de inicio de sesión no autenticados o autorizados por IAM con una contraseña, Amazon Cognito bloquea al usuario durante un segundo. La duración del bloqueo se duplica después de cada intento fallido adicional, hasta un máximo de aproximadamente 15 minutos. Los intentos realizados durante un periodo de bloqueo generan una excepción Password attempts exceeded
y no afectan a la duración de los periodos de bloqueo posteriores. Para un número acumulado de intentos de inicio de sesión con error n, sin incluir las excepciones Password attempts
exceeded
, Amazon Cognito bloquea a su usuario durante 2^(n-5) segundos. Para restablecer el bloqueo a su estado inicial n=0, su usuario debe iniciar sesión correctamente después de que venza un periodo de bloqueo, o no iniciar ningún intento de inicio de sesión durante 15 minutos consecutivos en cualquier momento después de un bloqueo. Este comportamiento está sujeto a cambios. Este comportamiento no se aplica a los desafíos personalizados, a menos que también realicen una autenticación basada en contraseña.
Un ejemplo de sesión de autenticación
El diagrama y la step-by-step guía siguientes ilustran un escenario típico en el que un usuario inicia sesión en una aplicación. La aplicación de ejemplo presenta al usuario varias opciones de inicio de sesión. Para seleccionar una de ellas, introduce sus credenciales, proporciona un factor de autenticación adicional e inicia sesión.

Imagine una aplicación con una página de inicio de sesión en la que los usuarios puedan iniciar sesión con un nombre de usuario y una contraseña, solicitar un código de un solo uso en un mensaje de correo electrónico o elegir una opción de huella digital.
-
Solicitud de inicio de sesión: la aplicación muestra una pantalla de inicio con un botón de inicio de sesión.
-
Solicitar inicio de sesión: el usuario selecciona Iniciar sesión. Desde una cookie o una memoria caché, la aplicación recupera su nombre de usuario o les pide que lo introduzcan.
-
Opciones de solicitud: tu aplicación solicita las opciones de inicio de sesión del usuario mediante una solicitud de
InitiateAuth
API con elUSER_AUTH
flujo, en la que se solicitan los métodos de inicio de sesión disponibles para el usuario. -
Enviar opciones de inicio de sesión: Amazon Cognito responde
PASSWORD
conEMAIL_OTP
, y.WEB_AUTHN
La respuesta incluye un identificador de sesión para que lo reproduzca en la siguiente respuesta. -
Opciones de visualización: la aplicación muestra los elementos de la interfaz de usuario para que el usuario introduzca su nombre de usuario y contraseña, obtenga un código de un solo uso o escanee su huella digital.
-
Elija una opción/Introduzca las credenciales: el usuario introduce su nombre de usuario y contraseña.
-
Inicie la autenticación: su aplicación proporciona la información de inicio de sesión del usuario con una solicitud de
RespondToAuthChallenge
API que confirma el inicio de sesión con nombre de usuario y contraseña y proporciona el nombre de usuario y la contraseña. -
Validar las credenciales: Amazon Cognito confirma las credenciales del usuario.
-
Desafío adicional: el usuario tiene la autenticación multifactorial configurada con una aplicación de autenticación. Amazon Cognito devuelve un
SOFTWARE_TOKEN_MFA
desafío. -
Solicitud de impugnación: su aplicación muestra un formulario en el que se solicita una contraseña de un solo uso (TOTP) basada en el tiempo desde la aplicación de autenticación del usuario.
-
Responda al desafío: el usuario envía el TOTP.
-
Responda a la impugnación: en otra
RespondToAuthChallenge
solicitud, su aplicación proporciona el TOTP del usuario. -
Validar la respuesta al desafío: Amazon Cognito confirma el código del usuario y determina que su grupo de usuarios está configurado para no plantear desafíos adicionales al usuario actual.
-
Emitir tokens: Amazon Cognito devuelve los tokens web JSON de ID, acceso y actualización ()JWTs. La autenticación inicial del usuario está completa.
-
Almacene los tokens: su aplicación almacena en caché los tokens del usuario para poder hacer referencia a los datos del usuario, autorizar el acceso a los recursos y actualizar los tokens cuando caduquen.
-
Representa contenido autorizado: tu aplicación determina el acceso del usuario a los recursos en función de su identidad y funciones, y entrega el contenido de la aplicación.
-
Acceder al contenido: el usuario ha iniciado sesión y comienza a usar la aplicación.
-
Solicitar contenido con un token caducado: posteriormente, el usuario solicita un recurso que requiere autorización. El token almacenado en caché del usuario ha caducado.
-
Tokens de actualización: tu aplicación realiza una
InitiateAuth
solicitud con el token de actualización guardado por el usuario. -
Emitir fichas: Amazon Cognito devuelve un nuevo ID y acceso. JWTs La sesión del usuario se actualiza de forma segura sin solicitar credenciales adicionales.
Puede usar AWS Lambda activadores para personalizar la forma en que los usuarios se autentican. Estos disparadores emiten y verifican sus propios desafíos durante el flujo de autenticación.
También puede utilizar el flujo de autenticación de administrador para servidores backend seguros. Puede utilizar el flujo de autenticación de la migración de usuarios para posibilitar la migración de los usuarios sin la necesidad de que estos restablezcan sus contraseñas.