Spring security 5.2+ SAML2多个IDP注销

问题描述 投票:0回答:1

SAML2支持是Spring Security库的新增功能。

据此:https://github.com/spring-projects/spring-security/blob/master/docs/manual/src/docs/asciidoc/_includes/servlet/saml2/saml2-login.adoc

Saml 2 Login - Not Yet Supported
    1. Mappings assertion conditions and attributes to session features (timeout, tracking, etc)
    2. Single logout
    3. Dynamic metadata generation
    4. Receiving and validating standalone assertion (not wrapped in a response object)

在当前版本中,它不支持单个注销,这对于具有多个身份提供者的情况至关重要。

为多个IDP启用一次注销的正确解决方法是什么?

java spring spring-security saml-2.0 spring-saml
1个回答
0
投票
Spring Security将提供的单一注销功能将针对一个IdP注销多个SP,而不是多个。

用户的典型流程是登录某些IdP,然后在其会话过程中将其重定向到一个或多个SP。当他们单击注销时,将结束他们最初与该IdP建立的会话。

Spring Security中解决此问题的方法是通过LogoutSuccessHandler。 SP成功终止会话后(单击注销按钮),将调用LogoutSuccessHandler。您可以想象一个LogoutSuccessHandler可以重定向到IDP的SLO端点或命中后端IDP注销端点。

SP尝试合并由用户登录到一个IdP的用户发起的会话与该用户登录到另一个IdP的用户发起的会话并不太常见,这是我认为您正在描述的用例。但是,如果您觉得我缺少某些东西,请随时添加更多细节。

© www.soinside.com 2019 - 2024. All rights reserved.