如何用联邦身份替代Azure Repos服务连接跨租户克隆Git仓库?
可以用联邦身份(工作负载身份)实现跨租户无密钥克隆
完全可以用工作负载身份替换原有的PAT认证服务连接,实现无PAT、无client_secret的跨租户Azure DevOps Git仓库克隆,具体操作步骤如下:
1. 目标租户(托管待克隆仓库的Azure DevOps组织所属租户)配置
- 创建Azure AD应用注册,记录其客户端ID和目标租户ID。
- 给该应用注册添加Azure DevOps API权限:
- 选择Azure DevOps服务,添加应用权限类型的
Code.Read.All(或按需选择更精细的仓库读取权限),并授予租户管理员同意。
- 选择Azure DevOps服务,添加应用权限类型的
- 为应用注册添加联邦身份凭证:
- 进入应用注册→证书和密码→联邦身份凭证→添加凭证
- 选择「其他颁发者」,输入当前租户Azure DevOps组织的颁发者URL:
https://vstoken.dev.azure.com/<当前组织ID>/,受众填写目标应用注册的客户端ID,设置有效期后保存。
- 在目标Azure DevOps项目中配置权限:
- 进入项目→设置→权限→Repositories,添加上述应用注册对应的服务主体(可通过客户端ID搜索),授予「读取」权限。
2. 当前租户(运行管道的Azure DevOps组织所属租户)配置
- 新建工作负载身份类型的服务连接:
- 进入项目设置→服务连接→新建服务连接
- 选择「Azure Active Directory」类型,认证方式选「工作负载身份」
- 输入目标租户ID、目标应用注册的客户端ID,完成服务连接创建,记录服务连接名称。
3. 修改管道配置
将原管道中的服务连接端点替换为新创建的工作负载身份服务连接名称:
resources: repositories: - repository: iac type: git name: project/iac ref: "master" endpoint: <新工作负载身份服务连接名称>
关键注意事项
- 确保使用的代理池支持工作负载身份:微软托管代理已默认支持,自托管代理需升级至最新版本。
- 权限配置需精准:目标服务主体必须拥有待克隆仓库的读取权限,否则会出现认证失败。
内容的提问来源于stack exchange,提问作者Michele
相关产品推荐
相关产品推荐

