

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# L'endpoint degli attributi utente
<a name="userinfo-endpoint"></a>

Laddove OIDC emette token ID che contengono attributi utente, OAuth 2.0 implementa l'endpoint. `/oauth2/userInfo` Un utente o client autenticato riceve un token di accesso con un claim. `scopes` Questa affermazione determina gli attributi che il server di autorizzazione deve restituire. Quando un'applicazione presenta un token di accesso all'`userInfo`endpoint, il server di autorizzazione restituisce un corpo di risposta che contiene gli attributi utente che rientrano nei limiti stabiliti dagli ambiti del token di accesso. L'applicazione può recuperare informazioni su un utente dall'`userInfo`endpoint purché disponga di un token di accesso valido con almeno un requisito di ambito. `openid`

L'endpoint `userInfo` è un [endpoint userInfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) OpenID Connect (OIDC). [Risponde con gli attributi utente quando i provider di servizi presentano i token di accesso emessi dall'endpoint del token.](token-endpoint.md) Gli ambiti nel token di accesso dell'utente definiscono gli attributi utente restituiti dall'endpoint userInfo nella sua risposta. L'ambito `openid` deve essere una delle richieste del token di accesso.

Amazon Cognito emette token di accesso in risposta a richieste API dei pool di utenti come [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). Poiché non contengono alcun ambito, l'endpoint userInfo non accetta questi token di accesso. È invece necessario presentare i token di accesso dall'endpoint del token.

Il tuo provider di identità (IdP) OAuth 2.0 di terze parti ospita anche un userInfo endpoint. Quando l'utente si autentica con quell'IdP, Amazon Cognito scambia silenziosamente un codice di autorizzazione con l'endpoint IdP. `token` Il tuo pool di utenti passa il token di accesso IdP per autorizzare il recupero delle informazioni utente dall'endpoint IdP. `userInfo`

Gli ambiti nel token di accesso di un utente sono determinati dal parametro `scopes` request nelle richieste di autenticazione o dagli ambiti aggiunti dal trigger [Lambda prima della generazione del token](user-pool-lambda-pre-token-generation.md). È possibile decodificare i token di accesso ed esaminare le `scope` attestazioni per vedere gli ambiti di controllo degli accessi in essi contenuti. Di seguito sono riportate alcune combinazioni di ambiti che influiscono sui dati restituiti dall'endpoint. `userInfo` L'ambito riservato di Amazon Cognito non `aws.cognito.signin.user.admin` ha alcun effetto sui dati restituiti da questo endpoint.Esempi di ambiti nel token di accesso e loro effetto sulla risposta `userInfo`

**`openid`**  
Restituisce una risposta con tutti gli attributi utente che il client dell'app è in grado di leggere.

**`openid profile`**  
Restituisce gli attributi utente `name` `family_name``given_name`,`middle_name`,`nickname`,`preferred_username`,`profile`,`picture`,`website`,`gender`,`birthdate`,`zoneinfo`,`locale`, e`updated_at`. Restituisce anche [attributi personalizzati](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). Nei client di app che non dispongono dell'accesso in lettura a ciascun attributo, la risposta a questo ambito è costituita da tutti gli attributi all'interno delle specifiche a cui il client dell'app ha accesso in lettura.

**`openid email`**  
Restituisce le informazioni di base del profilo `email` e `email_verified` gli attributi and.

**`openid phone`**  
Restituisce le informazioni di base del profilo `phone_number` e `phone_number_verified` gli attributi and.

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

L'applicazione genera le richieste a questo endpoint direttamente, non tramite un browser.

Per ulteriori informazioni, consulta [Endpoint UserInfo](http://openid.net/specs/openid-connect-core-1_0.html#UserInfo) nelle specifiche di OpenID Connect (OIDC).

**Topics**
+ [GET /oauth2/userInfo](#get-userinfo)
+ [Parametri della richiesta nell'intestazione](#get-userinfo-request-header-parameters)
+ [Esempio: richiesta](#get-userinfo-positive-exchanging-authorization-code-for-userinfo-sample-request)
+ [Esempio: risposta positiva](#get-userinfo-response-sample)
+ [Esempio di risposte negative](#get-userinfo-negative)

## Parametri della richiesta nell'intestazione
<a name="get-userinfo-request-header-parameters"></a>

**`Authorization: Bearer <access_token>`**  
Passa il token di accesso nel campo dell'intestazione dell'autorizzazione.  
Obbligatorio.

## Esempio: richiesta
<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
```

## Esempio: risposta 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"
}
```

Per un elenco di richieste OIDC, vedi la sezione relativa alle [richieste standard](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). Attualmente, Amazon Cognito restituisce i valori per `email_verified` e `phone_number_verified` come stringhe.

## Esempio di risposte negative
<a name="get-userinfo-negative"></a>

### Esempio: richiesta errata
<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`**  
Nella richiesta manca un parametro obbligatorio, include un valore di parametro non supportato oppure è in altro modo errata.

### Esempio: token errato
<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`**  
Il token di accesso è scaduto, revocato, non valido o non è valido.