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

Azure AD Spring Boot Starter保护Java Web应用的JWT令牌算法问题

问题排查解决步骤
  • 首先检查Azure AD应用注册的重定向URI配置:你当前应用运行在https://mydomain:8081,需要确认客户的Azure AD应用注册里,Web平台的重定向URI已经添加了https://mydomain:8081/login/oauth2/code/azure,后缀不能省略,且必须和你实际部署的域名、端口、协议完全匹配,任意字符不匹配都会触发登录后报错。
  • 检查租户基础配置:
    • 确认azure.activedirectory.tenant-id填写的是客户租户的正确ID,没有误填为你个人账号的租户ID
    • 确认客户的Azure AD租户没有开启用户登录限制,你用于测试的用户账号归属该租户,且已被允许访问这个应用注册
  • 检查组权限配置:你配置了azure.activedirectory.user-group.allowed-groups=group1,需要确认:
    • 客户租户中确实存在名为group1的安全组
    • 测试登录的用户已经被加入group1组
    • 应用注册已经配置了GroupMember.Read.All或Directory.Read.All的API权限,且已被租户管理员授予管理员同意,否则应用无法读取用户组信息会抛出权限类错误
  • 检查会话配置冲突:你配置了azure.activedirectory.session-stateless=true,但Spring Security配置未适配无状态会话,需要补充会话管理规则,修改后的代码参考如下:
@Override
protected void configure(HttpSecurity http) throws Exception {
    http.cors().and().csrf().disable()
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
        .and()
        .authorizeRequests().anyRequest().authenticated()
        .and().oauth2Login()
        .and().csrf()
        .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
        .and().oauth2Client();
}
  • 检查SSL证书信任配置:你配置了自定义信任库,确认Azure AD的根证书已经被导入到你指定的/apps/tomcat/conf/trusted.jks文件中,否则应用调用Azure AD接口时会触发SSL握手失败错误。

内容的提问来源于stack exchange,提问作者Mario Petrovic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:36:06