Список всех пользователей AD B2C - PullRequest
1 голос
/ 26 июня 2019

Я очень плохо знаком с AD B2C, и у меня возникают проблемы с API Graph Graph.

Моя цель - перечислить всех пользователей, зарегистрированных в моей AD. Я хотел бы выполнить это только по HTTP-запросам.

Пока я обнаружил, что должен использовать эту конечную точку:

https://graph.windows.net/my_tenant.onmicrosoft.com/users?api-version=1.6

Моя проблема в том, что я не могу найти, где я могу получить токен, используемый в заголовке Authorization.

На данный момент я аутентифицирую по этому URL:

https://my_tenant.b2clogin.com/my_tenant.onmicrosoft.com/oauth2/v2.0/authorize?
client_id=27fb84fe-4baf-4b6b-bfe7-f2d0638f2790
&response_type=code
&redirect_uri=http%3A%2F%2Flocalhost
&response_mode=query
&scope=27fb84fe-4baf-4b6b-bfe7-f2d0638f2790%20offline_access
&state=data
&p=B2C_1_SignUporSignIn

Я получаю код через свой redirect_uri и отправляю этот код этой конечной точке, чтобы получить токен:

https://my_tenant.b2clogin.com/my_tenant.onmicrosoft.com/oauth2/v2.0/token?p=b2c_1_signuporsignin

Следуя документации здесь: https://docs.microsoft.com/fr-fr/azure/active-directory-b2c/active-directory-b2c-access-tokens, Я отправляю эти параметры:

grant_type:authorization_code
client_secret:my_secret
client_id:27fb84fe-4baf-4b6b-bfe7-f2d0638f2790
scope:openid
code:code

Проблема в том, что я не получаю ответ, подобный показанному в документации. Я получаю только id_token, token_type, not_before, id_token_expires_in, profile_info. Тем не менее, id_token, кажется, соответствует access_token в документах.

Итак, вопрос в том, должен ли этот токен использоваться в заголовке авторизации для отправки запросов в API Graph Graph?

Потому что, если я использую этот токен, я получаю следующую ошибку: Authentication_ExpiredToken - Срок действия вашего токена истек. Пожалуйста, обновите его перед отправкой запроса.

Заранее спасибо за помощь

1 Ответ

1 голос
/ 26 июня 2019

Этот токен должен использоваться в заголовке авторизации для отправки запросов в API графа AD?

Да для каждого запроса доступа к ресурсуAzure Ad Graph или Microsoft Graph API вам необходимо передать полученный токен.

Причина вашей ошибки: Authentication_ExpiredToken - срок действия вашего токена доступа истек.Пожалуйста, обновите его перед отправкой запроса:

Я проверил и успешно воспроизвел ошибку, с которой вы столкнулись.Смотрите снимок экрана:

enter image description here

Возможная причина:

  1. Ваш запрос токенаконечная точка может быть неправильной, или вы получили токен для одного арендатора и пытаетесь получить доступ к другому ресурсу арендатора.Убедитесь, что ваша конечная точка токена https://login.microsoftonline.com/YourB2CTenant.onmicrosoft.com/oauth2/token

  2. Проверьте свой ресурс: это должно быть https://graph.windows.net/

Формат запроса токена:

Request Endpoint URL: 
https://login.microsoftonline.com/YourTenantName.onmicrosoft.com/oauth2/token

Тело запроса

grant_type:client_credentials
client_id:AppId
client_secret:AppSecret
resource:https://graph.windows.net/

См. Снимок экрана ниже:

enter image description here

B2C Формат доступа пользователя:

URL-адрес запроса списка пользователей:

 https://graph.windows.net/YourTenantName.onmicrosoft.com/users?api-version=1.6

См. Снимок экрана:

enter image description here

Точка для запоминания:

В этом случае вы можете встретить Insufficient privilege error 401, просто назначьте следующее разрешение.

Разрешение от: Windows Azure Active Directory

Имя разрешения: Read all users' full profiles

Тип разрешения: DELEGATED PERMISSIONS

См. Экранshot:

enter image description here

Таким образом вы можете получить свой токен Azure B2C и с этим токеном получить доступ к своему списку пользователей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...