【问题标题】:Error: The reply URL specified in the request does not match the reply URLs configured for the application错误:请求中指定的回复 URL 与为应用程序配置的回复 URL 不匹配
【发布时间】:2019-07-05 10:13:30
【问题描述】:

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

错误是:

AADSTS50011(请求中指定的回复 URL 与为应用配置的回复 URL 不匹配:'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 流程中是否可以预期?如果有,为什么?

【问题讨论】:

    标签: javascript authentication azure-active-directory adal


    【解决方案1】:

    错误信息相当清楚。您的应用程序需要在您的 AAD 租户下注册,并且您在代码中为回复 URL/重定向 URI 输入的任何内容都需要与您在租户中设置的内容相匹配。

    这里是注册本机应用程序的指南,因为过程有点不同。 https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/application-proxy-configure-native-client-application

    对于在 Azure AD 租户下发布的应用,客户端 ID 与应用程序 ID 相同。对于原生应用,App ID 和 Client ID 是同义词。

    【讨论】:

    • 感谢您的回复。抱歉,如果我不清楚,但我正在使用访问网站的网络浏览器,并且该网站利用 AAD 进行身份验证。我认为不涉及任何本机应用程序(除非网络浏览器本身被视为本机应用程序)。此外,我在问题中粘贴的 URL 将转到 /authorize,然后将 redirect=uri 返回到相同的 URL。这是正常的吗?如果是,你能解释一下流程吗?
    【解决方案2】:

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

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

    【讨论】:

    • 感谢您的信息。我想澄清一件事。您说“默认情况下 ADAL.js 使用应用程序的起始页作为重定向 URI”,但在上面的 URL 中,您可以看到重定向 URL 是“redirect_uri=https%3A%2F%2Flogin.microsoftonline.com%2Fcommon%2Foauth2%2Fauthorize ”。这不是我的应用程序起始页,因为应用程序起始页是 ShareFile 站点 (ASPX)。你知道我是怎么得到这个重定向网址的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 1970-01-01
    • 2020-07-12
    • 2018-10-05
    • 1970-01-01
    相关资源
    最近更新 更多