Доступ к Azure Active Directory из консольного приложения C# и получение «Недостаточно прав для завершения операции». сообщение об ошибке - PullRequest
0 голосов
/ 23 января 2020

Я следовал инструкциям Microsoft, создал корпоративное приложение и зарегистрировал его в качестве веб-приложения в своем пробном экземпляре Azure.

Я также добавил разрешения AAD для «приложения» ((т.е. User.Read .All , User.ReadWrite.All , Directory.Read.All , Directory.ReadWrite.All )) для этого приложения, следуя документации Microsft. [https://docs.microsoft.com/en-us/graph/api/user-list?view=graph-rest-1.0&tabs=http] [1]

Затем я создал небольшое консольное приложение C# для доступа и просмотра списка тестовых пользователей, которых я создал в этом веб-приложении.

Я могу подключиться и аутентифицироваться на Azure Active Directory и получить от него токен безопасности. Тем не менее, я не могу получить список тестовых пользователей из моего приложения, даже если я дал необходимые права на это приложение Azure.

После получения токена на предъявителя программа завершает работу со следующим сообщением об ошибке:

{"odata.error": {"code": "Authorization_RequestDenied", "message": {"lang": "en", "value": " Недостаточно прав для завершения операции."}," requestId ":" 400231dd-cd3f-4789-99ee-ab9cc3ffb95e "," date ":" 2020-01-22T21: 00: 00 "}}

Я считаю, что мой код работает как положено, так как я получаю токен на предъявителя. Однако прав, которые я дал приложению Azure, недостаточно для перечисления пользователей этого приложения.

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

Я надеюсь, что кто-то может дать ответ и направить меня в правильном направлении, чтобы решить этот вопрос доступа.

Заранее спасибо,

1 Ответ

0 голосов
/ 23 января 2020

Я исследовал свою проблему и наткнулся на следующую статью о Stackoverflow, которая выглядела как моя проблема. [ Graph API - Недостаточно прав для завершения операции

После просмотра я понял, что мне не хватает разрешений "Directory.Read.All" и "Directory.ReadWrite.All" от " Azure API Active Directory Graph.

Я добавил эти разрешения, дал «Административное согласие» и попробовал еще раз.

Это сработало!

Однако, когда Я добавил эти два разрешения в свое приложение, и появилось информационное сообщение.

Вместо этого мне посоветовали использовать Microsoft Graph API, даже если я его использовал и не имел доступа к информации AAD.

Спасибо,

...