На вопрос ответили выше @Saca и @Nan Yu. Это может быть закрыто сейчас. Решение, основанное на создании объектов OAuth2PermissionGrant и AppRoleAssignment для ServicePrincipal создаваемого приложения, является правильным способом решения проблемы, мне удалось решить проблему таким образом.

компания разрабатывает систему, основанную на компонентах Azure и клиентском настольном приложении, которое подключается к Azure. Компоненты Azure внедряются автоматически с помощью нашего кода установки через API Azure и автоматизацию развертывания Azure. Один из этих развертываемых компонентов - это веб-приложение / API, которое мы регистрируем в Azure Active Directory. Наш код развертывания создает это приложение в Azure через API Azure и устанавливает «Необходимые разрешения» для этого приложения в Azure. Требуемые разрешения:

После того как приложение настроено с помощью Azure, у нас появляется клиентское настольное приложение. В нашем клиентском настольном приложении пользователь может войти в Azure, а затем мы хотим получить доступ к созданному приложению. Поэтому наше клиентское настольное приложение в основном отображает окно входа в Azure для входа в Azure, а затем пытается получить доступ к веб-приложению в Azure, и мы получили следующее:

Итак, я могу решить это вручную: если я войду в Azure как Администратор и вручную предоставлю разрешения, нажав кнопку «Предоставить разрешения», показанное выше сообщение больше не будет отображаться, и все будет работать гладко. Я нажимаю кнопку «Предоставить разрешения»:

Но, к сожалению, мы не можем пойти по этому пути, предоставив разрешения вручную, нам нужно найти способ сделать это программно - с помощью кода C #. Это наше деловое требование. Таким образом, существующий код C # создает приложение в Azure AD, устанавливает необходимые разрешения для него, а отсутствующей частью является фрагмент C #, который автоматически предоставит разрешения - так, чтобы пользователи не увидели предупреждающее сообщение выше. Я изучал различные онлайн-ресурсы и пока не нашел способа сделать это с помощью кода C # - к сожалению. Есть ли способ предоставить разрешения автоматически? Любой фрагмент C #? Вызов API Azure? Powershell? Что-нибудь?

Относительно подробностей разрешений, которые запрашивает наше приложение: для Microsoft Graph нам потребовались эти разрешения в качестве разрешений приложения:

И те, как делегированные разрешения:

Для Windows Azure Active Directory требуются следующие разрешения:

Ответы на вопрос(1)

Ваш ответ на вопрос