Как определить, какие разрешения API необходимы для выполнения определенной команды Azure PowerShell? - PullRequest
1 голос
/ 08 июля 2019

У меня есть субъект обслуживания, который я использую для автоматизации.Он имеет разрешение 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 Ответ

1 голос
/ 09 июля 2019

Необходимо указать Directory.Read.All (разрешение приложения) API-интерфейс Azure AD Graph , а не Microsoft Graph API .Также убедитесь, что у субъекта службы есть разрешение сервера SQL (например, у субъекта службы Owner подписки или сервера SQL), тогда он будет работать нормально.

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

enter image description here

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

enter image description here

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...