子ページ
  • Full SLO(Single Logout)の設定方法

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

パネル
title/opt/shibboleth-idp/conf/idp.properties の設定

# Configuration of client- and server-side storage plugins
#idp.storage.cleanupInterval = PT10M
idp.storage.htmlLocalStorage = true ← アンコメントして変更

# Set to true to expose more detailed errors in responses to SPs
(省略)

# Track information about SPs logged into
idp.session.trackSPSessions = true ← アンコメントして変更
# Support lookup by SP for SAML logout
idp.session.secondaryServiceIndex = true ← アンコメントして変更
# Length of time to track SP sessions
#idp.session.defaultSPlifetime = PT2H

また、SLOとして必須ではありませんが、以下の箇所を変更することでSLO実行時に画面に表示されるSPの情報がURLからメタデータ由来のページ名に変化します。

パネル
title/opt/shibboleth-idp/conf/idp.properties の変更

# Whether to lookup metadata, etc. for every SP involved in a logout
# for use by user interface logic; adds overhead so off by default.
idp.logout.elaboration = true ← アンコメントして変更

パネル
titleidp.logout.elaboration の影響
Section
Column
idp.logout.elaboration=false の場合
Image Added
Column
idp.logout.elaboration=true の場合
Image Added

SPの設定

shibboleth2.xmlの設定

SPでのログアウトをトリガーとしてSLOを駆動するためには、shibboleth2.xmlのSessions要素内のLogout要素に以下のように"SAML2"が設定されている必要があります。デフォルト設定ですので、変更していない場合は追加設定は不要ですが、"SAML2"の部分が削除されている場合は追加してください。

...

また、他のSPからログアウトするためには、そのSP側で、前述したSPのメタデータへの<SingleLogoutService>の追加が実施されている必要があります。

パネル
https://SPのホスト名/Shibboleth.sso/Logout にアクセス後の画面遷移
Image Added

ログアウト対象となるSPの一覧が表示されますがアクセスしたSPは表示されません。

 

Section
Column
上記画面で Yes を選択、或いは規定の秒数経過後の画面遷移
Image Added

Full SLOに対応しているSPにはImage Addedが表示され、対応していないSPにはImage Addedが表示されます。

Column
上記画面で No を選択後の画面遷移
Image Added

アクセスしたSP及びIdPからはログアウトされますが他のSPからはログアウトされません。

 

https://SPのホスト名/Shibboleth.sso/Logout にアクセスした際に他のSPにログインしていない場合の画面遷移
Image Added

 

IdP-initiatedのSLO

ログインしているIdPの次のURLにアクセスすることで、アクセスしたIdP、及びIdPとの間に認証セッションが確立している全てのSPからログアウトします。

...

この操作によりSPからログアウトするためには、SP側で、前述したSPのメタデータへの <SingleLogoutService> の追加が実施されている必要があります。

パネル
https://IdPのホスト名/idp/profile/Logout にアクセス後の画面遷移
Image Added

ログアウト対象となる認証セッションが確立している全てのSPが一覧に表示されます。

 

Section
Column
上記画面で Yes を選択、或いは規定の秒数経過後の画面遷移
Image Added

Full SLOに対応しているSPにはImage Addedが表示され、対応していないSPにはImage Addedが表示されます。

Column
上記画面で No を選択後の画面遷移
Image Added

IdPからはログアウトされますがSPからはログアウトされません。

注意

IdP 3.2.1時点では上記操作実行後Webブラウザが次のエラーメッセージを表示する画面へ遷移し、SPからのログアウトが実施されません。1時点では上記操作実行後Webブラウザが次のようなエラーメッセージを表示する画面へ遷移し、SPからのログアウトが実施されません。(IdPからはログアウトされています)

本件はIdP 3.3.0リリースで修正される予定です。

参考: IDP-892IDP-956

--

Web Login Service - Uncaught Exception

A software error was encountered that prevents normal operation:

java.lang.IllegalStateException: Exception occurred rendering view org.springframework.web.servlet.view.velocity.VelocityView: name 'logout'; URL [logout.vm]

Please report this problem to your Help Desk or administrative staff. It has also been logged for an administrator to review.

Image Added

注意

SPのSLO対応について、Shibbolethセッションを使ってWebアプリケーションを構成している場合はこの手順で完了ですが、Webアプリケーションで独自のセッションを管理している場合、Shibbolethセッションと連動させるためにいくつかの改修が必要です。

  1. アプリケーションセッション中でもShibbolethセッションがなくなっていればセッションを終了させる。
  2. Webアプリケーションにおけるログアウトのタイミングで/Shibboleth.sso/Logoutを呼ぶ。
    参考: GakuNinShare - 設定・運用・カスタマイズ - WebアプリケーションのログアウトフローへのShibbolethログアウト処理の挿入
  3. (SLOの通知を受けセッションを破棄する)
    参考: https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPNotify
    ※これがなくても次回アクセス時に1.の処理でセッションは破棄されるはずです。厳密なセッション管理を行うなら。

参考: https://wiki.shibboleth.net/confluence/display/SHIB2/SLOWebappAdaptation

...