Ошибка проверки токена доступа. Недопустимая аудитория, Office 365 Graph API

Извините, я немного теряюсь, пытаясь настроить API графа. Моя конечная цель — доступ только к приложению. Когда я пытаюсь авторизоваться, я получаю сообщение об ошибке «Ошибка проверки токена доступа». Недействительная аудитория.

Мой код

import requests
tenant = 'widgetsinc'
token_request_url = 'https://login.microsoftonline.com/{}/oauth2/v2.0/token'.format(tenant)
auth_payload = {
                    'client_id': 'deaf-beef-cafe',
                    'scope': 'api://deaf-beef-cafe/.default',
                    'client_secret': 'hunter2',
                    'grant_type': 'client_credentials'
                }


x = requests.post(token_request_url, data=auth_payload)
token = x.json()
print(token)

url = "https://graph.microsoft.com/v1.0/users"
payload = {'Authorization':token['access_token']}

x = requests.post(url, headers=payload)

print(x.json())
exit()```

The result of print(token)

{ 'token_type': 'Носитель', 'expires_in': 3599, 'ext_expires_in': 3599, 'access_token': 'УДАЛЕН' }


the result of print(x.json())

{ 'ошибка': { 'код': 'InvalidAuthenticationToken', 'сообщение': 'Ошибка проверки токена доступа. Недопустимая аудитория.', 'внутренняя ошибка': { 'дата': '2023-01-25T00:38:48', 'идентификатор запроса': 'удален', 'client-request-id': 'это также удалено' } } }```

мои разрешения для моего приложения в веб-интерфейсе разрешения

Вам нужно изменить область действия на https://graph.microsoft.com/.default, чтобы вызвать Microsoft Graph.

Sridevi 25.01.2023 03:24
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
1
80
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

{ 'ошибка': { 'код': 'InvalidAuthenticationToken', 'сообщение': 'Ошибка проверки токена доступа. Недействительная аудитория.', 'innerError': { 'date':'2023-01-25T00:38:48', 'request-id': 'удалено', 'client-request-id': 'это также удалено' } } }

Вышеупомянутая ошибка возникает, когда вы передаете неправильную область действия или ваш токен имеет неправильную аудиторию для вызова Microsoft Graph API в вашей среде. Согласно MS-Document, чтобы получить токен доступа, вам нужно пройти https://graph.microsoft.com/.default в области видимости.

Я попытался с тем же кодом, используя область действия https://graph.microsoft.com/.default с тем же разрешением API, чтобы все пользователи получили ошибку:

Разрешение API:

Код:

import requests
tenant = '<tenant-id>'
token_request_url = 'https://login.microsoftonline.com/{}/oauth2/v2.0/token'.format(tenant)
auth_payload = {
                    'client_id': '<client-id>',
                    'scope': 'https://graph.microsoft.com/.default',
                    'client_secret': '<client secret>',
                    'grant_type': 'client_credentials'
                }


x = requests.post(token_request_url, data=auth_payload)
token = x.json()
print(token)

url = "https://graph.microsoft.com/v1.0/users"
payload = {'Authorization':token['access_token']}

x1 = requests.get(url, headers=payload)

token1=x1.json()
print(token1)

Консоль:

Чтобы получить всех пользователей, вам нужно использовать User.read.all с разрешением API приложения.

Разрешение API:

Консоль:

После добавления разрешения API в приложение код успешно выполнялся для всех пользователей.

Ссылка: Список пользователей - Microsoft Graph v1.0 | Обучение Майкрософт

Другие вопросы по теме