Sun Java System Message Queue 4.1 リリースノート

JAAS 準拠の認証の設定

JAAS 準拠の認証の設定には、ブローカおよびシステムプロパティーを設定して、このタイプの認証を選択し、設定ファイルの場所を指定し、使用するログインモジュールのエントリを指定することが関係します。

この節では、JAAS クライアント、ログインモジュール、および JAAS 設定ファイルの関係を図で示し、次に JAAS 準拠の認証の設定に必要なプロセスについて説明します。次の図に、設定ファイル、ログインモジュール、およびブローカの関係を示します。

図 1–3 JAAS サポートの設定

この図は、JAAS 関連のファイル間の関係を示しています。図に伴うテキストは、その図の内容を説明しています。

図に示すように、JAAS 設定ファイル MyJAASCFile.config には、エントリポイントにグループ化されたいくつかのログインモジュールへの参照が含まれています。ブローカは、Java システムプロパティー java.security.auth.login.config または Java セキュリティープロパティーファイルを参照することで、設定ファイルを検出します。使用するログインモジュールは、ブローカプロパティー imq.user_repository.jaas.name を参照することで決定されます。このブローカプロパティーは、設定ファイル内の目的のエントリを指定します。これらのモジュールのためのクラスは、lib/ext ディレクトリにあります。

Message Queue 用の JAAS サポートを設定するには、次の手順を完了する必要があります。(開発環境では、これらの手順はすべて開発者が実行する場合があります。本稼働環境では、管理者がこれらのタスクの一部を引き継ぐことになります。)

  1. 認証サービスを実装する 1 つ以上のログインモジュールクラスを作成します。ブローカがサポートする JAAS コールバックのタイプを下に一覧表示します。

    javax.security.auth.callback.LanguageCallback

    ブローカはこのコールバックを使用して、ブローカが動作しているロケールを認証サービスに渡します。この値は、ローカリゼーションに使用できます。

    javax.security.auth.callback.NameCallback

    ブローカはこのコールバックを使用して、接続の要求時に Message Queue クライアントによって指定されたユーザー名を認証サービスに渡します。

    javax.security.auth.callback.TextInputCallback

    ブローカはこのコールバックを使用して、TextInputCallback.getPrompt()imq.authentication.type のときに、imq.authentication.type の値を認証サービスに指定します。現在、このフィールドで唯一可能な値は basic です。これは Base-64 パスワードエンコーディングを示しています。

    javax.security.auth.callback.PasswordCallback

    ブローカはこのコールバックを使用して、接続の要求時に Message Queue クライアントによって指定されたパスワードを認証サービスに渡します。

    javax.security.auth.callback.TextOutputCallback

    ブローカはこのコールバックを使用して、テキスト出力をブローカのログファイルに記録することで、認証サービスにログサービスを提供します。コールバックの MessageType ERRORINFORMATIONWARNING はそれぞれ、ブローカログレベル ERRORINFO、および WARNING にマップされます。

  2. ログインモジュールクラスを参照するエントリを持つ JAAS 設定ファイルを作成し、このファイルの場所を Message Queue 管理者に指定します。(このファイルはリモートから検出でき、その場所を URL で指定できます。)

  3. JAAS 設定ファイル内のエントリ (ログイン実装クラスを参照する) の名前を書き留めます。

  4. ログインモジュールを実装するクラスを jar ファイルに保存し、その jar ファイルを Message Queue の lib/ext ディレクトリに配置します。

  5. JAAS サポートに関連したブローカプロパティーを設定します。この点については、表 1–2 で説明しています。

  6. 次のシステムプロパティーを設定して、JAAS 設定ファイルの場所を指定します。

    java.security.auth.login.config= JAAS_Config_File_Location

    たとえば、ブローカを起動するときに設定ファイルを指定できます。

    imqbrokerd -Djava.security.auth.login.config=JAAS_Config_File_Location

    JAAS 設定ファイルの場所を指定する方法はほかにもあります。追加の情報については、次を参照してください。

    http://java.sun.com/j2se/1.5.0/docs/guide/security/jaas/tutorials/LoginConfigFile.html

次の表に、JAAS サポートの設定に必要なブローカプロパティーの一覧を示します。

表 1–2 JAAS サポートのためのブローカプロパティー

プロパティー 

説明 

imq.authentication.type

basic に設定して、Base-64 パスワードエンコーディングを指定します。これは、JAAS 認証用に許可される唯一の値です。

imq.authentication.basic.user_repository

jaas に設定して、JAAS 認証を指定します。

imq.accesscontrol.type

file に設定します。

imq.user_repository.jaas.name

認証機構として使用するログインモジュールを参照する目的のエントリ (JAAS 設定ファイル内) の名前に設定します。これは、手順 3 で書き留めた名前です。

imq.user_repository.jaas.userPrincipalClass

Message Queue のアクセス制御で使用されるこのプロパティーは、Message Queue のアクセス制御ファイルでユーザーエンティティーを表現する主体名の抽出にブローカが使用するログインモジュールで java.security.Principal 実装クラスを指定します。このプロパティーが指定されていない場合は、接続の要求をしたときに Message Queue クライアントから渡されたユーザー名が代わりに使用されます。

imq.user_repository.jaas.groupPrincipalClass

Message Queue のアクセス制御で使用されるこのプロパティーは、Message Queue のアクセス制御ファイルでグループエンティティーを表現する主体名の抽出にブローカが使用するログインモジュールで java.security.Principal 実装クラスを指定します。このプロパティーが指定されていない場合は、Message Queue のアクセス制御ファイル内のグループ規則 (存在する場合) は無視されます。