如何在Azure DevOps Service中创建可访问REST API并列出项目的服务账号?
Azure DevOps Service 访问REST API列出所有项目的替代方案
除了创建全局管理员级别的用户并生成PAT,还有以下几种更贴合最小权限原则的实现方式:
使用Azure AD服务主体
不需要创建真实用户账号,直接在Azure AD中注册应用作为服务主体:- 在Azure门户的Azure AD中注册应用程序,获取客户端ID和客户端密钥(或证书)
- 在Azure DevOps组织的「组织设置-权限」中,将该服务主体添加为组织用户,并分配组织级"项目集合读取者"权限
- 使用服务主体的凭据通过OAuth2流程获取访问令牌,调用REST API列出所有项目
使用受限权限的PAT(非全局管理员)
无需将用户加入全局管理员组,只需配置最小必要权限:- 创建一个普通用户账号(作为服务专用账号)
- 在Azure DevOps组织权限中,给该用户分配组织级"项目集合读取者"权限
- 生成PAT时,仅勾选「项目和团队」分类下的「读取」权限,其他权限全部取消
- 用这个受限PAT调用REST API即可列出所有项目
自定义权限组管理
适合需要管理多个服务账号的场景:- 在Azure DevOps组织中创建一个自定义安全组,比如「API项目读取组」
- 给这个组分配组织级"项目集合读取者"权限
- 将服务账号(可以是AD服务主体或普通用户)加入该组
- 为账号生成对应凭据(PAT或服务主体令牌)来访问API
以上方案都能满足列出所有项目的需求,同时遵循最小权限原则,避免过度授权带来的安全风险。
内容的提问来源于stack exchange,提问作者Couz
相关产品推荐
相关产品推荐

