

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
<a name="cognito-user-pools-oidc-idp"></a>

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](cognito-user-pools-working-with-lambda-triggers.md#lambda-triggers-for-federated-users).

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](authorization-endpoint.md).

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\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/images/flow-cup-oidc-endpoints.png)


Consulte [Flujo de autenticación de proveedores de identidad (IdP) de grupos de usuarios OIDC](cognito-user-pools-oidc-flow.md) 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](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html)

**Topics**
+ [Requisitos previos](#cognito-user-pools-oidc-idp-prerequisites)
+ [Registro de una solicitud con un IdP OIDC](#cognito-user-pools-oidc-idp-step-1)
+ [Agregar un IdP OIDC al grupo de usuarios](#cognito-user-pools-oidc-idp-step-2)
+ [Probar la configuración del proveedor de identidades (IdP) OIDC](#cognito-user-pools-oidc-idp-step-3)
+ [Flujo de autenticación de proveedores de identidad (IdP) de grupos de usuarios OIDC](cognito-user-pools-oidc-flow.md)

## Requisitos previos
<a name="cognito-user-pools-oidc-idp-prerequisites"></a>

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](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).
+ 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](https://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication) 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
<a name="cognito-user-pools-oidc-idp-step-1"></a>

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**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/cognito/latest/developerguide/cognito-user-pools-oidc-idp.html)

1. 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
   ```

1. Seleccione los [ámbitos](cognito-user-pools-define-resource-servers.md#cognito-user-pools-define-resource-servers-about-scopes) 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](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) `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`.

1. 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](https://developer.salesforce.com/signup) en el sitio web de desarrolladores de Salesforce.

1. [Inicie sesión con la cuenta de desarrollador que ha configurado en el paso anterior.](https://developer.salesforce.com)

1. 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.

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

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

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

1. Elija **App Manager (Administrador de aplicaciones)**.

1. 

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

   1. 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
      ```

   1. **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
      ```

1. Seleccione los [ámbitos](https://openid.net/specs/openid-connect-basic-1_0.html#Scopes). Debe incluir el valor **openid** de ámbito. Para conceder acceso a las [reclamaciones](https://openid.net/specs/openid-connect-basic-1_0.html#StandardClaims) **email** y **email\$1verified**, añada el ámbito **email**. Separe los ámbitos por espacios.

1. 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
<a name="cognito-user-pools-oidc-idp-step-2"></a>

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](https://console.aws.amazon.com/cognito/home). Si se le solicita, escriba sus credenciales de AWS .

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

1. Elija un grupo de usuarios existente en la lista o [cree un grupo de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-as-user-directory.html).

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

1. Elija un IdP **OpenID Connect**.

1. Introduzca un **Nombre de proveedor** único.

1. 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`.

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

1. <a name="cognito-user-pools-oidc-step-2-substep-9"></a>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.](https://tools.ietf.org/html/rfc6749#section-3.3)

   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.

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

1. 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á.

1. 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](cognito-user-pools-specifying-attribute-mapping.md).

1. Elija **Agregar proveedores de identidades**.

1. 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 administrado**, seleccione **Editar**. Busque los **proveedores de identidad** y añada su nuevo IdP OIDC.

1. Seleccione **Save changes (Guardar cambios)**.

------
#### [ API/CLI ]

Consulte la configuración del OIDC en el segundo ejemplo en. [CreateIdentityProvider](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_CreateIdentityProvider.html#API_CreateIdentityProvider_Example_2) Puede modificar esta sintaxis y utilizarla como cuerpo de la solicitud `CreateIdentityProvider``UpdateIdentityProvider`, o como archivo de `--cli-input-json` entrada. [create-identity-provider](https://docs.aws.amazon.com/cli/latest/reference/cognito-idp/create-identity-provider.html)

------

## Probar la configuración del proveedor de identidades (IdP) OIDC
<a name="cognito-user-pools-oidc-idp-step-3"></a>

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](cognito-user-pools-assign-domain.md). Para obtener más información sobre los clientes de aplicaciones, incluidos el cliente IDs y la devolución de llamada URLs, consulte[Ajustes específicos de una aplicación en los clientes de aplicación](user-pool-settings-client-apps.md).

El siguiente enlace de ejemplo configura la redirección silenciosa al proveedor `MyOIDCIdP` desde el [Autorizar punto de conexión](authorization-endpoint.md) 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
```