Partekatu honen bidez:


Punto de conexión de UserInfo de la Plataforma de identidad de Microsoft

El punto de conexión UserInfo forma parte del estándar OpenID Connect (OIDC) y devuelve información sobre un usuario autenticado.

Búsqueda del punto de conexión de configuración .well-known.

Para encontrar el punto de conexión UserInfo mediante programación, lea el campo userinfo_endpoint del documento de configuración de OpenID, que se ubica en https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration. Codificar de forma rígida el punto de conexión UserInfo en las aplicaciones no es la mejor práctica. En su lugar, use el documento de configuración de OIDC para buscar el punto de conexión en tiempo de ejecución.

Normalmente, las bibliotecas compatibles con OIDC llaman automáticamente al punto de conexión UserInfo para obtener información sobre el usuario. Desde la lista de notificaciones identificadas en el estándar OIDC, la plataforma de identidad de Microsoft produce las notificaciones de nombre, la notificación de asunto y el correo electrónico cuando están disponibles y se les da su consentimiento.

Considere la posibilidad de usar un token de id. en su lugar.

La información de un token de id. constituye un superconjunto de la información que está disponible en el punto de conexión UserInfo. Como se puede obtener un token de identificación al mismo tiempo que se obtiene un token para llamar al punto de conexión de UserInfo, sugerimos obtener la información del usuario desde el token en lugar de llamar al punto de conexión de UserInfo. Si se usa el token de id. en lugar de llamar al punto de conexión UserInfo, se eliminan hasta dos solicitudes de red, lo que reduce la latencia en la aplicación.

Si necesita más detalles sobre el usuario, como saber si es un administrador o su puesto, llame a Microsoft Graph /user API. También se pueden usar notificaciones opcionales para incluir información adicional del usuario en sus tokens de id. y de acceso.

Llamada al punto de conexión de UserInfo

UserInfo es una API de token de portador de OAuth estándar que se hospeda en Microsoft Graph. Llame al punto de conexión UserInfo de la misma forma en que llamaría a cualquier Microsoft Graph API. Es decir, mediante el token de acceso que se obtuvo en la aplicación al solicitar acceso a Microsoft Graph. El punto de conexión UserInfo se usa para obtener una respuesta JSON donde se incluyen notificaciones sobre el usuario en cuestión.

Permisos

Use los siguientes permisos de OIDC para llamar a la API UserInfo. La notificación openid es necesaria y, además, el uso de los ámbitos profile y email sirve para garantizar que se incluirá información adicional en la respuesta.

Tipo de permiso Permisos
Delegado (cuenta profesional o educativa). openid (obligatorio), profile y email
Delegado (cuenta personal de Microsoft) openid (obligatorio), profile y email
Application No aplicable

Sugerencia

Copie esta URL en el explorador para obtener un token de acceso para el punto de conexión UserInfo y un token de id. Reemplace el id. de cliente y el URI de redirección con los valores del proceso de registro de una aplicación.

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=<yourClientID>&response_type=token+id_token&redirect_uri=<YourRedirectUri>&scope=user.read+openid+profile+email&response_mode=fragment&state=12345&nonce=678910

El token de acceso que obtendrá podrá usarse en la consulta de la siguiente sección.

En Microsoft Graph, se usa un patrón especial de emisión de tokens que puede afectar a la capacidad con la que puede leerse o validarse en la aplicación. Al igual que cualquier otro token de Microsoft Graph, es posible que el token que obtenga no sea un JWT y, por tanto, la aplicación deberá tratarlo como si fuera opaco. Si ha iniciado sesión con un usuario de una cuenta de Microsoft, será un formato de token cifrado. Sin embargo, ninguno de estos factores afecta a la capacidad con la que el token de acceso puede incluirse en una solicitud al punto de conexión UserInfo desde la aplicación.

Llamada a la API

En la API de UserInfo, se admite el uso de solicitudes GET y POST.

GET or POST /oidc/userinfo HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI6Il…

Respuesta de UserInfo

{
    "sub": "OLu859SGc2Sr9ZsqbkG-QbeLgJlb41KcdiPoLYNpSFA",
    "name": "Mikah Ollenburg", // all names require the “profile” scope.
    "family_name": " Ollenburg",
    "given_name": "Mikah",
    "picture": "https://graph.microsoft.com/v1.0/me/photo/$value",
    "email": "mikoll@contoso.com" // requires the “email” scope.
}

Las notificaciones que se mostrarán en la respuesta serán todas las que puedan devolverse desde el punto de conexión UserInfo. Los valores serán los mismos que los que se incluyen en un token de id.

Notas y advertencias sobre el punto de conexión de UserInfo

La información que se devuelve desde el punto de conexión UserInfo no puede personalizarse y tampoco es posible agregar información adicional a esta.

Para personalizar la información que se devuelve desde la plataforma de identidad durante los procesos de autenticación y autorización, modifique la configuración del token de seguridad mediante una asignación de notificaciones y notificaciones opcionales.

Pasos siguientes