java - AADSTS500112 : The reply address 'http://testurl' does not match the reply address 'https://testurl' when requesting Authorization code

标签 java azure-active-directory azure-ad-msal

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

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

获取以下异常

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

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

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

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

最佳答案

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

具体来说,改变

String currentUri = httpRequest.getRequestURL().toString();

String currentUri = httpRequest.req.getHeader(HEADER_PROXY_URL);

HEADER_PROXY_URL 是 devops 注入(inject)原始 url 的 header 名称。

关于java - AADSTS500112 : The reply address 'http://testurl' does not match the reply address 'https://testurl' when requesting Authorization code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58078379/

相关文章:

angular - MSAL Angular - NullInjectorError : No provider for InjectionToken MSAL_CONFIG

jquery - Azure AD 身份验证 401 错误 "the audience is invalid"AddAzureADBearer .Net Core Web Api

azure - 如何使用 Azure PowerShell 创建 PasswordCredentials 对象并传入 New-AzADApplication

c# - 以编程方式登录到 Azure Active Directory

reactjs - “redirect_uri”对于 Microsoft 登录 MSAL 身份验证 Azure 无效

java - RandomAccessFile 查找和写入或使用偏移量写入的意外行为

azure - 我如何同意在 azure 中使用应用程序?

java - 如何在 Java 中比较字符串?

java - 为什么我的程序说整数对于 Project Euler #3 (Java) 来说太大了?

java - 即使 JNDI 错误,Spring 上下文也会初始化