Microsofts identitetsplattform UserInfo-slutpunkt

Som en del av Standard för OpenID Anslut (OIDC) returnerar UserInfo-slutpunkten information om en autentiserad användare.

Hitta den välkända konfigurationsslutpunkten

Du hittar UserInfo-slutpunkten programmatiskt genom att läsa fältet i userinfo_endpoint OpenID-konfigurationsdokumentet på https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration. Vi rekommenderar inte hårdkodning av UserInfo-slutpunkten i dina program. Använd i stället OIDC-konfigurationsdokumentet för att hitta slutpunkten vid körning.

UserInfo-slutpunkten anropas vanligtvis automatiskt av OIDC-kompatibla bibliotek för att få information om användaren. Från listan över anspråk som identifieras i OIDC-standarden skapar Microsofts identitetsplattform namnanspråk, ämnesanspråk och e-post när de är tillgängliga och samtyckta till.

Överväg att använda en ID-token i stället

Informationen i en ID-token är en supermängd av den information som är tillgänglig på UserInfo-slutpunkten. Eftersom du kan hämta en ID-token samtidigt som du får en token för att anropa UserInfo-slutpunkten föreslår vi att du hämtar användarens information från token i stället för att anropa UserInfo-slutpunkten. Om du använder ID-token i stället för att anropa UserInfo-slutpunkten eliminerar du upp till två nätverksbegäranden, vilket minskar svarstiden i ditt program.

Om du behöver mer information om användaren som chef eller jobbtitel anropar du Microsoft Graph-API/user:et. Du kan också använda valfria anspråk för att inkludera ytterligare användarinformation i ditt ID och åtkomsttoken.

Anropa UserInfo-slutpunkten

UserInfo är ett standard-API för OAuth-ägartoken som hanteras av Microsoft Graph. Anropa UserInfo-slutpunkten eftersom du anropar ett Microsoft Graph-API med hjälp av den åtkomsttoken som ditt program fick när det begärde åtkomst till Microsoft Graph. UserInfo-slutpunkten returnerar ett JSON-svar som innehåller anspråk om användaren.

Behörigheter

Använd följande OIDC-behörigheter för att anropa UserInfo-API:et. Anspråket openid krävs, och omfången profile och email säkerställer att ytterligare information tillhandahålls i svaret.

Behörighetstyp Behörigheter
Delegerad (arbets- eller skolkonto) openid (krävs), profile, email
Delegerad (personligt Microsoft-konto) openid (krävs), profile, email
Program Inte aktuellt

Dricks

Kopiera den här URL:en i webbläsaren för att hämta en åtkomsttoken för UserInfo-slutpunkten och en ID-token. Ersätt klient-ID och omdirigerings-URI med värden från en appregistrering.

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

Du kan använda åtkomsttoken som returneras i frågan i nästa avsnitt.

Microsoft Graph använder ett särskilt mönster för utfärdande av token som kan påverka appens möjlighet att läsa eller verifiera den. Precis som med andra Microsoft Graph-token kanske den token som du får här inte är en JWT och din app bör betrakta den som ogenomskinlig. Om du har loggat in på en Microsoft-kontoanvändare är det ett krypterat tokenformat. Ingen av dessa faktorer påverkar dock appens möjlighet att använda åtkomsttoken i en begäran till UserInfo-slutpunkten.

Anropa API:et

UserInfo-API:et stöder både GET- och POST-begäranden.

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

UserInfo-svar

{
    "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.
}

De anspråk som visas i svaret är alla de som UserInfo-slutpunkten kan returnera. Dessa värden är samma värden som ingår i en ID-token.

Anteckningar och varningar på UserInfo-slutpunkten

Du kan inte lägga till eller anpassa informationen som returneras av UserInfo-slutpunkten.

Om du vill anpassa den information som returneras av identitetsplattformen under autentisering och auktorisering använder du anspråksmappning och valfria anspråk för att ändra konfigurationen av säkerhetstoken.

Nästa steg