如何在Postman中使用Bearer Token认证向ADO发送POST请求
我当前尝试使用Postman向ADO发送POST请求。
我最初在Postman中使用Basic令牌搭配PAT发送POST请求,可以正常调用,操作如下:
我希望不在Postman中填写用户名和PAT,因此向地址https://login.microsoft.com... 发送包含client ID与Secret的请求,生成了Bearer Token。
我成功获取Bearer Token响应后,将其粘贴到Postman的Bearer Token输入框中,操作如下:
我将该Token填入Postman后向ADO发送POST请求,接口返回401(未授权)错误,请求的URL为:https://dev.azure.com/{pipeline_name}/{organization_name}/_release?_a=releases&view=mine&definitionId=x
请指导我在发送请求的过程中哪里出现了问题。
问题排查及修复方案
- Scope配置错误
申请Bearer Token时必须使用Azure DevOps专属的scope:499b84ac-1321-427f-aa17-267ca6975798/.default,如果使用了Graph、SharePoint等其他资源的scope,生成的Token受众不匹配,ADO会直接返回401。 - 服务主体未配置ADO权限
你生成Token用到的Client ID对应的Azure AD应用,需要先添加到你的Azure DevOps组织中,并且授予对应项目的发布管道操作权限,权限不足会触发401错误。 - Token获取端点配置错误
必须使用你的Azure AD租户专属的Token端点获取Token:https://login.microsoftonline.com/{你的Azure AD租户ID}/oauth2/v2.0/token,使用/common、/consumers等通用端点获取的Token无法被绑定了指定租户的ADO组织识别。 - 请求地址不符合API规范
你当前使用的是ADO发布管道的前端页面地址,不是官方REST API接口地址,创建发布的正确API地址格式为:https://vsrm.dev.azure.com/{组织名}/{项目名}/_apis/release/releases?api-version=7.1-preview.8,必须使用官方API地址并携带正确的api-version参数。 - 请求配置错误
确认Postman的Bearer Token配置没有手动添加Bearer前缀,Postman的Bearer Token模块会自动添加此前缀,重复添加会导致Token解析失败;同时需要给请求添加Content-Type: application/json请求头,POST请求Body格式要符合对应API的要求。
内容的提问来源于stack exchange,提问作者Sai Varun Kumar
相关产品推荐
相关产品推荐

