javascript - 错误 : The reply URL specified in the request does not match the reply URLs configured for the application

标签 javascript authentication azure-active-directory adal

我试图找出我在 OAuth 流程中遇到的某个错误的原因(使用 login.microsoftonline.com 作为 IDP)以便访问页面。

错误是:

AADSTS50011 (The reply URL specified in the request does not match the reply URLs configured for the application: '89bee1f7-5e6e-4d8a-9f3d-ecd601259da7'.

查看发出的请求,我确实看到了与此对应的请求:

https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&client_id=89bee1f7-5e6e-4d8a-9f3d-ecd601259da7&redirect_uri=https%3A%2F%2Flogin.microsoftonline.com%2Fcommon%2Foauth2%2Fauthorize&state=XXX&client-request-id=YYY&x-client-SKU=Js&x-client-Ver=1.0.15&nonce=ZZZ&iframe-request-id=XXX

我看过一些关于 AADSTS50011 的帖子,有些人说这可能是 Microsoft 的问题,而另一些人说有问题的客户端 ID 需要注册。但是我的代码并没有从任何地方使用这个神秘的客户端 ID,我想知道它来自哪里。

我不确定,但似乎这个请求可能来自 https://webshell.suite.office.com/iframe/TokenFactoryIframe 或与之相关的 Javascript .

顺便说一句,在交换请求时,我看到似乎也使用了正确的客户端 ID (00000002-0000-0ff1-ce00-000000000000),并且身份验证似乎成功了。我什至看到有问题的页面开始加载,但几秒钟后出现错误。

更新:与这个问题相关的是上面第一个 URL 实际在做什么。它是指向/authorize 的链接,其重定向 URI 指向同一位置。这看起来很奇怪,在正常的 OAuth 流程中是否可以预期?如果是,为什么?

最佳答案

您的应用程序似乎正在使用 ADAL.js 库。 ADAL.js库旨在用于在 Web 浏览器中运行的客户端 JS Web 应用程序,例如单页应用程序。请求https://login.microsoftonline.com由 ADAL.js 使用 OAuth 2.0 implicit flow 制作协议(protocol)。

要回答有关错误的问题,您需要在 Azure AD 应用程序注册中设置重定向 URI,以匹配 ADAL.js 配置中的重定向 URI。默认情况下,ADAL.js 使用应用程序的起始页作为重定向 URI。您还需要在 ADAL.js 配置中设置应用程序的客户端 ID。看这个wiki有关配置 ADAL.js 的详细信息。另外,您可以按照注册步骤和这个 sample using Adal.js .

关于javascript - 错误 : The reply URL specified in the request does not match the reply URLs configured for the application,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54638667/

相关文章:

javascript - javascript 中的属性与常量访问

c# - ASP.NET Core,在用户登录时收到通知

c# - Blazor WebAssembly Azure 广告身份验证

c# - 通过 API 授予 OAuth2 资源所有者密码

javascript - 使用浏览器控制台 (Chrome) 将表格数据从 HTML 页面导出到 CSV 文件

javascript - 如果在链接名称中找到特定字符,则更改 <li> 标记列表结构

javascript - Angular 列表项处于事件状态(ng-click)

ruby-on-rails - 使用 mongoid 和设计时成功登录后当前用户为零

java - 使用已配置的 JAAS 主题来验证 HttpURLConnection?

Azure 域服务