具有 OAuth HTTP 203 非权威信息的 Azure DevOps REST API

问题描述 投票:0回答:1

我有一个 Entra ID 应用程序,具有 Azure DevOps 资源的 API 权限

user_impersonation

我尝试获取令牌:

获取代码

GET https://login.microsoftonline.com/<tenantId>/oauth2/v2.0/authorize?
client_id=<appId>&
response_type=code&
redirect_uri=https://jwt.ms&
response_mode=query&
scope=499b84ac-1321-427f-aa17-267ca6975798/.default

获取代币

POST https://login.microsoftonline.com/<tenantId>/oauth2/v2.0/token
client_id=<clientId>&
grant_type=authorization_code&
code=<code>&
redirect_uri=https%3A%2F%2Fjwt.ms
&client_secret=<secret>&
scope=offline_access%20499b84ac-1321-427f-aa17-267ca6975798%2F.default

设法获取令牌,但是当尝试向 Azure DevOps API 发出请求时,我不断收到 HTTP 203。

GET https://vssps.dev.azure.com/<organization>/_apis/build/builds?api-version=7.0-preview.1
Authorization: Bearer <token>

我尝试寻找解决方案,我遇到的大多数解决方案都建议使用 PAT,我遵循一些使用 OAuth 的解决方案,但我不断收到 HTTP 203,我无法弄清楚我做了什么不同的操作导致了这个问题.

azure-devops azure-devops-rest-api microsoft-entra-id
1个回答
0
投票

我可以使用您的脚本重现 203 错误。将“获取令牌”中的范围从

scope=offline_access%20499b84ac-1321-427f-aa17-267ca6975798%2F.default
更改为
scope=499b84ac-1321-427f-aa17-267ca6975798/.default
可以解决该问题。

在 REST API Builds - List 中使用不记名令牌来列出一个项目中的所有构建。效果很好。

GET https://dev.azure.com/{organization}/{project}/_apis/build/builds?api-version=7.1-preview.7

© www.soinside.com 2019 - 2024. All rights reserved.