Configuración y uso de la interfaz de usuario alojada y los puntos de conexión de federación de 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.

Configuración y uso de la interfaz de usuario alojada y los puntos de conexión de federación de Amazon Cognito

Un grupo de usuarios de Amazon Cognito con un dominio es un servidor de autorización compatible con OAuth-2.0 y una interfaz de usuario (UI) ready-to-use alojada para la autenticación. El servidor de autorización enruta las solicitudes de autenticación, emite y administra los tokens web JSON (JWT) y proporciona información sobre los atributos del usuario. La interfaz de usuario alojada es un conjunto de interfaces web para las actividades básicas de registro, inicio de sesión, autenticación multifactorial y restablecimiento de contraseñas en el grupo de usuarios. También es un centro central para la autenticación con los proveedores de identidad externos (IdPs) que asocie a su aplicación. La aplicación puede invocar la interfaz de usuario alojada y los puntos de conexión de autorización cuando desee autenticar y autorizar a los usuarios. Puede hacer que la experiencia de usuario de la interfaz de usuario alojada se adapte a la marca con el logotipo propio y la personalización de CSS. Para obtener más información sobre los componentes de la interfaz de usuario alojada y el servidor de autorización, consulte Referencia de puntos de conexión de federación de grupo de usuarios e interfaz de usuario alojada.

nota

La interfaz de usuario alojada de Amazon Cognito no admite autenticación personalizada con desencadenadores de Lambda de desafío de autenticación personalizados.

Configurar la interfaz de usuario alojada con AWS Amplify

Si utilizas la autenticación AWS Amplify para tu aplicación web o móvil, puedes configurar la interfaz de usuario alojada mediante la interfaz de línea de comandos (CLI) y las bibliotecas del AWS Amplify marco. Para añadir la autenticación a la aplicación, utilice la CLI de AWS Amplify para añadir la categoría Auth al proyecto. A continuación, en el código de cliente, utiliza las AWS Amplify bibliotecas para autenticar a los usuarios con su grupo de usuarios de Amazon Cognito.

Puede mostrar una interfaz de usuario alojada prediseñada o federar a usuarios a través de un punto de enlace de OAuth 2.0 que redirige a un proveedor de inicio de sesión de redes sociales, como Facebook, Google, Amazon o Apple. Después de que un usuario se autentique correctamente con el proveedor social, AWS Amplify crea un nuevo usuario en el grupo de usuarios si es necesario y proporciona el token de OIDC del usuario a la aplicación.

Los siguientes ejemplos muestran cómo configurar la interfaz AWS Amplify de usuario alojada con los proveedores sociales de su aplicación.

Configuración de la IU alojada con la consola de Amazon Cognito

Creación de un cliente de aplicación
  1. Vaya a la consola de Amazon Cognito. Si se le solicita, introduzca sus AWS credenciales.

  2. Elija User Pools (Grupos de usuarios).

  3. Elija un grupo de usuarios existente en la lista o cree un grupo de usuarios.

  4. Seleccione la pestaña App integration (Integración de aplicaciones).

  5. En App clients (Clientes de aplicaciones), seleccione Create an app client (Crear un cliente de aplicación).

  6. Seleccione un App type (Tipo de aplicación): Public client (Cliente público), Confidential client (Cliente confidencial), o bien Other (Otro). Un Public client (Cliente público) normalmente funciona desde los dispositivos de los usuarios y utiliza API no autenticadas y autenticadas por tokens. Un cliente confidencial normalmente funciona desde una aplicación en un servidor central en el que se confían los secretos del cliente y las credenciales de la API, y utiliza encabezados y AWS Identity and Access Management credenciales de autorización para firmar las solicitudes. Si su caso de uso es diferente de la configuración del cliente de aplicación preconfigurada para un Public client (Cliente público) o un Confidential client (Cliente confidencial), seleccione Other (Otro).

  7. Introduzca un nombre de cliente de aplicación.

  8. Seleccione los Authentication flows (Flujos de autenticación) que quiera permitir en su cliente de aplicaciones.

  9. Configure la Authentication flow session duration (Duración de la sesión de flujo de autenticación). Esta es la cantidad de tiempo que tienen los usuarios para completar cada desafío de autenticación antes de que caduque el token de sesión.

  10. (Opcional) Configure la caducidad del token.

    1. Especifique el Refresh token expiration (Vencimiento del token de actualización) para el cliente de la aplicación. El valor predeterminado es 30 días. Puede cambiarlo por cualquier valor comprendido entre 1 hora y 10 años.

    2. Especifique el Access token expiration (Vencimiento del token de acceso) para el cliente de la aplicación. El valor predeterminado es de 1 hora. Puede cambiarlo por cualquier valor comprendido entre 5 minutos y 24 horas.

    3. Especifique el ID token expiration (Vencimiento del token de ID) para el cliente de la aplicación. El valor predeterminado es de 1 hora. Puede cambiarlo por cualquier valor comprendido entre 5 minutos y 24 horas.

      importante

      Si utiliza la IU alojada y configura la duración del token con menos de una hora, el usuario final podrá obtener nuevos tokens basados en la duración de su cookie de sesión, que, en este momento, está fijada en una hora.

  11. Elija Generate client secret (Generar secreto de cliente) para que Amazon Cognito genere un secreto de cliente para usted. Los secretos de cliente suelen asociarse a clientes confidenciales.

  12. Elija si desea Enable token revocation (Habilitar revocación de tokens) para este cliente de aplicación. Esto aumentará el tamaño de los tokens. Para obtener más información, consulte Revoking Tokens (Revocación de tokens).

  13. Elija si desea Prevent error messages that reveal user existence (Evitar los mensajes de error que revelan la existencia del usuario) para este cliente de aplicación. Amazon Cognito responderá a las solicitudes de inicio de sesión de usuarios inexistentes con un mensaje genérico que indica que el nombre de usuario o la contraseña son incorrectos.

  14. (Opcional) Configure Permisos de lectura y escritura de atributos para este cliente de aplicación. El cliente de aplicaciones puede tener permiso para leer y escribir un subconjunto limitado del esquema de atributos de su grupo de usuarios.

  15. Seleccione Crear.

  16. Anote el Id de cliente. Esto identificará al cliente de aplicación en las solicitudes de registro e inicio de sesión.

Configuración de la aplicación
  1. En el pestaña App integration (Integración de aplicaciones), seleccione su cliente de aplicación en App clients (Clientes de aplicaciones). Revisión de la información actual sobre la Hosted UI (IU alojada).

  2. Add a callback URL (Agregar una URL de devolución de llamada) en Allowed callback URL(s) (Direcciones URL de devolución de llamada permitidas). Una URL de devolución de llamada indica adónde se redirigirá al usuario tras iniciar sesión correctamente.

  3. Add a sign-out URL (Agregar una URL de cierre de sesión) en Allowed sign-out URL(s) (Direcciones URL de cierre de sesión permitidas). Una URL de cierre de sesión indica adónde se redirigirá al usuario después de cerrar la sesión.

  4. Agregue al menos una de las opciones que se muestran de la lista de Identity providers (Proveedores de identidad).

  5. En OAuth 2.0 grant types (Tipos de concesiones OAuth 2.0), seleccione Authorization code grant (Concesión de código de autorización) para devolver un código de autorización que se intercambie por tokens de grupos de usuarios. Debido a que los tokens nunca se exponen directamente a un usuario final, es menos probable que se vean comprometidos. Sin embargo, se requiere una aplicación personalizada en el backend para intercambiar el código de autorización para tokens de grupos de usuarios. Por motivos de seguridad, le recomendamos utilizar el flujo de concesión de código de autorización junto con PKCE (Proof Key for Code Exchange, clave de prueba para intercambio de código) para las aplicaciones móviles.

  6. En Allowed OAuth Flows (Flujos de OAuth 2.0 permitidos), seleccione Implicit grant (Concesión implícita) para que se devuelvan tokens web de JSON (JWT) del grupo de usuarios desde Amazon Cognito. Puede utilizar este flujo cuando no hay un backend disponible para intercambiar un código de autorización para tokens. También es útil para depurar tokens.

  7. Puede habilitar tanto Authorization code grant (Concesión de código de autorización) como Implicit code grant (Concesión de código implícita) y, a continuación, utilizar cada concesión según sea necesario. Si no se seleccionan las concesiones Authorization code (Código de autorización) o Implicit code (Código implícito) y su cliente de aplicación tiene un secreto de cliente, puede habilitar las concesiones de Client credentials (Credenciales del cliente). Seleccione Client credentials (Credenciales del cliente) solo si la aplicación debe solicitar tokens de acceso en su propio nombre y no en nombre de un usuario.

  8. Seleccione los OpenID Connect scopes (Ámbitos OpenID Connect) que desea autorizar para este cliente de aplicación.

  9. Elija Guardar cambios.

Configuración de un dominio
  1. Vaya a la pestaña App integration (Integración de aplicaciones) para su grupo de usuarios.

  2. Junto a Domain (Dominio), elija Actions (Acciones) y seleccione Create custom domain (Crear dominio personalizado) o Create Cognito domain (Crear dominio Cognito). Si ya ha configurado un dominio de grupo de usuarios, elija Delete Cognito domain (Eliminar dominio de Cognito) o Delete custom domain (Eliminar dominio personalizado) antes de crear el nuevo dominio personalizado.

  3. Introduzca un prefijo de dominio disponible para utilizarlo con un Cognito domain (Dominio Cognito). Para obtener información sobre cómo configurar un Custom domain (Dominio personalizado), consulte Uso de un propio dominio con la interfaz de usuario alojada

  4. Seleccione Crear.

Consulta de la página de inicio de sesión

En la consola de Amazon Cognito, seleccione el botón View Hosted UI (Ver IU alojada) en la configuración del cliente de la aplicación, en App clients and analytics (Clientes de aplicaciones y análisis) en la pestaña App integration (Integración de aplicaciones). Este botón le llevará a una página de inicio de sesión en su IU alojada con los siguientes parámetros básicos.

  • El ID de cliente de aplicación.

  • Una solicitud de concesión de código de autorización

  • Una solicitud para todos los ámbitos que ha activado para el cliente de la aplicación actual

  • La primera URL de devolución de llamada de la lista para el cliente de aplicación actual

El botón View hosted UI (Ver IU alojada) es útil cuando se quiere probar las funciones básicas de la interfaz de usuario alojada. Puede personalizar la URL de inicio de sesión con parámetros adicionales y modificados. En la mayoría de casos, los parámetros generados automáticamente del enlace de View hosted UI (Ver IU alojada) no se ajustan completamente a las necesidades de su aplicación. En estos casos, debe personalizar la URL que invoca su aplicación cuando inicia sesión en sus usuarios. Para obtener más información acerca de los parámetros y valores de los parámetros, consulte Referencia de puntos de conexión de federación de grupo de usuarios e interfaz de usuario alojada.

La página web de inicio de sesión de la interfaz de usuario alojada utiliza el siguiente formato. En este ejemplo se solicita la concesión de un código de autorización con el parámetro response_type=code.

https://<your domain>/oauth2/authorize?response_type=code&client_id=<your app client id>&redirect_uri=<your callback url>

Puede recuperar la cadena de dominio del grupo de usuarios desde la pestaña Integración de aplicaciones. En la misma pestaña, puede identificar los ID de los clientes de la aplicación, las URL de devolución de llamadas, los ámbitos permitidos y otras configuraciones en Clientes y análisis de aplicaciones.

Cuando navegue hasta el punto de conexión de /oauth2/authorize con sus parámetros personalizados, Amazon Cognito lo redirige al punto de conexión de /oauth2/login o, si tiene un parámetro identity_provider o idp_identifier, lo redirige silenciosamente a la página de inicio de sesión de su IdP. Para ver un ejemplo de URL que omite la interfaz de usuario alojada, consulte Inicio de sesión SAML en grupos de usuarios de Amazon Cognito.

Solicitud de interfaz de usuario alojada de ejemplo para una adjudicación implícita

Puede ver la página web de inicio de sesión de la interfaz de usuario alojada con la siguiente dirección URL para la adjudicación de código implícita, donde response_type=token. Tras un inicio de sesión correcto, Amazon Cognito devuelve tokens de grupo de usuarios a su barra de direcciones de navegador web.

https://mydomain.us-east-1.amazoncognito.com/authorize?response_type=token&client_id=1example23456789&redirect_uri=https://mydomain.example.com

Los tokens de identidad y acceso aparecen como parámetros adjuntos a la URL de redireccionamiento.

A continuación, se muestra una respuesta de ejemplo de una solicitud de concesión implícita.

https://mydomain.example.com/#id_token=eyJraaBcDeF1234567890&access_token=eyJraGhIjKlM1112131415&expires_in=3600&token_type=Bearer

Información que debe saber sobre la interfaz de usuario alojada en los grupos de usuarios de Amazon Cognito

La interfaz de usuario alojada y la confirmación de los usuarios como administradores

Para los usuarios locales del grupo de usuarios, la interfaz de usuario alojada funciona mejor cuando se configura el grupo de usuarios para Permitir que Cognito envíe mensajes automáticamente para verificar y confirmar. Al habilitar esta configuración, Amazon Cognito envía un mensaje con un código de confirmación a los usuarios que se registren. Si, en cambio, confirma a los usuarios como administradores del grupo de usuarios, la interfaz de usuario alojada muestra un mensaje de error tras el registro. En este estado, Amazon Cognito ha creado el nuevo usuario, pero no ha podido enviar un mensaje de verificación. Aún puede confirmar a los usuarios como administradores, pero es posible que se pongan en contacto con el servicio de asistencia cuando detecten un error. Para obtener más información sobre la confirmación administrativa, consulte Permitir que los usuarios se registren en la aplicación, pero con confirmación del administrador del grupo de usuarios.

Consulta de los cambios en la configuración de la interfaz de usuario alojada

Si los cambios en las páginas de la IU alojada no aparecen inmediatamente, espere unos minutos y, a continuación, actualice la página.

Descodificación de los tokens del grupo de usuarios

Los tokens del grupo de usuarios de Amazon Cognito se firman con un algoritmo RS256. Para decodificar y verificar los tokens del grupo de usuarios AWS Lambda, consulte Decodificar y verificar los tokens JWT de Amazon Cognito en. GitHub

La interfaz de usuario alojada y la versión TLS

La interfaz de usuario alojada requiere una versión 1.0 de TLS como mínimo y es compatible con la versión 1.2 de TLS. Dado que Amazon Cognito administra la configuración de la interfaz de usuario alojada y los puntos de enlace del servidor de autorización, no puede modificar los requisitos de TLS del dominio de su grupo de usuarios.

La interfaz de usuario alojada y las políticas de CORS

La IU alojada de Amazon Cognito no admite políticas de origen de uso compartido de recursos entre orígenes (CORS). Una política CORS en la interfaz de usuario alojada impediría que los usuarios pasaran parámetros de autenticación en sus solicitudes. En su lugar, implemente una política de CORS en la interfaz web de su aplicación. Amazon Cognito devuelve un encabezado de respuesta Access-Control-Allow-Origin: * a las solicitudes a los siguientes puntos de conexión de OAuth.