0

picketlink を使用してアプリケーションを保護しようとしています。JBoss 6.4.18 を使用しています。

SSO 操作は問題なく動作します。問題は SLO にあり、基本的に picketlink は LogoutRequest アサーションを間違ったエンドポイントに送信します。私の war 内の IdP メタデータには、次のエンドポイントがあります。

<md:ArtifactResolutionService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://myidp.com/saml2/soap" index="0" isDefault="true"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://myidp.com/saml2/slo" ResponseLocation="https://myidp.com/saml2/slo_return"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://myidp.com/saml2/slo" ResponseLocation="https://myidp.com/saml2/slo_return"/>
<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://myidp.com/saml2/soap"/>
<md:ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://myidp.com/saml2/rni" ResponseLocation="https://myidp.com/saml2/rni_return"/>
<md:ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://myidp.com/saml2/rni" ResponseLocation="https://myidp.com/saml2/rni_return"/>
<md:ManageNameIDService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://myidp.com/saml2/soap"/>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://myidp.com/saml2/sso"/>
<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://myidp.com/saml2/sso"/>
<md:NameIDMappingService Binding="urn:oasis:names:tc:SAML:2.0:bindings:SOAP" Location="https://myidp.com/saml2/soap"/>

LogoutRequest アサーションは私には良さそうに見えますが、ピケットリンクは (メタデータで示されているように) /slo を使用する代わりに /sso エンドポイントに送信します。idp がその LogoutRequest を受信すると、ブラウザを SP アプリケーションにリダイレクトすることさえしません。

アサーションには実際には正しい送信先がありますが、前述のとおり、ブラウザーは /sso エンドポイントに送信します。

<samlp:LogoutRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                 xmlns="urn:oasis:names:tc:SAML:2.0:assertion"
                 Destination="https://myidp.com/saml2/sso"

これは picketlink のバグですか? エンドポイントが両方のタイプのアサーションで同じである他の IdP サーバーを使用して構成したと言わざるを得ません。そのような場合、SLO は完全に機能しました。

これについてあなたの助けをいただければ幸いです。

ありがとうございました。

4

1 に答える 1