punkt końcowy Platforma tożsamości Microsoft UserInfo

W ramach standardu OpenID Połączenie (OIDC) punkt końcowy UserInfo zwraca informacje o uwierzytelnianym użytkowniku.

Znajdowanie dobrze znanego punktu końcowego konfiguracji

Punkt końcowy UserInfo można znaleźć programowo, odczytując userinfo_endpoint pole dokumentu konfiguracji OpenID pod adresem https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration. Nie zalecamy kodowania punktu końcowego UserInfo w aplikacjach na stałe. Zamiast tego użyj dokumentu konfiguracji OIDC, aby znaleźć punkt końcowy w czasie wykonywania.

Punkt końcowy UserInfo jest zwykle wywoływany automatycznie przez biblioteki zgodne ze standardem OIDC w celu uzyskania informacji o użytkowniku. Z listy oświadczeń zidentyfikowanych w standardzie OIDC, Platforma tożsamości Microsoft tworzy oświadczenia nazw, oświadczenie podmiotu i wiadomość e-mail, gdy są dostępne i wyrażane na nie zgodę.

Rozważ użycie tokenu identyfikatora zamiast tego

Informacje w tokenie identyfikatora są nadzbiorem informacji dostępnych w punkcie końcowym UserInfo. Ponieważ token identyfikatora można uzyskać w tym samym czasie, aby wywołać punkt końcowy UserInfo, sugerujemy pobranie informacji użytkownika z tokenu zamiast wywołania punktu końcowego UserInfo. Użycie tokenu identyfikatora zamiast wywoływania punktu końcowego UserInfo eliminuje maksymalnie dwa żądania sieciowe, co zmniejsza opóźnienie w aplikacji.

Jeśli potrzebujesz dodatkowych szczegółów dotyczących użytkownika, takiego jak menedżer lub stanowisko, wywołaj interfejs API programu Microsoft Graph/user. Możesz również użyć opcjonalnych oświadczeń, aby uwzględnić dodatkowe informacje o użytkowniku w identyfikatorze i tokenach dostępu.

Wywoływanie punktu końcowego UserInfo

UserInfo to standardowy interfejs API tokenu elementu nośnego OAuth hostowany przez program Microsoft Graph. Wywołaj punkt końcowy UserInfo, tak jak wywołasz dowolny interfejs API programu Microsoft Graph przy użyciu tokenu dostępu otrzymanego przez aplikację, gdy zażądał dostępu do programu Microsoft Graph. Punkt końcowy UserInfo zwraca odpowiedź JSON zawierającą oświadczenia dotyczące użytkownika.

Uprawnienia

Użyj następujących uprawnień OIDC, aby wywołać interfejs API UserInfo. Oświadczenie openid jest wymagane, a profile zakresy i email zapewniają, że dodatkowe informacje są podane w odpowiedzi.

Typ uprawnienia Uprawnienia
Delegowane (konto służbowe) openid (wymagane), profile, email
Delegowane (osobiste konto Microsoft) openid (wymagane), profile, email
Aplikacja Nie dotyczy

Napiwek

Skopiuj ten adres URL w przeglądarce, aby uzyskać token dostępu dla punktu końcowego UserInfo i token identyfikatora. Zastąp identyfikator klienta i identyfikator URI przekierowania wartościami z rejestracji aplikacji.

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

Możesz użyć tokenu dostępu zwróconego w zapytaniu w następnej sekcji.

Program Microsoft Graph używa specjalnego wzorca wystawiania tokenów, który może mieć wpływ na możliwość odczytywania lub weryfikowania go przez aplikację. Podobnie jak w przypadku innych tokenów programu Microsoft Graph, otrzymany tutaj token może nie być zestawem JWT, a aplikacja powinna rozważyć jej nieprzezroczyste. Jeśli zalogowałeś się do użytkownika konta Microsoft, będzie to zaszyfrowany format tokenu. Żaden z tych czynników nie ma jednak wpływu na możliwość używania tokenu dostępu przez aplikację w żądaniu do punktu końcowego UserInfo.

Wywoływanie interfejsu API

Interfejs API UserInfo obsługuje żądania GET i POST.

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

Odpowiedź 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.
}

Oświadczenia wyświetlane w odpowiedzi to wszystkie oświadczenia, które punkt końcowy UserInfo może zwrócić. Te wartości są tymi samymi wartościami zawartymi w tokenie identyfikatora.

Uwagi i zastrzeżenia dotyczące punktu końcowego UserInfo

Nie można dodać ani dostosować informacji zwracanych przez punkt końcowy UserInfo.

Aby dostosować informacje zwracane przez platformę tożsamości podczas uwierzytelniania i autoryzacji, użyj mapowania oświadczeń i opcjonalnych oświadczeń, aby zmodyfikować konfigurację tokenu zabezpieczającego.

Następne kroki