Spring SAML:除了使用/SAML/metadata端点之外,还可以使用其他方法生成SP元数据
背景:我的web应用程序正在PROD中运行,真正的用户正在使用它。初始身份验证是使用Spring Basic Security实现的 最近,客户端决定使用SSO进行身份验证,所以我的应用程序应该充当客户端IdP的SP。我使用SpringSAML将我的应用程序配置为SP 在QA环境中与客户IdP集成包括以下步骤:Spring SAML:除了使用/SAML/metadata端点之外,还可以使用其他方法生成SP元数据,spring,spring-security,saml,saml-2.0,spring-saml,Spring,Spring Security,Saml,Saml 2.0,Spring Saml,背景:我的web应用程序正在PROD中运行,真正的用户正在使用它。初始身份验证是使用Spring Basic Security实现的 最近,客户端决定使用SSO进行身份验证,所以我的应用程序应该充当客户端IdP的SP。我使用SpringSAML将我的应用程序配置为SP 在QA环境中与客户IdP集成包括以下步骤: 获取并存储从客户处收到的IdP元数据文件 在环境上部署具有SP配置的代码 使用/saml/metadata端点生成SP元数据文件,并与客户共享 从客户IdP方面获得绿灯,表示SP元数据文
/saml/metadata
端点生成SP元数据文件,并与客户共享李>
在PROD上部署SSO配置之前,谁能告诉我如何提前为我的应用程序生成SP元数据文件?只要您知道端点的URI和签名证书,就可以手动生成它们并在配置中指定。(1)引用“最近,客户端决定使用SSO进行身份验证,所以我的应用程序应该充当客户端IdP的SP。我使用Spring SAML将我的应用程序配置为SP。“ 响应: 我假设您使用提供的Spring SAML“将应用程序配置为SP”。
(2) 引用“在QA环境中与客户IdP集成涉及的后续步骤:…” 响应: 关于将web应用程序集成为SP和客户端IdP的五(5)个步骤(由您的帖子提供)是“在PROD环境上部署SP SSO配置并将其与客户端PROD IdP集成”的实用SAML标准 通过回答最近的另一个Stackoverflow问题“”
(3) Quote“我不喜欢在PROD中使用上述方法,因为在生成应用程序SP元数据文件并将其放置在客户IdP的正确位置之前,真实用户将无法登录到应用程序。” 响应: 如果您“不喜欢将上述方法用于PROD”,您可以修改“spring security saml/samples/boot/simple service provider/”(由提供)的源代码,将您的web应用配置为saml SP。
(4) 问题“在PROD上部署SSO配置之前,谁能告诉我如何提前为我的应用程序生成SP元数据文件?” 回答: (一) 有关“如何运行身份提供商(IDP)和服务提供商(SP)的简单示例”(由提供)的自述将指导您“如何在PROD上部署SSO配置之前提前为我的应用程序生成SP元数据文件” (二) 我重点介绍了“在PROD上部署SSO配置之前,如何提前为我的web应用程序生成Spring Basic Security的SAML SP元数据文件”(引用您的问题) 步骤2-启动服务提供商 服务提供程序在上运行 (II.a)启动web浏览器以访问URL 确保SpringSecuritySAML服务提供程序运行良好 (II.b)启动web浏览器以访问SP元数据端点
下载或“在PROD上部署SSO配置之前,提前为我的应用程序生成SP元数据文件”(引用您的问题) (5) 问题“Spring SAML:除了使用/SAML/metadata端点之外,还可以使用其他方法生成SP元数据” 回答: 您可以将“spring security saml/samples/boot/simple service provider/src/main/java/sample/config/SecurityConfiguration.java”(由提供)的源代码修改为“除了使用/saml/SP/metadata endpoint之外还生成SP元数据”。
例如,如果要从特定端点(如/example/metadata)生成SP元数据,则只需替换
超级(“/saml/sp/”,beanConfig);“
(在下面显示的源代码中)使用
超级(“/example/”,beanConfig);“
您可以共享一些脚本或一些web资源吗?元数据在[]中是标准化的。对于SSO/SLO,您只需要定义“entityID”、“AssertionConsumerService”、“SingleLogoutService”和NameID格式。您只能选择使用所谓的“前端通道绑定”(HTTP POST、HTTP重定向)SP和IdP之间不需要直接通信。
$git clone https://github.com/spring-projects/spring-security-saml
$cd spring-security-saml
$./gradlew :spring-security-saml-samples/boot/simple-service-provider:bootRun &
public SamlSecurity(BeanConfig beanConfig, @Qualifier("appConfig") AppConfig appConfig) {
super("/saml/sp/", beanConfig);
this.appConfig = appConfig;
}