4.11.4 アプリケーションでユーザを認証する
ここでは,Webクライアント構成の場合に,セキュリティ確保のためにアプリケーションで利用できる認証機能について説明します。
(1) アプリケーションでユーザを認証する目的
アプリケーションを実行するユーザを認証することで,セキュリティ上の脅威のうち,システム利用者によって,許可した権限の範囲を超えて操作されたり情報を入手されたりすることを防げます。
アプリケーションサーバでは,次の3種類のプロトコルを使用してユーザ認証によるセキュリティ確保ができます。
-
HTTPS(クライアント認証)
-
HTTP(Basic認証)
-
HTTP(Form認証)
これらのプロトコルを目的に応じて使い分けて,セキュリティを確保してください。
(2) アプリケーションによるユーザ認証方法の比較
通信プロトコルごとの,認証実施個所および認証に使用されるエンジンについて,次の表に示します。
使用するプロトコル |
認証実施個所 |
認証に使用されるエンジン |
---|---|---|
HTTPS(クライアント認証) |
HTTP ServerまたはMicrosoft IIS |
SSL |
SSLアクセラレータ |
SSL |
|
HTTP(Basic認証) |
HTTP Server |
HWSパスワードファイル |
LDAPリポジトリ |
||
J2EEサーバ(Webコンテナ) |
パスワードファイル |
|
HTTP(Form認証) |
J2EEサーバ(Webコンテナ) |
パスワードファイル |
J2EEサーバ(統合ユーザ管理) |
統合ユーザ管理パスワードファイル |
|
データベース |
||
LDAPリポジトリ |
それぞれのプロトコルおよび認証に使用されるエンジンには特徴があります。それらの特徴を考慮して,システムの目的に合った認証方法を選択してください。
(a) プロトコルの特徴
アプリケーションサーバのシステムの認証処理に使用できるプロトコルの特徴について,次の表に示します。
使用するプロトコル |
認証インタフェースの自由度 |
クライアントでの管理の容易さ |
ネットワークの安全性 |
---|---|---|---|
HTTPS (クライアント認証) |
Webブラウザが提供する機能に制約されます。 |
クライアント証明書が必要です。 |
暗号化されているため,盗聴されても認証情報は安全です。 |
HTTP (Basic認証) |
Webブラウザが提供する機能に制約されます。 |
一般的なユーザ名称/パスワード形式を使用した認証ができます。 |
パスワードが平文またはそれと同等の形式で流出します。 このため,通常は,HTTPS(サーバ認証だけ)の暗号機能と併用して使用します。 |
HTTP (Form認証) |
アプリケーションごとにデザインできます。 |
一般的なユーザ名称/パスワード形式を使用した認証ができます。 |
パスワードが平文またはそれと同等の形式で流出します。 このため,通常は,HTTPS(サーバ認証だけ)の暗号機能と併用して使用します。 |
(b) 認証に使用されるエンジンの特徴
認証に使用されるエンジンの特徴について,次の表に示します。
エンジンの種類 |
汎用性 |
保守性 |
システム構成への影響 |
性能影響への影響 |
---|---|---|---|---|
パスワードファイル |
使用する機能ごとに形式が異なります。 |
サーバまたはホストごとにユーザ情報が散在します。 |
特に認証用のプロセスは必要ありません。 |
認証時にほかのプロセスやホストとの通信が発生しないため,高速です。 |
データベース |
形式によっては,既存のユーザ情報データベースを利用できます。 |
ユーザ情報の一括管理ができます。 |
ユーザ情報を格納するデータベースサーバが必要です。 |
認証時にデータベースアクセスに必要な時間が掛かります。 |
LDAPリポジトリ |
形式によっては,既存のユーザ情報リポジトリを利用できます。 |
ユーザ情報の一括管理,および分散したユーザ情報の集中管理ができます。 |
ユーザ情報を格納するLDAP対応のディレクトリサーバが必要です。 |
認証時にLDAPディレクトリサーバへのアクセスに必要な時間が掛かります。 |