我开始使用新的Spring项目,我计划使用SSO。我有红色的博客,并了解Spring安全性SAML将是SP的最佳解决方案。
所以我已经将Spring网站https://github.com/SpringSource/spring-security-saml提供的Spring Security SAML示例应用程序与Shibboleth IDP一起实现为SP。
IDP与LDAP服务器连接。我能够执行Spring安全性示例应用程序。
我很困惑如何使用Spring安全SAML扩展以及多个spring项目。
有关构建Spring SAML项目与多个Spring MVC应用程序集成的任何示例链接或建议都会有所帮助。
答案 0 :(得分:8)
如果您的REST API仅由与它们一起部署的Web应用程序调用(在单个战争中,因此共享相同的HTTP会话),您可以使用Spring SAML + Spring Security来保护它们。
Spring SAML将用于针对远程IDP对用户进行身份验证并填充其权利(授予权限);然后,可以使用Spring Security为从UI调用的API定义安全策略。
如果您希望能够从远程客户端调用REST API,您可能需要查看Spring Security OAuth项目 - 因为这不再是关于Web单点登录的。
可以创建Spring SAML的中央安装,它可以处理所有SSO逻辑。当然,您需要实现一种机制,其中Spring SAML将有关经过身份验证的用户及其属性的信息传递给您的其他应用程序,并以安全的方式执行此操作。一种可能的方法(如果应用程序部署在同一个域上,因此可以共享cookie),可以:
所有这些都可以通过Spring Security和Spring SAML的标准接口的实现来完成。但这不是一项微不足道的任务 - 主要考虑到您的实施中的任何安全漏洞都可能会损害您的应用程序的安全性。