第14章 シングルサインオン (SSO)

14.1. Web アプリケーションのシングルサインオン (SSO) について

概要

Single Sign On (SSO) allows authentication to one resource to implicitly authorize access to other resources.

クラスター化された SSO とクラスター化されていない SSO

クラスター化されていない SSO は、同じ仮想ホスト上でアプリケーションの承認情報を共有することを制限します。また、ホストの障害に対する耐性を持ちません。クラスター化された SSO データは複数の仮想ホストのアプリケーション間で共有することができ、フェイルオーバーに対する耐性を持ちます。さらに、クラスター化された SSO はロードバランサーからのリクエストを受信することができます。

SSO の仕組み

リソースが保護されていない場合、ユーザーの認証は完全に無視されます。ユーザーが保護されたリソースにアクセスすると、ユーザーの認証が必要になります。

認証に成功すると、ユーザーに関連するロールが保存され、関連する他のリソースすべての承認に使用されます。
ユーザーがアプリケーションからログアウトしたり、アプリケーションがプログラムを用いてセッションを無効化した場合、永続化された承認データはすべて削除され、プロセスを最初からやり直しします。
他のセッションが有効である場合、セッションタイムアウトは SSO セッションを無効化しません。

SSO の制限

サードパーティー境界にまたがる伝搬がない
JBoss Enterprise Application Platform のコンテナ内にデプロイされたアプリケーションの間でのみ SSO を使用できます。
コンテナ管理の認証のみ使用可能
アプリケーションの web.xml<login-config> などのコンテナ管理認証要素を使用しなければなりません。
クッキーが必要
ブラウザークッキーを介して維持される SSO や URL の再書き込みはサポートされていません。
レルムとセキュリティードメインの制限
requireReauthentication パラメーターが true に設定されている場合を除き、同じ SSO バルブに設定されたすべての Web アプリケーションは、web.xml の同じレルム設定と同じセキュリティードメインを共有しなければなりません。
関与する Web アプリケーションの 1 つに対し、Host 要素内または Engine 要素周囲で Realm 要素をネストできますが、context.xml 要素内で Realm 要素はネストできません。
jboss-web.xml に設定された <security-domain> はすべての Web アプリケーション全体で一貫していなければなりません。
すべてのセキュリティー統合が同じ認証情報 (ユーザー名やパスワードなど) を許可しなければなりません。