У меня есть конвейер выпуска VSTS, который предоставляет новое функциональное приложение с Управляемая идентификация службы. Мое решение включает в себя экземпляр хранилища общих ключей для секретов моего приложения. Хранилище ключей допускает максимум 16 записей управления доступом, поэтому я решил создать группу Azure AD для приложений, в которую я буду добавлять участников-служб приложений. Все просто и работает в PowerShell локально, но я не могу найти способ сделать это с помощью размещенных серверов сборки в конвейере выпуска VSTS и задачи выпуска Запуск Powershell в Azure.
Интерфейс командной строки Azure имеет версию 1.X на сервере сборки Hosted и 2.x на сервере сборки Hosted 2017 * 1.x, похоже, не предлагает управление группами AD или доступ к графическому API * 2.x предлагает az ad group member add
, но размещенная сборка 2017 имеет проблему с New-AzureStorageTable, который используется где-то еще в моем конвейере, поэтому я не могу его использовать
Точно так же модуль PowerShell Azure RM на сервере размещенной сборки очень старый и не поддерживает манипуляции с членством в группах. Версия на сервере Hosted 2017 (которую я не могу использовать) имеет такие команды, как _ 2_, но ничего для добавления пользователя в эту группу.
Командлет Add-AzureADGroupMember, доступный в AAD PowerShell будет хорошим решением, но он недоступен ни на Размещено или Хостинг 2017 серверов сборки.
Я рассмотрел как модули Runbook для автоматизации, так и прямые HTTPS-сообщения в API-интерфейсе графа с использованием токена OAuth, доступного в конвейере выпуска, но хочу остаться с PowerShell, чтобы количество технологий в моем конвейере выпуска было как можно меньшим. Я также предпочел бы избегать безопасного хранения учетных данных для использования в команде PowerShell, такой как Login-AzureRmAccount
, и полагаться на идентификатор Конечная точка службы, которую я определил для своего конвейера выпуска.
Предложения приветствуются.