在期待多个应用程序时,我应该使用 Spring Security SAML 还是 Shiboleth SP?

Posted

技术标签:

【中文标题】在期待多个应用程序时,我应该使用 Spring Security SAML 还是 Shiboleth SP?【英文标题】:Should I use Spring Security SAML, or Shiboleth SP when expecting multiple applications? 【发布时间】: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 实现吗? 【参考方案1】:

SAML的java实现可以看这里。

Shiboleth's open saml java

如果您愿意,甚至可以尝试 Spring 的 SAML 实现

Spring Security Saml

请告诉我,以防我遗漏了什么。

【讨论】:

感谢您提供帮助,但我已经在我自己的问题中提到了您明确提供的两个链接。另外,您的回复是针对什么问题?我看不出你的回答与我的问题有什么关系...

以上是关于在期待多个应用程序时,我应该使用 Spring Security SAML 还是 Shiboleth SP?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Spring Data JPA 的多个数据库

当我从 C 和 C# 过渡到 C++ 时,我可以期待有啥不同?

测试 Spring 以了解甚至不应该加载上下文的情况

使用 spring boot 配置多个 servletcontainers/servlet

为啥 Spring Integration 有多个 XML 模式,我应该使用哪一个?

众所期待,如约而至 | 尚硅谷Spring5视频教程发布!