如何通过REST访问本地Azure DevOps Server安全区域及获取PAT?
在本地Azure DevOps Server中通过REST API访问安全区域(含PAT查询)
本地版与托管版API的核心区别
Azure DevOps Server(本地部署版)的API端点结构和托管版(Azure DevOps Services)存在明显差异:
- 托管版使用
vssps.dev.azure.com作为专用身份服务域名,本地版直接使用你的服务器域名/IP,基础路径默认是/tfs(若部署时修改过则对应调整) - 本地版的安全类API不使用
vssps前缀,而是整合到主服务端点下
获取所有PAT的具体API(本地版)
本地版没有和托管版tokenadmin/personalaccesstokens完全对应的端点,但可以通过以下方式获取PAT信息:
- 查询全局所有PAT
使用以下端点(需账户管理员权限):
返回结果包含所有用户的PAT元数据,包括令牌ID、过期时间、授权范围、关联用户等内容。http://{your-server-address}:8080/tfs/_apis/security/tokens?api-version=7.1-preview.1 - 查询指定用户的PAT
先通过用户身份API获取目标用户的subjectDescriptor,再调用:http://{your-server-address}:8080/tfs/_apis/security/tokens?subjectDescriptor={user-subject-descriptor}&api-version=7.1-preview.1
访问其他安全区域(身份、账户、权限)的API示例
身份管理
- 获取所有用户/组列表:
http://{your-server-address}:8080/tfs/_apis/identities?api-version=7.1-preview.1 - 获取单个用户详情:
http://{your-server-address}:8080/tfs/_apis/identities/{subjectDescriptor}?api-version=7.1-preview.1
账户与权限管理
- 查询权限命名空间(了解可管理的权限类型):
http://{your-server-address}:8080/tfs/_apis/security/permissionnamespaces?api-version=7.1-preview.1 - 查询指定组的权限:
http://{your-server-address}:8080/tfs/_apis/security/groups/{group-descriptor}/permissions?api-version=7.1-preview.1
重要注意事项
- API版本匹配:请确保使用的
api-version与你的Azure DevOps Server版本兼容,比如Server 2022对应7.1+,Server 2020对应6.0+。可通过访问http://{your-server-address}:8080/tfs/_apis查看本地服务器支持的所有端点及版本。 - 权限要求:所有安全相关API都需要高权限账号,至少是Azure DevOps Server管理员或项目集合管理员。
- 路径调整:如果你的本地部署修改了默认的
/tfs路径,请替换为实际部署路径。
内容的提问来源于stack exchange,提问作者Mad by coding
相关产品推荐
相关产品推荐

