View a markdown version of this page

Le point de terminaison des attributs utilisateur - Amazon Cognito

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

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

Le point de terminaison userInfo est un point de terminaison 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 point de terminaison. 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 InitiateAuth. 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 point de terminaison userInfo. 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 userInfo IdP.

Les étendues du jeton d'accès d'un utilisateur sont déterminées par le paramètre de scopes requête dans les demandes d'authentification ou par les étendues ajoutées par le déclencheur Lambda avant la génération du jeton. Vous pouvez décoder les jetons d'accès et examiner les scope demandes pour voir les étendues de contrôle d'accès qu'elles contiennent. Voici quelques combinaisons de champs d'application qui influencent les données renvoyées par le userInfo point de terminaison. L'étendue réservée d'Amazon Cognito n'aws.cognito.signin.user.admina aucun effet sur les données renvoyées depuis ce point de terminaison.

Exemples de champs d'application 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 namefamily_name,given_name,middle_name, nicknamepreferred_username,profile,picture,website,gender,birthdate,zoneinfo,locale, etupdated_at. Renvoie également des attributs personnalisés. Dans les clients d'application qui n'ont pas d'accès en lecture à chaque attribut, la réponse à cette étendue est tous les 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.

OBTENIR/oauth2/userInfo

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

Pour en savoir plus, consultez Point de terminaison UserInfo dans la spécification OpenID Connect (OIDC).

Paramètres de demande dans l’en-tête

Authorization: Bearer <access_token>

Transmettez le jeton d'accès dans le champ d'en-tête d'autorisation.

Obligatoire.

Exemple — demande

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

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. Actuellement, Amazon Cognito renvoie les valeurs pour email_verified et phone_number_verified sous forme de chaînes.

Exemples de réponses négatives

Exemple : mauvaise demande

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 pour une autre raison.

Exemple : jeton incorrect

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 n'est pas valide.