

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.

# El punto de conexión de los atributos de usuario
<a name="userinfo-endpoint"></a>

Cuando OIDC emite fichas de identificación que contienen atributos de usuario, la OAuth versión 2.0 implementa el punto final. `/oauth2/userInfo` Un usuario o cliente autenticado recibe un token de acceso con una notificación `scopes`. Esta notificación determina los atributos que debe devolver el servidor de autorización. Cuando una aplicación presenta un token de acceso al punto de conexión `userInfo`, el servidor de autorización devuelve en el cuerpo de la respuesta los atributos del usuario que entran en los límites establecidos por los ámbitos del token de acceso. La aplicación puede recuperar información sobre un usuario desde el punto de conexión `userInfo` siempre que disponga de un token de acceso válido que tenga al menos una notificación de ámbito `openid`.

El punto de conexión `userInfo` es un [punto de conexión userInfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) de OpenID Connect (OIDC). Responde con los atributos de usuario cuando los proveedores de servicios presentan tokens de acceso que su [punto de conexión de token](token-endpoint.md) ha emitido. Los ámbitos del token de acceso de su usuario definen los atributos de usuario que el punto de conexión userInfo devuelve en su respuesta. El ámbito `openid` debe ser una de las notificaciones del token de acceso.

Amazon Cognito emite tokens de acceso en respuesta a solicitudes de la API de grupos de usuarios como [https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html](https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_InitiateAuth.html). Como no contienen ningún ámbito, el punto de conexión userInfo no acepta estos tokens de acceso. En su lugar, debe presentar los tokens de acceso desde el punto de conexión del token.

Su proveedor de identidad (IdP) externo OAuth 2.0 también aloja un userInfo punto final. Cuando su usuario se autentica con ese IdP, Amazon Cognito intercambia silenciosamente un código de autorización con el punto de conexión `token` del IdP. Su grupo de usuarios pasa el token de acceso del IdP para autorizar la recuperación de la información del usuario desde el punto de conexión `userInfo` del IdP.

Los ámbitos en el token de acceso de un usuario vienen determinados por el parámetro de solicitud `scopes` en las solicitudes de autenticación o por los ámbitos que añade el [desencadenador de Lambda Antes de la generación del token](user-pool-lambda-pre-token-generation.md). Puede decodificar los tokens de acceso y examinar las reclamaciones `scope` para ver los ámbitos de control de acceso que contienen. A continuación, encontrará algunas combinaciones de ámbitos que influyen en los datos devueltos desde el punto de conexión `userInfo`. El ámbito reservado `aws.cognito.signin.user.admin` de Amazon Cognito no afecta a los datos devueltos desde este punto de conexión.Ejemplos de los ámbitos del token de acceso y su efecto en la respuesta de `userInfo`

**`openid`**  
Devuelve una respuesta con todos los atributos de usuario que el cliente de la aplicación puede leer.

**`openid profile`**  
Devuelve los atributos de usuario `name`, `family_name`, `given_name`, `middle_name`, `nickname`, `preferred_username`, `profile`, `picture`, `website`, `gender`, `birthdate`, `zoneinfo`, `locale` y `updated_at`. También devuelve [atributos personalizados](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). En los clientes de aplicación que no tienen acceso de lectura a cada atributo, la respuesta a este ámbito son todos los atributos de la especificación a los que el cliente de aplicación sí tiene acceso de lectura.

**`openid email`**  
Devuelve la información de perfil básica y los atributos `email` y `email_verified`.

**`openid phone`**  
Devuelve la información de perfil básica y los atributos `phone_number` y `phone_number_verified`.

## GET /oauth2/userInfo
<a name="get-userinfo"></a>

Su aplicación genera solicitudes a este punto de conexión directamente, sin pasar por un navegador.

Para obtener más información, consulte el tema sobre el [punto de conexión UserInfo](http://openid.net/specs/openid-connect-core-1_0.html#UserInfo) en la especificación OpenID Connect (OIDC).

**Topics**
+ [GET /oauth2/userInfo](#get-userinfo)
+ [Parámetros de la solicitud en el encabezado](#get-userinfo-request-header-parameters)
+ [Ejemplo: Solicitud](#get-userinfo-positive-exchanging-authorization-code-for-userinfo-sample-request)
+ [Ejemplo: Respuesta positiva](#get-userinfo-response-sample)
+ [Ejemplo: Respuestas negativas](#get-userinfo-negative)

## Parámetros de la solicitud en el encabezado
<a name="get-userinfo-request-header-parameters"></a>

**`Authorization: Bearer <access_token>`**  
Pasa el token de acceso en el campo de encabezado de autorización.  
Obligatorio.

## Ejemplo: Solicitud
<a name="get-userinfo-positive-exchanging-authorization-code-for-userinfo-sample-request"></a>

```
GET /oauth2/userInfo HTTP/1.1
Content-Type: application/x-amz-json-1.1
Authorization: Bearer eyJra12345EXAMPLE
User-Agent: [User agent]
Accept: */*
Host: auth.example.com
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
```

## Ejemplo: Respuesta positiva
<a name="get-userinfo-response-sample"></a>

```
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: [Integer]
Date: [Timestamp]
x-amz-cognito-request-id: [UUID]
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Server: Server
Connection: keep-alive
{
    "sub": "[UUID]",
    "email_verified": "true",
    "custom:mycustom1": "CustomValue",
    "phone_number_verified": "true",
    "phone_number": "+12065551212",
    "email": "bob@example.com",
    "username": "bob"
}
```

Para obtener una lista de las notificaciones OIDC, consulte el tema sobre [notificaciones estándar](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). Actualmente, Amazon Cognito devuelve los valores para `email_verified` y `phone_number_verified` como cadenas.

## Ejemplo: Respuestas negativas
<a name="get-userinfo-negative"></a>

### Ejemplo: Respuesta incorrecta
<a name="get-userinfo-negative-400"></a>

```
HTTP/1.1 400 Bad Request
WWW-Authenticate: error="invalid_request",
error_description="Bad OAuth2 request at UserInfo Endpoint"
```

**`invalid_request`**  
Falta un parámetro obligatorio en la solicitud; la solicitud incluye un valor de parámetro no admitido o tiene un formato incorrecto.

### Ejemplo: Token incorrecto
<a name="get-userinfo-negative-401"></a>

```
HTTP/1.1 401 Unauthorized
WWW-Authenticate: error="invalid_token",
error_description="Access token is expired, disabled, or deleted, or the user has globally signed out."
```

**`invalid_token`**  
El token de acceso ha caducado, se ha revocado, no tiene el formato correcto o no es válido.