Microsofts identitetsplattform UserInfo-slutpunkt
Som en del av Standard för OpenID Anslut (OIDC) returnerar UserInfo-slutpunkten information om en autentiserad användare.
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.
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.
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.
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 |
Tips
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.
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…
{
"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.
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.