「認証レルム」は、セキュリティーポリシードメインまたはセキュリティードメインとも呼ばれ、Enterprise Server によって共通のセキュリティーポリシーが定義および適用される範囲を表します。Enterprise Server は、ファイル、証明書、および管理のレルムで事前設定されます。これらに加え、LDAP、JDBC、ダイジェスト、Solaris、またはカスタムのレルムを設定できます。アプリケーションは使用するレルムを配備記述子で指定できます。アプリケーションでレルムが指定されていない場合、Enterprise Server はデフォルトのレルム (file) を使用します。
Enterprise Server は、ユーザー資格を keyfile という名前のファイルにローカルに格納します。ファイルレルムは、初期状態のデフォルトレルムです。
管理レルムはファイルレルムでもあり、管理者のユーザー資格を admin-keyfile という名前のファイルにローカルに格納します。
Enterprise Server はユーザー資格を証明書データベースに格納します。証明書レルムを使用する場合、サーバーは HTTPS プロトコルで証明書を使用して Web クライアントを認証します。
Enterprise Server は、ユーザー資格を DirectoryServer などの LDAP (Lightweight Directory Access Protocol) サーバーから取得します。LDAP とは、一般のインターネットまたは会社のイントラネットのどちらであっても、ネットワークでの組織、個人、およびファイルやデバイスなどその他のリソースの検出をだれにでもできるようにするプロトコルです。LDAP レルムのユーザーとグループの管理については、LDAP サーバーのドキュメントを参照してください。
Enterprise Server はユーザー資格をデータベースから取得します。サーバーは、データベース情報と構成ファイル内の有効な JDBC レルムオプションを使用します。
ダイジェスト認証は、ユーザー名とパスワードに基づいてユーザーを認証します。ただし、認証はパスワードを暗号化された形式で送信することで実行されます。
Enterprise Server はユーザー資格を Solaris オペレーティングシステムから取得します。このレルムは、Solaris 9 および Solaris 10 オペレーティングシステムでサポートされます。Solaris レルムのユーザーおよびグループの管理については、Solaris のドキュメントを参照してください。
リレーショナルデータベースや他社のコンポーネントなど、その他のリポジトリを作成してユーザー資格に使用できます。カスタムレルムの詳細は、管理コンソール のオンラインヘルプを参照してください。カスタムレルムを作成する手順については、『Sun GlassFish Enterprise Server v3 Application Development Guide』の「Creating a Custom Realm」を参照してください。
Enterprise Server の認証サービスは、複数のレルムでユーザーを管理できます。
次のタスクと情報を使用して、認証レルムを管理します。
認証レルムを作成するには、リモートモードで create-auth-realm サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
create-auth-realm(1) サブコマンドを使用して、レルムを作成します。
このサブコマンドのプロパティーについては、このマニュアルページに記載されています。
この例では、db という名前のレルムを作成します。
asadmin> create-auth-realm --classname com.iplanet.ias.security. auth.realm.DB.Database --property defaultuser=admin:Password=admin db Command create-auth-realm executed successfully. |
コマンド行に asadmin help create-auth-realm と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
カスタムレルムの作成については、『Sun GlassFish Enterprise Server v3 Application Development Guide』の「Creating a Custom Realm」を参照してください。
既存の認証レルムを一覧表示するには、リモートモードで list-auth-realms サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-auth-realms(1) サブコマンドを使用して、レルムを一覧表示します。
この例では、localhost 上の認証レルムを一覧表示します。
asadmin> list-auth-realms db certificate file admin-realm Command list-auth-realms executed successfully. |
コマンド行に asadmin help list-auth-realms と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
set サブコマンドを使用して、既存の認証レルムを変更します。
カスタムレルムでは、サーバーの再起動は必要ありません。
list-auth-realms(1) サブコマンドを使用して、レルムを一覧表示します。
set(1) サブコマンドを使用して、指定したスレッドプールの値を変更します。
スレッドプールはドット表記名で識別されます。
変更内容を適用するために、Enterprise Server を再起動します。
「ドメインの再起動」を参照してください。
既存の認証レルムを削除するには、リモートモードで delete-auth-realm サブコマンドを使用します。
サーバーが実行されていることを確認します。
リモートサブコマンドには、実行中のサーバーが必要です。
list-auth-realms(1) サブコマンドを使用して、レルムを一覧表示します。
必要に応じて、レルムを削除することをユーザーに通知します。
delete-auth-realm(1) サブコマンドを使用して、レルムを削除します。
変更内容を適用するために、Enterprise Server を再起動します。「ドメインの再起動」を参照してください。
この例では、db という名前の認証レルムを削除します。
asadmin> delete-auth-realm db Command delete-auth-realm executed successfully. |
コマンド行に asadmin help delete-auth-realm と入力して、このサブコマンドの完全な構文とオプションを確認することもできます。
Enterprise Server では、接続プールの代わりに JDBC レルムにユーザー資格 (ユーザー名とパスワード) を指定できます。接続プールの代わりに jdbc タイプのレルムを使用すると、ほかのアプリケーションがユーザー資格のデータベース表を参照するのを防止できます。
JDBC レルムでは、デフォルトでは平文によるパスワードの保存はサポートされません。通常の状況では、パスワードを平文で保存しないでください。
レルムのユーザー資格を格納するデータベース表を作成します。
データベース表の作成方法は、使用しているデータベースによって異なります。
作成したデータベース表にユーザー資格を追加します。
データベース表にユーザー資格を追加する方法は、使用しているデータベースによって異なります。
データベースの JDBC 接続プールを作成します。
「JDBC 接続プールを作成する」を参照してください。
データベースの JDBC リソースを作成します。
レルムを作成します。
手順については、「認証レルムを作成する」を参照してください。
JAAS コンテキストは、ダイジェスト認証では jdbcDigestRealm に、その他の認証タイプでは jdbcRealm になります。
配備記述子を変更して、jdbc レルムを指定します。
アプリケーションに関連付けられている配備記述子を変更します。
Enterprise Archive (EAR) ファイルのエンタープライズアプリケーションの場合は、sun-application.xml ファイルを変更します。
Web Application Archive (WAR) ファイルの Web アプリケーションの場合は、web.xml ファイルを変更します。
EJB JAR ファイルのエンタープライズ Bean の場合は、sun-ejb-jar.xml ファイルを変更します。
レルムの指定方法については、『Sun GlassFish Enterprise Server v3 Application Development Guide』の「How to Configure a Realm」を参照してください。
レルム内のユーザーにセキュリティーロールを割り当てます。
ユーザーにセキュリティーロールを割り当てるには、変更した配備記述子に security-role-mapping 要素を追加します。
データベースが動作していることを確認します。
必要に応じて、「データベースを起動する」を参照してください。
認証を適用するには、サーバーを再起動します。
「ドメインの再起動」を参照してください。
この例では、セキュリティーロール Employee をユーザー Calvin に割り当てる security-role-mapping 要素を示します。
<security-role-mapping> <role-name>Employee</role-name> <principal-name>Calvin</principal-name> </security-role-mapping>