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

Puede permitir que los usuarios que ya tienen cuentas con los proveedores de identidad de OpenID Connect (OIDC) (IdPs) se salten el paso de registro e inicien sesión en la aplicación con una cuenta existente. Con la IU web alojada e incorporada, Amazon Cognito proporciona el control y la administración de los tokens de los usuarios autenticados por todos los proveedores de identidad. De esta forma, los sistemas backend pueden estandarizar un conjunto de tokens para los grupos de usuarios.

Descripción general de la autenticación con un OIDC IdP
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 a través de grupos de identidades de Amazon Cognito (identidades federadas).

Puede añadir un OIDC IdP a su grupo de usuarios mediante el método AWS Management Console de grupo API 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 OIDC IdP con la siguiente configuración:

    • Admite la autenticación del cliente client_secret_post. Amazon Cognito no comprueba la token_endpoint_auth_methods_supported reclamación de su IDP en el punto final de OIDC detección. 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 se usa HTTPS para OIDC puntos de enlace comoopenid_configuration, yuserInfo. jwks_uri

    • Solo utiliza TCP los puertos 80 y 443 para los puntos OIDC finales.

    • Solo firma los identificadores con los RSA algoritmos HMAC - SHAECDSA, o.

    • 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 raíz válida.

Paso 1: Registrarse con un OIDC IdP

Antes de crear un OIDC IdP con Amazon Cognito, debe registrar la aplicación con el OIDC IdP para recibir un ID de cliente y un secreto de cliente.

Para registrarse con un OIDC IdP
  1. Cree una cuenta de desarrollador con el OIDC IdP.

    Enlaces a OIDC IdPs
    OIDCIdP Instalación OIDCDescubrimiento URL
    Salesforce

    Instalar un proveedor de identidad Salesforce

    https://login.salesforce.com

    Ping Identity

    Instalar un proveedor de identidad Ping Identity

    https://Your Ping domain address:9031/idp/userinfo.openid

    Por ejemplo: https://pf.company.com:9031/idp/userinfo.openid

    Okta

    Instalar un proveedor de identidad Okta

    https://Your Okta subdomain.oktapreview.com

    o bien https://Your Okta subdomain.okta.com

    Microsoft Azure Active Directory (Azure AD)

    Instalar un proveedor de identidad Microsoft Azure AD

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

    Google

    Instalar un proveedor de identidad Google

    https://accounts.google.com

    nota

    Amazon Cognito ofrece la opción de elegir a Google como proveedor de identidad social integrado para iniciar sesión. Le recomendamos que utilice el proveedor de identidad integrado. Consulte Usar proveedores de identidad social con un grupo de usuarios.

  2. Registre el dominio de su grupo de URL usuarios en el /oauth2/idpresponse punto final con su OIDC IdP. Esto garantiza que el OIDC IDP lo acepte más adelante de Amazon Cognito cuando autentique a los usuarios.

    https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  3. Registra la devolución de llamada URL en tu grupo de usuarios de Amazon Cognito. Esta es URL la página a la que Amazon Cognito redirige al usuario tras una autenticación correcta.

    https://www.example.com
  4. Seleccione los ámbitos. El ámbito openid es obligatorio. El ámbito email es necesario para conceder acceso a las notificaciones email e email_verified .

  5. El OIDC IdP le proporciona un ID de cliente y un secreto de cliente. Los usará cuando configure un OIDC IdP en su grupo de usuarios.

Ejemplo: utilice Salesforce como un OIDC IdP con su grupo de usuarios

Utiliza un OIDC IdP cuando quiere establecer confianza entre un IdP OIDC compatible, como Salesforce, y su 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 Inicio URL, introduzca un URL en el /authorize punto final del dominio del grupo de usuarios que inicia sesión con su IdP de Salesforce. Cuando sus usuarios accedan a su aplicación conectada, Salesforce los dirige a ella para completar el inicio de sesiónURL. A continuación, Salesforce redirige a los usuarios a la función de devolución de llamada URL que ha asociado al cliente de su aplicación.

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

      https://mydomain.us-east-1.amazoncognito.com/oauth2/idpresponse
  8. Seleccione los ámbitos. Debe incluir el valor openid de ámbito. Para conceder acceso a las notificaciones email e 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.

Paso 2: Agregue un OIDC IdP a su grupo de usuarios

En esta sección, configura su grupo de usuarios para procesar las solicitudes de autenticación OIDC basadas de un OIDC IdP.

Para añadir un OIDC IdP (consola de Amazon Cognito)

Añadir un OIDC IdP
  1. Vaya a la consola de Amazon Cognito. Si se le solicita, introduzca sus AWS credenciales.

  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. Elija la pestaña Sign-in experience (Experiencia de inicio de sesión). Localice Federated sign-in (Inicio de sesión federado) y luego seleccione Add an identity provider (Agregar un proveedor de identidad).

  5. Elija un IdP OpenID Connect.

  6. Introduzca un nombre único en Provider name (Nombre de proveedor).

  7. Introduzca el ID de cliente que recibió de su proveedor en Client ID (ID de cliente).

  8. Introduzca el secreto de cliente que recibió de su proveedor en Client Secret (Secreto de cliente).

  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 especificación OAuth2.0.

    Al usuario de la aplicación se le pedirá su consentimiento para proporcionar estos atributos a su aplicación.

  10. Elija un método de solicitud de atributos para proporcionar a Amazon Cognito el HTTP método (uno GET o variosPOST) que debe utilizar para obtener los detalles del usuario desde el userInfopunto de enlace gestionado por su proveedor.

  11. Elija un método de configuración para recuperar los puntos finales de OpenID Connect, ya sea rellenándolos automáticamente por el emisor URL o ingresándolos manualmente. Utilice el rellenado automático del emisor URL cuando su proveedor tenga un .well-known/openid-configuration punto de conexión público en el que Amazon Cognito pueda recuperar URLs los puntos de authorization enlacetoken,userInfo, jwks_uri y.

  12. Introduzca el emisor URL oauthorization, tokenuserInfo, y el jwks_uri punto final URLs de su IdP.

    nota

    URLDebe empezar con una https:// barra y no debe terminar con ella. / Para URL ello, solo se pueden utilizar los puertos 443 y 80. Por ejemplo, Salesforce usa estoURL:

    https://login.salesforce.com

    Si elige el llenado automático, el documento de descubrimiento debe utilizar HTTPS los siguientes valores: authorization_endpointtoken_endpoint,userinfo_endpoint, yjwks_uri. De lo contrario, el inicio de sesión fallará.

  13. De forma predeterminada, la OIDC subnotificación se asigna al atributo Nombre de usuario del grupo de usuarios. Puede asignar otras OIDC notificaciones a los atributos del grupo de usuarios. Introduzca la OIDC reclamación y elija el atributo del grupo de usuarios correspondiente en la lista desplegable. Por ejemplo, a la notificación email (correo electrónico) se le suele asignar el atributo de grupo de usuarios Email (Correo electrónico).

  14. Asigne atributos de su IdP al grupo de usuarios. Para obtener más información, consulte Especificación de asignaciones de atributos del proveedor de identidad para su grupo de usuarios.

  15. Seleccione Crear.

  16. DelIntegración de clientes de aplicaciones, elija uno de los Clientes de aplicaciones en la lista y Edit hosted UI settings (Modificar la configuración de IU). Agregue el nuevo OIDC IdP al cliente de la aplicación en Proveedores de identidad.

  17. Elija Guardar cambios.

Para agregar un OIDC IdP ()AWS CLI

  • Consulte las descripciones de los parámetros del CreateIdentityProviderAPImétodo.

    aws cognito-idp create-identity-provider --user-pool-id string --provider-name string --provider-type OIDC --provider-details map --attribute-mapping string --idp-identifiers (list) --cli-input-json string --generate-cli-skeleton string

    Utilice este mapa de detalles de proveedor:

    { "client_id": "string", "client_secret": "string", "authorize_scopes": "string", "attributes_request_method": "string", "oidc_issuer": "string", "authorize_url": "string", "token_url": "string", "attributes_url": "string", "jwks_uri": "string" }

Paso 3: Pruebe la configuración de su OIDC IdP

Puede crear la autorización URL utilizando los elementos de las dos secciones anteriores y utilizarlos para probar la configuración de su OIDC IdP.

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

Puede encontrar el dominio en la página de la consola Domain name (Nombre de dominio) del grupo de usuarios. El client_id se encuentra en la página General settings (Configuración general). Usa tu callback URL para el parámetro redirect_uri. Esta es la página a URL la que se redirigirá al usuario tras una autenticación correcta.