203使用RestAPI和承载令牌列出来自Azure DevOps的pat令牌的非权威信息

toiithl6  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(107)

我试图使用Bearer Token列出我们Azure DevOps组织中的PAT令牌,但我在屏幕截图中显示了以下错误。

使用客户端凭证流生成的承载令牌:

POST https://login.microsoftonline.com/<tenantID>/oauth2/token
grant_type:client_credentials
client_id: <appID>
client_secret: <secret>
resource: https://management.azure.com/

我正在跟踪https://learn.microsoft.com/en-us/rest/api/azure/devops/tokens/?view=azure-devops-rest-7.0&tabs=powershell文档。

huwehgph

huwehgph1#

我尝试在我的环境中重现相同的结果,结果如下:

我通过Postman使用客户端凭据流生成了一个访问令牌,参数如下:

POST https://login.microsoftonline.com/<tenantID>/oauth2/token
grant_type:client_credentials
client_id: <appID>
client_secret: <secret>
resource: https://management.azure.com/

答复:

当我使用此令牌列出PAT令牌时,我得到了相同的错误,如下所示:

GET https://vssps.dev.azure.com/sridevops14/_apis/Tokens/Pats?api-version=6.1-preview

若要解决错误,需要将作用域改为499b84ac-1321-427f-aa17-267ca6975798/.default,生成delegated流的访问令牌。
在我的Azure AD应用程序中,我添加了Delegated Azure DevOps API权限并授予了管理员许可,如下所示:

您可以使用下面的授权请求获取code值:

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
&state=12345

当我在浏览器中运行上述请求时,我在登录成功后在地址栏中获得了code值,如下所示:

现在,我使用授权代码流生成了访问令牌,将作用域改为499b84ac-1321-427f-aa17-267ca6975798/.default,参数如下:

POST https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/token
grant_type:authorization_code
client_id: <appID>
client_secret: <secret>
scope:499b84ac-1321-427f-aa17-267ca6975798/.default
code: <paste_code_from_above_request>
redirect_uri: https://jwt.ms

答复:

当我使用上述访问令牌列出PAT令牌时,我成功地获得了如下所示的响应

GET https://vssps.dev.azure.com/sridevops14/_apis/Tokens/Pats?api-version=6.1-preview

答复:

相关问题