2

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

Web 应用程序容器是 Apache Tomcat 6.0

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

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

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

谢谢。

4

1 回答 1

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 属性,您可以执行必要的操作来允许拒绝用户身份验证。

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

我建议从头开始阅读这个关于 Shibboleth SP 和 IdP 安装和配置的清晰而全面的 wiki 。

于 2013-09-30T23:28:43.757 回答