azure 无法从oauth2/v2.0/authorize获取代码

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

我试图使用https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize获取“代码”。但是我正在重定向登录到您的帐户,我如何绕过登录?

我已经为DevOps API配置了API权限,如下所示:

jdgnovmf

jdgnovmf1#

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

当我在Postman中运行授权请求时,我得到了相同的响应,您可以像这样登录:

https://login.microsoftonline.com/<tenantID>/oauth2/v2.0/authorize
?client_id=<appID>
&response_type=code
&redirect_uri=http://localhost
&response_mode=query
&scope= 499b84ac-1321-427f-aa17-267ca6975798/.default
&state=12345

获取授权码需要在浏览器中运行相同查询,要求您登录,如下所示:

登录成功后,您会在地址栏得到code值,如下所示:

现在,在下面的参数中使用上面的code来通过Postman获得访问令牌,如下所示:

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_screen>
redirect_uri: https://jwt.ms

答复:

您可以使用上述访问令牌调用Azure DevOps API
也可以直接生成token,选择O.Auth 2.0,然后在Postman中填写必填字段,Postman会在内部自动生成code

如果您将Callback URL设置为https://oauth.pstmn.io/v1/callback,当您单击获取新访问令牌按钮时,将打开新窗口以在Postman中登录。

如果鉴权成功,则会出现如下画面:

几秒钟后,会跳转到token屏幕,如下所示:

现在,您可以通过单击Use Token来调用DevOps API查询,如下所示:

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

答复:

请确保在应用程序的重定向URI中设置https://oauth.pstmn.io/v1/callback,如下所示:

相关问题