У участника службы Azure недостаточно прав для управления другими участниками службы - PullRequest
0 голосов
/ 12 сентября 2018

Я могу создать субъект-службу либо с помощью Azure, либо с консоли портала с помощью az cli.

az ad sp create-for-rbac --name "myspuser" --password "adfhrrreeuwrgwejdfgds"

Затем я назначаю роль владельца на уровне подписки и регистрируюсь в консоли powershell.

Login-AzureRmAccount -Credential (New-Object System.Management.Automation.PSCredential ('a92b2ea2-aaaa-0000-0a0a-1238ec953226', $(ConvertTo-SecureString 'abcewior23h23ius' -AsPlainText -Force))) -ServicePrincipal -TenantId 0cedca99-00f4-40d1-aa41-80d67ece2de8;

Здесь я могу сделать почти все, что угодно, например, развернуть машины, кроме проверки других пользователей.

Когда я выполню

Get-AzureRmADServicePrincipal

Все, что я получаю, это Get-AzureRmADServicePrincipal : Insufficient privileges to complete the operation. Это работает с моим стандартным логином пользователя.

Моя цель - создать автоматизацию, в которой пользователи могут развертывать полную среду с помощью шаблонов ARM, используя jenkins в своей подписке MSDN. Поскольку некоторые имена входа не поддерживаются в powershell, я бы хотел, чтобы мои пользователи использовали для этого принципала службы. Моя автоматизация требует создания SP, который будет использоваться на машине linux с использованием jenkins, который должен читать свойства машин группы ресурсов.

Что мне здесь не хватает? Как назначить права пользователя участника службы для управления другими учетными записями участника службы?

1 Ответ

0 голосов
/ 12 сентября 2018

Кажется, вам нужно использовать Add-AzureADDirectoryRoleMember, чтобы назначить роль каталога субъекту службы.

Вы можете выбрать нужную вам роль каталога, перейдите по этой ссылке .

Примечание . Сначала необходимо установить модуль Azure Ad PowerShell .

В этом случае вы можете попытаться назначить роль Application Administrator субъекту службы. (При необходимости вы можете назначить Company Administrator роль.)

Пример:

# Fetch role instance
$role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq 'Application Administrator'}

# If role instance does not exist, instantiate it based on the role template
if ($role -eq $null) {
    # Instantiate an instance of the role template
    $roleTemplate = Get-AzureADDirectoryRoleTemplate | Where-Object {$_.displayName -eq 'Application Administrator'}
    Enable-AzureADDirectoryRole -RoleTemplateId $roleTemplate.ObjectId

    # Fetch role
    $role = Get-AzureADDirectoryRole | Where-Object {$_.displayName -eq 'Application Administrator'}
}

# Add the SP to role
Add-AzureADDirectoryRoleMember -ObjectId $role.ObjectId  -RefObjectId <your SP ObjectID>

Вот аналогичная проблема, на которую вы можете сослаться, см. Ссылку .

...