このチュートリアルで開発するクライアントおよびサーバアプリケーションでは、認証と安全な通信の両方の分野で Kerberos Version 5 を使用します。このため、このドキュメントは、Kerberos に習熟している読者を対象としています。詳細は、Kerberos のドキュメントを参照してください。
Java GSS-API メソッドに必要な JAAS フレームワークおよび Kerberos 機構は、すべてのベンダーが提供する JRE バージョン 4 に組み込まれています。実際には、バージョン 1.3 から、別個にダウンロード可能なオプションパッケージとして JAAS を利用できます。ベンダーの提供する JRE の中には、このチュートリアルの JAAS 認証に必要な Kerberos ログインモジュールを使用できないものもある可能性があります。ここでは、Sun Microsystems の提供する JRE (J2RE v 1.4) に含まれる Kerberos 用 ログインモジュールを使用します。
サンプルプログラムを実行するには、インストールされた Kerberos にアクセスする必要があります。続くセクションで説明するように、Kerberos 構成ファイル
krb5.conf
、およびこのファイルの格納先に関する記述も必要です。すべての Kerberos インストールで、Kerberos Key Distribution Center (KDC) が必要です。これには、Kerberos への認証に使用するユーザ名およびパスワードを含める必要があります。注: KDC 実装は、J2RE, v 1.4 ではなく Kerberos インストールの一部です。
大半の Kerberos インストールで、デフォルト領域および KDC などの確認に、Kerberos 構成ファイル
krb5.conf
が参照されます。krb5.conf
ファイルを含まない、Microsoft の提供する Windows 2000 用 Kerberos などを使用している場合、このファイルを作成するか、「デフォルト領域および KDC を表すプロパティの設定」で説明するシステムプロパティを使用する必要があります。デフォルト領域および KDC を表すプロパティの設定
一般に、デフォルト領域およびその領域の KDC は、Kerberos 構成ファイル
krb5.conf
に指定されます。ただし、以下に示すシステムプロパティに領域および KDC を設定することにより、これらの値を指定することも可能です。java.security.krb5.realm java.security.krb5.kdcプロパティを設定する場合、1 つだけ設定するのではなく、両方とも設定する必要があります。
また、これらのプロパティを設定する場合、
krb5.conf
ファイルも指定しない限り、相互領域認証は行えません。理由は、このファイルから、相互領域認証に必要な追加情報を取得するためです。これらのプロパティの値を設定する場合、
krb5.conf
に指定されたデフォルト領域および KDC 値はオーバーライドされます。デフォルト領域および KDC 以外の項目で値が必要な場合にも、krb5.conf
ファイルが参照されます。krb5.conf
ファイルが見つからない場合、これらの項目に使用されるデフォルト値は、実装により異なります。
krb5.conf
構成ファイルの検出必須の Kerberos 構成情報は、デフォルト領域およびデフォルト KDC です。「デフォルト領域および KDC を表すプロパティの設定」で説明したように、これらの値を示すプロパティを設定した場合、値は
krb5.conf
構成ファイルからは取得されません。これらのプロパティに値が設定されていないか、他の Kerberos 構成情報が必要な場合、
krb5.conf
ファイル内で必要な情報の検出が試みられます。krb5.conf
ファイルを検出するアルゴリズムを、次に示します。
- システムプロパティ
java.security.krb5.conf
が設定されている場合、その値にパスおよびファイル名が指定されていると見なされます。
- このシステムプロパティが設定されていない場合、次のディレクトリ内で構成ファイルが検索されます。
ここで、<java-home> は JRE がインストールされているディレクトリを指します。たとえば、Solaris で、<java-home>¥lib¥security [Win32] <java-home>/lib/security [Solaris and Linux]/jdk1.4
という名前のディレクトリに J2SDK v 1.4 がインストールされている場合、次のディレクトリで構成ファイルの検索が行われます。/jdk1.4/jre/lib/security- ファイルが見つからない場合、以下で検索が行われます。
/etc/krb5/krb5.conf [Solaris] c:¥winnt¥krb5.ini [Win32] /etc/krb5.conf [Linux]- それでもファイルが見つからず、かつ検索中の構成情報がデフォルト領域および KDC では「ない」場合、実装固有のデフォルトが使用されます。一方、検索中の構成情報がデフォルト領域および KDC の場合、構成情報がシステムプロパティに指定されておらず、
krb5.conf
ファイルも見つからないため、例外がスローされます。