鉴于:
PingFederate是单点登录(SSO)解决方案,它允许用户使用单个用户名和密码通过1-n应用程序对用户进行身份验证。
高级问题:
PingFederate的单次注销(SLO)功能如何工作?
SLO通常如何工作?
鉴于:
要开始SLO流程,我们希望用户从浏览器(即https://[PingFederateInstance]/idp/startSLO.ping?PartnerSpId=[PartnerSpId]
)请求SLO端点。
我们可以假设PingFederate实例将在成功调用SLO后发出重定向。
具体问题:
但是,如果您在多个浏览器窗口中有多个应用程序怎么办?
联合身份提供者如何通知多个应用程序终止其用户会话?
最佳答案
直接从《 PingFederate入门》手册中:
“单一注销(SLO)配置文件使用户几乎可以同时注销联盟会话中的所有参与站点。该用户可以从任何站点全局注销,无论是SP还是IdP(由相应的Web应用程序确定)。关联的IdP联盟部署处理参与站点的所有注销请求和响应。”
就是说-PingFederate(充当IdP)知道您在给定会话中联合了哪些SP。当用户启动SLO(从您在IdP给出的示例中也可以从SP启动)时,用户浏览器(假定为重定向或POST绑定)将通过SAML LogoutRequest发送到每个SP。
如果用“多个浏览器窗口”表示独立的浏览器/浏览器会话,那么PingFederate实际上将不知道注销所有IdP。您需要在其中进行一些常见的会议。因此,如果只是多个浏览器窗口,但是共享相同的会话信息(例如Cookie),则可以正常工作。
有关更多信息,您可能需要查阅SAML 2.0配置文件规范的第4.4节:http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf
请记住,PingFederate不仅仅支持SAML 2.0,而且并非所有联盟协议都支持SLO(例如:SAML 1.x)。同样,许多非PingFederate SAML感知应用程序也不支持SLO。