Spring Boot 3.1.2与WSO2 Identity Server的SAML集成方案咨询
Spring Boot 3.1.2 与 WSO2 Identity Server SAML 2.0 集成参考资料
核心官方文档提炼
- WSO2 Identity Server SAML集成指南
覆盖SAML 2.0协议全流程配置,包括服务提供者(SP)注册、断言消费者URL(ACS)配置、证书管理(自签名/CA签发)、角色权限映射规则。针对Spring Boot应用,重点关注SP元数据导入导出、单点登录(SSO)发起模式(SP/IDP发起)设置。
- Spring Security SAML2 官方文档
适配Spring Boot 3.x的集成方案,包含
spring-security-saml2-service-provider依赖引入、SecurityFilterChain配置、断言验证规则、SAML断言到用户信息的属性映射方法。
Spring Boot 端配置要点
依赖配置
在Maven的pom.xml中引入对应依赖:<dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-saml2-service-provider</artifactId> <version>6.1.2</version> <!-- 匹配Spring Boot 3.1.2的版本 --> </dependency>Gradle用户可在
build.gradle中添加:implementation 'org.springframework.security:spring-security-saml2-service-provider:6.1.2'元数据与基础配置
将WSO2 IS生成的IDP元数据XML文件放置在src/main/resources下,在application.properties中配置:# 配置IDP元数据位置 spring.security.saml2.relyingparty.registration.wso2.idp-metadata-location=classpath:wso2-is-idp-metadata.xml # SP实体ID(需与WSO2 IS端配置一致) spring.security.saml2.relyingparty.registration.wso2.entity-id=your-sp-unique-identifier # ACS地址(需与WSO2 IS端配置一致) spring.security.saml2.relyingparty.registration.wso2.assertion-consumer-service.location=https://your-app-domain/login/saml2/sso/wso2安全过滤链配置
编写SecurityFilterChainBean启用SAML2登录与注销:import org.springframework.context.annotation.Bean; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.web.SecurityFilterChain; @Bean public SecurityFilterChain samlSecurityFilterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests(auth -> auth .anyRequest().authenticated() ) .saml2Login(saml2 -> saml2 .defaultSuccessUrl("/dashboard", true) // 登录成功跳转页 ) .saml2Logout(logout -> logout .logoutSuccessUrl("/") // 注销成功跳转页 ); return http.build(); }
WSO2 Identity Server 端配置要点
服务提供者(SP)注册
登录WSO2 IS管理控制台,进入Service Providers > Add,填写SP名称后保存,启用SAML2 Web SSO配置。SP元数据配置
可选择两种方式:- 自动导入:输入Spring Boot应用的SP元数据地址(通常为
https://your-app-domain/saml2/service-provider-metadata/wso2),点击Import完成配置。 - 手动配置:
- 断言消费者URL(ACS):填写Spring Boot应用的ACS地址
- 实体ID:与Spring配置中的
entity-id完全一致 - 响应签名算法:选择
RSA-SHA256(与Spring端默认算法匹配)
- 自动导入:输入Spring Boot应用的SP元数据地址(通常为
证书与属性映射
- 证书:上传Spring Boot应用的签名证书(可选,用于验证SP请求),或配置WSO2 IS使用自身证书签署断言。
- 属性映射:进入
Claim Configuration,配置将WSO2 IS用户属性(如http://wso2.org/claims/username)映射到SAML断言的属性,方便Spring端提取用户信息。
关键注意事项
- 版本兼容:确保Spring Security SAML2依赖版本与Spring Boot 3.1.2匹配(Spring Boot 3.1.2对应Spring Security 6.1.x)。
- 证书信任:将WSO2 IS的签名证书导入Spring Boot应用的信任库,测试环境可临时禁用证书验证(不推荐生产环境使用)。
- 网络连通:确保WSO2 IS能访问Spring Boot应用的ACS地址,反之亦然。
内容的提问来源于stack exchange,提问作者Sujith Fredrick
相关产品推荐
相关产品推荐

