私が抱えている問題は、このサイトで何度か議論されていますが、ほとんどの投稿はかなり古くなっています。私が経験しているものはsomething similarです。私はIdPとしてWSO2 IS 5.2を使用しています.SSOに参加する差分サーバーでホストされている2つのJavaベースのWebアプリケーションがあります。各webapp(SP)はSpring-SAML拡張を実装しています。シングルサインオンは完全に機能しますが、シングルログアウトは部分的にしか機能しません。ここではテストケースである:のwebapp1上WSO2とSpring SAMLの単一ログアウトの問題
- アクセスセキュアなリソース
- Idpの(WSO2)からログインページが提示され、ユーザがログインwebapp2を上
- アクセスセキュアなリソースを提示しているのwebapp1から
- セキュアな資源であり、
- SAML要求はwebapp2をから
- セキュアリソースが提示され、Idpのに送られたIDPは応答し、ユーザが認証されている、エンドSSO
- でitiateは、単一IdpのとSAML応答に(ブラウザ経由)SAML要求を送信webapp2を
- webapp2をからログアウトは
- ユーザーがwebapp2をとのIDPセッションでローカルにログオフされて返され
- を終了したIdPが直接のwebapp1にログアウト要求を送信します(バックチャネル型)
- ログアウト要求が(ログはSamlStatusExceptionを示している:ユーザーがログインしていない)のwebapp1に失敗し
だから最終的な結果は、私がまだのwebapp1上のローカルセッションを持っているということです。注文を変更してwebapp1からSLOを開始すると、webapp1はログアウトされ、webapp2のローカルセッションは引き続き存在します。 WSO2サーバーはSLO中に第2セッション参加者を決定することができますが、Idpから第2セッション参加者に送信されるHTTP要求にはSpringセキュリティコンテキストがありません。これはステートレスなHTTP要求なので、ログインしているユーザーはいません。これが失敗していると私が信じている理由です。
私はthisディスカッションを発見しました。その約2歳です。この問題に何か新しいことはありますか?おそらく、WSO2やSpring-samlの設定で私が見逃した設定ステップかもしれません。ここで
は私のSPのメタデータの関連する部分である:
<md:SingleLogoutService Location="https://tpap10-wwwdev04.arbfile.org:443/webapp/saml/SingleLogout" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>
<md:SingleLogoutService Location="https://tpap10-wwwdev04.arbfile.org:443/webapp/saml/SingleLogout" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName</md:NameIDFormat>
<md:AssertionConsumerService Location="https://tpap10-wwwdev04.arbfile.org:443/webapp/saml/SSO" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" isDefault="true" index="0"/>
<md:AssertionConsumerService Location="https://tpap10-wwwdev04.arbfile.org:443/webapp/saml/SSO" Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact" index="1"/>
SP上のいくつかの関連する春のSAML設定:
<bean id="metadataGeneratorFilter" class="org.springframework.security.saml.metadata.MetadataGeneratorFilter">
<constructor-arg>
<bean class="org.springframework.security.saml.metadata.MetadataGenerator">
<property name="entityId" value="urn:webapp1:mycity"/>
<property name="entityBaseURL" value="https://wwwdev04.domain.org:443/webapp" />
<property name="extendedMetadata">
<bean class="org.springframework.security.saml.metadata.ExtendedMetadata">
<!-- <property name="signMetadata" value="false"/> -->
<property name="idpDiscoveryEnabled" value="false"/>
</bean>
</property>
</bean>
</constructor-arg>
</bean>
こんにちはウラジミール、私はあなたが春の専門家であることがわかります。私の問題を助けてくれますか? – bob9123