モジュール java.security.jgss

クラスKerberosKey

java.lang.Object
javax.security.auth.kerberos.KerberosKey
すべての実装されたインタフェース:
Serializable, Key, SecretKey, Destroyable

public class KerberosKey extends Object implements SecretKey
このクラスでは、Kerberosプリンシパルの長期の秘密キーをカプセル化します。

KerberosKeyオブジェクトには、EncryptionKey、所有者としてのKerberosPrincipal、およびキーのバージョン番号が含まれます。

EncryptionKeyは、Kerberosプロトコル仕様(RFC 4120)のセクション4.2.9で次のように定義されます:

     EncryptionKey   ::= SEQUENCE {
             keytype         [0] Int32 -- actually encryption type --,
             keyvalue        [1] OCTET STRING
     }
 
KerberosKeyのキー・マテリアルは、前述のkeyValueの値として定義されます。

主体のパスワードを取得して秘密キーを生成するすべてのKerberos JAASログイン・モジュールでは、このクラスを使用するようにしてください。 ユーザー対ユーザー認証なしでサーバーを認証する場合などに、ログイン・モジュールは、認証プロセスのコミット・フェーズ中に、このクラスのインスタンスをSubjectの非公開資格セットに格納することがあります。

キー・タブを使用して秘密キーを読み込むKerberosサービスでは、KeyTabクラスを使用するようにしてください。このクラスでは、必要に応じて最新のキーが読み込まれます。

サブジェクトからKerberosKeyインスタンスにアクセスする必要がある場合は、アプリケーションにPrivateCredentialPermissionを付与する必要がある場合があります。 アプリケーションがKerberosKeyにアクセスするためのデフォルトのJGSS Kerberosメカニズムに依存する場合、このアクセス権は必要ありません。 ただしその場合、アプリケーションには適切なServicePermissionが必要です。

KerberosKey(KerberosPrincipal, char[], String)コンストラクタを使用してKerberosKeyを作成する場合、実装では、IANA以外のアルゴリズム名(たとえば、"rc4-hmac"の場合は"ArcFourMac"です)を受け入れることができますが、getAlgorithm()メソッドは、常にIANAアルゴリズム名を返す必要があります。

実装上のノート:
互換性の理由から、JDK 9より前に使用されていた古いアルゴリズム名は、この実装のKerberosKey(KerberosPrincipal, char[], String)コンストラクタでサポートされています。これは、"des-cbc-md5"の場合は"DES" (およびnull)、"des3-cbc-sha1-kd"の場合は"DESede"、"rc4-hmac"の場合は"ArcFourHmac"、"aes128-cts-hmac-sha1-96"の場合は"AES128"、"aes256-cts-hmac-sha1-96"の場合は"AES256"です。
導入されたバージョン:
1.4
関連項目: