

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# O endpoint de atributos do usuário
<a name="userinfo-endpoint"></a>

Quando o OIDC emite tokens de ID que contêm atributos do usuário, o OAuth 2.0 implementa o endpoint. `/oauth2/userInfo` Um usuário ou cliente autenticado recebe um token de acesso com uma reivindicação `scopes`. Essa reivindicação determina os atributos que o servidor de autorização deve retornar. Quando uma aplicação apresenta um token de acesso ao endpoint `userInfo`, o servidor de autorização retorna um corpo de resposta que contém os atributos do usuário que estão dentro dos limites definidos pelos escopos do token de acesso. Essa aplicação pode recuperar informações sobre um usuário a partir do endpoint `userInfo`, desde que tenha um token de acesso válido com pelo menos uma reivindicação de escopo `openid`.

O endpoint `userInfo` é um [endpoint userInfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) do OpenID Connect (OIDC). Ele responde com atributos do usuário quando os provedores de serviço apresentam os tokens de acesso que seu [endpoint do](token-endpoint.md) emitiu. Os escopos no token de acesso do usuário definem os atributos do usuário que o endpoint userInfo retorna em sua resposta. O escopo `openid` deve ser uma das reivindicações do token de acesso.

O Amazon Cognito emite tokens de acesso em resposta a solicitações de API dos grupos de usuários, 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 elas não contêm escopos, o endpoint userInfo não aceita esses tokens de acesso. Em vez disso, você deve apresentar os tokens de acesso do endpoint de token.

Seu provedor de identidade terceirizado (IdP) OAuth 2.0 também hospeda um userInfo endpoint. Quando o usuário faz a autenticação com esse IdP, o Amazon Cognito troca silenciosamente um código de autorização com o endpoint `token` do IdP. Seu grupo de usuários passa o token de acesso do IdP para autorizar a recuperação das informações do usuário do endpoint `userInfo` do IdP.

Os escopos no token de acesso de um usuário são determinados pelo parâmetro de solicitação `scopes` nas solicitações de autenticação ou pelos escopos que o [acionador do Lambda de pré-geração de tokens](user-pool-lambda-pre-token-generation.md) adiciona. Você pode decodificar tokens de acesso e examinar as declarações `scope` para ver os escopos de controle de acesso que elas contêm. A seguir estão algumas combinações de escopo que influenciam os dados retornados do endpoint `userInfo`. O escopo reservado do Amazon Cognito `aws.cognito.signin.user.admin` não afeta os dados retornados desse endpoint.Exemplos de escopos no token de acesso e seus efeitos na resposta `userInfo`

**`openid`**  
Retorna uma resposta com todos os atributos do usuário que o cliente de aplicação pode ler.

**`openid profile`**  
Retorna os atributos do usuário `name`, `family_name`, `given_name`, `middle_name`, `nickname`, `preferred_username`, `profile`, `picture`, `website`, `gender`, `birthdate`, `zoneinfo`, `locale` e `updated_at`. Também retorna [atributos personalizados](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). Em clientes da aplicação que não têm acesso de leitura a cada atributo, a resposta a esse escopo inclui todos os atributos da especificação aos quais o cliente de aplicação tem acesso de leitura.

**`openid email`**  
Retorna informações básicas do perfil e os atributos `email` e `email_verified`.

**`openid phone`**  
Retorna informações básicas do perfil e os atributos `phone_number` e `phone_number_verified`.

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

A aplicação gera solicitações para este endpoint diretamente, não por meio de um navegador.

Para ter mais informações, consulte [Endpoint UserInfo](http://openid.net/specs/openid-connect-core-1_0.html#UserInfo) na especificação do OpenID Connect (OIDC).

**Topics**
+ [GET /oauth2/userInfo](#get-userinfo)
+ [Parâmetros de solicitação no cabeçalho](#get-userinfo-request-header-parameters)
+ [Exemplo - solicitação](#get-userinfo-positive-exchanging-authorization-code-for-userinfo-sample-request)
+ [Exemplo - resposta positiva](#get-userinfo-response-sample)
+ [Exemplo - respostas negativas](#get-userinfo-negative)

## Parâmetros de solicitação no cabeçalho
<a name="get-userinfo-request-header-parameters"></a>

**`Authorization: Bearer <access_token>`**  
Repasse o token de acesso no campo do cabeçalho da autorização.  
Obrigatório.

## Exemplo - solicitação
<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
```

## Exemplo - resposta 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 obter uma lista de solicitações OIDC, consulte [Solicitações padrão](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). No momento, o Amazon Cognito retorna os valores para `email_verified` e `phone_number_verified` como strings.

## Exemplo - respostas negativas
<a name="get-userinfo-negative"></a>

### Exemplo - solicitação inválida
<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`**  
A solicitação não possui um parâmetro obrigatório, inclui um valor de parâmetro não compatível ou contém informações incorretas.

### Exemplo - token inválido
<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`**  
O token de acesso está expirado, revogado, informado incorretamente ou inválido.