14.4. Web アプリケーションでの SSO (シングルサインオン) の使用
SSO の設定はバルブと呼ばれます。アプリケーションが SSO バルブを使用するよう設定するには、設定をアプリケーションの WEB-INF/jboss-web.xml
または META-INF/jboss-web.xml
に追加します。バルブは、サーバーグループやスタンドアローンサーバーのレベルに設定されるセキュリティードメインと関連しています。JBoss Enterprise Application Platform は ClusteredSingleSignOn
と SingleSignOn
バルブをサポートします。
前提条件
- 認証と承認を処理するセキュリティードメインが設定されている必要があります。
- SSO 情報を共有する各アプリケーションは、
jboss-web.xml
にある同じ <security-domain> とweb.xml
設定ファイルにある同じレルムを使用するよう設定されている必要があります。
クラスター化された SSO では個別のホスト間で認証を共有できますが、クラスター化されていない SSO では共有できません。どちらの SSO も同じように設定されますが、クラスター化された SSO には永続データのクラスタリングレプリケーションを制御する cacheConfig
や processExpiresInterval
、 maxEmptyLife
パラメーターが含まれています。
例14.1 クラスター化された SSO 設定の例
tomcat
と呼ばれるセキュリティードメインを使用します。
オプション | 説明 |
---|---|
cookieDomain |
SSO クッキーに使用するホストドメインです。デフォルトは
/ です。app1.xyz.com と app2.xyz.com によるクッキーの共有を許可するには、cookieDomain を xyz.com に設定します。
|
maxEmptyLife |
クラスター化された SSO のみ設定可能です。失効する前に、アクティブなセッションを持たない SSO バルブを 1 つのリクエストが使用できる最大秒数。唯一バルブにアクティブなセッションが付加されている場合、正の値を設定するとノードのシャットダウンが適切に処理されるようになります。maxEmptyLife を
0 に設定すると、ローカルセッションがコピーされると同時にバルブが終了しますが、クラスター化されたアプリケーションからのセッションのバックアップコピーは他のクラスターノードが使用できるようになります。バルブの管理セッションの生存期間を越えてバルブが生存できるようにすると、他のリクエストを実行する時間がユーザーに与えられます。このリクエストはセッションのバックアップコピーをアクティベートする他のノードへフェイルオーバーすることができます。デフォルトは 1800 秒 (30 分) です。
|
processExpiresInterval |
クラスター化された SSO のみ設定可能です。
MaxEmptyLife タイムアウトを失効した SSO インスタンスをバルブが発見し無効化する動作の間隔の最初秒数。デフォルトは 60 (1 分) です。
|
requiresReauthentication |
true の場合、各リクエストはキャッシュされた認証情報を使用してセキュリティーレルムへ再認証します。false の場合 (デフォルト)、バルブによる新しい要求の認証には有効な SSO クッキーのみが必要になります。
|
アプリケーションはメソッド javax.servlet.http.HttpSession.invalidate()
を呼び出し、プログラムを用いてセッションを無効化することができます。