2013-09-30 62 views
2

我们正在开发具有自己的SignOn机制(使用用户名和密码的登录机制)的Web应用程序。该点登录机制是使用Web应用程序过滤器)Shibboleth与自定义Web应用程序自己的SignOn机制

Web应用程序容器的Apache Tomcat 6.0

用户还可以选择通过Shibboleth身份验证进行登录实现。也就是说,要访问我们的Web应用程序,用户可以选择使用Shibboleth进行身份验证,或使用我们自己的SignOn机制(基于Web应用程序过滤器)。

支持Shibboleth身份验证和基于Web应用程序过滤器的SignOn机制在技术上是否可行?

如果可行,从Web应用程序过滤器端,我们如何检查用户是否已经通过Shibboleth进行身份验证?是否有一些Shibboleth身份验证令牌或Shibboleth用户会话?

谢谢。

+0

你在Tomcat前面使用Apache吗? – zerologiko

+0

我在Apache Tomcat 7.0.42(从Apache Tomcat 6.0升级)包含的Web应用程序前面使用Apache HTTPD 2.2。 –

+0

好的,您可以在Apache上使用mod_shib_22.so模块来集成SP。请参阅https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig – zerologiko

回答

3

我假定您是指Shibboleth SP(服务提供者组件),并且您还需要Shibboleth IdP(身份提供者)来提供实际的身份验证。

...是的,这是可行的和这两种方法可以很容易地共存。

当用户通过Shibboleth SP(使用身份提供者)成功进行身份验证时,它将众所周知的会话属性放置在HTTP请求属性和标头中。

您可以查看会话属性访问:

https://your-host/Shibboleth.sso/Session 

所以,你的应用程序中,您可以检查存在和喜欢这些属性的值:

request.getAttribute("NAME_OF_THE_ATTRIBUTE_IN_SESSION") 
request.getHeader("NAME_OF_THE_ATTRIBUTE_IN_SESSION") 

然后,使用Shibboleth的属性时,可以做必要的操作允许拒绝用户认证。

请参阅this官方wiki了解如何“Shibbolize”应用程序和this访问属性。

我建议从Shibboleth SP和IdP的安装和配置开始this clear and comprehensive wiki开始阅读。

相关问题