Postman调用Azure DevOps REST API返回401状态码问题咨询
401报错根本原因
你给PAT配置的权限范围和目标接口要求的权限完全不匹配。你加的TokenAdmin、Tokens Scope是用来管理Azure DevOps访问令牌本身的权限,根本不覆盖流水线运行数据的读取权限,自然会鉴权失败返回401。
浏览器直接访问接口能正常返回,是因为你在浏览器端已经登录了Azure DevOps网页版,走的是网页登录态的Cookie鉴权,用的是你当前登录账号本身的项目权限,和Postman里用PAT鉴权的身份完全是两套逻辑,不能用浏览器访问正常来证明PAT配置没问题。
排查解决步骤
- 第一步先改PAT权限:不需要给全量权限,找到PAT自定义权限配置里的Build分类,勾选
Read权限即可,这个权限覆盖流水线、构建运行记录的读取场景,刚好匹配你调用的查询流水线运行详情接口的权限要求。 - 检查Postman的鉴权配置:选择
Basic Auth鉴权类型,注意用户名字段不要留空——填任意非空字符串就行(比如填pat或者随便填个字符),留空反而可能被Postman自动过滤掉鉴权请求头,密码字段准确填入你生成的PAT,不要带前后空格、换行。 - 校验PAT基础有效性:确认PAT没有过有效期,组织范围配置正确(要么选所有可访问组织,要么明确选中你要调用的目标组织),同时确认这个PAT关联的账号本身对目标项目、目标流水线有查看权限。
- 如果以上配置都改完还是报错,打开Postman的请求控制台查看实际发出的请求头,确认存在
Authorization: Basic xxx的请求头,xxx部分是用户名:PAT拼接后做Base64编码的结果,没有被本地代理、Postman拦截器篡改覆盖。
内容的提问来源于stack exchange,提问作者user19011893
相关产品推荐
相关产品推荐

