Freigeben über


Microsoft Identity Platform UserInfo-Endpunkt

Im Rahmen des OpenID Connect (OIDC)-Standards gibt der UserInfo-Endpunkt Informationen zu einem authentifizierten Benutzer zurück.

Suchen des bekannten Konfigurationsendpunkts

Sie finden den UserInfo-Endpunkt programmgesteuert, indem Sie das userinfo_endpoint Feld des OpenID-Konfigurationsdokuments unter lesen https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration. Es wird nicht empfohlen, den UserInfo-Endpunkt in Ihren Anwendungen hart zu codieren. Verwenden Sie stattdessen das OIDC-Konfigurationsdokument, um den Endpunkt zur Laufzeit zu finden.

Der UserInfo-Endpunkt wird in der Regel automatisch von OIDC-kompatiblen Bibliotheken aufgerufen, um Informationen über den Benutzer abzurufen. Aus der Liste der ansprüche, die im OIDC-Standard identifiziert wurden, erzeugt die Microsoft Identity Platform die Namenansprüche, den Betreffanspruch und die E-Mail, wenn sie verfügbar und zugestimmt haben.

Erwägen Sie stattdessen die Verwendung eines ID-Tokens.

Die Informationen in einem ID-Token sind eine Obermenge der Informationen, die auf dem UserInfo-Endpunkt verfügbar sind. Da Sie gleichzeitig ein ID-Token abrufen können, das Sie zum Aufrufen des UserInfo-Endpunkts erhalten, empfehlen wir, die Informationen des Benutzers aus dem Token abzurufen, anstatt den UserInfo-Endpunkt aufzurufen. Die Verwendung des ID-Tokens anstelle des Aufrufs des UserInfo-Endpunkts beseitigt bis zu zwei Netzwerkanforderungen, wodurch die Latenz in Ihrer Anwendung reduziert wird.

Wenn Sie weitere Details zum Benutzer benötigen, z. B. Manager oder Position, rufen Sie die Microsoft Graph-API /userauf. Sie können optionale Ansprüche auch verwenden, um zusätzliche Benutzerinformationen in Ihre ID und Zugriffstoken einzuschließen.

Aufrufen des UserInfo-Endpunkts

UserInfo ist eine standardmäßige OAuth-Bearertoken-API, die von Microsoft Graph gehostet wird. Rufen Sie den UserInfo-Endpunkt so auf, wie Sie jede Microsoft Graph-API aufrufen würden, indem Sie das Zugriffstoken verwenden, das Ihre Anwendung empfangen hat, wenn der Zugriff auf Microsoft Graph angefordert wurde. Der UserInfo-Endpunkt gibt eine JSON-Antwort zurück, die Ansprüche über den Benutzer enthält.

Erlaubnisse

Verwenden Sie die folgenden OIDC-Berechtigungen , um die UserInfo-API aufzurufen. Der openid Anspruch ist erforderlich, und die profile Bereiche email stellen sicher, dass zusätzliche Informationen in der Antwort bereitgestellt werden.

Berechtigungstyp Erlaubnisse
Delegiert (Geschäfts-, Schul- oder Unikonto) openid (erforderlich), profile, email
Delegiert (persönliches Microsoft-Konto) openid (erforderlich), profile, email
Anwendung Nicht anwendbar

Tipp

Kopieren Sie diese URL in Ihrem Browser, um ein Zugriffstoken für den UserInfo-Endpunkt und ein ID-Token abzurufen. Ersetzen Sie die Client-ID und den Umleitungs-URI durch Werte aus einer App-Registrierung.

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

Sie können das Zugriffstoken verwenden, das in der Abfrage im nächsten Abschnitt zurückgegeben wird.

Microsoft Graph verwendet ein spezielles Tokenausstellungsmuster, das sich auf die Fähigkeit Ihrer App auswirken kann, sie zu lesen oder zu überprüfen. Wie bei jedem anderen Microsoft Graph-Token ist das hier empfangene Token möglicherweise kein JWT, und Ihre App sollte es als undurchsichtig betrachten. Wenn Sie sich bei einem Microsoft-Kontobenutzer angemeldet haben, handelt es sich um ein verschlüsseltes Tokenformat. Keiner dieser Faktoren wirkt sich jedoch auf die Fähigkeit Ihrer App aus, das Zugriffstoken in einer Anforderung an den UserInfo-Endpunkt zu verwenden.

Aufrufen der API

Die UserInfo-API unterstützt sowohl GET- als auch POST-Anforderungen.

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

UserInfo-Antwort

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

Die in der Antwort angezeigten Ansprüche sind alle, die der UserInfo-Endpunkt zurückgeben kann. Diese Werte sind die gleichen Werte, die in einem ID-Token enthalten sind.

Hinweise und Vorbehalte auf dem UserInfo-Endpunkt

Sie können die vom UserInfo-Endpunkt zurückgegebenen Informationen nicht hinzufügen oder anpassen.

Um die von der Identitätsplattform während der Authentifizierung und Autorisierung zurückgegebenen Informationen anzupassen, verwenden Sie die Anspruchszuordnung und optionale Ansprüche , um die Sicherheitstokenkonfiguration zu ändern.

Nächste Schritte