AADSTS500112:请求授权码时回复地址“http://testurl”与回复地址

我正在尝试将 java 应用程序与 azure ad 集成。

我已经在azure中注册了一个应用程序并添加了重定向url,成功登录后,它被重定向到我的java应用程序,我在其中使用msal库获取授权代码。

得到以下异常

com.microsoft.aad.msal4j.MsalServiceException:AADSTS500112:回复地址

“ http://testUrl ”与回复地址“ https://testUrl”不匹配

我在上面的 URL 中看到的唯一区别是 http 和 https,尽管我在应用程序注册中的重定向 URL 以及 Microsoft 登录 URL 中的重定向 URL 中提到了 https。

顺便说一句,它正在与我的本地环境一起工作,而当我将其托管在服务器上时则不起作用。


慕桂英4014372
浏览 320回答 2
2回答

万千封印

部署到生产环境后,我们也遇到了同样的问题。https 变成 http 的原因是因为我处于负载平衡环境中,外部 URL 与内部 URL 不同(负载平衡器卸载了 SSL 处理)。当来自 azure 的 http 请求到达我们的 Web 过滤器时,httpRequest.getRequestURL().toString() 获取 http 而不是 https。我们所做的是,要求 DevOps 团队在 httprequest 中添加一个标头,并将原始 url 发送到负载均衡器,并且在我们的代码中,我们提取 http 标头而不是 http 请求本身。具体来说,改变String currentUri = httpRequest.getRequestURL().toString();到String currentUri = httpRequest.req.getHeader(HEADER_PROXY_URL);这HEADER_PROXY_URL是 devops 注入原始 url 的标头名称。

杨__羊羊

根据我的研究,网络应用程序和服务的重定向 URL 必须以 schema 开头https。如果你想使用该方案http,你就可以使用http:\\localhost。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java