5.2.5 ユーザ認証の有効期間と認証状態の引き継ぎ
JAASでのユーザ認証の有効期限は,loginメソッドの成功からlogoutメソッドを呼び出すまでです。
J2EEのWebアプリケーションでは,ユーザとの仮想的なセッションをHttpSessionオブジェクトでコントロールします。複数のHTTPプロトコルの通信を一連のセッションとして扱う場合は,WebアプリケーションでCookieまたはURL書き換えなどでHttpSessionオブジェクトと要求ユーザの結び付けをするようにコーディングします。
統合ユーザ管理フレームワークでは,ユーザ認証に成功した状態をHttpSessionオブジェクトで記憶しています。同一HttpSessionオブジェクトを利用した要求で,かつ同一レルムの場合に限り,2回目以降のログインでは,自動的に最初のログインで指定されたユーザの認証情報(ユーザID/パスワード)を使用して認証状態の引き継ぎをするため,エンドユーザからの認証情報の入力を省略できます。
ただし,次の表に示す順序でログインモジュールが使用された場合,エンドユーザから認証情報の入力を省略する機能は働きません。それぞれのログインモジュールの機能については,「5.3 標準ログインモジュールによるユーザ認証の仕組み」を参照してください。
使用順序 |
使用するログインモジュール |
---|---|
1回目のログイン |
|
2回目以降のログイン |
|
また,次の表に示す順序でログインモジュールを使用する場合,WebPasswordLDAPLoginModuleによる2回目以降のログインで認証情報の入力を省略するためには,最初のログインで使用するログインモジュールでパスワードを統合ユーザ管理のセッションに保持する必要があります。さらに,WebPasswordLDAPLoginModuleでの2回目以降のログインに使用するパスワードが最初のログインで保持したパスワードと同じでなければなりません。パスワードを保持するかどうか,および保持する場合に暗号化をするかどうかは,jaas.conf(JAASのコンフィグレーションファイル)およびua.conf(統合ユーザ管理のコンフィグレーションファイル)で指定できます。jaas.conf(JAASのコンフィグレーションファイル)の指定方法については,「14.2.1 jaas.conf(JAASのコンフィグレーションファイル)」を参照してください。ua.conf(統合ユーザ管理のコンフィグレーションファイル)の指定方法については,「14.2.2 ua.conf(統合ユーザ管理のコンフィグレーションファイル)」を参照してください。
使用順序 |
使用するログインモジュール |
---|---|
1回目のログイン |
|
2回目以降のログイン |
|
保持するパスワードを暗号化しない場合,J2EEサーバが使用するメモリの内容を何らかの方法で参照されるとパスワードが漏洩する可能性があります。また,セッションフェイルオーバ機能を使用する場合,パスワードを含むセッション情報がネットワークを流れるため,パスワードが盗聴されるおそれがあります。暗号化をすることで,パスワードが漏洩するおそれは少なくなりますが,性能は劣化します。暗号化をするかどうかは,必要とするセキュリティや性能に応じて決定してください。なお,暗号化する場合,暗号アルゴリズムにはトリプルDESが使用されます。