Как использовать библиотеку azure msal для доступа к API управления azure? - PullRequest
1 голос
/ 06 февраля 2020

Все примеры на сайте Microsoft azure, относящиеся к клиентскому приложению или принципалу службы, имеющему доступ к azure apis, все показывают график apis в качестве примера. Я заставил их работать, но мне нужно получить доступ к azure API управления сервисами.

Если я беру токен аутентификации, который работает для Graph API, и использую его для API управления сервисами, я получить «Ошибка аутентификации». ошибка.

Я добавил разрешение API для "azure управления службами" и делегированный тип разрешения user_impersonation в мое клиентское приложение publi c, но API управления по-прежнему не работает.

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

1 Ответ

0 голосов
/ 07 февраля 2020

Полагаю, вы используете клиентское приложение или субъект-службу для доступа к azure ресурсам. Если это так, вы используете клиентский поток учетных данных , но user_impersonation из Azure Service Management API имеет разрешение delegated, оно не будет действовать в этом потоке.

Разрешение используется как согласие пользователя, который входит в приложение AD, например, в потоке кода авторизации , когда оно получит согласие пользователя, приложение сможет представлять пользователя для доступа к ресурсам azure, обратите внимание, что разрешение принадлежит пользователю, а не приложению. Поэтому, если вы хотите использовать этот поток, пользователь должен иметь роль в подписке или указать c ресурсы.

Чтобы получить доступ к azure ресурсам с помощью клиентского приложения или участника службы, вам просто нужно Чтобы добавить субъект-службу в качестве роли RBA C в Access control (IAM) вашей подписки или указанного ресурса c, нет необходимости добавлять какие-либо разрешения API в Azure AD, см. эту ссылку . После этого субъект службы сможет получить доступ к ресурсам azure.

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

...