我们最近为我们的应用程序从隐式授权流切换到使用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"
这是访问令牌请求:
我们如何使用Postman从Azure AD获取访问令牌和此授权流?
9条答案
按热度按时间2admgd591#
显然,这是一个问题,因为文档令人困惑。
通过Azure Active Directory应用注册。请确保在“移动的和桌面应用程序”类别上添加重定向URL。
当你阅读文档时,看起来你需要在单页应用程序下添加 * 重定向URL*。它甚至显示确认消息说“* 您的重定向URI符合PKCE授权代码流的条件。*”但事实并非如此。
nwlqm0z12#
当请求中缺少“Origin”标头时,可能会发生此错误(请参阅:GitHub评论)。
尝试添加header:
tvz2xvvm3#
如果您在尝试使用Postman进行身份验证时遇到此故障,请确保您具有Web的平台身份验证。
转到Azure AD〉应用程序注册〉{your app reg}〉身份验证〉添加平台。使用浏览器时,重定向URI应为
https://oauth.pstmn.io/v1/callback
。nwlqm0z14#
对我来说,我试图将MSAL v1实现更新到v2实现,在那里我遇到了这个问题。在Azure中从Web迁移到SPA之后,它显然需要相同的解决我的问题。
https://learn.microsoft.com/en-us/answers/questions/315313/azure-app-registration-causing-the-following-error.html
https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-browser#implicit-flow-vs-authorization-code-flow-with-pkce
f2uvfpb95#
这是Postman在10.13版本之前的一个功能缺陷,当时他们引入了向OAuth流添加自定义头的功能
6yt4nkrj6#
要获取refresh_token,必须将“offline_access”添加到作用域。
对访问令牌请求的响应的文档说明:
OAuth 2.0刷新令牌。应用可以使用此令牌在当前访问令牌过期后获取其他访问令牌。Refresh_tokens是长期有效的,可用于在较长时间内保留对资源的访问。有关刷新访问令牌的详细信息,请参阅以下部分。注意:仅在请求offline_access作用域时提供。
文件
xmjla07d7#
我可以通过执行以下操作来解决此问题:
在Azure Portal中:
1.导航至您正在使用的受保护API的【应用注册】。
1.接下来,导航到管理菜单中的身份验证刀片。
1.在您的单页应用平台中,添加如下重定向URI,https://oauth.pstmn.io/v1/callback。
1.在Azure Portal中保存这些更改。
接下来,在Postman的新令牌配置中:
1.手动将回调URL设置为上面指定的相同URI(即https://oauth.pstmn.io/v1/callback)。
完成上述操作后,从Postman中清除您的cookie,并重新尝试检索令牌。
zazmityj8#
请按照以下步骤操作:
1.在您注册的应用程序中,添加移动的和桌面应用程序的平台,如下图所示:
1.获取将重定向到
https://login.live.com/oauth20_desktop.srf?code=<code>.
的代码1.如果你使用Postman来获取token,那么可能会有跨域问题的机会。所以尝试下面的php代码来获取token:
qvtsj1bj9#
1.您应该先在浏览器中获取代码,在浏览器地址栏中输入以下请求信息:
2.然后在postman中输入获得的代码和其他请求信息,您将获得访问令牌
3。请检查:https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow