Как определить, какие разрешения 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 для получения разрешений.