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

如何在不使用Service Connection的情况下从Azure Pipeline连接Azure订阅

Azure Pipeline 无服务连接登录Azure订阅可行方案

核心思路为复用你本地可正常完成认证的身份凭证,无需新建服务主体即可在Pipeline非交互环境完成登录。

方案1:个人Azure AD账密认证(仅支持未开启MFA的账号)

如果你的Azure登录账号没有启用多因素认证,可直接将账密存为Pipeline秘密变量完成认证:

  • 在Pipeline的变量配置页,新增两个秘密变量:AZURE_USER(你的Azure登录邮箱)、AZURE_PWD(你的Azure登录密码),务必勾选「保密」选项,避免变量明文泄露。
  • 在Pipeline任务中直接调用对应认证命令即可:

Az CLI 认证示例

az login -u $(AZURE_USER) -p $(AZURE_PWD)
# 登录完成后切换到目标订阅
az account set --subscription "你的订阅ID/订阅名称"

Az PowerShell 认证示例

$securePwd = ConvertTo-SecureString $(AZURE_PWD) -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential($(AZURE_USER), $securePwd)
Connect-AzAccount -Credential $credential -Subscription "你的订阅ID/订阅名称"

方案2:复用本地已认证上下文(支持开启MFA的账号)

如果你的账号开启了MFA无法使用账密登录,可直接导出本地已经登录成功的Azure身份上下文,传入Pipeline使用:

操作步骤

  1. 在你本地可正常登录Azure的PowerShell环境,执行导出命令:

    导出Az PowerShell上下文

    # 确保本地已经登录目标Azure订阅后执行
    Save-AzContext -Path .\AzContext.json
    

    导出Az CLI刷新令牌

    # 本地执行后复制输出的刷新令牌
    az account get-access-token --query "refreshToken" -o tsv
    
  2. 进入Azure Pipeline配置页:
    • 如果用Az PowerShell:进入「库」-「安全文件」,上传导出的AzContext.json,开启保密属性。
    • 如果用Az CLI:新增秘密变量AZURE_REFRESH_TOKEN,粘贴刚才导出的刷新令牌,勾选保密。
  3. 在Pipeline中调用认证命令:

    Az PowerShell 认证示例

    先添加「下载安全文件」任务下载上传的AzContext.json,再执行:
    Import-AzContext -Path $(DownloadSecureFile.SecureFilePath)
    # 验证当前登录的订阅是否正确
    Get-AzSubscription
    

    Az CLI 认证示例

    az login --refresh-token $(AZURE_REFRESH_TOKEN)
    # 切换到目标订阅
    az account set --subscription "你的订阅ID/订阅名称"
    

注意事项

  • 所有凭证类信息(密码、刷新令牌、上下文文件)必须存储为Pipeline的秘密变量或保密安全文件,禁止直接写入YAML配置,避免身份泄露。
  • 该方案使用的是你的个人身份权限,操作审计会记录为你的账号,请勿执行超出权限范围的操作。
  • 刷新令牌默认有效期为90天,上下文身份也会随账号密码变更、登出操作失效,失效后重新从本地导出更新即可。
  • 待负责服务主体的团队成员可用后,建议切换为官方服务连接方案,个人身份的稳定性、安全性均低于专用服务主体。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:27:03