【发布时间】:2017-09-22 15:59:16
【问题描述】:
在我们的大学,我们计划托管一系列在 Spring Boot 中实现的独立小型 Web 应用程序,这些应用程序托管在 Tomcat Web 容器中。我们的大学有一个 Shibboleth IdP,我们想用它来对用户进行身份验证。
到目前为止,我的理解是,我们需要托管自己的服务提供程序,这可以通过使用 Spring Security SAML 将其集成到每个单独的应用程序中来完成,或者通过在 Tomcat 上安装 Shiboleth 服务提供程序来完成服务器,并以某种方式将其映射到应用程序using this method。
This SE question 和 Vladimir 的回答已经澄清了很多,但我想确保我花时间以最合适的方式为我们的特定用例进行设置。
- 多个小应用程序
- 所有应用程序都使用相同的 IdP,因此相同的身份验证,但授权(谁可以访问什么)可能不同。
- 我们不需要自定义登录过程。我希望使用大学在所有其他应用程序中使用的默认外观。
- 最好将“谁可以访问什么”规则保留在应用程序之外。
我是否正确理解使用 Spring Security SAML 会变得多余,因为我需要将它包含到每个应用程序中,并为每个应用程序配置它?在使用 Tomcat 方法时,我只需要设置一次,然后正确设置到应用程序的映射?
【问题讨论】:
-
Shiboleth 注意到的是 SAML 的 java 实现,因此如果您希望使用 Spring 或任何其他框架(基于 java)执行此操作,那么您应该使用 Shiboleth。
-
哦,从我从最新(2015)文档中了解到,Shiboleth SP 仅在 C++ 中实现:wiki.shibboleth.net/confluence/display/SHIB2/…(“Shibboleth SP 目前仅在 C++ 中作为 Apache httpd 的模块实现”)。不正是 Spring Security SAML 模块是 SAML 的 Java 实现吗?
标签: spring-boot spring-security spring-saml shibboleth