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.
Funcionamiento de la autenticación con Amazon Cognito
Cuando un cliente inicia sesión en un grupo de usuarios de Amazon Cognito, su aplicación recibe tokens web JSON (JWT).
Cuando un cliente inicia sesión en un grupo de identidades, ya sea con un token de un grupo de usuarios o de otro proveedor, su aplicación recibe credenciales temporales de AWS.
Con el inicio de sesión en un grupo de usuarios, puede implementar la autenticación y la autorización por completo con un AWS SDK. Si no desea crear sus propios componentes de interfaz de usuario (IU), puede invocar una interfaz de usuario web prediseñada (el inicio de sesión administrado) o la página de inicio de sesión de su proveedor de identidades (IdP) externo.
En este tema se ofrece información general sobre algunas de las formas en que la aplicación puede interactuar con Amazon Cognito para la autenticación con tokens de identificación, la autorización con tokens de acceso y el acceso a los Servicios de AWS con credenciales de un grupo de identidades.
Temas
Autenticación de grupos de usuarios con inicio de sesión administrado
El inicio de sesión administrado es un sitio web que está vinculado a su grupo de usuarios y al cliente de aplicación. Puede realizar operaciones de inicio de sesión, registro y restablecimiento de contraseñas para los usuarios. La implementación de una aplicación con un componente de inicio de sesión administrado para la autenticación puede requerir menos esfuerzo por parte del desarrollador. Una aplicación puede omitir los componentes de la interfaz de usuario para la autenticación e invocar en el navegador del usuario las páginas web del inicio de sesión administrado.
Las aplicaciones recopilan los JWT de los usuarios con una ubicación de redireccionamiento web o de aplicación. Las aplicaciones que implementan el inicio de sesión administrado pueden conectarse a grupos de usuarios para tareas de autenticación como si fueran un IdP OpenID Connect (OIDC).
El inicio de sesión administrado encaja bien en un modelo en el que las aplicaciones requieren los servicios de autenticación de un servidor de autorización OIDC, pero no necesitan inmediatamente características como la autenticación personalizada, la integración de grupos de identidades o el autoservicio de atributos de usuario. Si desea utilizar algunas de estas opciones avanzadas, puede implementarlas con un componente de grupos de usuarios para un SDK.
El inicio de sesión administrado y los modelos de autenticación de IdP de terceros, que se basan principalmente en la implementación de OIDC, son los mejores para los modelos de autorización avanzados con ámbitos de OAuth 2.0.
En el siguiente diagrama, se ilustra un inicio de sesión típico para una autenticación de la API.
Flujo de autenticación del inicio de sesión administrado
-
El usuario accede a su aplicación.
-
Selecciona un enlace para iniciar sesión.
-
La aplicación dirige al usuario a una petición de inicio de sesión en las páginas de inicio de sesión administrado del dominio de su grupo de usuarios.
-
Introduce su nombre de usuario y contraseña.
-
El grupo de usuarios valida las credenciales del usuario y determina si el usuario ha activado la autenticación multifactor (MFA).
-
La página del inicio de sesión administrado solicita al usuario que introduzca un código de MFA.
-
El usuario introduce el código de la MFA.
-
El grupo de usuarios redirige al usuario a la URL de la aplicación.
-
La aplicación toma el código de autorización del parámetro de solicitud de URL que el inicio de sesión administrado ha añadido a la URL de devolución de llamada.
-
La aplicación solicita tokens con el código de autorización.
-
El punto de conexión del token devuelve los JWT a la aplicación.
-
La aplicación descodifica, valida y guarda o almacena en caché los JWT del usuario.
-
La aplicación muestra el componente de acceso controlado solicitado.
-
El usuario ve su contenido.
-
Más tarde, el token de acceso del usuario caduca y este solicita ver un componente de acceso controlado.
-
La aplicación determina que la sesión del usuario debe persistir. Solicita nuevos tokens desde el punto de conexión del token con el token de actualización.
Variantes y personalización
Puede personalizar el aspecto de sus páginas de inicio de sesión administrado con el editor de marcas para todo su grupo de usuarios o en cualquier cliente de aplicación. También puede configurar los clientes de aplicación con sus propios proveedores de identidades, ámbitos, acceso a los atributos de usuario y configuración de seguridad avanzada.
Recursos relacionados
Autenticación y autorización de la API de grupos de usuarios con un AWS SDK
AWS ha desarrollado componentes para los grupos de usuarios de Amazon Cognito, o el proveedor de identidades de Amazon Cognito, en diversos marcos de desarrollo. Los métodos integrados en estos SDK llaman a la API de grupos de usuarios de Amazon Cognito. El mismo espacio de nombres de la API de grupos de usuarios contiene operaciones para la configuración de los grupos de usuarios y la autenticación de usuarios. Para obtener una descripción más detallada, consulte Descripción de la autenticación mediante API, OIDC y páginas de inicio de sesión administrado.
La autenticación de la API se ajusta al modelo en el que las aplicaciones tienen componentes de interfaz de usuario y dependen principalmente del grupo de usuarios como directorio de usuarios. Este diseño añade Amazon Cognito como un componente dentro de una aplicación más grande. Requiere lógica de programación para gestionar cadenas complejas de desafíos y respuestas.
Esta aplicación no necesita desplegar una implementación de relación de confianza OpenID Connect (OIDC) completa. En su lugar, tiene la capacidad de descodificar y utilizar los JWT. Cuando desee que los usuarios locales accedan al conjunto completo de características del grupo de usuarios, cree la autenticación con el SDK de Amazon Cognito en su entorno de desarrollo.
La autenticación de la API con ámbitos de OAuth personalizados está menos orientada a la autorización de la API externa. Para añadir ámbitos personalizados a un token de acceso de una autenticación de API, modifique el token en tiempo de ejecución con un Desencadenador de Lambda anterior a la generación del token.
En el siguiente diagrama, se ilustra un inicio de sesión típico para una autenticación de la API.
Flujo de autenticación de la API
-
El usuario accede a su aplicación.
-
Selecciona un enlace para iniciar sesión.
-
Introduce su nombre de usuario y contraseña.
-
La aplicación invoca el método que realiza una solicitud de API InitiateAuth. La solicitud pasa las credenciales del usuario a un grupo de usuarios.
-
El grupo de usuarios valida las credenciales del usuario y determina si el usuario ha activado la autenticación multifactor (MFA).
-
El grupo de usuarios responde con un desafío que solicita un código MFA.
-
La aplicación genera una petición que recopila el código MFA del usuario.
-
La aplicación invoca el método que realiza una solicitud de API RespondToAuthChallenge. La solicitud pasa el código de la MFA del usuario.
-
El grupo de usuarios valida el código de la MFA del usuario.
-
El grupo de usuarios responde con los JWT del usuario.
-
La aplicación descodifica, valida y guarda o almacena en caché los JWT del usuario.
-
La aplicación muestra el componente de acceso controlado solicitado.
-
El usuario ve su contenido.
-
Más tarde, el token de acceso del usuario caduca y este solicita ver un componente de acceso controlado.
-
La aplicación determina que la sesión del usuario debe persistir. Vuelve a invocar el método InitiateAuth con el token de actualización y recupera nuevos tokens.
Variantes y personalización
Puede incrementar este flujo con desafíos adicionales, por ejemplo, desafíos de autenticación personalizados propios. Puede restringir automáticamente el acceso a los usuarios cuyas contraseñas se hayan visto comprometidas o cuyas características de inicio de sesión inesperadas puedan indicar un intento de inicio de sesión malintencionado. Este flujo tiene prácticamente el mismo aspecto para las operaciones de registro, actualización de los atributos de los usuarios y restablecimiento de contraseñas. La mayoría de estos flujos tienen operaciones de API públicas (de cliente) y confidenciales (de servidor) duplicadas.
Recursos relacionados
Autenticación del grupo de usuarios con un proveedor de identidades de terceros
El inicio de sesión con un proveedor de identidades (IdP) externo, o una autenticación federada, es un modelo similar al del inicio de sesión administrado. Su aplicación es una relación de confianza de OIDC con su grupo de usuarios, mientras que su grupo de usuarios sirve de acceso a un IdP. El IdP puede ser un directorio de usuarios de consumidores, como Facebook o Google, o un directorio empresarial de SAML 2.0 u OIDC, como Azure.
En lugar de utilizar el inicio de sesión administrado en el navegador del usuario, la aplicación invoca un punto de conexión de redireccionamiento en el servidor de autorización del grupo de usuarios. Desde el punto de vista del usuario, este selecciona el botón de inicio de sesión de la aplicación. A continuación, su IdP le pide que inicie sesión. Al igual que ocurre con las autenticaciones del inicio de sesión administrado, una aplicación toma los JWT en una ubicación de redireccionamiento de la aplicación.
La autenticación con un IdP de terceros se ajusta a un modelo en el que los usuarios quizá no deseen crear una nueva contraseña cuando se registren en su aplicación. La autenticación de terceros se puede añadir fácilmente a una aplicación que tenga implementada la autenticación del inicio de sesión administrado. De hecho, el inicio de sesión administrado y los IdP de terceros generan un resultado de autenticación coherente a partir de pequeñas variaciones en aquello que se invoca en los navegadores de los usuarios.
Al igual que ocurre con las autenticaciones de inicio de sesión administrado, la autenticación federada es la más adecuada para los modelos de autorización avanzados con ámbitos de OAuth 2.0.
En el siguiente diagrama, se muestra un inicio de sesión típico de autenticación federada.
Flujo de autenticación federado
-
El usuario accede a su aplicación.
-
Selecciona un enlace para iniciar sesión.
-
La aplicación dirige al usuario a una petición de inicio de sesión con su IdP.
-
Introduce su nombre de usuario y contraseña.
-
El ldP valida las credenciales del usuario y determina si el usuario ha activado la autenticación multifactor (MFA).
-
El IdP solicita al usuario que introduzca un código de MFA.
-
El usuario introduce el código de la MFA.
-
El IdP redirige al usuario al grupo de usuarios con una respuesta de SAML o un código de autorización.
-
Si el usuario ha conseguido un código de autorización, el grupo de usuarios intercambia silenciosamente el código por los tokens de IdP. El grupo de usuarios valida los tokens de IdP y redirige al usuario a la aplicación con un nuevo código de autorización.
-
La aplicación toma el código de autorización del parámetro de solicitud de URL que el grupo de usuarios ha añadido a la URL de devolución de llamada.
-
La aplicación solicita tokens con el código de autorización.
-
El punto de conexión del token devuelve los JWT a la aplicación.
-
La aplicación descodifica, valida y guarda o almacena en caché los JWT del usuario.
-
La aplicación muestra el componente de acceso controlado solicitado.
-
El usuario ve su contenido.
-
Más tarde, el token de acceso del usuario caduca y este solicita ver un componente de acceso controlado.
-
La aplicación determina que la sesión del usuario debe persistir. Solicita nuevos tokens desde el punto de conexión del token con el token de actualización.
Variantes y personalización
Puede iniciar la autenticación federada en el inicio de sesión administrado, donde los usuarios pueden elegir entre una lista de IdP asignados al cliente de aplicación. El inicio de sesión administrado también puede solicitar una dirección de correo electrónico y dirigir automáticamente la solicitud de un usuario al IdP SAML correspondiente. La autenticación con un proveedor de identidades de terceros no requiere la interacción del usuario con el inicio de sesión administrado. La aplicación puede agregar un parámetro de solicitud a la solicitud del servidor de autorización de un usuario y hacer que el usuario se redirija silenciosamente a su página de inicio de sesión de IdP.
Recursos relacionados
Autenticación del grupo de identidades
Un grupo de identidades es un componente de la aplicación que se diferencia del grupo de usuarios por la función, el espacio de nombres de la API y el modelo de SDK. Mientras que los grupos de usuarios ofrecen autenticación y autorización basadas en tokens, los grupos de identidades ofrecen autorización para AWS Identity and Access Management (IAM).
Puede asignar un conjunto de IdP a grupos de identidades e iniciar sesión en los usuarios con ellos. Los grupos de usuarios están estrechamente integrados como IdP de grupos de identidades y ofrecen a los grupos de identidades la mayoría de las opciones de control de acceso. Al mismo tiempo, existe una amplia selección de opciones de autenticación para los grupos de identidades. Los grupos de usuarios se unen a orígenes de identidades SAML, OIDC, de redes sociales, desarrolladores e invitados como rutas hacia las credenciales temporales de AWS desde los grupos de identidades.
La autenticación con un grupo de identidades es externa: sigue uno de los flujos de grupos de usuarios ilustrados anteriormente o un flujo que se desarrolla de forma independiente con otro IdP. Una vez que la aplicación realiza la autenticación inicial, pasa la prueba a un grupo de identidades y, a cambio, recibe una sesión temporal.
La autenticación con un grupo de identidades se ajusta a un modelo en el que se aplica el control de acceso a los activos y datos de las aplicaciones en los Servicios de AWS con la autorización de IAM. Al igual que ocurre con la autenticación mediante API en los grupos de usuarios, una aplicación eficaz incluye AWS SDK para cada uno de los servicios a los que desee acceder en beneficio de los usuarios. AWS Los SDK aplican como firmas las credenciales de autenticación del grupo de identidades a las solicitudes de API.
En el siguiente diagrama, se ilustra un inicio de sesión típico de autenticación de grupo de identidades con un IdP.
Flujo de autenticación del grupo de identidades
-
El usuario accede a su aplicación.
-
Selecciona un enlace para iniciar sesión.
-
La aplicación dirige al usuario a una petición de inicio de sesión con su IdP.
-
Introduce su nombre de usuario y contraseña.
-
El IdP valida las credenciales del usuario.
-
El IdP redirige al usuario a la aplicación con una respuesta de SAML o un código de autorización.
-
Si el usuario ha pasado un código de autorización, la aplicación intercambia el código por los tokens de IdP.
-
La aplicación descodifica, valida y guarda o almacena en caché la aserción o los JWT del usuario.
-
La aplicación invoca el método que realiza una solicitud de API GetId. Transmite el token o la aserción del usuario y solicita un ID de identidad.
-
El grupo de identidades valida el token o la aserción con respecto a los proveedores de identidades configurados.
-
El grupo de identidades devuelve un ID de identidad.
-
La aplicación invoca el método que realiza una solicitud de API GetCredentialsForIdentity. Transmite la aserción o el token del usuario y solicita un rol de IAM.
-
El grupo de identidades genera un nuevo JWT. El nuevo JWT contiene notificaciones que solicitan un rol de IAM. El grupo de identidades determina el rol en función de la solicitud del usuario y los criterios de selección de roles en la configuración del grupo de identidades del IdP.
-
AWS Security Token Service(AWS STS) responde a la solicitud AssumeRoleWithWebIdentity del grupo de identidades. La respuesta contiene las credenciales de API para una sesión temporal con un rol de IAM.
-
La aplicación almacena las credenciales de sesión.
-
El usuario realiza una acción en la aplicación que requiere recursos con acceso protegido en AWS.
-
La aplicación aplica credenciales temporales como firmas a las solicitudes de API para los Servicios de AWS necesarios.
-
IAM evalúa las políticas asociadas al rol en las credenciales. Las compara con la solicitud.
-
El Servicio de AWS devuelve los datos solicitados.
-
La aplicación representa los datos en la interfaz de usuario.
-
El usuario ve los datos.
Variantes y personalización
Para visualizar la autenticación con un grupo de usuarios, inserte una de las descripciones generales del grupo de usuarios anteriores después del paso Emitir el token o la aserción. La autenticación de desarrollador sustituye todos los pasos previos a Solicitar identidad con una solicitud firmada mediante las credenciales del desarrollador. La autenticación de invitado también pasa directamente a Solicitar identidad, no valida la autenticación y devuelve las credenciales para un rol de IAM de acceso limitado.