Endpoint UserInfo di Microsoft Identity Platform

Nell'ambito dello standard OpenID Connessione (OIDC), l'endpoint UserInfo restituisce informazioni su un utente autenticato.

Trovare l'endpoint di configurazione noto

È possibile trovare l'endpoint UserInfo a livello di codice leggendo il userinfo_endpoint campo del documento di configurazione OpenID all'indirizzo https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration. Non è consigliabile impostare come hardcoded l'endpoint UserInfo nelle applicazioni. Usare invece il documento di configurazione OIDC per trovare l'endpoint in fase di esecuzione.

L'endpoint UserInfo viene in genere chiamato automaticamente dalle librerie conformi a OIDC per ottenere informazioni sull'utente. Dall'elenco delle attestazioni identificate nello standard OIDC, Microsoft Identity Platform produce le attestazioni del nome, l'attestazione dell'oggetto e l'indirizzo di posta elettronica quando disponibili e con il consenso.

Prendere invece in considerazione l'uso di un token ID

Le informazioni in un token ID sono un superset delle informazioni disponibili nell'endpoint UserInfo. Poiché è possibile ottenere un token ID contemporaneamente si ottiene un token per chiamare l'endpoint UserInfo, è consigliabile ottenere le informazioni dell'utente dal token anziché chiamare l'endpoint UserInfo. L'uso del token ID invece di chiamare l'endpoint UserInfo elimina fino a due richieste di rete, riducendo la latenza nell'applicazione.

Se sono necessari altri dettagli sull'utente, ad esempio manager o titolo di lavoro, chiamare l'API Microsoft Graph/user. È anche possibile usare attestazioni facoltative per includere informazioni utente aggiuntive nell'ID e nei token di accesso.

Chiamata dell'endpoint UserInfo

UserInfo è un'API token di connessione OAuth standard ospitata da Microsoft Graph. Chiamare l'endpoint UserInfo come si chiamerebbe qualsiasi API Microsoft Graph usando il token di accesso ricevuto dall'applicazione quando ha richiesto l'accesso a Microsoft Graph. L'endpoint UserInfo restituisce una risposta JSON contenente attestazioni sull'utente.

Autorizzazioni

Usare le autorizzazioni OIDC seguenti per chiamare l'API UserInfo. L'attestazione openid è obbligatoria e gli profile ambiti e email assicurano che nella risposta vengano fornite informazioni aggiuntive.

Tipo di autorizzazione Autorizzazioni
Delegata (account di lavoro o dell'istituto di istruzione) openid (obbligatorio), profile, email
Delegata (account Microsoft personale) openid (obbligatorio), profile, email
Applicazione Non applicabile

Suggerimento

Copiare questo URL nel browser per ottenere un token di accesso per l'endpoint UserInfo e un token ID. Sostituire l'ID client e l'URI di reindirizzamento con i valori di una registrazione dell'app.

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

È possibile usare il token di accesso restituito nella query nella sezione successiva.

Microsoft Graph usa uno speciale modello di rilascio di token che può influire sulla capacità dell'app di leggerlo o convalidarlo. Come per qualsiasi altro token di Microsoft Graph, il token ricevuto qui potrebbe non essere un token JWT e l'app dovrebbe considerarla opaca. Se è stato eseguito l'accesso a un utente dell'account Microsoft, sarà un formato di token crittografato. Nessuno di questi fattori, tuttavia, influisce sulla capacità dell'app di usare il token di accesso in una richiesta all'endpoint UserInfo.

Chiamata all'API

L'API UserInfo supporta le richieste GET e POST.

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

Risposta 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.
}

Le attestazioni visualizzate nella risposta sono tutte quelle che l'endpoint UserInfo può restituire. Questi valori sono gli stessi valori inclusi in un token ID.

Note e avvertenze sull'endpoint UserInfo

Non è possibile aggiungere o personalizzare le informazioni restituite dall'endpoint UserInfo.

Per personalizzare le informazioni restituite da Identity Platform durante l'autenticazione e l'autorizzazione, usare il mapping delle attestazioni e le attestazioni facoltative per modificare la configurazione del token di sicurezza.

Passaggi successivi