我有一个 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,我无法弄清楚我做了什么不同的操作导致了这个问题.
我可以使用您的脚本重现 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