You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps Pipeline中使用服务主体运行Azure PowerShell任务

Azure DevOps Pipeline使用服务主体认证方案说明

你提到的Azure PowerShell任务订阅选择界面如下:
Azure PowerShell任务订阅选择界面

两种你提到的认证方式都可行,具体实现方法如下:

方案1(官方推荐):通过服务主体创建Service Connection使用

这是最安全、易用的实现方式,无需手动编写登录代码,敏感信息不会暴露在脚本中:

  • 进入Azure DevOps对应项目的「项目设置」-「服务连接」,点击「新建服务连接」
  • 选择连接类型为「Azure Resource Manager」,认证方式选择「服务主体(手动)」
  • 按提示填入你预先准备的Application ID、Tenant ID、App Secret、Subscription ID,完成验证后保存服务连接
  • 后续使用Azure PowerShell任务时,直接在下拉菜单选中该服务连接即可,任务会自动完成Azure资源的访问认证

方案2:在PowerShell任务中手动执行认证操作

如果不想创建服务连接,也可以直接通过代码完成登录,注意所有敏感值必须存入Pipeline的保密变量,禁止明文书写:

使用Az PowerShell模块认证代码:

$secret = ConvertTo-SecureString $env:APP_SECRET -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($env:APP_ID, $secret)
Connect-AzAccount -ServicePrincipal -Credential $credential -Tenant $env:TENANT_ID -Subscription $env:SUBSCRIPTION_ID

使用Azure CLI az login认证代码:

az login --service-principal -u $env:APP_ID -p $env:APP_SECRET --tenant $env:TENANT_ID
az account set --subscription $env:SUBSCRIPTION_ID

注意事项

  • 优先选择方案1,Azure DevOps会自动管理服务主体的认证生命周期,无需手动处理令牌过期、敏感信息泄露风险
  • 使用方案2时,必须将Application ID、Tenant ID、App Secret、Subscription ID都存入Pipeline变量,且App Secret必须勾选「保密」选项,避免敏感信息泄露

内容的提问来源于stack exchange,提问作者Ajay Meda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:57:02