3

このセットアップでは、wso2is を idp として使用し、2 つのアプリケーションを sp として使用しています。アプリケーションの 1 つは java、spring-security-saml-extension を使用し、もう 1 つは php と simplesamlphp を使用します。SSO は正常に機能していますが、SLO を機能させることができません。

私がすることは:

  1. 両方の SP にログイン
  2. 最初の sp でログアウトを行う
  3. wso2 ログを見て、wso2is がログアウト要求を 2 番目の SP に送信したことを確認します。
  4. 2 番目の SP が logoutrequest の読み取りに失敗する

simplesamlphp エラー メッセージ:

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

idp によって発行された saml2 LogoutRequest:

<?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/test01@domain.com</saml2:NameID>
    <saml2p:SessionIndex>5f14fc6e-1c31-42e1-b7c2-e1501bf400a8</saml2p:SessionIndex
</saml2p:LogoutRequest>

以下の saml2 SLO-Profile 仕様では、4.4.4 章の 1294 行目に明確に記載されています。

<Issuer> 要素が存在する必要があり、要求元エンティティの一意の識別子が含まれている必要があります。

私が理解しているように、ここでは Idp として機能する wso2is が発行者である必要がありますが、メッセージにその ID を含めることができません。

私が間違っていることについてのヒントはありますか?これが wso2is のバグだとは思えません!

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

4

2 に答える 2

1

仕様でわかったように、Issuer 要素は必須です。SP はこれを使用して送信者を識別します。それがなければ、多くの IDP に同時に接続される可能性があるため、SP はメッセージの送信者を推測し始める必要があります。この問題はバグとして wso に報告する必要があります。

于 2014-05-23T09:17:57.780 に答える