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.

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