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

能否通过Azure DevOps API查看任意用户的项目权限?

Azure DevOps API查看用户权限的问题解答

嘿,我来帮你梳理下这个问题的解决方案:

1. 能否通过API查看任意用户的权限?

可以,但有个关键前提:你的账号必须具备足够的权限,比如项目集合管理员权限,或者拥有对应安全命名空间的「查看权限」权限。如果权限不够,API会直接返回权限不足的错误。

2. 能否查看指定用户在DevOps项目内的权限?

完全没问题!你之前用的接口其实是专门用来查询当前请求者自身权限的,所以才会只对发起者生效。接下来给你说正确的用法:

3. 针对指定用户的权限查询方案

查询指定用户的项目级权限

使用这个接口(推荐用较新的API版本,兼容性更好):

GET https://dev.azure.com/{organization}/{project}/_apis/permissions/{securityNamespaceId}?api-version=7.1-preview.1&userId={userId}&token={projectToken}

参数解释:

  • {securityNamespaceId}:不同的权限类型对应不同的ID,比如项目核心权限的ID是58450967-806b-4dfa-bb43-6e0c3c96910b
  • {userId}:目标用户的唯一标识符(不是邮箱,是Azure DevOps内的用户GUID),可以通过下面的接口获取
  • {projectToken}:项目的权限令牌,格式为vstfs:///Classification/TeamProject/{projectId},其中{projectId}是项目的GUID

获取目标用户的ID

如果你只有用户的邮箱或名称,可以先调用这个接口查询用户信息:

GET https://dev.azure.com/{organization}/_apis/graph/users?api-version=7.1-preview.1&subjectTypes=user&searchFilter=General&searchText={userEmailOrName}

额外提示

  • 确保你的请求账号拥有「查看项目权限」的权限,比如项目管理员或者集合管理员身份
  • 如果你需要查询其他类型的权限(比如代码仓库、工作项),可以先获取对应的securityNamespaceId,通过这个接口查询所有可用的命名空间:
GET https://dev.azure.com/{organization}/_apis/securitynamespaces?api-version=7.1-preview.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 14:47:48