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

Spring Boot Web应用配置Azure AD认证时出现AADSTS50011错误

问题根因

AADSTS50011报错的核心判定规则是:Azure AD会逐字符比对授权请求中携带的redirect_uri参数,与应用登记的所有重定向URI配置,只要存在任意字符偏差就会触发报错。
当前场景下的核心偏差为:应用实际生成的回调地址为http://localhost:8080/login/oauth2/code/,与Azure侧登记的http://localhost:8080/login/oauth2/code/azure相比,缺失了末尾的/azure段,本质是Spring Security拼接重定向URI时,未正确获取到Azure AD对应的客户端注册ID(registrationId)。

排查与解决步骤
  • 检查自定义安全配置类的oauth2Login配置段
    • 移除所有手动重写回调端点路径的代码(例如redirectionEndpoint().baseUri(...)类配置),使用Spring Security默认回调路径规则/login/oauth2/code/{registrationId}即可
    • 若必须自定义回调路径,确保路径模板中包含{registrationId}占位符,避免拼接后丢失注册ID段
  • 核对配置文件项
    • 确认Azure AD Starter的配置项统一使用spring.cloud.azure.active-directory.*前缀,无遗漏必填的租户ID、客户端ID、客户端密钥配置
    • 未在spring.security.oauth2.client.registration.*配置段下手动覆盖Azure客户端的回调地址,避免自动生成的标准地址被替换
  • 核对依赖与Bean定义
    • 不要在项目中手动定义ID非azure的OAuth2客户端注册Bean,这类自定义Bean会覆盖Azure AD Starter自动生成的注册配置,导致注册ID匹配异常
    • 避免混用不同版本的Azure Spring Boot Starter与Spring Security依赖,防止自动配置逻辑失效
  • 结果校验
    • 以debug模式启动应用,从启动日志的客户端注册列表中确认:对应Azure AD的注册ID为azure,自动生成的回调地址完全等于http://localhost:8080/login/oauth2/code/azure
    • 确保Azure AD应用登记的重定向URI与应用实际生成的地址逐字符完全匹配,不存在http/https协议偏差、端口偏差、路径大小写偏差、末尾斜杠差异

内容的提问来源于stack exchange,提问作者Billy Bolton

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 03:15:08