我正在使用一个使用嵌入式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)等更高级别的库开始.