Microsoft Graph API: недостаточно прав для завершения операции

Проблема

При создании токена доступа для Microsoft Graph API через ADAL Graph API не принимает токен.

{
  "odata.error": {
    "code": "Authorization_RequestDenied",
    "message": {
      "lang": "en",
      "value": "Insufficient privileges to complete the operation."
    }
  }
}

Что делает приложение

Приложение должно читать все пользователи клиента. Приложение настроено на User.Read.All привилегии. Согласие приложения предоставляется клиентом, откуда пользователи должны быть прочитаны - приложение действительно отображается с правами на портале Azure.

Что у меня есть до сих пор

Приложение работало несколько дней назад, и я ничего не менял. Другие приложения, использующие такой же способ аутентификации, работают.

  • Воссоздание в приложение AAD не помогло
  • Переустановка пакетов NuGet не помогла
  • Изменение полномочий с login.windows.net на login.microsoftonline.com не помогло
  • Генерация токенов не работает с секретами клиента и не с сертификатом
  • Расшифровка сгенерированного токена JWT показывает разрешения, необходимые для действия.

person Jan Kruse    schedule 13.03.2017    source источник
comment
Какие разрешения конкретно показывает JWT? Потому что, если они есть, это должно сработать, если они правильные.   -  person juunas    schedule 13.03.2017
comment
Токен JWT показывает: Group.Read.All и User.Read.All. Я знаю, что должно работать ... Тикет в Microsoft уже открыт :-)   -  person Jan Kruse    schedule 13.03.2017
comment
Вы вызываете URL-адрес https://graph.microsoft.com/v1.0/users, а утверждение aud в JWT https://graph.microsoft.com верно?   -  person juunas    schedule 13.03.2017
comment
Да, это правильно.   -  person Jan Kruse    schedule 13.03.2017
comment
Что ж, тогда у меня нет идей. Надеюсь, на ваш билет скоро ответят :)   -  person juunas    schedule 13.03.2017
comment
Спасибо, мы ведем расследование ...   -  person Jan Kruse    schedule 13.03.2017


Ответы (1)


Решение

Похоже, что документация от Microsoft некорректна. Для вывода списка пользователей требуется разрешение Directory.Read.

Обновлять

Согласно Microsoft, неясно, является ли это ошибкой в ​​Graph API или документация неверна.
Проблема открыта на Github, здесь.

Обновление 2

Эта проблема была исправлена ​​в обновлении Graph API в мае 2017 года.

person Jan Kruse    schedule 14.03.2017
comment
Вроде решено (вопрос закрыт и на GitHub). :) - person Mark Szabo; 06.08.2017
comment
Где я могу предоставить Directory.Read разрешения на портале Azure? Я не вижу их в разделе IAM. - person Jatin; 06.04.2018