SLO проблема с SimpleSAML php IDP с 2 SP: перенаправлены на неправильный экран входа - PullRequest
1 голос
/ 16 февраля 2020

Мы настроили SimpleSAML php в качестве SAMP IDP, для которого зарегистрированы 2 SP (Liferay и MyWebMethods).

Каждый SP зарегистрирован в IDP со своими собственными ссылками ACS и SLO в simplesamlphp /metadata/saml20-sp-remote.php файл. Что-то вроде:

// 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, затем я могу go на 2 SP без необходимости войдите снова.

Моя проблема связана с выходом из системы (SLO), когда пользователь подключается к каждому из 2 SP одновременно в одном сеансе (2 вкладки в Google Chrome). Если он сначала выходит из системы с помощью SP2, то всякий раз, когда он пытается выйти из системы с SP1, он перенаправляется на экран входа в систему SP2 (ie: обычный экран входа вне SSO), а не перенаправляется в IDP. экран входа в систему.

URL-адрес выхода фактически захватывается нашим фильтром SP, затем мы создаем объект аутентификации saml, который выполняет logout ():

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

Одна информация заключается в том, что SP1 поддерживает SP -inidiated и SP2 поддерживает только IDP-init.

Любая идея, пожалуйста?

1 Ответ

0 голосов
/ 19 февраля 2020

После некоторых исследований, решение было просто добавить параметр returnUrl в конфигурацию для SP2:

// MWS = SP2
$metadata['http://sp2.siteweb.com'] = array(
    'AssertionConsumerService' => 'http://sp2.siteweb.com/',
    'SingleLogoutService' => 'http://sp2.siteweb.com/?method=logout&returnUrl=http://idplogin.siteweb.com',
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...