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

求非云环境下Spring Boot 3 + ADFS的SAML 2.0 SSO实现示例

Spring Boot 3 对接ADFS实现SAML 2.0单点登录(非云环境)示例

核心配置文件(application.yml)

替换官方示例配置,适配ADFS的核心配置如下,注意将占位符替换为实际环境信息:

spring:
  security:
    saml2:
      relyingparty:
        registration:
          adfs:
            # 替换为你的ADFS服务器元数据地址
            assertingparty:
              metadata-uri: "https://your-adfs-server/FederationMetadata/2007-06/FederationMetadata.xml"
            # SP签名用的私钥和证书路径
            signing:
              credentials:
                - private-key-location: "classpath:private.key"
                  certificate-location: "classpath:public.crt"
            # 单点登出配置
            singlelogout:
              binding: POST
              response-url: "{baseUrl}/logout/saml2/slo"

Spring Security 配置类

通过Java代码配置SAML2的登录、登出逻辑:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
@EnableWebSecurity
public class Saml2SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            // 所有请求需经过认证
            .authorizeHttpRequests(auth -> auth.anyRequest().authenticated())
            // 配置登录成功跳转页
            .saml2Login(saml2 -> saml2.defaultSuccessUrl("/home", true))
            // 配置登出成功跳转页
            .saml2Logout(saml2 -> saml2.logoutSuccessUrl("/"));
        return http.build();
    }
}

对接ADFS的关键注意点

  • ADFS信赖方配置:在ADFS管理控制台添加信赖方信任,导入Spring Boot应用的SAML元数据(访问地址为{你的应用域名}/saml2/service-provider-metadata/adfs),同时配置声明规则,将ADFS中的用户属性(如用户ID、邮箱)映射到SAML断言中。
  • 证书信任:测试环境可使用自签证书,但需将SP的公钥证书导入ADFS信任存储;生产环境建议使用CA签发的证书。
  • 回调地址一致性:ADFS中配置的回复URL必须与Spring Boot应用的断言消费地址一致,默认地址为{你的应用域名}/login/saml2/sso/adfs,若修改配置需同步更新ADFS设置。
  • 元数据更新:ADFS元数据变更后,Spring Boot应用会自动拉取最新数据,也可手动触发刷新。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:30:03