API-интерфейс Azure AD Graph с использованием учетных данных клиента OAuth - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь выполнить API-вызов для 'https://graph.windows.net/{{tenantId}}/accounts?api-version=1.6

. Сначала я использую вызов токена client_credentials, чтобы получить токен доступа. Вот вызов:

POST /{{tenantId}}/oauth2/token HTTP/1.1
  Host: login.microsoftonline.com
  Content-Type: application/x-www-form-urlencoded
  User-Agent: PostmanRuntime/7.19.0
  Host: login.microsoftonline.com

  grant_type=client_credentials&client_id={{client_id}}&client_secret={{client_secret}}&\
  resource=https%3A%2F%2Fgraph.windows.net

Это возвращает JWT (я удалил элементы, не относящиеся к этой проблеме):

{
  "aud": "https://graph.windows.net",
  "iss": "https://sts.windows.net/e1642542-781d-481e-a194-1c271a68a5f1/"   
  "roles": [
     "Application.ReadWrite.OwnedBy",
     "Application.ReadWrite.All"
  ],
}

Вы можете видеть, что для aud установлено значение https://graph.windows.net и что указаны соответствующие роли приложения.

YEt, когда я выполняю вызов учетных записей для конечной точки graph.windows.net, я получаю сообщение об ошибке:

{
  "odata.error": {
    "code": "Authentication_MissingOrMalformed",
    "message": {
        "lang": "en",
        "value": "Access Token missing or malformed."
    }
  }
}

Для вызова / accounts я добавил заголовок Authorization со значениемустановить на предъявителя: (токен доступа). Этот же токен отлично декодируется в jwt.io, поэтому я знаю, что сам токен в порядке.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Для вызова / accounts я добавил заголовок авторизации со значением, установленным на Bearer: (токен доступа).

Bearer: ey.... не является правильным значением носителя, выне должен включать двоеточие в значение.

GET /resource HTTP/1.1
  Host: server.example.com
  Authorization: Bearer mF_9.B5f-4.1JqM
0 голосов
/ 02 ноября 2019

Azure прекратил обновление API-интерфейсов Azure AD Graph. Начиная с этого документа рекомендуется использовать Graph API вместо Azure AD Graph API.

Из полезной нагрузки данных установите параметр области соответственно.

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