Spring 带有标准 java 应用程序的安全 SAML
Spring Security SAML with standard java application
我们有一个要求,需要在我们的应用程序中为将 ADFS 作为 IDP 的客户启用 SAML 身份验证。
在考虑了各种选项之后,我能够按照文档中提供的 Spring SAML 安全性来使用它。
现在的问题是将 SAML 安全性与我们的应用程序集成。
不幸的是,我们的应用程序仍然是使用 servlet 和 jsp 而不是 spring 的遗留 java 应用程序。
我只是想知道如何将2整合起来。文档中提到这是可能的。但是,我找不到任何关于它的文章。
谁能告诉我可以为这种方法提供指导的相关资源。
谢谢。
包 org.springframework.security.saml.websso
中的 类 包含 SAML 处理功能的核心,并且独立于 Spring 安全性。它们确实包含少量来自 Spring 的 class 导入,因此 Spring-core classes 需要位于 class 路径上,但应用程序本身并不不需要使用 Spring/SpringSecurity.
您需要自己重新实现特定于 Spring 安全性的逻辑 - 程序包 org.springframework.security.saml
- 例如SAMLEntryPoint
、SAMLProcessingFilter
,并在身份验证生命周期内调用您的实现。这些 classes 的逻辑很简单,因此启用基本用例非常容易。
感谢 Vladimír 的指导。这就是我如何将标准遗留 java 应用程序与 spring 安全性集成以进行基于 saml 的身份验证:
- 已修改 securityContext.xml
设置 idpDiscoveryEnabled=false
设置 forceAuthN= true 以在 saml 令牌过期时强制用户登录
将 successHandler 中的 defaulttargetURL 更新为 authhandler.jsp 页面,出现在 spring 安全应用程序中,重定向回我的应用程序
- 我在我的 java 应用程序中对所有网络调用应用了过滤器。这个
过滤器将调用重定向到 /spring-security-saml2/saml/login
- spring saml 验证用户 ADFS.On 成功验证,用户被重定向到 authhandler.jsp
- Authhandler.jsp 与 index.jsp 相同,但检索到的声明在这里是隐藏字段。隐藏字段中的这些值被发送回我的标准 java 应用程序。
- 这里我的 java 应用程序执行其他应用程序级别的身份验证并按需要进行。
对于即兴创作或识别上述方法中的任何缺陷的任何建议,我们将不胜感激
我们有一个要求,需要在我们的应用程序中为将 ADFS 作为 IDP 的客户启用 SAML 身份验证。
在考虑了各种选项之后,我能够按照文档中提供的 Spring SAML 安全性来使用它。 现在的问题是将 SAML 安全性与我们的应用程序集成。
不幸的是,我们的应用程序仍然是使用 servlet 和 jsp 而不是 spring 的遗留 java 应用程序。 我只是想知道如何将2整合起来。文档中提到这是可能的。但是,我找不到任何关于它的文章。
谁能告诉我可以为这种方法提供指导的相关资源。
谢谢。
org.springframework.security.saml.websso
中的 类 包含 SAML 处理功能的核心,并且独立于 Spring 安全性。它们确实包含少量来自 Spring 的 class 导入,因此 Spring-core classes 需要位于 class 路径上,但应用程序本身并不不需要使用 Spring/SpringSecurity.
您需要自己重新实现特定于 Spring 安全性的逻辑 - 程序包 org.springframework.security.saml
- 例如SAMLEntryPoint
、SAMLProcessingFilter
,并在身份验证生命周期内调用您的实现。这些 classes 的逻辑很简单,因此启用基本用例非常容易。
感谢 Vladimír 的指导。这就是我如何将标准遗留 java 应用程序与 spring 安全性集成以进行基于 saml 的身份验证:
- 已修改 securityContext.xml
设置 idpDiscoveryEnabled=false
设置 forceAuthN= true 以在 saml 令牌过期时强制用户登录
将 successHandler 中的 defaulttargetURL 更新为 authhandler.jsp 页面,出现在 spring 安全应用程序中,重定向回我的应用程序 - 我在我的 java 应用程序中对所有网络调用应用了过滤器。这个 过滤器将调用重定向到 /spring-security-saml2/saml/login
- spring saml 验证用户 ADFS.On 成功验证,用户被重定向到 authhandler.jsp
- Authhandler.jsp 与 index.jsp 相同,但检索到的声明在这里是隐藏字段。隐藏字段中的这些值被发送回我的标准 java 应用程序。
- 这里我的 java 应用程序执行其他应用程序级别的身份验证并按需要进行。
对于即兴创作或识别上述方法中的任何缺陷的任何建议,我们将不胜感激