如何创建至外部Entra ID租户的Azure DevOps服务连接?
在Azure DevOps中为外部Entra ID租户创建服务连接并运行AzureCLI@2任务的解决方案
这完全可行,以下是具体操作步骤:
1. 前置权限与信任确认
- 确保你拥有外部Entra ID租户的全局管理员或应用程序管理员权限,用于创建应用注册。
- 确认目标Azure订阅已与该外部租户建立信任关系(即订阅已添加外部租户作为身份源)。
2. 在外部租户中创建服务主体
- 登录外部租户的Azure门户,进入Entra ID > 应用注册 > 新注册。
- 填写应用名称,根据需求选择账户类型(推荐选「任何组织目录中的账户(多租户)」以适配跨场景),完成注册。
- 进入应用的证书和密码页面,创建一个客户端密码,务必记录密码值(仅创建时可见)。
- 为该应用在目标Azure订阅中分配权限:进入订阅的访问控制(IAM) > 添加角色分配,选择所需角色(如「参与者」),搜索并选中刚创建的应用,完成分配。
3. 在Azure DevOps中手动创建服务连接
- 打开Azure DevOps项目,进入项目设置 > 服务连接 > 新建服务连接。
- 选择Azure资源管理器,点击下一步后选择服务主体(手动)。
- 填写以下核心信息:
- 订阅ID/名称:目标Azure订阅的对应信息
- 服务主体ID:外部租户中应用注册的应用程序(客户端)ID
- 服务主体密钥:之前创建的客户端密码值
- 租户ID:外部Entra ID租户的ID(可在租户的Entra ID概述页面获取)
- 连接名称:自定义易识别的名称
- 点击验证并保存,完成服务连接创建。
4. 在流水线中调用该服务连接
在AzureCLI@2任务中指定新建的服务连接即可,示例YAML配置:
- task: AzureCLI@2 inputs: azureSubscription: '外部租户服务连接名称' scriptType: 'bash' inlineScript: | # 示例脚本:列出订阅内的资源组 az group list
常见问题排查
- 若验证失败,检查服务主体密码是否正确、未过期,以及订阅内的角色分配是否生效。
- 自托管代理需确保网络能连通外部Entra ID的认证端点。
内容的提问来源于stack exchange,提问作者Erik Z
相关产品推荐
相关产品推荐

