Appel du noeud final UserInfo pour OpenID Connect
Le noeud final UserInfo renvoie des demandes concernent un utilisateur qui est authentifié avec une authentification OpenID Connect.
Pourquoi et quand exécuter cette tâche
Pour obtenir les demandes concernant un utilisateur, un client effectue une demande auprès du noeud final UserInfo à l'aide d'un jeton d'accès comme donnée d'identification. Le jeton d'accès doit avoir été obtenu via l'authentification OpenID Connect. Les demandes relatives à l'utilisateur qui est représenté par le jeton d'accès sont renvoyées en tant qu'objet JSON contenant une collection de paires nom-valeur pour les demandes. Le noeud final UserInfo est une ressource OAuth 2.0 protégée, ce qui signifie que la donnée d'identification requise pour accéder au noeud final est le jeton d'accès.
Les demandes qui sont renvoyées par le noeud final UserInfo peuvent être personnalisées avec la configuration de fournisseur OpenID Connect, voir Configuration des demandes rencvoyées par le noeud final UserInfo.
https://server.example.com:443/oidc/endpoint/<provider_name>/userinfo
Procédure
- Définissez m'authentification avec un jeton d'accès obtenu via l'authentification OpenID Connect. Le jeton d'accès peut être fourni dans l'en-tête HTTP Basic Authorization ou avec le paramètre de demande access_token. Dans tous les cas, le jeton d'accès n'a pas besoin d'être codé.
- Envoyez la demande GET ou POST à l'URL du noeud final UserInfo.
Résultats
Pour les demandes valides, le noeud final UserInfo renvoie une réponse HTTP 200 avec un objet JSON au format application/json qui inclut les demandes configurées pour le fournisseur OpenID Connect.
Exemple
Les exemples ci-après illustrent des demandes avec un jeton valide et des jetons non valides.
- Demande qui utilise l'en-tête HTTP Bearer Authorization pour transmettre le jeton d'accès
- Réponse pour un jeton d'accès valide
- Jetons d'accès non valides
POST /register HTTP/1.1
Accept: application/x-www-form-urlencoded
Authorization: Bearer fAAdLO1c6QWDbPs9HrWHz5e7nRWVAnxqTTP7i88G
POST /register HTTP/1.1
Accept: application/x-www-form-urlencoded
access_token=fAAdLO1c6QWDbPs9HrWHz5e7nRWVAnxqTTP7i88G
Il est recommandé d'utiliser l'en-tête HTTP Authorization au lieu du paramètre de demande access_token car les paramètres de demande HTTP, qui peuvent inclure des informations sensibles, peuvent être sauvegardées dans l'historique ou le cache du navigateur.
HTTP/1.1 200 OK
Content-Type: application/json
Cache-Control: no-store
Pragma: no-cache
{
"sub" : "bob",
"groupIds" : [ "bobsdepartment","administrators" ],
"given_name" : "Bob",
"name" : "Bob Smith",
"email" : "bob@mycompany.com",
"phone_number" : "+1 (604) 555-1234;ext5678",
"address" : { "formatted" : "123 Main St., Anytown, TX 77777" },
"picture" : "http://mycompany.com/bob_photo.jpg"
}
HTTP/1.1 401 Unauthorized
CONTENT-LENGTH : 0
WWW-AUTHENTICATE : Bearer error=invalid_token,
error_description=CWWKS1617E: A userinfo request was made with
an access token that was not recognized. The request URI was
/oidc/endpoint/MyOAuthProvider/userinfo.