Я пытаюсь выполнить 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, поэтому я знаю, что сам токен в порядке.
Есть идеи?