如何验证Azure DevOps服务连接对应的Entra ID服务主体
验证Azure DevOps服务连接对应服务主体的方法
一、直接在管道中获取服务主体的唯一标识
在你的Azure DevOps管道里加一个步骤,执行以下命令,就能拿到当前服务连接使用的服务主体的应用ID和对象ID:
# 获取服务主体的应用ID(对应az account show输出里的user.name) sp_app_id=$(az account show --query user.name -o tsv) # 输出服务主体的完整信息,包括对象ID、名称等 az ad sp show --id $sp_app_id
把输出里的appId和id(对象ID),和Entra ID企业应用列表里的候选对象对比,完全匹配的就是目标服务主体。
二、从Azure DevOps服务连接后台查看详情
如果你有项目管理员权限:
- 打开Azure DevOps项目的项目设置 → 服务连接
- 找到目标服务连接,点击右侧的编辑
- 在编辑页面底部,点击查看服务主体详情(部分类型的服务连接会显示这个选项)
- 页面会直接展示该服务连接对应的服务主体应用ID,用这个ID去Entra ID的企业应用中搜索即可。
三、通过Azure订阅IAM角色分配反向查找
- 登录Azure门户,进入目标订阅
- 打开访问控制(IAM) → 角色分配
- 筛选条件选择主体类型为服务主体,结合服务连接的权限范围(比如指定的资源组),找到对应的角色分配条目
- 点击条目里的服务主体名称,就能看到它的应用ID和对象ID,再去Entra ID中匹配。
补充易懂的核心知识点
- 服务主体和企业应用是一回事:在Entra ID里,服务主体就是以「企业应用」的形式展示的,每个服务主体对应一个企业应用条目,搜索应用ID是最准确的匹配方式(名称可以自定义修改,但应用ID唯一且不会变更)。
- 服务连接命名的误区:自动创建的服务连接对应的服务主体名称,通常不是你自定义的服务连接名称,而是系统生成的格式(比如
AzureDevOps-xxxx-xxxx),所以靠名称匹配基本行不通,必须用ID。 - 给服务主体加角色的正确方式:找到目标服务主体后,直接在Azure订阅/资源组的IAM页面,用应用ID或对象ID搜索到它,再分配对应角色即可。
内容的提问来源于stack exchange,提问作者Ytsen de Boer
相关产品推荐
相关产品推荐

