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

使用Python获取Azure DevOps项目工作项时的Authentication认证问题

问题解答

1. 认证方式说明

  • 仅使用PAT完全可以满足Azure DevOps API调用需求,不需要额外注册应用获取OAuth2 Token。PAT是官方提供的轻量认证方案,完全适配个人脚本、工具对接的场景。
  • 你当前生成Basic认证头的逻辑是正确的,Azure DevOps的PAT认证确实采用Basic Auth规则:用户名留空、密码为PAT,整体做Base64编码后放入请求头即可。

2. 现有代码的问题

你构造的POST请求没有带入已经写好的headers认证头,同时调用WIQL查询接口时需要指定请求体为JSON格式,直接传Python字典会触发默认的表单格式提交,接口无法识别。

3. 修正后的可运行代码

import requests
import base64

pat = '替换为你的实际PAT值'
authorization = str(base64.b64encode(bytes(':'+pat, 'ascii')), 'ascii')

headers = {
    'Accept': 'application/json',
    'Authorization': 'Basic '+authorization
}

data = {
  "query": "Select [System.Id], [System.Title], [System.State] From WorkItems Where [System.WorkItemType] = 'Task'"
}
# 两处修改:带入headers认证头,用json参数传数据,requests会自动适配JSON格式要求
wo_it = requests.post('https://dev.azure.com/company/example_project/_apis/wit/wiql?api-version=5.1', headers=headers, json=data)
print(wo_it.text)

额外注意事项

  • 生成PAT时需要确认已经开通对应权限,读取工作项需要勾选Work Items的读取权限,权限不足会返回403错误。
  • 不要把PAT硬编码到公开可访问的代码中,避免账号权限泄露。

内容的提问来源于stack exchange,提问作者Abhishek Rai

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 11:36:05