Azure DevOps API技术咨询:如何获取权限组的成员信息
获取Azure DevOps安全组成员的API解决方案
要获取Azure DevOps权限(安全)组的成员,需要分两步调用Azure DevOps Graph API,以下是具体操作:
1. 获取目标安全组的Descriptor
安全组的唯一标识是descriptor,你需要先通过组名或其他条件查询到这个值:
API请求
GET https://vssps.dev.azure.com/{organization}/_apis/graph/groups?api-version=7.1-preview.1
可选筛选参数
如果要精准定位目标组,可添加filter参数(支持OData筛选语法):
GET https://vssps.dev.azure.com/{organization}/_apis/graph/groups?filter=displayName eq '{groupName}'&api-version=7.1-preview.1
关键响应字段
响应的value数组中,目标组对象的descriptor字段就是后续调用需要的标识,例如:
{ "value": [ { "descriptor": "vssgp.Uy0xLTktMTU1MTM3NDI0NS0xNzQ0NzY4ODkxLTExNzcwMjQyOTEtMTY4NzktMjQzNzQyOTQ1Ni0xLTEtMS0xNzQ0NzY4ODkxLTExNzcwMjQyOTEtMTY4NzktMjQzNzQyOTQ1Ng", "displayName": "Project Administrators", ... } ] }
2. 通过Descriptor查询组成员
拿到组的descriptor后,调用成员关系API获取所有成员:
API请求
GET https://vssps.dev.azure.com/{organization}/_apis/graph/memberships/{groupDescriptor}?api-version=7.1-preview.1
响应解析
响应的value数组中,每个对象的member字段包含成员的详细信息(对应你前端需要的用户名、邮箱等数据):
{ "value": [ { "member": { "descriptor": "aad.ZGU4M2E3YzAtYjU2OC00NDczLWIxMDQtNzI4YjE5YjJhYzU2", "displayName": "John Doe", "mailAddress": "john.doe@example.com", "originId": "de83a7c0-b568-4473-b104-728b19b2ac56", ... }, ... } ] }
项目级安全组的特殊处理
如果要获取项目专属的安全组成员,需要额外添加scopeDescriptor参数:
- 先获取项目的descriptor:
提取响应中GET https://dev.azure.com/{organization}/_apis/projects/{projectNameOrId}?api-version=7.1-preview.4descriptor字段作为项目的scopeDescriptor。 - 在查询安全组时添加该参数:
后续查询成员的步骤和之前一致。GET https://vssps.dev.azure.com/{organization}/_apis/graph/groups?scopeDescriptor={projectDescriptor}&filter=displayName eq '{projectLevelGroupName}'&api-version=7.1-preview.1
权限注意事项
调用这些API需要你拥有组织或项目的读取权限(例如加入Project Collection Valid Users组即可满足基础读取需求)。
内容的提问来源于stack exchange,提问作者Joseph Gast
相关产品推荐
相关产品推荐

