

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Le point de terminaison des attributs utilisateur
<a name="userinfo-endpoint"></a>

Lorsque l'OIDC émet des jetons d'identification contenant des attributs utilisateur, la OAuth version 2.0 implémente le `/oauth2/userInfo` point de terminaison. Un utilisateur ou un client authentifié reçoit un jeton d'accès accompagné d'une `scopes` réclamation. Cette réclamation détermine les attributs que le serveur d'autorisation doit renvoyer. Lorsqu'une application présente un jeton d'accès au `userInfo` point de terminaison, le serveur d'autorisation renvoie un corps de réponse contenant les attributs utilisateur qui se situent dans les limites définies par les portées du jeton d'accès. Votre application peut récupérer des informations sur un utilisateur depuis le `userInfo` point de terminaison à condition qu'elle détienne un jeton d'accès valide avec au moins une revendication de `openid` portée.

Le point de terminaison `userInfo` est un [point de terminaison userInfo](https://openid.net/specs/openid-connect-core-1_0.html#UserInfo) OpenID Connect (OIDC). Il répond par des attributs utilisateur lorsque les fournisseurs de services présentent des jetons d'accès émis par votre [terminal de jeton](token-endpoint.md). Les portées du jeton d’accès de votre utilisateur définissent les attributs utilisateur que le point de terminaison userInfo renvoie dans sa réponse. La portée `openid` doit correspondre à l’une des demandes de jeton d’accès.

Amazon Cognito émet des jetons d’accès en réponse aux demandes d’API des groupes d’utilisateurs comme [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). Comme ces jetons d’accès ne contiennent pas de portées, le point de terminaison userInfo ne les accepte pas. À la place, vous devez présenter les jetons d’accès de votre point de terminaison de jeton.

Votre fournisseur d'identité (IdP) tiers OAuth 2.0 héberge également un userInfo point de terminaison. Lorsque votre utilisateur s'authentifie auprès de cet IdP, Amazon Cognito échange silencieusement un code d'autorisation avec le point de terminaison de l'IdP. `token` Votre groupe d'utilisateurs transmet le jeton d'accès IdP pour autoriser la récupération des informations utilisateur depuis le point de terminaison IdP. `userInfo`

Les étendues du jeton d'accès d'un utilisateur sont déterminées par le paramètre de `scopes` demande dans les demandes d'authentification ou par les étendues ajoutées par le déclencheur [Lambda avant la génération du jeton](user-pool-lambda-pre-token-generation.md). Vous pouvez décoder les jetons d'accès et examiner les `scope` demandes pour connaître les étendues de contrôle d'accès qu'elles contiennent. Voici quelques combinaisons d'étendues qui influencent les données renvoyées par le `userInfo` point de terminaison. Le champ d'application Amazon Cognito réservé n'`aws.cognito.signin.user.admin`a aucun effet sur les données renvoyées par ce point de terminaison.Exemples de portées dans le jeton d'accès et leur effet sur la réponse `userInfo`

**`openid`**  
Renvoie une réponse contenant tous les attributs utilisateur que le client de l'application peut lire.

**`openid profile`**  
Renvoie les attributs utilisateur`name`,`family_name`,`given_name`,`middle_name`, `nickname``preferred_username`,`profile`,`picture`,`website`,`gender`,`birthdate`,`zoneinfo`,`locale`, et`updated_at`. Renvoie également [des attributs personnalisés](user-pool-settings-attributes.md#user-pool-settings-custom-attributes). Dans les clients d'application qui ne disposent pas d'un accès en lecture à chaque attribut, la réponse à cette portée est l'ensemble des attributs de la spécification auxquels votre client d'application a un accès en lecture.

**`openid email`**  
Renvoie les informations de base du profil `email` et les `email_verified` attributs et.

**`openid phone`**  
Renvoie les informations de base du profil `phone_number` et les `phone_number_verified` attributs et.

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

Votre application génère des requêtes directement vers ce point de terminaison, et non par le biais d'un navigateur.

Pour en savoir plus, consultez [Point de terminaison UserInfo](http://openid.net/specs/openid-connect-core-1_0.html#UserInfo) dans la spécification OpenID Connect (OIDC).

**Topics**
+ [GET /oauth2/userInfo](#get-userinfo)
+ [Paramètres de demande dans l’en-tête](#get-userinfo-request-header-parameters)
+ [Exemple — demande](#get-userinfo-positive-exchanging-authorization-code-for-userinfo-sample-request)
+ [Exemple — réponse positive](#get-userinfo-response-sample)
+ [Exemple de réponses négatives](#get-userinfo-negative)

## Paramètres de demande dans l’en-tête
<a name="get-userinfo-request-header-parameters"></a>

**`Authorization: Bearer <access_token>`**  
Passez le jeton d'accès dans le champ d'en-tête d'autorisation.  
Obligatoire.

## Exemple — demande
<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
```

## Exemple — réponse positive
<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"
}
```

Pour obtenir la liste des revendications OIDC, consultez la référence aux [revendications standard](http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims). Actuellement, Amazon Cognito renvoie les valeurs pour `email_verified` et `phone_number_verified` sous forme de chaînes.

## Exemple de réponses négatives
<a name="get-userinfo-negative"></a>

### Exemple — mauvaise demande
<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`**  
Il manque un paramètre obligatoire à la demande, elle inclut une valeur de paramètre non prise en charge ou elle est mal formée.

### Exemple : mauvais jeton
<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`**  
Le jeton d'accès est expiré, révoqué, mal formé ou il n'est pas valide.