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

使用PowerShell连接Azure REST API返回203非权威信息认证问题

Azure DevOps API PowerShell认证失败解决办法

你的问题核心是Authorization头的格式错误,Azure DevOps的PAT令牌不支持直接用Token :xxx这种格式传递,必须用Basic认证规范来构造请求头。

正确的PowerShell请求写法

  1. 先将PAT转换为符合Basic认证要求的Base64编码:
    格式为 :{你的PAT}(用户名留空,只需要冒号加PAT),再转成Base64字符串。
  2. 构造正确的Authorization头,执行请求:
$pat = "你的PAT令牌内容"
$encodedPat = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$pat"))
$headers = @{ Authorization = "Basic $encodedPat" }
Invoke-RestMethod "https://feeds.dev.azure.com/xx/x/_apis/packaging/Feeds/x/Packages" -Headers $headers

额外排查点

  • PAT权限检查:确保你的PAT拥有Packaging (Read)权限(访问Feed包列表需要这个权限),创建PAT时不要选太宽泛的权限,但至少要覆盖对应接口的需求。
  • URL准确性:确认URL里的组织名、项目名、Feed名没有拼写错误,Azure DevOps的URL路径部分是区分大小写的。
  • 避免多余空格:原请求里的Token :xxx有空格,即使是支持Token认证的接口,这种空格也会导致头信息无效,一定要注意格式严谨。

为什么Postman能成功?

Postman里如果是用Basic Auth选项(用户名留空,密码填PAT),它会自动帮你完成Base64编码并生成正确的Basic xxx头,所以能正常认证;如果是手动写头,可能你无意中用了正确的格式,而PowerShell里的写法完全不符合Azure DevOps的认证规则,所以返回登录页面(说明认证失败,被重定向到登录页)。

内容的提问来源于stack exchange,提问作者J.Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:10:35