You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cloud Run上Spring Boot应用AD认证后重定向失败:AADSTS500112错误

Cloud Run上Spring Boot应用AD认证重定向失败问题解决

问题概述

部署在Cloud Run的Spring Boot应用完成AD认证后无法正常重定向,报错显示回调地址协议不匹配:配置的是HTTPS,但实际请求时使用了HTTP地址。

已配置的application.properties重定向地址:

aad.redirectHomeUri=https://icaps-userhelpertool-dev-cloudrun-kwyk47pogq-ez.a.run.app/resetpassword

且该地址已同步配置在Azure AD应用注册中,但认证后出现以下错误:

19-01-2023 10:08:07.259 ERROR c.m.a.m.ConfidentialClientApplication - [Correlation ID: b396dc37-982d-4f56-ac5d-a754f24f4f53] Execution of class com.microsoft.aad.msal4j.AcquireTokenByAuthorizationGrantSupplier failed.
com.microsoft.aad.msal4j.MsalServiceException: AADSTS500112: The reply address 'http://icaps-userhelpertool-dev-cloudrun-kwyk47pogq-ez.a.run.app/resetpassword' does not match the reply address 'https://icaps-userhelpertool-dev-cloudrun-kwyk47pogq-ez.a.run.app/resetpassword' provided when requesting Authorization code.

原因

Cloud Run作为反向代理,会将外部的HTTPS请求转换为HTTP转发给后端应用。Spring Boot默认不会识别代理传递的X-Forwarded-Proto头,导致应用生成的回调地址使用HTTP协议,与Azure AD中配置的HTTPS地址不匹配。

解决步骤

1. 配置Spring Boot识别代理头部

在application.properties中添加以下配置,让Spring正确识别原始请求的协议:

# 启用原生转发头处理(Spring Boot 2.2+)
server.forward-headers-strategy=NATIVE
# 针对Tomcat容器的额外兼容配置
server.tomcat.remote-ip-header=x-forwarded-for
server.tomcat.protocol-header=x-forwarded-proto

2. 强制MSAL使用HTTPS回调地址

如果使用MSAL4J库,确保在构建ConfidentialClientApplication时,显式指定HTTPS的重定向URI,避免从请求上下文自动获取HTTP地址:

ConfidentialClientApplication app = ConfidentialClientApplication.builder(
        clientId,
        ClientCredentialFactory.createFromSecret(clientSecret))
    .authority(authority)
    .redirectUri("https://icaps-userhelpertool-dev-cloudrun-kwyk47pogq-ez.a.run.app/resetpassword")
    .build();

3. 验证Azure AD配置

再次确认Azure AD应用注册中的重定向URI完全匹配配置的HTTPS地址,包括协议、域名和路径,无拼写或大小写错误。

内容的提问来源于stack exchange,提问作者Dipesh Agrawal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 21:35:18