SLO с wso2is, idp без учета эмитента в LogoutRequests

В этой настройке я использую wso2is как idp и 2 приложения как sp. одно из приложений использует java, spring-security-saml-extension, другое - php и simplesamlphp. SSO работает нормально, но я не могу заставить работать SLO.

что я делаю:

  1. войти в оба sp-s
  2. выйдите из системы на 1-м сеансе
  3. посмотрите журнал wso2 и увидите, что wso2is отправил запрос выхода на второй sp
  4. 2-й sp не может прочитать запрос выхода

Сообщение об ошибке simplesamlphp:

SimpleSAML_Error_BadRequest: BADREQUEST('%REASON%' => 'Received message on logout endpoint without issuer.')

saml2 LogoutRequest, выданный idp:

<?xml version="1.0" encoding="UTF-8"?>
<saml2p:LogoutRequest ID="ljknoccfdhjcgelcpmbicffooeokboficpggcmpi"  IssueInstant="2014-04-08T06:45:19.944Z" NotOnOrAfter="2014-04-08T06:50:19.944Z" Reason="urn:oasis:names:tc:SAML:2.0:logout:user" Version="2.0" xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
    <saml2:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">EXAMPLE.AT/[email protected]</saml2:NameID>
    <saml2p:SessionIndex>5f14fc6e-1c31-42e1-b7c2-e1501bf400a8</saml2p:SessionIndex
</saml2p:LogoutRequest>

В спецификации saml2 SLO-Profile ниже четко указано в главе 4.4.4 в строке 1294:

Элемент ‹Issuer› ДОЛЖЕН присутствовать и ДОЛЖЕН содержать уникальный идентификатор запрашивающего объекта.

Насколько я понимаю, здесь wso2is действует как Idp, но он не может включить свой идентификатор в сообщение.

Любой намек на то, что я делаю не так? Я не могу представить, что это ошибка wso2is!

http://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf.


person oran g    schedule 08.04.2014    source источник
comment
У меня здесь точно такая же проблема. Я успешно настроил SSO с двумя приложениями PHP (используя onelogin php-saml) и WSO2 IS 5.0.0 в качестве поставщика удостоверений. Когда IDP отправляет LogoutRequest, эмитент не включается. Вам удалось найти решение для этого?   -  person Michael    schedule 28.08.2014


Ответы (2)


Как вы обнаружили в спецификации, элемент Issuer является обязательным. SP использует его для идентификации отправителя. Без него SP должен был бы начать угадывать, кто отправил сообщение, поскольку он мог бы быть подключен ко многим IDP одновременно. Об этой проблеме следует сообщить в wso как об ошибке.

person Vladimír Schäfer    schedule 23.05.2014

Это исправлено в следующем выпуске Identity Server 5.1.
https://wso2.org/jira/browse/IDENTITY-2714

В настоящее время я использую 5.0.0 и в конечном итоге исправил ряд таких вещей, как этот, чтобы получить нужную мне функциональность. Это было не так уж плохо, когда ты сориентировался. Вам потребуется пропатчить компонент org.wso2.carbon.identity.sso.saml в модуле identity в чанке 4.2.0 углеродной платформы11.

person jeremy simon    schedule 19.10.2015