Invocación del punto final UserInfo para OpenID Connect
El punto final UserInfo devuelve reclamaciones sobre un usuario que se autentica con la autenticación de OpenID Connect.
Acerca de esta tarea
Para obtener las reclamaciones de un usuario, un cliente realiza una solicitud al punto final UserInfo utilizando una señal de acceso como credencial. La señal de acceso debe haberse obtenido mediante la autenticación de OpenID Connect. Las reclamaciones del usuario representado por la señal de acceso se devuelven como un objeto JSON que contiene una colección de pares de nombre-valor para las reclamaciones. El punto final UserInfo es un recurso protegido de OAuth 2.0, lo que significa que la credencial necesaria para acceder al punto final es la señal de acceso.
Las reclamaciones devueltas por el punto final UserInfo pueden personalizarse con la configuración del proveedor de OpenID Connect; consulte Configuración de las reclamaciones devueltas por el punto final UserInfo.
https://server.example.com:443/oidc/endpoint/<provider_name>/userinfo
Procedimiento
- Configure la autenticación con una señal de acceso obtenida mediante la autenticación de OpenID Connect. La señal de acceso puede proporcionarse en la cabecera de autorización básica HTTP o con el parámetro de solicitud access_token. En ambos casos, no es necesario codificar la señal de acceso.
- Envíe la solicitud GET o POST al URL de punto final UserInfo.
Resultados
Para ver las solicitudes válidas, el punto final UserInfo devuelve una respuesta HTTP 200 con un objeto JSON en formato application/json que incluye las reclamaciones configuradas para el proveedor de OpenID Connect.
Ejemplo
Los ejemplos siguientes ilustran solicitudes con una señal válida y señales no válidas.
- Solicitud que utiliza la cabecera de autorización de portador HTTP para pasar la señal de acceso
- Respuesta de una señal de acceso válida
- Señales de acceso no válidas
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
Se recomienda utilizar la cabecera de autorización HTTP en lugar del parámetro de solicitud access_token porque los parámetros de solicitud HTTP, que pueden incluir información confidencial, pueden guardarse en la memoria caché o el historial del navegador.
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: Se ha realizado una solicitud de userinfo con
una señal de acceso no reconocida. El URI de solicitud era
/oidc/endpoint/MyOAuthProvider/userinfo.