Login 具有自定义web应用程序的Shibboleth';用户自己的登录机制

Login 具有自定义web应用程序的Shibboleth';用户自己的登录机制,login,servlet-filters,shibboleth,Login,Servlet Filters,Shibboleth,我们正在开发一个web应用程序,它有自己的登录机制(使用用户名和密码的登录机制)。使用Web应用程序过滤器实现登录机制) web应用程序容器是ApacheTomcat6.0 用户也可以选择通过Shibboleth身份验证登录。也就是说,要访问我们的Web应用程序,用户可以选择使用Shibboleth进行身份验证,或者使用我们自己的基于Web应用程序过滤器的登录机制 支持Shibboleth身份验证和基于Web应用程序过滤器的签名机制在技术上是否可行 如果可行,从Web应用程序过滤器的角度来看,我

我们正在开发一个web应用程序,它有自己的登录机制(使用用户名和密码的登录机制)。使用Web应用程序过滤器实现登录机制)

web应用程序容器是ApacheTomcat6.0

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

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

如果可行,从Web应用程序过滤器的角度来看,我们如何检查用户是否已经通过Shibboleth的身份验证?是否存在Shibboleth身份验证令牌或Shibboleth用户会话


谢谢。

我假设您指的是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属性可以执行必要的操作以允许或拒绝用户身份验证

请参阅官方wiki,了解如何“Shibbolize”应用程序以及如何访问属性


我建议从一开始就开始阅读Shibboleth SP和IdP的安装和配置。

您在Tomcat前面使用Apache吗?我在Apache Tomcat 7.0.42(从Apache Tomcat 6.0升级)包含的web应用程序前面使用Apache HTTPD 2.2好,您可以在Apache上使用mod_shib_22.so模块集成SP。请参阅如何唯一标识Shibboleth认证用户?我已经读过关于Shib-persistent-id的内容。但是request.getAttribute(“Shib persistent id”)和request.getHeader(“Shib persistent id”)都返回null。我验证了用户是否经过身份验证,因为request.getAttribute(“Shib标识提供程序”)正确返回我的Shibboleth标识提供程序的entityId。这取决于IdP。用于查看您的IdP发送了哪些属性,并选择一个独特的属性,如“HTTP\U用户”