Как определить, какие разрешения API необходимы для выполнения определенной команды Azure PowerShell?

У меня есть субъект обслуживания, который я использую для автоматизации. Имеет Directory.Read.All разрешение в Microsoft Graph для нашей Azure Active Directory.

Он не может запустить Set-AzSqlServerActiveDirectoryAdministrator команда. Я получаю ошибку:

Cannot find the Azure Active Directory object 'My-AD-Group'.
Please make sure that the user or group you are authorizing is
registered in the current subscription's Azure Active directory.

Если я запускаю ту же команду, что и я, она работает нормально.

Ясно, что мой руководитель службы нуждается больше, чем Directory.Read.All разрешение. Тем не менее, я не могу найти никакой документации, в которой точно указан список разрешений API, который понадобится моему сервисному принципалу для успешного выполнения этой команды.

Кто-нибудь знает, как я могу точно узнать, какие разрешения API потребуются для выполнения определенной команды Azure PowerShell, которая включает доступ к Azure Active Directory?

Кроме того, я не привязан к PowerShell. Я не могу заставить эту команду работать с az Cli либо. Я открыт для методов, использующих az это дало бы мне этот ответ.

1 ответ

Решение

Вы должны дать Directory.Read.All (Разрешение приложения) Azure AD Graph API, а не Microsoft Graph API. Также убедитесь, что у участника службы есть разрешение сервера sql (например, участник службы является Owner подписки или сервера sql), то все будет работать нормально.

Если вы хотите добавить субъект-службу как роль подписки или сервера sql, перейдите к подписке или серверу sql на портале -> Access control (IAM) -> Add -> Add role assignment -> поиск вашего субъекта службы с именем и добавить его в качестве роли (например, Owner) -> Save подробнее здесь.

Set-AzSqlServerActiveDirectoryAdministrator -ResourceGroupName "<ResourceGroupName>" -ServerName "<ServerName>" -DisplayName "group1" -ObjectId "64d1b8xxxxx4ffbd"

Кто-нибудь знает, как я могу точно узнать, какие разрешения API потребуются для выполнения определенной команды Azure PowerShell, которая включает доступ к Azure Active Directory?

Azure PowerShell, по сути, вызывает различные API, чтобы получить разрешения API, вы можете перехватить запрос через Fiddler, а затем просмотреть официальный документ API для получения разрешений.

Другие вопросы по тегам