Kerberosシステム・プロパティ、セキュリティ・プロパティ、および環境変数

次の表に、Kerberosに関連するシステム・プロパティ、セキュリティ・プロパティ、および環境変数をリストします。

ノート:

一部のプロパティは、セキュリティ・プロパティとシステム・プロパティの両方です。システム・プロパティの値を設定すると、セキュリティ・プロパティとして設定された値が上書きされます。java.lang.Systemプロパティの指定方法およびjava.security.Securityプロパティの指定方法を参照してください。

表7-2 Kerberosプロパティおよび環境変数

名前 説明 デフォルト値
KRB5CCNAME 環境変数 Kerberos資格証明キャッシュ(CC)ファイルへの完全パス名を指定します。 デフォルト値は、オペレーティング・システムによって異なります。LinuxおよびmacOSの場合、/tmp/krb5cc_useridです
LOGONSERVER 環境変数 Windowsでは、krb5.confファイルが見つからないか、デフォルト・レルムのKDCの設定が含まれていない場合、デフォルトのKDC。「krb5.conf構成ファイルの検出」を参照してください 「krb5.conf構成ファイルの検出」を参照してください
USERDNSDOMAIN 環境変数 Windowsでは、krb5.confファイルが見つからないか、デフォルト・レルムの設定が含まれていない場合、デフォルト・レルム。「krb5.conf構成ファイルの検出」を参照してください。 「krb5.conf構成ファイルの検出」を参照してください
jdk.security.krb5.default.initiate.credential セキュリティ・プロパティおよびシステム・プロパティ

proxy_impersonator Kerberos ccache構成エントリのポリシーを指定します。

proxy_impersonator ccache構成エントリでは、ccacheが中間サーバーによるService for User to Proxy (S4U2proxy) Kerberosの拡張機能で使用するための合成委任資格証明であることを示します。ccacheファイルには、このサーバーのチケット認可チケット(TGT)およびccacheのデフォルト・プリンシパルからこのサーバーへのエビデンス・チケットも含まれている必要があります。

このセキュリティ・プロパティの値によって、Javaでのこの構成エントリの使用方法が決定します。次の値のうち1つを取ることができます。

  • no-impersonate: この構成エントリを無視し、常にTGTの所有者として機能します(存在する場合)。
  • try-impersonate: この構成エントリが存在する場合は偽装を試行します。一致するTGTまたはエビデンス・チケットが見つからない場合は、no-impersonateにフォールバックします。
  • always-impersonate: この構成エントリが存在する場合は、常に偽装します。一致するTGTまたはエビデンスチケットが見つからない場合、初期資格証明はccacheから読み取られません。
always-impersonate
jdk.security.krb5.name.case.sensitive セキュリティ・プロパティおよびシステム・プロパティ

trueの場合、キータブおよび資格証明キャッシュ(ccache)エントリ検索時のプリンシパル名の比較では、大/小文字が区別されます。デフォルト値はfalseで、下位互換性を確保します。

Kerberosプリンシパルのキータブまたはccacheエントリを検索する場合、プリンシパル名は大文字と小文字を区別しない方法でエントリ名と比較されます。ただし、多くのKerberos実装では、プリンシパル名は大文字と小文字が区別されます。その結果、2つのプリンシパルの名前が大文字と小文字のみで異なる場合、誤ったキータブまたはccacheエントリを選択するリスクがあります。

false
jdk.security.krb5.s4u2proxy.acceptNonForwardableServiceTicket セキュリティ・プロパティおよびシステム・プロパティ

S4U2proxyリクエストで転送不可のサービス・チケットのポリシーを指定します。

Service for User to Proxy (S4U2proxy) Kerberos拡張機能を使用すると、中間サービスではユーザーの代わりに別のサービスへのサービス・チケットを取得できます。最初のサービスへのユーザーのサービス・チケットに、転送可能フラグが設定されている必要があります。ただし、一部のKDC実装では、この要件を無視し、フラグが設定されていないサービス・チケットを受け入れます。

このセキュリティ・プロパティがtrueに設定されている場合:

  • S4U2self偽装後に中間サービスによって取得されたユーザー・サービス・チケットは、転送可能フラグを持つ必要はありません。
  • S4U2proxyリクエストがKDC_ERR_BADOPTIONエラー・コードのKRB_ERRORを受信し、中間サービスへのチケットが転送可能ではない場合、JDKは致命的なエラーとして処理するかわりに、別のKDCと同じリクエストを試行します。
false
krb5.kdc.bad.policy セキュリティ・プロパティおよびシステム・プロパティ

失敗したKerberos KDCルックアップのポリシーを指定します。KDCが使用できない場合(たとえば、ネットワーク・エラーまたはサービス障害のため)、セカンダリ・リスト内に配置され、将来のリクエストではアクセス頻度が低くなります。

このセキュリティ・プロパティの値は、次のいずれかです:

  • tryLast: セカンダリ・リスト内のKDCは常に、リストにないKDCの後に試行されます。例:

    krb5.kdc.bad.policy = tryLast
  • tryLess[:max_retries,timeout]: セカンダリ・リスト内のKDCはまだ構成の順序で試行されていますが、より小さいmax_retriesおよびtimeout値が使用されています。max_retriesおよびtimeoutはオプションの数値パラメータです(デフォルトは1と5000で、これは1回と5秒を意味します)。ここで定義した値のいずれかがkrb5.confで定義した値を超える場合、それらは無視されます。例:

    krb5.kdc.bad.policy = tryLess:2,2000

KDCが使用可能として検出されると、セカンダリ・リストから削除されます。krb5.confがリロードされると、セカンダリ・リストがリセットされます。JAAS構成ファイルにrefreshKrb5Config=trueを追加でき、JAAS認証が試行されるたびにkrb5.confがリロードされます。

tryLast
sun.security.krb5.disableReferrals セキュリティ・プロパティおよびシステム・プロパティ

Kerberos相互レルム照会を無効にします。

JDKのKerberosクライアントは、RFC 6806: Kerberosプリンシパル名の正規化と相互レルム照会で定義されている相互レルム照会をサポートします。これにより、ターゲット・プリンシパル(ユーザーまたはサービスのいずれか)のレルムに到達する方法をクライアントが事前に知る必要がない、より動的な環境を設定できます。

クライアントがKerberos認証サービス(AS)またはチケット認可サービス(TGS)リクエストを発行すると、この機能のサポートを通知するように"canonicalize"オプションが設定されます。KDCサーバーは、リクエストを満たす、またはクライアントに別のものを照会する応答をする場合があります。参照すると、クライアントは新しいリクエストを発行し、サイクルが繰り返されます。

照会に加えて、"canonicalize"オプションを使用すると、KDCサーバーはASリクエストに応答してクライアント名を変更できます。セキュリティ上の理由から、FASTスキームが適用されます。RFC 6806の第11項 FASTのネゴシエーションと変更されたリクエストの検出を参照してください。

false
sun.security.krb5.maxReferrals セキュリティ・プロパティおよびシステム・プロパティ

無限ループを回避するためのASまたはTGS照会の最大数。

5
java.security.krb5.conf システム・プロパティ

krb5.confファイルの場所を指定します。詳細は、「krb5.conf構成ファイルの検出」を参照してください。

なし

java.security.krb5.kdc システム・プロパティ

java.security.krb5.realmで指定されたデフォルト・レルムのデフォルトKDCを指定します。詳細は、「デフォルトのレルムおよびKDCを表すプロパティの設定」を参照してください。

なし
java.security.krb5.realm システム・プロパティ

デフォルトのレルムを指定します。詳細は、「デフォルトのレルムおよびKDCを表すプロパティの設定」を参照してください。

なし