我有一个使用Shibboleth进行身份验证的产品。
当用户在网站上发起注销时
对于下面显示的配置,我使用的是Shibboleth Service Provider https://www.testshib.org/install.html#SP。它被配置为使用testshib.org IdP详细信息,其中可以读取here
我认为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时(通常在何时删除) 浏览器已关闭。)
我的问题是
答案 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