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

如何通过Azure DevOps REST API正确生成Bearer令牌并用于获取PAT

如何正确生成并使用Azure DevOps REST API的Bearer令牌创建PAT

一、生成Bearer令牌的核心流程

生成PAT的REST API要求使用基于Azure AD OAuth2.0的Bearer令牌(不能用现有PAT替代),需完成完整授权流程:

1. 注册Azure AD应用

  • 在Azure门户创建应用注册,设置重定向URI(例如http://localhost:8080)
  • 为应用添加API权限:选择「Azure DevOps」,添加user_impersonation权限,并授予管理员同意

2. 获取授权码

构造授权URL,引导用户登录Azure账号后获取授权码:

https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/authorize?client_id={你的应用ID}&response_type=code&redirect_uri={你的重定向URI}&response_mode=query&scope=https://app.vssps.visualstudio.com/user_impersonation&state=任意随机字符串

用户登录后,重定向URI会附带code参数,这就是授权码。

3. 交换Bearer令牌

发送POST请求到Azure AD的token端点,用授权码换取access_token(即Bearer令牌):

  • 请求地址:https://login.microsoftonline.com/{你的租户ID}/oauth2/v2.0/token
  • 请求头:Content-Type: application/x-www-form-urlencoded
  • 请求参数(表单格式):
    client_id={你的应用ID}
    client_secret={你的应用密钥}
    grant_type=authorization_code
    code={步骤2获取的授权码}
    redirect_uri={你的重定向URI}
    scope=https://app.vssps.visualstudio.com/user_impersonation
    

返回结果中的access_token就是需要的Bearer令牌。

二、调用PAT生成API

拿到Bearer令牌后,即可调用Azure DevOps的PAT生成接口:

  • 请求地址:POST https://vssps.dev.azure.com/{你的组织名}/_apis/tokens/pats?api-version=7.1-preview.1
  • 请求头:
    Authorization: Bearer {你的access_token}
    Content-Type: application/json
    
  • 请求体示例(JSON格式):
    {
      "displayName": "API生成的PAT",
      "scope": "vso.build_execute vso.code_read",
      "validTo": "2024-12-31T23:59:59Z"
    }
    

接口返回结果中会包含生成的PAT令牌(patToken字段),请务必妥善保存,该值只会返回一次。

三、常见失败原因排查

  • 权限问题:确保Azure AD应用的user_impersonation权限已授予管理员同意
  • Scope错误:令牌的scope必须包含https://app.vssps.visualstudio.com/user_impersonation,否则无权调用PAT生成接口
  • 令牌过期:access_token有效期通常为1小时,过期后需要用refresh_token重新获取
  • 参数错误:检查租户ID、组织名、应用ID/密钥等参数是否与实际一致

内容的提问来源于stack exchange,提问作者Jagdish Padeliya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:16:09