このページの古いバージョンを表示しています。現在のバージョンを表示します。

現在のバージョンとの相違点 ページ履歴を表示

« 前のバージョン バージョン 18 現在のバージョン »

ログアウト処理は,ローカルログアウトとグローバルログアウトに大別できます.前者は,SPのセッションを削除するもので,IdPや他のSPのログアウトとは連動しません.後者は,IdPとしてもログアウト処理を施し,全てのSPからログアウトする,すなわち,シングルログアウト(Single Logout : SLO)を意味します.

ここでは,ローカルログアウトの設定方法について説明します(現在シボレスでは,IdP側においてグローバルログアウト機能が提供されていません)
※Shibboleth IdPバージョン3.2で、グローバルログアウトの機能が提供されるようになりました。学認でいますぐに使っていただける状況ではありませんが、IdP側とのネゴシエーションにより個々のIdP-SPの組み合わせで機能させることは可能です。詳細はお問い合わせください。また、本ページ末尾の参考ドキュメントもご参照ください。
※Shibboleth IdPバージョン2.4には、SLOの一部(前半部分、つまりSPのログアウトをトリガーとしてIdPのほうでもログアウトする)のための機能が追加されました。



アプリケーション側の設定

ログアウトボタンが押され,アプリケーション側のログアウト処理を終えた後に,/Shibboleth.sso/Logoutにリダイレクトし,SP のLogoutInitiatorを動作させます.returnパラメータを設定することで,ログアウト後のリダイレクト先を指定できます.

なお、returnパラメータについてデフォルトでは制限がかかっておりませんので、以下の手順を参考に制限することをお勧めします。
GakuNinShare - 設定・運用・カスタマイズ - オープンリダイレクタとなりうる問題の対処

例:



shibboleth2.xmlの設定

下記のようにtype=”SAML2”のLogoutInitiatorをコメントアウトすることで,IdP側で対応していないグローバルログアウトを実行させない設定にします.type=”Local”がローカルログアウトのための処理を実行し,当該SPに関するログインセッションを削除します.アプリケーション側で,/Shibboleth.sso/Logoutへのリダイレクト時にreturnパラメータが設定されていない場合は,localLogout.htmlが表示されます.

            <!-- SAML and local-only logout. -->
            <!--
             <Logout>SAML2 Local</Logout>
            -->
             <Logout>Local</Logout>
             <!-- LogoutInitiators enable SP-initiated local or global/single logout of sessions. -->
            <LogoutInitiator type="Chaining" Location="/Logout" relayState="cookie">
                <!--  
                <LogoutInitiator type="SAML2" template="bindingTemplate.html"/>
                --> 
                <LogoutInitiator type="Local"/>
            </LogoutInitiator>

 

参考:https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLogoutInitiator
関連するQ&A: [Shib-Users] Questions about the Logout initiator redirect(Shibboleth Usersメーリングリスト内)

グローバルログアウトへの対応:

 

  • ラベルがありません