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 OAuth compatible con -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 JSON web (JWTs) 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 asocias a tu 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. Puedes hacer que la experiencia de usuario de la interfaz de usuario alojada se adapte a tu marca con tu propio logotipo y CSS personalización. 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 lo utilizas AWS Amplify para añadir autenticación a 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 tu aplicación, utilizas AWS Amplify CLI para añadir la Auth categoría a tu 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.

Puedes mostrar una interfaz de usuario alojada prediseñada o puedes federar a los usuarios a través de un punto de conexión OAuth 2.0 que redirija a un proveedor de inicio de sesión en redes sociales, como Facebook, Google, Amazon o Apple. Cuando un usuario se autentica correctamente con el proveedor social, AWS Amplify crea un nuevo usuario en tu grupo de usuarios si es necesario y, a continuación, proporciona el token del OIDC usuario a tu aplicación.

En los siguientes ejemplos, se muestra cómo AWS Amplify configurar la interfaz de usuario alojada con los proveedores sociales de tu 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 cliente público normalmente funciona desde los dispositivos de los usuarios y utiliza los no autenticados y los autenticados por token. APIs Por lo general, un cliente confidencial funciona desde una aplicación en un servidor central en el que se confían los secretos y API las credenciales del cliente, y utiliza encabezados y credenciales de autorización para firmar las solicitudes. AWS Identity and Access Management 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. Agrega una devolución de llamada URL en la sección de devoluciones de llamada URL permitidas. Una devolución de llamada URL es el lugar al que se redirige al usuario después de iniciar sesión correctamente.

  3. Agrega un cierre de sesión en Cerrar sesión (s) URL permitida (s). URL El cierre de sesión URL es el lugar al que se redirige al usuario después de cerrar sesión.

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

  5. En los tipos de concesión OAuth 2.0, selecciona Concesión de código de autorización para obtener un código de autorización que luego se intercambiará por fichas de grupo 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, te recomendamos que utilices el flujo de concesión de códigos de autorización, junto con la clave de prueba para el código Exchange (PKCE), para las aplicaciones móviles.

  6. En Tipos de subvenciones OAuth 2.0, seleccione Concesión implícita para que Amazon Cognito le devuelva los tokens JSON web del grupo de usuarios (JWT). 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 llamada de la lista para URL el cliente de la 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 su inicio de sesión URL 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, debes personalizar lo URL que invoca tu aplicación cuando inicia sesión con tus 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 formatoURL. 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, puedes identificar el cliente de la aplicaciónIDs, su devolución de llamadaURLs, sus ámbitos permitidos y otras configuraciones en Clientes de aplicaciones y análisis.

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 URL que omite la interfaz de usuario alojada, consulte. SAMLinicio de sesión 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 lo siguiente URL para ver la concesión de código implícita dónde. 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 identificadores de identidad y acceso aparecen como parámetros adjuntos a tu redireccionamiento. URL

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 mediante un RS256 algoritmo. Para decodificar y verificar los tokens del grupo de usuarios AWS Lambda, consulte Decodificar y verificar los tokens de Amazon JWT Cognito en. GitHub

La interfaz de usuario alojada y la versión TLS

La interfaz de usuario alojada requiere el cifrado en tránsito. Los dominios de grupos de usuarios que proporciona Amazon Cognito requieren una TLS versión mínima de 1.2. Los dominios personalizados son compatibles con la TLS versión 1.2, pero no la requieren. 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 TLS los requisitos del dominio de su grupo de usuarios.

La interfaz de usuario alojada y las políticas CORS

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

Cookies alojadas de interfaz de usuario y servidor de autorización

Los puntos finales del grupo de usuarios de Amazon Cognito configuran cookies en los navegadores de los usuarios. Las cookies cumplen con los requisitos de algunos navegadores de que los sitios no instalen cookies de terceros. Están dirigidas únicamente a los puntos finales de su grupo de usuarios e incluyen lo siguiente:

  • Una XSRF-TOKEN cookie para cada solicitud.

  • Una csrf-state cookie para garantizar la coherencia de la sesión cuando se redirige a un usuario.

  • Cookie de cognito sesión que conserva los intentos de inicio de sesión correctos durante una hora.