Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В рамках стандарта OpenID Connect (OIDC) конечная точка UserInfo возвращает сведения о пользователе, прошедшем проверку подлинности.
Найдите конечную точку конфигурации .well-known
Конечную точку UserInfo можно найти программным способом, прочитав userinfo_endpoint
поле документа конфигурации OpenID по адресу https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
. Мы не рекомендуем жестко кодировать конечную точку UserInfo в приложениях. Вместо этого используйте документ конфигурации OIDC, чтобы найти конечную точку во время выполнения.
Конечная точка UserInfo обычно вызывается автоматически библиотеками, совместимыми с OIDC , для получения сведений о пользователе. В списке утверждений, определенных в стандарте OIDC, платформа удостоверений Майкрософт создает утверждения имени, утверждение субъекта и электронную почту при наличии и согласии.
Вместо этого рассмотрите возможность использования маркера идентификатора
Сведения в маркере идентификатора — это супермножество сведений, доступных в конечной точке UserInfo. Так как маркер идентификатора можно получить одновременно, чтобы вызвать конечную точку UserInfo, мы рекомендуем получить сведения пользователя из маркера вместо вызова конечной точки UserInfo. Использование маркера идентификатора вместо вызова конечной точки UserInfo устраняет до двух сетевых запросов, уменьшая задержку в приложении.
Если вам требуются дополнительные сведения о пользователе, например о менеджере или названии задания, вызовите API Microsoft Graph/user
. Кроме того, можно использовать необязательные утверждения для включения дополнительных сведений о пользователе в идентификатор и маркеры доступа.
Вызов конечной точки UserInfo
UserInfo — это стандартный API маркера носителя OAuth, размещенный в Microsoft Graph. Вызовите конечную точку UserInfo, так как вызовите любой API Microsoft Graph с помощью маркера доступа, полученного приложением при запросе доступа к Microsoft Graph. Конечная точка UserInfo возвращает ответ JSON, содержащий утверждения о пользователе.
Разрешения
Используйте следующие разрешения OIDC для вызова API UserInfo. Утверждение openid
является обязательным, а profile
email
области и области гарантируют, что в ответе предоставляются дополнительные сведения.
Тип разрешения | Разрешения |
---|---|
Делегированные (рабочая или учебная учетная запись) |
openid (обязательно), profile email |
Делегированные (личная учетная запись Майкрософт) |
openid (обязательно), profile email |
Заявление | Неприменимо |
Подсказка
Скопируйте этот URL-адрес в браузере, чтобы получить маркер доступа для конечной точки UserInfo и маркер идентификатора. Замените идентификатор клиента и URI перенаправления значениями из регистрации приложения.
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
Маркер доступа, возвращенный в запросе, можно использовать в следующем разделе.
Microsoft Graph использует специальный шаблон выдачи маркеров, который может повлиять на способность приложения читать или проверять его. Как и в случае с любым другим токеном Microsoft Graph, полученный здесь маркер может не быть JWT, и ваше приложение должно рассмотреть его непрозрачным. Если вы выполнили вход в учетную запись Майкрософт, он будет зашифрованным форматом маркера. Однако ни один из этих факторов не влияет на возможность приложения использовать маркер доступа в запросе к конечной точке UserInfo.
Вызов API
API UserInfo поддерживает запросы GET и POST.
GET or POST /oidc/userinfo HTTP/1.1
Host: graph.microsoft.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI6Il…
Ответ 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.
}
Утверждения, отображаемые в ответе, — это все те, которые может возвращать конечная точка UserInfo. Эти значения являются одинаковыми значениями, включенными в маркер идентификатора.
Заметки и предостережения конечной точки UserInfo
Невозможно добавить или настроить сведения, возвращаемые конечной точкой UserInfo.
Чтобы настроить сведения, возвращаемые платформой удостоверений во время проверки подлинности и авторизации, используйте сопоставление утверждений и необязательные утверждения для изменения конфигурации маркера безопасности.