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 de Lambda que organicen su propia secuencia de desafíos y respuestas. Son flujos de autenticación. En los flujos de autenticación, los usuarios proporcionan un secreto y Amazon Cognito lo verifica; luego, emite tokens web JSON (JWT) para que las aplicaciones los procesen con las bibliotecas de OIDC. En este capítulo se describe cómo configurar los grupos de usuarios y los clientes de aplicaciones para varios flujos de autenticación en distintos entornos de aplicaciones. En él se describen las opciones para el uso de las páginas de inicio de sesión alojadas del inicio de sesión gestionado y para crear una lógica y una interfaz propias 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.
A fin de 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 enviadas por correo electrónico y SMS, y claves de acceso.
Antes de configurar los detalles, elija el enfoque de autenticación que mejor se adapte a su aplicación. La siguiente ayuda para la toma de decisiones resume los dos puntos de entrada y, dentro de una aplicación personalizada, los dos flujos de inicio de sesión iniciales. Cada opción enlaza con su sección detallada.
- ¿Desea que Amazon Cognito aloje las páginas de inicio de sesión o cree su propia interfaz?
-
Si desea utilizar la ruta de menor esfuerzo, utilice el inicio de sesión administrado. Amazon Cognito aloja las páginas de inicio, cierre y restablecimiento de contraseñas, y la aplicación procesa el resultado con una biblioteca de terceros de OpenID Connect (OIDC). El inicio de sesión gestionado presenta automáticamente los métodos de autenticación que permite la configuración del grupo de usuarios y del cliente de la aplicación.
Si quieres crear tu propia interfaz de usuario y controlar la lógica de inicio de sesión, usa un AWS SDK. Tu aplicación llama directamente a la API de grupos de usuarios y tú implementas la lógica de desafío-respuesta.
- En una aplicación personalizada, ¿se recopila el método de inicio de sesión del usuario o se declara por adelantado?
-
Elige la autenticación basada en elecciones (el
USER_AUTHflujo) si quieres ofrecer a los usuarios una lista de los métodos de inicio de sesión disponibles y permitirles seleccionar uno. Este flujo es la única forma de ofrecer un inicio de sesión sin contraseña y con clave de paso.Elige la autenticación basada en el cliente cuando tu aplicación ya sepa cómo va a iniciar sesión el usuario y declare el flujo por adelantado, por ejemplo.
USER_SRP_AUTHClient-basedla autenticación es la única forma de utilizar los flujos personalizados de autenticación y actualización de los tokens. - Requisitos previos para la autenticación basada en elecciones
-
Choice-based la autenticación se aplica tanto al inicio de sesión gestionado como a los SDK. AWS Para usarla, añádala
ALLOW_USER_AUTHa los flujos de autenticación permitidos del cliente de la aplicación. Los métodos sin contraseña y con clave de paso también requieren un dominio de inicio de sesión administrado y un plan de funciones superior al nivel Lite (Essentials o Plus).
Temas
Application-specific configuración con clientes de aplicaciones
Factores que debe tener en cuenta sobre la autenticación con grupos de usuarios
Configuración de los métodos de autenticación para el inicio de sesión administrado
Inicio de sesión en el grupo de usuarios con proveedores de identidad externos
Un ejemplo de sesión de autenticación
El siguiente diagrama y la guía paso a paso 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 opción, el usuario debe introducir sus credenciales, proporcionar un factor de autenticación adicional e iniciar 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.
-
Sign-in aviso: 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 desde la memoria caché, la aplicación recupera su nombre de usuario o le pide que lo introduzca.
-
Opciones de solicitud: su aplicación solicita las opciones de inicio de sesión del usuario mediante una solicitud de API
InitiateAuthcon el flujoUSER_AUTH, en la que se solicitan los métodos de inicio de sesión disponibles para el usuario. -
Envío de opciones de inicio de sesión: Amazon Cognito responde con
PASSWORD,EMAIL_OTPyWEB_AUTHN. La respuesta incluye un identificador de sesión para que lo reproduzca en la siguiente respuesta. -
Opciones de visualización: su 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 option/Enter las credenciales: el usuario introduce su nombre de usuario y contraseña.
-
Inicio de la autenticación: su aplicación proporciona la información de inicio de sesión del usuario con una solicitud de API
RespondToAuthChallengeque confirma el inicio de sesión con nombre de usuario y contraseña y proporciona el nombre de usuario y la contraseña. -
Validación de las credenciales: Amazon Cognito confirma las credenciales del usuario.
-
Desafío adicional: el usuario tiene la autenticación multifactor configurada con una aplicación de autenticación. Amazon Cognito devuelve un desafío
SOFTWARE_TOKEN_MFA. -
Petición del desafío: la aplicación muestra un formulario en el que se solicita una contraseña temporal de un solo uso (TOTP) desde la aplicación de autenticación del usuario.
-
Respuesta al desafío: el usuario envía la TOTP.
-
Responder al desafío: en otra solicitud
RespondToAuthChallenge, su aplicación proporciona la TOTP del usuario. -
Validación de 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.
-
Emisión de tokens: Amazon Cognito devuelve los tokens web JSON (JWT) de ID, acceso y actualización. La autenticación inicial del usuario está completa.
-
Almacenamiento de 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.
-
Representación de contenido autorizado: su aplicación determina el acceso del usuario a los recursos en función de su identidad y roles, y entrega el contenido de la aplicación.
-
Acceso al contenido: el usuario ha iniciado sesión y comienza a usar la aplicación.
-
Solicitud de contenido con un token caducado: posteriormente, el usuario solicita un recurso que requiere autorización. El token en caché del usuario ha caducado.
-
Tokens de actualización: su aplicación hace una solicitud
InitiateAuthcon el token de actualización guardado por el usuario. -
Emisión de tokens: Amazon Cognito devuelve un nuevo ID y accede a JWT. La sesión del usuario se actualiza de forma segura sin solicitar credenciales adicionales.
Puede usar activadores AWS Lambda 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 usar el flujo de autenticación del administrador para proteger los servidores back-end. Puede utilizar el flujo de autenticación de la migración de usuarios para posibilitar la migración de los usuarios sin necesidad de que estos restablezcan sus contraseñas.