Spring security 通过反向通道使用HTTP-POST进行单次注销

Spring security 通过反向通道使用HTTP-POST进行单次注销,spring-security,spring-saml,keycloak,Spring Security,Spring Saml,Keycloak,Key斗篷、WSO2和其他一些SSO IDP服务器提供了“单次注销”的可能性,而无需强制浏览器通过反向通道通过HTTP-POST发送重定向到当前用户登录的每个SP 不幸的是,如果服务中的SSO集成是使用spring-security-saml2-core库实现的(我们使用的是Keycloack),那么这将不起作用 从SP端的日志文件中,我只知道: [2016-01-13 12:50:56.867] [DEBUG] [org.springframework.security.saml.SAMLLo

Key斗篷、WSO2和其他一些SSO IDP服务器提供了“单次注销”的可能性,而无需强制浏览器通过反向通道通过HTTP-POST发送
重定向到当前用户登录的每个SP

不幸的是,如果服务中的SSO集成是使用spring-security-saml2-core库实现的(我们使用的是Keycloack),那么这将不起作用

从SP端的日志文件中,我只知道:

[2016-01-13 12:50:56.867] [DEBUG] [org.springframework.security.saml.SAMLLogoutProcessingFilter] - Received logout request is invalid, responding with error
org.springframework.security.saml.SAMLStatusException: No user is logged in
    at org.springframework.security.saml.websso.SingleLogoutProfileImpl.processLogoutRequest(SingleLogoutProfileImpl.java:168)
    at org.springframework.security.saml.SAMLLogoutProcessingFilter.processLogout(SAMLLogoutProcessingFilter.java:176)
    at org.springframework.security.saml.SAMLLogoutProcessingFilter.doFilter(SAMLLogoutProcessingFilter.java:102)

...
使用SpringSAML扩展的应用程序部署在Tomcat7上。通过后端通道发送时,
似乎没有浏览器会话cookie,并且无法识别用户应用程序会话,因此用户无法注销,用户的应用程序会话也不会失效

但是,
包含全局SSO会话标识符,该标识符可以唯一标识应用程序会话。但事实并非如此

Spring SAML库的这种行为是否是由desing设计的:在单次注销期间不支持后端通信?或者我遗漏了什么并且可以配置所需的行为

注:据我所知,根据SAML规范,HTTP-POST和HTTP重定向绑定旨在通过用户代理(web浏览器)进行,但SSO IDP服务器的广泛支持使我提出了以下问题:)

提前谢谢你


更新:根据Vladimir Schäfer在文章中的评论,这似乎是一种预期的库行为。

在Spring SAML中,HTTP重定向和HTTP-POST绑定目前支持单次注销。SOAP绑定不可用。参考:


spring saml不支持返回通道在spring saml中,HTTP重定向和HTTP-POST绑定当前支持单次注销。SOAP绑定不可用。参考:


spring saml中不支持后台通道,无法使用spring saml库通过后台通道通过HTTP-POST执行

这种行为违反了SAML规范,根据Vladimir Schäfer在文章中的评论,Spring SAML将不支持这种行为


SOAP绑定是针对后端通道的,但正如@meetarun所指出的,它目前未在Spring SAML库中实现。

,无法使用Spring SAML库通过后通道通过HTTP-POST执行

这种行为违反了SAML规范,根据Vladimir Schäfer在文章中的评论,Spring SAML将不支持这种行为

SOAP绑定是用于后端通道的,但正如@meetarun所指出的,它目前并没有在Spring SAML库中实现