JAAS ログイン構成ファイル

JAAS 認証はプラグイン可能な形式で実行されるため、Java アプリケーションは、基盤となる認証技術から独立した状態を維持できます。 適切な認証技術などの構成情報は実行時に指定されます。 構成情報のソース (ファイルやデータベース) は、現在の javax.security.auth.login.Configuration 実装によって異なります。 Sun Microsystems のデフォルトの Configuration 実装は、このドキュメントで説明するように、構成ファイルから構成情報を読み取ります。

ログイン構成ファイルの構造および内容

ログイン構成ファイルは、1 つ以上のエントリで構成されます。各エントリには、特定のアプリケーションで使用する基盤となる認証技術が指定されます。 各エントリの構造を、次に示します。

<name used by application to refer to this entry> {
    <LoginModule> <flag> <LoginModule options>;
    <optional additional LoginModules, flags and options>;
    };

このため、各ログイン構成ファイルのエントリは、名前、次いで 1 つ以上のログインモジュール固有エントリになります。ログインモジュール固有の各エントリはセミコロンで区切られ、ログインモジュール固有エントリグループ全体は中括弧で囲まれます。 各構成ファイルのエントリの最後に、セミコロンを付けます。

たとえば、「JAAS 認証」チュートリアルで使用するログイン構成ファイルには、次のエントリだけが含まれます。

Sample {
   sample.module.SampleLoginModule required debug=true;
};

ここでは、エントリの名前は「Sample」です。この名前を使用して、JAAS 認証チュートリアルアプリケーション (SampleAcn.java) はエントリを参照します。 このエントリは、ユーザ認証に使用するログインモジュールが sample.module パッケージ内の SampleLoginModule であること、認証が成功したと見なされるためにはこの SampleLoginModule が「成功する」必要があることを示します。 SampleLoginModule は、ユーザから提供された名前とパスワードが正しい (testUser と testPassword である) 場合にかぎり成功します。

JAAS 認証チュートリアルの「LoginContext のインスタンス化」で説明したように、ログイン構成ファイルのエントリの名前は、LoginContext のインスタンス化時にアプリケーションがエントリの参照に使用する名前です。 アプリケーション開発者は、任意の名前を設定できます。 ここで、「アプリケーション」とは、JAAS ログインを実行するあらゆるコードを指します。

指定されたログインモジュール (後述) は、認証プロセスの制御に使用されます。 認証は、リスト内で指定された順番に正確に従って行われます。詳細は、ここを参照してください。

各ログインモジュール固有のエントリサブパートを、次に示します。

使用するログイン構成ファイルの位置指定

使用する構成ファイルは、次の 2 つのいずれかの方法で指定できます。

  1. コマンド行

    インタープリタのコマンド行引数 -Djava.security.auth.login.config を使用して、使用するログイン構成ファイルを指定できます。 この方法は、すべてのチュートリアルで使用されます。 たとえば、JAAS 認証チュートリアルでは、SampleAcn アプリケーションの実行に次のコマンドを使用します。このコマンドは、構成ファイルが現行のディレクトリの sample_jaas.config ファイルであることを指定します。

    java -Djava.security.auth.login.config==sample_jaas.config sample.SampleAcn
    
  2. Java セキュリティのプロパティファイル

    ログイン構成ファイルの位置を指定する別の方法は、セキュリティプロパティファイルの login.config.url.n プロパティ値に URL を指定することです。 セキュリティプロパティファイルは、J2RE の lib/security 内の java.security ファイルです。

    ここで、n は 1 から始まる整数の連番です。このため、必要に応じて複数のログイン構成ファイルを指定できます。この場合、login.config.url.1 プロパティに最初のファイルの URL を、login.config.url.2 プロパティに 2 番目のファイルの URL を設定します。 複数の構成ファイルを指定する (つまり n > 1 の) 場合、ファイルは読み取られて 1 つに連結されます。

    ここで、このチュートリアルで使用する sample_jaas.config ログイン構成ファイルを指定するために、セキュリティプロパティファイルに追加する必要のある項目の例を示します。 この例は、ファイルが、Win32 システムの C:¥AcnTest ディレクトリにあると仮定しています。

    login.config.url.1=file:C:/AcnTest/sample_jaas.config
    
    URL には、ユーザの実行するオペレーティングシステムに関係なく、常にスラッシュを使用します。