Java EE ベースのセキュリティーモデルは、ユーザーを識別および認証するセキュリティーレルムをサポートします。
認証プロセスは、Java レルムによってユーザーを確認します。レルムは、ユーザーのセット、オプションのグループマッピング、および認証要求を検証できる認証ロジックで構成されます。構成されたレルムと確立されたセキュリティーコンテキストによって認証要求が検証されたあと、このアイデンティティーが以降のすべての認証決定に適用されます。
Java レルムは auth-db (認証データベース) に似ていますが、auth-db が ACL エンジンによって (ACL ファイル内の規則に基づいて) 使用されるのに対し、Java レルムは (各 Web アプリケーションの web.xml ファイル内に指定された) Java サーブレットアクセス制御規則によって使用される、という点が異なります。
サーバーインスタンスは任意の数の構成済みレルムを持つことができます。構成情報は、server.xml ファイルの auth-realm 要素内に存在します。
次の表では、 Web Server 7.0 でサポートされているさまざまなタイプのレルムを定義します.
表 11–8 レルムのタイプ
レルム |
説明 |
---|---|
ファイル |
file レルムは、Sun Java System Web Server を初めてインストールしたときのデフォルトのレルムです。このレルムは設定が簡単かつ単純であり、開発者に多大な利便性を提供します。 file レルムは、テキストファイルに格納されたユーザーデータに基づいて、ユーザーを認証します。Java レルムは auth-db (認証データベース) に似ていますが、auth-db が ACL エンジンによって (ACL ファイル内の規則に基づいて) 使用されるのに対し、Java レルムは (各 Web アプリケーションの web.xml 内に指定された) Java サーブレットアクセス制御規則によって使用される、という点が異なります。 |
LDAP |
ldap レルムを使えば、LDAP データベースをユーザーのセキュリティー情報用として使用できます。LDAP ディレクトリサービスは、一意の識別子を持つ属性のコレクションです。ldap レルムは、本稼働システムへの配備に最適です。 ldap レルムに基づいてユーザーを認証するには、1 人以上の必要なユーザーを LDAP ディレクトリに作成する必要があります。これは、管理サーバーの「ユーザー」および「グループ」タブから行えます。このアクションは、LDAP ディレクトリ製品のユーザー管理コンソールからも行えます。 |
PAM |
PAM レルム (Solaris レルムとも呼ばれる) は、Solaris PAM スタックに認証を委任します。このレルムは PAM auth-db の場合と同じく Solaris 9 と 10 でしかサポートされておらず、また、サーバーインスタンスを root で実行する必要があります。 |
証明書 |
certificate レルムは、SSL 認証をサポートしています。証明書レルムは、Sun Java System Web Server のセキュリティーコンテキスト内にユーザーのアイデンティティーを設定し、クライアント証明書に含まれるユーザーデータをそのアイデンティティーに設定します。その後、Java EE コンテナが、証明書に含まれる各ユーザーの DN に基づいて承認処理を行います。このレルムは、X.509 証明書による SSL または TLS クライアント認証を使って、ユーザーの認証を行います。 |
ネイティブ |
native レルムは、ACL ベースのコア認証モデルと Java EE/サーブレット認証モデルを連結する役割を果たす、特殊なレルムです。Java Web アプリケーションでネイティブレルムを使用すれば、Java Web コンテナに認証を実行させる代わりに ACL サブシステムに認証を実行させながらも、Java Web アプリケーションからそのアイデンティティーを利用できるようにする、といったことが可能になります。 認証処理が呼び出されると、ネイティブレルムはその認証をコア認証サブシステムに委任します。これは、ユーザーの立場から見れば、LDAP レルムが構成済み LDAP サーバーに認証を委任するのと、本質的には同じことです。グループメンバーシップクエリーがネイティブレルムによって処理される場合、その処理もコア認証サブシステムに委任されます。Java Web モジュールや開発者の立場から見れば、ネイティブレルムは、Web モジュールで利用可能なほかの Java レルムと何の違いもありません。 |
カスタム |
ユーザー固有の要求に対応するため、プラグイン可能な JAAS ログインモジュールとレルム実装を使用することで、Oracle など、その他のデータベース用のレルムを構築することができます。 |
次の節では、新しい認証レルムを追加する場合の手順について説明します。
構成を選択します。
新しい認証レルムを追加する必要のある構成を選択します。「構成」タブをクリックし、構成を選択します。
「Java」>「認証」タブをクリックします。
「新規」ボタンをクリックします。
レルムの詳細を入力します。
名前 — レルムの簡易名を入力します。この名前は、web.xml などからこのレルムを参照する場合に使用されます。
クラス — カスタムレルムを構成する場合に、そのカスタムレルムを実装する完全な Java クラス名を入力します。組み込みレルムの場合、クラスを入力する必要はありません。
タイプ — レルムのタイプを選択します。Java レルムのタイプについて説明した前の節を参照してください。
プロパティー — レルム固有のプロパティーを追加します。例: property name="file" value="instance_dir/config/keyfile" and property name="jaas-context" value="fileRealm。
CLI の使用
CLI 経由で認証レルムを追加するには、次のコマンドを実行します。
wadm> create-auth-realm --user=admin --password-file=admin.pwd --host=serverhost --port=8989 --config=config1 basic |
CLI リファレンスの create-auth-realm(1) を参照してください。
組み込み認証レルムのタイプ名を指定します。タイプは file、ldap、pam、native、certificate のいずれかです。