Как я могу назначить участника службы группе AAD в моем размещенном конвейере выпуска VSTS с помощью PowerShell?

У меня есть конвейер выпуска VSTS, который предоставляет новое функциональное приложение с идентификатором управляемой службы. Мое решение включает в себя экземпляр хранилища общих ключей для секретов моего приложения. Хранилище ключей допускает максимум 16 записей управления доступом, поэтому я выбрал подход к созданию группы Azure AD для приложений, в которые я добавлю принципалов службы приложений. Все прямо и работоспособно в PowerShell локально, но я не могу найти способ сделать это, используя размещенные серверы сборки в конвейере выпуска VSTS и задачу выпуска Run Powershell In Azure.

Интерфейс командной строки Azure находится на версии 1.X на сервере сборки Hosted, а на сервере сборки Hosted 2017 версия 2.x * 1.x не предоставляет возможности манипулирования группами AD или доступа к API Graph * * 2.x предлагает az ad group member add но у размещенной сборки 2017 года есть проблема с New-AzureStorageTable, который используется в другом месте моего конвейера, поэтому я не могу его использовать

Точно так же модуль PowerShell Azure RM на размещенном сервере сборки очень стар и не поддерживает манипуляции с членством в группе. Версия на сервере Hosted 2017 (которую я не могу использовать) имеет такие команды, как Get-AzureRmADGroup но нечего добавить пользователя в эту группу.

Командлет Add-AzureADGroupMember, доступный в PowerShell AAD, был бы хорошим решением, но он недоступен ни на серверах сборки Hosted, ни Hosted 2017.

Я рассмотрел как модули Runbook автоматизации, так и прямые публикации HTTPS в API-интерфейс графа, используя токен OAuth, доступный в конвейере выпуска, но хочу остаться с PowerShell, чтобы сохранить как можно меньше технологий в моем конвейере выпуска. Я также предпочел бы избегать безопасного хранения учетных данных для использования в такой команде PowerShell, как Login-AzureRmAccount и полагаться на идентификатор конечной точки службы, которую я определил для своего конвейера выпуска.

Предложения приветствуются.

1 ответ

Поскольку размещенный агент не может удовлетворить ваши требования, вы можете настроить частный агент сборки (он бесплатный) на вашем компьютере: Развернуть агент в Windows.

Что касается командлета Add-AzureADGroupMember, вы можете установить его, вызвав Install-Module -Name AzureAD через задачу Azure PowerShell, которая отлично работает на размещенном агенте.

Автор сценария:

Install-PackageProvider -Name NuGet -Force -Scope CurrentUser
Install-Module -Name AzureAD -Force -Verbose -Scope CurrentUser
Другие вопросы по тегам