Azure Active Directory: добавление участника службы к роли читателей каталога с помощью PowerShell
- Команда
(Get-AzureRmADUser -Mail $user).Id
в задаче Azure PowerShell возвратил пустое значение при запуске на агенте с автономным размещением в VSTS - Проблема заключалась в том, что у участника службы должно быть разрешение на чтение из Active Directory.
Как я могу дать субъекту службы правильные разрешения на чтение из Azure Active Directory?
1 ответ
Решение
Предпосылки
- Проверьте, есть ли у вас соответствующие разрешения для получения идентификатора объекта от руководителя службы
- Проверьте, есть ли у вас соответствующие разрешения для добавления участника-службы в роль "Читатели каталога" в клиенте Azure Active Directory (-> Admin)
меры
Установите модуль Azure AD через
Install-Module AzureAD
[1]Подключитесь к Azure Active Directory
Connect-AzureAD
Получить идентификатор роли "Читатели каталога"
$roleId = (Get-AzureADDirectoryRole | where-object {$_.DisplayName -eq "Directory Readers"}).Objectid
Получить идентификатор основного объекта службы
$spObjectId = (Get-AzureADServicePrincipal -SearchString "spName").ObjectId
- Это, конечно, работает, только если результат включает только один ObjectId
- Это не ObjectId приложения, зарегистрированного в Azure Active Directory.
Добавьте участника службы в роль "Читатели каталога"
Add-AzureADDirectoryRoleMember -ObjectId $roleId -RefObjectId $spObjectId
Проверьте, назначен ли SP на роль читателей каталога
Get-AzureADDirectoryRoleMember -ObjectId $roleId | Where-Object {$_.ObjectId -eq $spObjectId}
Если вы хотите удалить участника службы из роли на более позднем этапе
Remove-AzureADDirectoryRoleMember -ObjectId $roleId -MemberId $spObjectId
Смотрите также [2]
Ресурсы
[1] Установите модуль Azure AD.
[2] Использование субъекта-службы для подключения к каталогу в PowerShell.