带有2个SP的SimpleSAMLphp IDP的SLO问题:重定向到错误的登录屏幕

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

我们已经将SimpleSAMLphp设置为SAML IDP,并向其注册了2个SP(Liferay和MyWebMethods)。

每个SP都通过simplesamlphp / metadata / saml20-sp-remote.php文件中的ACS和SLO链接注册到IDP。像:

// MWS = SP2
$metadata['http://sp2.siteweb.com'] = array(
    'AssertionConsumerService' => 'http://sp2.siteweb.com/',
    'SingleLogoutService' => 'http://sp2.siteweb.com/?method=logout',
);

// LR = SP1
$metadata['http://sp1.siteweb.com/c/portal/saml/metadata'] = array(
    'AssertionConsumerService' => 'http://sp1.siteweb.com/c/portal/saml/acs',
    'SingleLogoutService' => 'http://sp1.siteweb.com/c/portal/saml/sls',
);

我使用SSO没问题:通过IDP进行身份验证后,我可以进入第一个SP,然后可以再次进入第二个SP,而无需再次登录。

我的问题是,当用户从同一会话同时连接到2个SP中的每一个时,注销(SLO)(Google Chrome中的2个标签)。如果他首先从SP2注销,则每当他尝试从SP1注销时,都会被重定向到SP2的登录屏幕(即,正常的SSO外登录屏幕),而不是被重定向到IDP登录屏幕。 。

注销URL实际上是由我们的SP过滤器捕获的,然后我们创建一个执行logout()的saml Auth对象:

Auth auth = new Auth(request, response);
String relayState = sp1_login_url;
auth.logout(relayState);

一个信息是SP1支持SP发起,而SP2仅支持IDP发起。

请问有什么主意吗?

single-sign-on logout simplesamlphp webmethods idp
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.