Uso de proveedores de identidades de OIDC con un grupo de usuarios - 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.

Uso de proveedores de identidades de OIDC con un grupo de usuarios

Los usuarios pueden iniciar sesión en la aplicación con sus cuentas existentes de los proveedores de identidad de OpenID Connect (OIDC) (). IdPs Con los proveedores OIDC, los usuarios de sistemas de inicio de sesión único independientes pueden proporcionar credenciales que ya existen, mientras que su aplicación recibe los tokens de OIDC en el formato compartido de grupos de usuarios. Para configurar un IdP de OIDC, configure su IdP para que gestione su grupo de usuarios como RP y configure su aplicación para que gestione su grupo de usuarios como IdP. Amazon Cognito sirve como paso intermedio entre varios OIDC IdPs y sus aplicaciones. Su grupo de usuarios aplica reglas de asignación de atributos a las reclamaciones que figuran en el identificador y los tokens de acceso que su proveedor transfiere directamente a su grupo de usuarios. A continuación, Amazon Cognito emite nuevos tokens en función de los atributos de usuario asignados y de cualquier ajuste adicional que haya realizado en el flujo de autenticación con los desencadenadores de Lambda.

Los usuarios que inician sesión con un IdP OIDC no están obligados a proporcionar credenciales ni información nuevas para acceder a la aplicación de su grupo de usuarios. La aplicación puede redirigirlos silenciosamente a su IdP para iniciar sesión, con un grupo de usuarios como herramienta en segundo plano que estandariza el formato de token de la aplicación. Para obtener más información sobre la redirección del IdP, consulte Autorizar punto de conexión.

Al igual que ocurre con otros proveedores de identidad de terceros, debe registrar su aplicación en el proveedor de OIDC y obtener información sobre la aplicación de IdP que desea conectar a su grupo de usuarios. Un IdP OIDC de un grupo de usuarios requiere un ID de cliente, un secreto de cliente, los ámbitos que desee solicitar e información sobre los puntos de conexión del servicio del proveedor. Su grupo de usuarios puede descubrir los puntos de conexión de OIDC del proveedor desde un punto de conexión de detección o puede introducirlos manualmente. También debe examinar los tokens de ID de proveedores y crear asignaciones de atributos entre el IdP y los atributos de su grupo de usuarios.

Flujo de autenticación de proveedores de identidad de grupos de usuarios OIDC

Consulte Flujo de autenticación de proveedores de identidad (IdP) de grupos de usuarios OIDC para obtener más información sobre este flujo de autenticación.

nota

El inicio de sesión a través de un tercero (federación) está disponible en los grupos de usuarios de Amazon Cognito. Esta característica es independiente de la federación de OIDC con el grupos de identidades de Amazon Cognito.

Puede añadir un IdP de OIDC a su grupo de usuarios mediante el método API del Consola de administración de AWS grupo de usuarios AWS CLI, o mediante él. CreateIdentityProvider

Requisitos previos

Antes de comenzar, necesitará lo siguiente:

  • Un grupo de usuarios con un cliente de aplicación y un dominio de grupo de usuarios. Para obtener más información, consulte Crear un grupo de usuarios.

  • Un proveedor de identidad OIDC con la siguiente configuración:

    • Admite la autenticación del cliente client_secret_post. Amazon Cognito no comprueba la notificación de token_endpoint_auth_methods_supported en el punto de conexión de detección de OIDC para su IdP. Amazon Cognito no admite la autenticación del cliente client_secret_basic. Para obtener más información acerca de la autenticación del cliente, consulte la sección sobre autenticación del cliente en la documentación de OpenID Connect.

    • Solo utiliza HTTPS para puntos de conexión de OIDC, como openid_configuration, userInfo y jwks_uri.

    • Solo utiliza los puertos TCP 80 y 443 para puntos de conexión de OIDC.

    • Solo firma tokens de ID con algoritmos HMAC-SHA, ECDSA o RSA.

    • Publica una reclamación kid de ID clave en su jwks_uri e incluye una reclamación kid en sus tokens.

    • Presenta una clave pública no caducada con una cadena de confianza de CA de raíz válida.

Registro de una solicitud con un IdP OIDC

Antes de añadir un IdP OIDC a la configuración de su grupo de usuarios y asignarlo a los clientes de aplicación, debe configurar una aplicación de cliente OIDC en su IdP. Su grupo de usuarios es la aplicación del actor de confianza que gestionará la autenticación con su IdP.

Para registrarse en un proveedor de identidad OIDC
  1. Crear una cuenta de desarrollador con el proveedor de identidad OIDC.

    Enlaces al OIDC IdPs
    Proveedor de identidad OIDC Instalación URL de detección de OIDC
    Salesforce

    Salesforce as an OpenID Connect Identity Provider

    https://MyDomainName.my.salesforce.com/.well-known/openid-configuration

    OneLogin Connect an OIDC enabled app

    https://your-domain.onelogin.com/oidc/2/.well-known/openid-configuration

    JumpCloud SSO with OIDC

    https://oauth.id.jumpcloud.com/.well-known/openid-configuration

    Okta

    Instalar un proveedor de identidad Okta

    https://Your Okta subdomain.okta.com/.well-known/openid-configuration

    ID de Microsoft Entra

    OpenID Connect on the Microsoft identity platform

    https://login.microsoftonline.com/{tenant}/v2.0

    Los valores de tenant pueden incluir un ID de inquilino, common, organizations o consumers.

  2. Registre la URL de dominio del grupo de usuarios con el punto de enlace /oauth2/idpresponse en el proveedor de identidad OIDC. De este modo, se garantiza que el proveedor de identidad OIDC la aceptará cuando Amazon Cognito la presente para autenticar usuarios.

    https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Seleccione los ámbitos que desee que su directorio de usuarios compartan con su grupo de usuarios. El scope openid es obligatorio para que OIDC IdPs pueda ofrecer cualquier información de usuario. El ámbito email concede acceso a las reclamaciones email y email_verified. Los ámbitos adicionales de la especificación OIDC son profile para todos los atributos de usuario y phone para phone_number y phone_number_verified.

  4. El proveedor de identidad OIDC le proporciona un ID y un secreto de cliente. Anote estos valores y agréguelos a la configuración del IdP OIDC que agregue a su grupo de usuarios más adelante.

Ejemplo: Utilizar Salesforce como un proveedor de identidad OIDC con el grupo de usuarios

Puede utilizar un IdP OIDC cuando desee establecer una relación de confianza entre un IdP compatible con OIDC como Salesforce y un grupo de usuarios.

  1. Cree una cuenta en el sitio web de desarrolladores de Salesforce.

  2. Inicie sesión con la cuenta de desarrollador que ha configurado en el paso anterior.

  3. En la página de Salesforce, realice alguna de las operaciones siguientes:

    • Si utiliza Lightning Experience, elija el icono de engranaje de configuración y, a continuación, elija Setup Home (Inicio de configuración).

    • Si utiliza Salesforce Classic y ve la opción Setup (Configuración) en el encabezado de la interfaz de usuario, elíjala.

    • Si utiliza Salesforce Classic y no aparece la opción Setup (Configuración) en el encabezado, elija su nombre en la barra de navegación superior y elija Setup (Configuración) en la lista desplegable.

  4. En la barra de navegación de la izquierda, elija Company Settings (Configuración de la empresa).

  5. En la barra de navegación, elija Domain (Dominio), introduzca un dominio y elija Create (Crear).

  6. En la barra de navegación izquierda, en Platform Tools (Herramientas de plataforma) y elija Apps (Aplicaciones).

  7. Elija App Manager (Administrador de aplicaciones).

    1. Elija New connected app (Nueva aplicación conectada).

    2. Rellene los campos según sea necesario.

      En Start URL (URL de inicio), ingrese una URL en el punto de conexión /authorize del dominio del grupo de usuarios que inicia sesión con su IdP de Salesforce. Cuando los usuarios acceden a la aplicación conectada, Salesforce los dirige a esta URL para completar el inicio de sesión. A continuación, Salesforce redirige a los usuarios a la URL de devolución de llamada que ha asociado a su cliente de aplicación.

      https://mydomain.auth.us-east-1.amazoncognito.com/authorize?response_type=code&client_id=<your_client_id>&redirect_uri=https://www.example.com&identity_provider=CorpSalesforce
    3. Activa la OAuth configuración e introduce la URL del /oauth2/idpresponse punto final del dominio de tu grupo de usuarios en Callback URL. Esta es la URL en la que Salesforce emite el código de autorización que Amazon Cognito intercambia por OAuth un token.

      https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/idpresponse
  8. Seleccione los ámbitos. Debe incluir el valor openid de ámbito. Para conceder acceso a las reclamaciones email y email_verified, añada el ámbito email. Separe los ámbitos por espacios.

  9. Seleccione Crear.

    En Salesforce, el ID de cliente se denomina Consumer Key (Clave de consumidor)y el secreto de cliente se llama Consumer Secret (Secreto de consumidor). Observe los valores del ID de cliente y el secreto de cliente. Los usará en la sección siguiente.

Agregar un IdP OIDC al grupo de usuarios

Después de configurar el IdP, puede configurar el grupo de usuarios para que gestione las solicitudes de autenticación con un IdP OIDC.

Amazon Cognito console
Adición de un IdP OIDC en la consola
  1. Vaya a la consola de Amazon Cognito. Si se le solicita, escriba sus credenciales de AWS .

  2. Elija User Pools (Grupos de usuarios) en el menú de navegación.

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

  4. Seleccione el menú Proveedores sociales y externos y, a continuación, seleccione Agregar un proveedor de identidades.

  5. Elija un IdP OpenID Connect.

  6. Introduzca un Nombre de proveedor único.

  7. Escriba el ID de cliente del IdP. Este es el ID del cliente de aplicación que ha creado en su IdP OIDC. El ID de cliente que proporcione debe ser un proveedor OIDC que haya configurado con una URL de devolución de llamada de https://[your user pool domain]/oauth2/idpresponse.

  8. Introduzca el Secreto de cliente del IdP. Debe ser el secreto de cliente del mismo cliente de aplicación del paso anterior.

  9. Introduzca los Ámbitos autorizados para este proveedor. Los ámbitos definen qué grupos de atributos de usuario (tales como name y email) serán solicitados por su aplicación al proveedor. Los ámbitos deben estar separados por espacios, siguiendo la OAuth especificación 2.0.

    Es posible que el IdP solicite a los usuarios que estén de acuerdo con proporcionar estos atributos a su aplicación al iniciar sesión.

  10. Elija un método de solicitud de atributos. IdPspuede requerir que las solicitudes a sus userInfo puntos finales tengan el formato de oGET. POST El punto de conexión userInfo de Amazon Cognito requiere solicitudes HTTP GET, por ejemplo.

  11. Elija un Método de configuración para la forma en que desee que su grupo de usuarios determine la ruta a los puntos de conexión clave de federación de OIDC en su IdP. Por lo general, IdPs aloja un /well-known/openid-configuration punto final en la URL base del emisor. Si este es el caso de su proveedor, la opción Completar automáticamente a través de la URL del emisor le solicitará la URL base, intentará acceder a la ruta /well-known/openid-configuration desde allí y leerá los puntos de conexión que aparezcan. Es posible que tenga rutas de punto de conexión atípicas o que desee pasar las solicitudes a uno o más puntos de conexión a través de un proxy alternativo. En ese caso, seleccione Entrada manual y especifique las rutas para los puntos de conexión authorization, token, userInfo y jwks_uri.

    nota

    La URL debe comenzar por https:// y no debe terminar con una barra /. Solo se pueden utilizar los números de puerto 443 y 80 con esta URL. Por ejemplo, Salesforce usa esta URL:

    https://login.salesforce.com

    Si elige autorrellenar, el documento de detección debe utilizar HTTPS para los siguientes valores: authorization_endpoint, token_endpoint, userinfo_endpoint y jwks_uri. De lo contrario, el inicio de sesión fallará.

  12. Configure sus reglas de asignación de atributos en Asignar atributos entre su proveedor de OpenID Connect y su grupo de usuarios. Atributo de grupo de usuarios es el atributo de destino en el perfil de usuario de Amazon Cognito, y el atributo de OpenID Connect es el atributo de origen que queremos que Amazon Cognito busque en una reclamación con ID y token o en una respuesta a userInfo. Amazon Cognito asigna automáticamente la reclamación OIDC del tipo sub en username en el perfil de usuario de destino.

    Para obtener más información, consulte Asignación de atributos de IdP a perfiles y tokens.

  13. Elija Agregar proveedores de identidades.

  14. En el menú Clientes de aplicación, seleccione un cliente de aplicación de la lista. Vaya a la pestaña Páginas de inicio de sesión y, en Configuración de páginas de inicio de sesión administradas, seleccione Editar. Busque los proveedores de identidad y añada su nuevo IdP OIDC.

  15. Seleccione Save changes (Guardar cambios).

API/CLI

Consulte la configuración del OIDC en el segundo ejemplo en. CreateIdentityProvider Puede modificar esta sintaxis y utilizarla como cuerpo de la solicitud CreateIdentityProviderUpdateIdentityProvider, o como archivo de --cli-input-json entrada. create-identity-provider

Probar la configuración del proveedor de identidades (IdP) OIDC

En su aplicación, debe invocar un navegador en el cliente del usuario para que pueda iniciar sesión con su proveedor OIDC. Pruebe el inicio de sesión con su proveedor después de haber completado los procedimientos de configuración de las secciones anteriores. El siguiente ejemplo de URL carga la página de inicio de sesión de su grupo de usuarios con un dominio de prefijo.

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

Este enlace es la página a la que Amazon Cognito lo dirige cuando va al menú Clientes de aplicación, selecciona un cliente de aplicación, navega a la pestaña Páginas de inicio de sesión y selecciona Ver página de inicio de sesión. Para obtener más información sobre los dominios del grupo de usuarios, consulte Configuración de un dominio del grupo de usuarios. Para obtener más información sobre los clientes de aplicaciones, incluidos el cliente IDs y la devolución de llamada URLs, consulteAjustes específicos de una aplicación en los clientes de aplicación.

El siguiente enlace de ejemplo configura la redirección silenciosa al proveedor MyOIDCIdP desde el Autorizar punto de conexión con el parámetro de consulta identity_provider. Esta URL omite el inicio de sesión interactivo del grupo de usuarios con el inicio de sesión administrado y va directamente a la página de inicio de sesión del IdP.

https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?identity_provider=MyOIDCIdP&response_type=code&client_id=1example23456789&redirect_uri=https://www.example.com