如何使用PowerShell将托管VSTS版本管道中的服务主体分配给AAD组?

问题描述 投票:0回答:1

我有一个VSTS发布管道provisions a new function app with a Managed Service Identity。我的解决方案包括我的应用程序机密的共享密钥保管库实例。密钥保险库allows a maximum of 16 access control entries所以我采取了为应用程序创建Azure AD组的方法,我将添加应用程序服务主体。所有直接在本地PowerShell中都可以直接使用,但我无法使用VSTS版本管道中的托管构建服务器和Azure发布任务中的Run Powershell来找到一种方法。

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

同样,Hosted构建服务器上的Azure RM powershell模块非常老,而且doesn't appear to support group membership manipulation。 Hosted 2017服务器上的版本(我不能使用)有Get-AzureRmADGroup之类的命令,但没有任何东西可以将用户添加到该组。

cmdlet Add-AzureADGroupMember, available in the AAD powershell将是一个很好的解决方案,但它在HostedHosted 2017构建服务器上都不可用。

我已经使用发布管道中提供的OAuth令牌考虑了自动化Runbook和直接HTTPS帖子到图API,但是我希望继续使用PowerShell来保持发布管道中的技术数量尽可能小。我还希望避免以安全的方式存储凭据,以便在像Login-AzureRmAccount这样的PowerShell命令中使用,并依赖于我为我的发布管道定义的Service Endpoint的标识。

建议表示赞赏。

powershell azure azure-active-directory azure-pipelines-release-pipeline azure-msi
1个回答
0
投票

由于托管代理无法满足您的要求,您可以在您的计算机上配置私有构建代理(它是免费的):Deploy an agent on Windows

关于Add-AzureADGroupMember cmdlet,您可以通过Azure PowerShell任务调用Install-Module -Name AzureAD来安装它,该任务在Hosted代理上运行正常。

脚本:

Install-PackageProvider -Name NuGet -Force -Scope CurrentUser
Install-Module -Name AzureAD -Force -Verbose -Scope CurrentUser
© www.soinside.com 2019 - 2024. All rights reserved.