Cómo funciona la autenticación con Amazon Cognito - Amazon Cognito

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.

Cómo funciona la autenticación con Amazon Cognito

Cuando el cliente inicia sesión en un grupo de usuarios de Amazon Cognito, la aplicación recibe los tokens JSON web ()JWTs.

Cuando su cliente inicia sesión en un grupo de identidades, ya sea con un token de grupo de usuarios u otro proveedor, su aplicación recibe AWS credenciales temporales.

Con el inicio de sesión en un grupo de usuarios, puede implementar la autenticación y la autorización completamente con un AWS SDK. Si no desea crear sus propios componentes de interfaz de usuario (UI), puede invocar una interfaz de usuario web prediseñada (la interfaz de usuario alojada) o la página de inicio de sesión de su proveedor de identidad (IdP) externo.

En este tema se ofrece información general sobre algunas de las formas en que su aplicación puede interactuar con Amazon Cognito para autenticarse con tokens de identificación, autorizar con tokens de acceso y acceder Servicios de AWS con credenciales de grupo de identidades.

APIAutenticación y autorización de grupos de usuarios con un AWS SDK

AWS ha desarrollado componentes para los grupos de usuarios de Amazon Cognito, o el proveedor de identidad de Amazon Cognito, en una variedad de marcos de desarrollo. Los métodos integrados en ellos se SDKs denominan grupos de usuarios de Amazon Cognito. API El mismo espacio de API nombres de grupos de usuarios tiene operaciones para la configuración de los grupos de usuarios y para la autenticación de usuarios. Para obtener una descripción más detallada, consulte. Uso de los grupos de usuarios API y el servidor de autorización

APIla autenticación se ajusta al modelo en el que las aplicaciones tienen componentes de interfaz de usuario existentes y se basan principalmente en el 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 una lógica programática para gestionar cadenas complejas de desafíos y respuestas.

Esta aplicación no necesita implementar una implementación completa de OpenID Connect (OIDC) como parte de confianza. En cambio, tiene la capacidad de decodificar y usar. JWTs Cuando desee acceder al conjunto completo de funciones del grupo de usuarios para los usuarios locales, cree su autenticación con Amazon Cognito SDK en su entorno de desarrollo.

APIla autenticación con OAuth ámbitos personalizados está menos orientada a la autorización externaAPI. Para añadir ámbitos personalizados a un token de acceso a partir de la API autenticación, modifique el token en tiempo de ejecución con un. Desencadenador de Lambda anterior a la generación del token

El siguiente diagrama ilustra una sesión de inicio de sesión típica para API la autenticación.

Diagrama de flujo que muestra una aplicación que solicita al usuario que introduzca datos e inicia sesión con un. AWS SDK
APIflujo de autenticación
  1. Un usuario accede a tu aplicación.

  2. Seleccionan un enlace de «Iniciar sesión».

  3. Introducen su nombre de usuario y contraseña.

  4. La aplicación invoca el método que realiza la InitiateAuthAPIsolicitud. La solicitud pasa las credenciales del usuario a un grupo de usuarios.

  5. El grupo de usuarios valida las credenciales del usuario y determina que el usuario ha activado la autenticación multifactorial ()MFA.

  6. El grupo de usuarios responde con un desafío que solicita un MFA código.

  7. La aplicación genera un mensaje que recopila el MFA código del usuario.

  8. La aplicación invoca el método que realiza la RespondToAuthChallengeAPIsolicitud. La solicitud pasa el MFA código del usuario.

  9. El grupo de usuarios valida el MFA código del usuario.

  10. El grupo de usuarios responde con el del JWTs usuario.

  11. La aplicación decodifica, valida y almacena o almacena en caché los del usuario. JWTs

  12. La aplicación muestra el componente de acceso controlado solicitado.

  13. El usuario ve su contenido.

  14. Más tarde, el token de acceso del usuario ha caducado y este solicita ver un componente de acceso controlado.

  15. La aplicación determina que la sesión del usuario debe persistir. Vuelve a invocar el InitiateAuthmétodo con el token de actualización y recupera nuevos tokens.

Variantes y personalización

Puede aumentar este flujo con desafíos adicionales, por ejemplo, sus propios desafíos de autenticación personalizados. 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 públicas (del lado del cliente) y confidenciales (del lado del servidor) duplicadas. API

Autenticación de grupos de usuarios con la interfaz de usuario alojada

La interfaz de usuario alojada es un sitio web que está vinculado a su grupo de usuarios y al cliente de la aplicación. Puede realizar operaciones de inicio de sesión, registro y restablecimiento de contraseñas para sus usuarios. La implementación de una aplicación con un componente de interfaz de usuario alojado 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 la interfaz de usuario alojada en el navegador del usuario.

Las aplicaciones recopilan a los usuarios JWTs con una ubicación de redireccionamiento web o de aplicación. Las aplicaciones que implementan la interfaz de usuario alojada pueden conectarse a grupos de usuarios para autenticarse como si se tratara de un IdP de OIDC OpenID Connect ().

La autenticación de la interfaz de usuario alojada se ajusta al modelo en el que las aplicaciones necesitan un servidor de autorización, pero no necesitan funciones como la autenticación personalizada, la integración de grupos de identidades o el autoservicio de atributos de usuario. Cuando desee utilizar algunas de estas opciones avanzadas, puede implementarlas con un componente de grupos de usuarios como unSDK.

La interfaz de usuario alojada y los modelos de autenticación de IdP de terceros, que se basan principalmente en OIDC la implementación, son los mejores para los modelos de autorización avanzados con alcances OAuth 2.0.

El siguiente diagrama ilustra una sesión de inicio de sesión típica para la autenticación de la interfaz de usuario alojada.

Un diagrama de flujo que muestra una aplicación que solicita a un usuario que introduzca datos e inicia sesión con la interfaz de usuario alojada.
Flujo de autenticación de la interfaz de usuario
  1. Un usuario accede a tu aplicación.

  2. Seleccionan un enlace de «Iniciar sesión».

  3. La aplicación dirige al usuario a una ventana de inicio de sesión alojada en la interfaz de usuario.

  4. Introduce su nombre de usuario y contraseña.

  5. El grupo de usuarios valida las credenciales del usuario y determina que el usuario ha activado la autenticación multifactorial ()MFA.

  6. La interfaz de usuario alojada solicita al usuario que introduzca un código. MFA

  7. El usuario introduce su MFA código.

  8. La interfaz de usuario alojada redirige al usuario a la aplicación.

  9. La aplicación recopila el código de autorización del parámetro de URL solicitud que la interfaz de usuario alojada adjuntó a la devolución de llamada. URL

  10. La aplicación solicita los tokens con el código de autorización.

  11. El punto final del token vuelve JWTs a la aplicación.

  12. La aplicación decodifica, valida y almacena o almacena en caché los del usuario. JWTs

  13. La aplicación muestra el componente de acceso controlado solicitado.

  14. El usuario ve su contenido.

  15. Más tarde, el token de acceso del usuario ha caducado y este solicita ver un componente de acceso controlado.

  16. La aplicación determina que la sesión del usuario debe persistir. Solicita nuevos tokens desde el punto final del token con el token de actualización.

Variantes y personalización

Puedes personalizar el aspecto de la interfaz de usuario alojada CSS en cualquier cliente de aplicaciones. También puede configurar los clientes de aplicaciones con sus propios proveedores de identidad, ámbitos, acceso a los atributos de usuario y configuración de seguridad avanzada.

Autenticación de grupos de usuarios con un proveedor de identidad externo

El inicio de sesión con un proveedor de identidad (IdP) externo, o autenticación federada, es un modelo similar al de la interfaz de usuario alojada. Su aplicación es una parte OIDC que depende de 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 puede ser un directorio SAML 2.0 o OIDC empresarial, como Azure.

En lugar de utilizar la interfaz de usuario alojada en el navegador del usuario, la aplicación invoca un punto final de redireccionamiento en el servidor de autorización del grupo de usuarios. Desde el punto de vista del usuario, este elige el botón de inicio de sesión de la aplicación. A continuación, su IdP les pide que inicien sesión. Al igual que ocurre con la autenticación de la interfaz de usuario alojada, una aplicación recopila datos JWTs 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 es posible que los usuarios no quieran crear una nueva contraseña cuando se registren en su aplicación. La autenticación de terceros se puede añadir con poco esfuerzo a una aplicación que haya implementado la autenticación de interfaz de usuario alojada. En efecto, la interfaz de usuario alojada y la de terceros IdPs generan un resultado de autenticación coherente a partir de pequeñas variaciones en lo que se invoca en los navegadores de los usuarios.

Al igual que la autenticación de la interfaz de usuario alojada, la autenticación federada es la mejor para los modelos de autorización avanzados con alcances OAuth 2.0.

El siguiente diagrama ilustra una sesión de inicio de sesión típica para la autenticación federada.

Diagrama de flujo que muestra una aplicación que solicita al usuario que introduzca datos e inicia sesión con un IdP de terceros.
Flujo de autenticación federada
  1. Un usuario accede a su aplicación.

  2. Seleccionan un enlace de «Iniciar sesión».

  3. La aplicación dirige al usuario a un mensaje de inicio de sesión con su IdP.

  4. Introducen su nombre de usuario y contraseña.

  5. El IdP valida las credenciales del usuario y determina que el usuario ha activado la autenticación multifactor (). MFA

  6. El IdP solicita al usuario que introduzca un código. MFA

  7. El usuario introduce su código. MFA

  8. El IdP redirige al usuario al grupo de usuarios con una SAML respuesta o un código de autorización.

  9. Si el usuario pasó 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.

  10. La aplicación recopila el código de autorización del parámetro de URL solicitud que el grupo de usuarios adjuntó a la devolución de llamada. URL

  11. La aplicación solicita los tokens con el código de autorización.

  12. El punto final del token vuelve JWTs a la aplicación.

  13. La aplicación decodifica, valida y almacena o almacena en caché los del usuario. JWTs

  14. La aplicación muestra el componente de acceso controlado solicitado.

  15. El usuario ve su contenido.

  16. Más tarde, el token de acceso del usuario ha caducado y este solicita ver un componente de acceso controlado.

  17. La aplicación determina que la sesión del usuario debe persistir. Solicita nuevos tokens desde el punto final del token con el token de actualización.

Variantes y personalización

Puedes iniciar la autenticación federada en la interfaz de usuario alojada, donde los usuarios pueden elegir entre una lista de las IdPs que has asignado a tu cliente de aplicación. La interfaz de usuario alojada también puede solicitar una dirección de correo electrónico y dirigir automáticamente la solicitud de un usuario al SAML IdP correspondiente. La autenticación con un proveedor de identidad externo no requiere la interacción del usuario con la interfaz de usuario alojada. 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 lo redirija silenciosamente a la página de inicio de sesión de su IdP.

Autenticación de grupos de

Un grupo de identidades es un componente de la aplicación que se diferencia de un grupo de usuarios en cuanto a función, espacio de API nombres y SDK modelo. Mientras que los grupos de usuarios ofrecen autenticación y autorización basadas en fichas, los grupos de identidades ofrecen autorización para (). AWS Identity and Access Management IAM

Puede asignar un conjunto de grupos de IdPs identidades e iniciar sesión con los usuarios con ellos. Los grupos de usuarios están estrechamente integrados como grupos de identidades IdPs 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 fuentes de identidad sociales SAMLOIDC, de desarrolladores e invitados como rutas hacia las AWS credenciales temporales de los grupos de identidades.

La autenticación con un grupo de identidades es externa: sigue uno de los flujos del grupo 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 impone el control de acceso a los activos y datos de las aplicaciones Servicios de AWS con IAM autorización. Al igual que APIocurre con la autenticación en grupos de usuarios, una aplicación AWS SDKs adecuada incluye todos los servicios a los que desee acceder en beneficio de sus usuarios. AWS SDKsaplique las credenciales de la autenticación del grupo de identidades como firmas a API las solicitudes.

El siguiente diagrama ilustra una sesión de inicio de sesión típica para la autenticación del grupo de identidades con un IdP.

Diagrama de flujo que muestra una aplicación que solicita al usuario que introduzca datos e inicia sesión con un IdP de terceros.
Flujo de autenticación federada
  1. Un usuario accede a su aplicación.

  2. Seleccionan un enlace de «Iniciar sesión».

  3. La aplicación dirige al usuario a un mensaje de inicio de sesión con su IdP.

  4. Introducen su nombre de usuario y contraseña.

  5. El IdP valida las credenciales del usuario.

  6. El IdP redirige al usuario a la aplicación con una SAML respuesta o un código de autorización.

  7. Si el usuario pasó un código de autorización, la aplicación lo intercambia por tokens de IdP.

  8. La aplicación decodifica, valida y almacena o almacena en caché la afirmación o afirmación del usuario. JWTs

  9. La aplicación invoca el método que realiza la solicitud. GetIdAPI Transmite el token o la afirmación del usuario y solicita un identificador de identidad.

  10. El grupo de identidades valida el token o la afirmación con respecto a los proveedores de identidad configurados.

  11. El grupo de identidades devuelve un identificador de identidad.

  12. La aplicación invoca el método que realiza la GetCredentialsForIdentityAPIsolicitud. Transmite el token o las afirmaciones del usuario y solicita un IAM rol.

  13. El grupo de identidades genera un nuevoJWT. El nuevo JWT contiene afirmaciones que solicitan un IAM rol. 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 para el IdP.

  14. AWS Security Token Service (AWS STS) responde a la AssumeRoleWithWebIdentitysolicitud del grupo de identidades. La respuesta contiene API las credenciales para una sesión temporal con un IAM rol.

  15. La aplicación almacena las credenciales de la sesión.

  16. El usuario realiza una acción en la aplicación que requiere la entrada de recursos con acceso protegido. AWS

  17. La aplicación aplica las credenciales temporales como firmas a las API solicitudes de lo necesario. Servicios de AWS

  18. IAMevalúa las políticas asociadas a la función en las credenciales. Las compara con la solicitud.

  19. Servicio de AWS Devuelve los datos solicitados.

  20. La aplicación representa los datos en la interfaz de usuario.

  21. 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 del desarrollador reemplaza todos los pasos anteriores a la solicitud de identidad por una solicitud firmada con 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 acceso limitadoIAM.