ログアウト処理は,ローカルログアウトとグローバルログアウトに大別できます.前者は,SPのセッションを削除するもので,IdPや他のSPのログ アウトとは連動しません.後者は,IdPとしてもログアウト処理を施し,全てのSPからログアウトする,すなわち,シングルログアウト(Single Log Out : SLO)を意味します.
ここでは,ローカルログアウトの設定方法について説明します(現在シボレスでは,IdP側においてグローバルログアウト機能が提供されていません).
※Shibboleth IdPバージョン2.4ではSLOの一部(前半部分、つまりSPのログアウトをトリガーとしてIdPのほうでもログアウトする)のための機能が追加される予定です。Stay tuned.
アプリケーション側の設定
ログアウトボタンが押され,アプリケーション側のログアウト処理を終えた後に,Shibboleth.sso/Logoutにリダイレクトし,SP のLogoutInitiatorを動作させます.returnパラメータを設定することで,ログアウト後のリダイレクト先を指定できます.
shibboleth2.xmlの設定
下記のようにtype=”SAML2”のLogoutInitiatorをコメントアウトすることで,IdP側で対応していないグローバルログアウ トを実行させない設定にします.type=”Local”がローカルログアウトのための処理を実行し,当該SPに関するログインセッションを削除します. アプリケーション側で,Shibboleth.sso/Logoutへのリダイレクト時にreturnパラメータが設定されていない場合 は,localLogout.htmlが表示されます.
参考:https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPLogoutInitiator
関連するQ&A:https://lists.internet2.edu/sympa/arc/shibboleth-users/2011-01/msg00155.html(shibboleth-usersメーリングリスト内)