Microsoft Graph возвращает «Токен не содержит разрешений, ...» при использовании токена только для приложения - PullRequest
0 голосов
/ 08 апреля 2019

Используя Почтальон, я пытаюсь получить последние электронные письма, полученные в моем почтовом ящике Outlook.

Для этого я объявил свое приложение на портале приложений. Затем я могу сделать GET запрос на получение токена от конечной точки:

https://login.microsoftonline.com/[tenantId]/oauth2/token

Далее я пытаюсь использовать полученный токен для выполнения запроса на

https://graph.microsoft.com/v1.0/me/mailfolders/inbox/messages

Проблема в том, что API возвращает:

{
  "code": "NoPermissionsInAccessToken",
  "message": "The token contains no permissions, or permissions can not be understood.",
}

В разрешениях моего приложения я разрешил каждое действие, связанное с чтением электронных писем. Я что-то пропустил?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Мне не хватало одобрения администратора для областей (в моем случае read.mail).При использовании только для приложений вам необходимо получить одобрение администратора.Для этого администратор должен использовать этот URL:

https://login.microsoftonline.com/common/adminconsent?client_id=[your_client_id]&state=[random_string]&redirect_uri=http://localhost/

Администратор будет предлагать утвердить разрешения.

0 голосов
/ 11 апреля 2019

Звучит так, будто вы забыли «Предоставить разрешение» (это случается с лучшими из нас: P).

Дайте разрешение вашему арендатору. Самый простой способ - через https://portal.azure.com -> Azure AD -> Регистрация приложений -> Ваше приложение -> Настройки -> Необходимые разрешения -> Кнопка предоставления доступа.)

Относится к этому ответ

Это также помогает взять токен и вставить его в https://jwt.ms, который покажет вам все данные в токене (а также должен показать утверждения о предоставленных разрешениях).

...