Drupal Shibboleth退出

时间:2012-07-03 17:00:53

标签: drupal shibboleth commerce

我们使用Shibboleth对用户进行身份验证。它很棒。

问题是,在进入用户/注销(并且我认为实际注销)之后,用户会立即自动重新进行身份验证!

任何解决方案都会浮现在脑海中?

谢谢!

3 个答案:

答案 0 :(得分:3)

这是一个中等复杂的问题,取决于您想要实现的目标。坏消息是according to people who should know, SingleLogOff basically doesn't work,因为至少本地应用程序可能会缓存登录信息,并且没有可靠的方法告诉每个人将您注销。

但是,退出服务提供商的特定会话可能就像发送用户一样简单 https://yourhost/Shibboleth.sso/Logout?return=http://www.google.com将破坏该会话并将用户重定向到给定的URL。

要使用IdP销毁会话,您可能需要一种方法来擦除IdP设置的_idp_session cookie,如果您控制IdP则很容易,如果您不控制IdP则很容易。 (shibd SP确实支持告诉IdP注销IdP会话,但IdP没有。)

在SHIB 3发布后编辑

Shibboleth 3现在支持 SLO

答案 1 :(得分:1)

单次注销不起作用 - 不要费心寻找它;您可以从SP注销 - 但是没有真正的方法可以从IdP的SSO链注销。

Shibboleth IdP是一个SSO,它缓存一个cookie,覆盖SP上的任何注销(唯一的方法是强制用户在SP注销后在SP上进行身份验证 - SAML配置 - 这实际上意味着SP不再接受SSO)。

杀死IdP cookie只会阻止未来的SSO - 它不会从任何预先存在的会话中注销用户。

真正注销SSO世界的唯一方法是终止浏览器会话(每种浏览器类型都有不同的方式)。

有所谓的SLO代理 - 试图在SSO sesson中访问每个访问过的SP,单独注销,然后终止IdP会话:这在SSO环境中根本不可行多个SP(只需1次调用一个SP即可失败,并且您有一个未完成的注销过程)。

答案 2 :(得分:0)

  

@ user353829在SSO世界中真正注销的唯一方法是终止浏览器会话

好的......那是部分正确的。 一般来说,SAML2(Shibboleth实现)提供了单点注销(page 32)的规范。问题是,实施起来相当棘手(阅读@Ulrich Schwarz提供的SLOIssues),更糟糕的是培训用户正确理解全局注销(再次仔细阅读SLOIssues)。

但是如果你完全确定你了解SLO是如何运作的,那么匈牙利队就会working implementation创建。

我正在测试它,我已成功将其与我的Facebook Login Module集成。而且效果很好。

请记住,有一个原因可以解释为什么这个匈牙利模块不会出现在最新的官方Shibboleth版本中。

希望有所帮助