从 Postman 获取访问令牌:为“单页应用程序”客户端类型发布的令牌只能通过跨域请求兑换

Pal*_*lBo 12 authorization azure-active-directory postman

我们最近使用 PKCE 为我们的应用程序从隐式授予流切换到授权代码流,现在我们在从 Postman 的 Azure AD 获取访问令牌时遇到了一些问题。该应用程序已在 Azure AD 中注册,我们基本上使用此处描述的 Postman 程序:https : //developer.mypurecloud.com/api/rest/postman/index.html#enable_authorization。调用https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize端点工作正常,但调用时出错https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token

"Error: Cound not complete OAuth 2.0 token request: "AADSTS9002327: Tokens issued for the 'Single-Page Application' client-type may only be redeemed via cross-origin requests.\r\nTrace ID: 8253f622-3425-4d0a-817c-281f86097300\r\nCorrelation ID: 9d84460f-ec02-4ace-af03-14d948e3d4ad\r\nTimestamp: 2020-04-15 14:02:03Z"
Run Code Online (Sandbox Code Playgroud)

这是访问令牌请求: 在此处输入图片说明

我们如何通过此授权流程使用 Postman 从 Azure AD 获取访问令牌?

Kim*_*Kim 25

当请求中缺少“Origin”标头时,可能会发生此错误(请参阅:GitHub 评论)。

尝试添加标题:

Origin: http://localhost
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法将此标头添加到 Postman 的 OAuth 2.0 流程中? (4认同)

小智 7

显然这是一个问题,因为文档令人困惑。

通过 Azure Active Directory 应用注册。确保在“移动和桌面应用程序”类别上添加重定向 URL 。

当您阅读文档时,您似乎需要在 Single Page Apps 下添加重定向 URL。它甚至显示确认消息,说“您的重定向 URI 符合 PKCE 的授权代码流的条件。 ”但事实并非如此。


Car*_*hao -2

1.首先应该在浏览器中获取代码\xef\xbc\x8c在浏览器地址栏输入以下请求信息\xef\xbc\x9a

\n\n

在此输入图像描述

\n\n

在此输入图像描述

\n\n

2.然后在postman中输入获取到的code和其他请求信息,即可获得access token\n在此输入图像描述\n3.请检查:https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow

\n