0

我有一个 VSTS 发布管道,它使用 Managed Service Identity 配置一个新的函数应用程序。我的解决方案包括我的应用程序机密的共享密钥库实例。Key Vault最多允许 16 个访问控制条目,因此我采取了为应用程序创建 Azure AD 组的方法,我将向其中添加应用程序服务主体。所有这些都可以在本地的 PowerShell 中直接使用,但我无法找到一种方法来使用 VSTS 发布管道中的托管构建服务器和在 Azure发布任务中运行 Powershell。

Azure CLI 在托管构建服务器上的版本为 1.X,在托管的 2017 构建服务器上为 2.x * 1.x 似乎不提供 AD 组操作或图形 API 访问 * 2.x 提供az ad group member add但托管2017 版本的New-AzureStorageTable 有问题,它在我的管道中的其他地方使用,所以我不能使用它

同样,托管构建服务器上的 Azure RM powershell 模块非常旧,似乎不支持组成员身份操作。Hosted 2017 服务器上的版本(我无法使用)具有类似Get-AzureRmADGroup但没有将用户添加到该组的命令。

AAD powershell 中提供的 cmdlet Add-AzureADGroupMember将是一个不错的解决方案,但它在HostedHosted 2017构建服务器上均不可用。

我已经考虑使用发布管道中可用的 OAuth 令牌将自动化运行手册和直接 HTTPS 发布到图形 API,但希望继续使用 PowerShell 以使我的发布管道中的技术数量尽可能少。我还希望避免以安全的方式存储凭据以在 PowerShell 命令中使用,例如Login-AzureRmAccount并依赖我为发布管道定义的服务端点的身份。

建议表示赞赏。

4

1 回答 1

0

由于托管代理无法满足您的要求,您可以在您的机器上配置私有构建代理(它是免费的):在 Windows 上部署代理

关于 Add-AzureADGroupMember cmdlet,您可以通过 Azure PowerShell 任务调用Install-Module -Name AzureAD来安装它,这在托管代理上运行良好。

脚本:

Install-PackageProvider -Name NuGet -Force -Scope CurrentUser
Install-Module -Name AzureAD -Force -Verbose -Scope CurrentUser
于 2017-12-27T02:03:38.737 回答