通过删除IDP cookie在Shibboleth中使用Global Logout

时间:2013-04-05 20:13:57

标签: authentication shibboleth

我有一个使用Shibboleth进行身份验证的产品。

当用户在网站上发起注销时

  1. Web服务器向Shibboleth SP发送注销请求。
  2. SP会在收到请求后删除Cookie帖子。
  3. 但是,如果用户返回网站,则不会提示登录页面
  4. 对于下面显示的配置,我使用的是Shibboleth Service Provider https://www.testshib.org/install.html#SP。它被配置为使用testshib.org IdP详细信息,其中可以读取here

    Shibboleth Signout

    我认为IdP没有删除其会话cookie并在步骤3重新登录用户。

    有关IdP Cookie的更多信息:

    wiki-source个状态IdP使用两个Cookie _idp_authn_lc_key,在身份验证后删除。第二个是会话cookie'_idp_session',它声明:

      

    一旦用户通过身份验证,他们将拥有一个长期会话   使用名为_idp_session的cookie跟踪的IdP。这个   cookie仅包含识别用户所需的信息   IdP会议。此cookie创建为“会话”cookie并且将是   当浏览器选择删除此类cookie时(通常在何时删除)   浏览器已关闭。)

    我的问题是

    • 我需要在SP上做出哪些更改才能请求IdP删除相同并有效创建 GLOBAL LOGOUT

1 个答案:

答案 0 :(得分:2)

对于它的价值,你将很难迫使IdP将用户注销。 cookie方法是一个实现细节,并非所有IdP都使用它,它可能会改变。有些IdP可能会提供退出网址,但老实说,这可能对用户造成不利影响(你能想象一下,如果你能找到一种方法来不断对用户进行授权,不仅仅是对你的网站,还有他们与其他SP的会话?)。您实际上只能控制自己在服务提供商上的会话。

为什么不在用户返回您的 SP时强行重新验证?如果他们在访问后最近没有通过身份验证(这是您从SAML交换机返回的字段),只需将它们再次发送回IdP并传递强制reauth标志。

如果您使用的是Shibboleth软件,它甚至可以内置: https://wiki.cac.washington.edu/display/infra/Configure+a+Service+Provider+to+Force+Re-Authentication