我可以在不使用Apache和shibd的情况下在我的Java Webapp中集成Shibboleth SSO吗?

我正在使用一个使用嵌入式Jetty的纯Java Web应用程序,我希望集成一个Shibboleth登录.为此,我遵循switch.ch’s guide for Shibboleth Service Provider Deployment,其中规定:

The Shibboleth Service Provider consists of a daemon shibd running on
all major operating systems and a web server module mod_shib which is
natively supported by:

  • Apache web servers (versions 1.3.x, 2.x)
  • IIS (versions 6, 7 and 8)

我的问题是,有没有办法在我的Java Web应用程序中集成Shibboleth SSO而不使用Apache Web服务器或运行shibd的IIS?也许有人之前做过这个并且可以提供示例Servlets / Filters等等?

我不希望在Shibboleth的应用程序前面有一个Web服务器,因为它会使安装变得复杂.目前,安装只需两个步骤:提取人工制品并运行启动脚本,如果我能保持这样,我将不胜感激.

解决方法:

Shibboleth服务提供商负责处理许多复杂的用例,例如密钥轮换,元数据刷新和属性重新映射.如果您有一个非常简单的用例,您需要在一个很少更改的Shibboleth身份提供程序中对用户进行身份验证,您可以考虑直接在Java代码中验证SAML 2.0断言.

如果您已经使用spring-security,那么您应该首先查看spring-security-saml项目:

http://projects.spring.io/spring-security-saml/

或者,您可以从OpenSAML(https://wiki.shibboleth.net/confluence/display/OpenSAML/Home)等低级库开始,也可以从LastPass Java SAML SDK(https://github.com/lastpass/saml-sdk-java)等更高级别的库开始.

上一篇:java – gRPC服务器可以在另一个HTTP / 2 Web服务器上运行,比如jetty / undertow / tomcat吗?


下一篇:使用Guice Servlet和Jetty将路径映射到servlet而不使用web.xml