モジュール java.security.jgss

クラスKerberosTicket

  • すべての実装されたインタフェース:
    Serializable, Destroyable, Refreshable

    public class KerberosTicket
    extends Object
    implements Destroyable, Refreshable, Serializable
    このクラスは、Kerberosチケットと関連情報をクライアントの観点からカプセル化します。 Key Distribution Center (KDC)がクライアントに送信した、返答メッセージKDC-REP内のすべての情報を取り込みます。KDC-REPはKerberosプロトコル仕様(RFC 4120)で定義されています。

    KDCに対してユーザーを認証するすべてのKerberos JAASログイン・モジュールで、このクラスを使用する必要があります。 利用可能な場合、ログイン・モジュールは、KDCと直接通信するのではなくオペレーティング・システムのチケット・キャッシュから、この情報を読み取ることもあります。 JAAS認証プロセスのコミット・フェーズ中に、JAASログイン・モジュールがこのクラスをインスタンス化し、インスタンスをSubjectの非公開資格セットに格納するようにしてください。

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

    このクラスは、チケットを付与するチケットと、そのほかの一般サービス・チケットとの両方に適用可能です。 チケットを付与するチケットは、より一般化されたサービス・チケットの特殊な例にすぎません。

    実装上の注意:
    JDKリファレンス実装のJAASログイン・モジュールは、ログアウト後にすべてのチケットを破棄します。
    導入されたバージョン:
    1.4
    関連項目:
    Subject, PrivateCredentialPermissionLoginContextGSSCredentialGSSManager直列化された形式
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      KerberosTicket​(byte[] asn1Encoding, KerberosPrincipal client, KerberosPrincipal server, byte[] sessionKey, int keyType, boolean[] flags, Date authTime, Date startTime, Date endTime, Date renewTill, InetAddress[] clientAddresses)
      クライアントがKDCから受け取るか、またはキャッシュから読み取る資格証明を使用してKerberosTicketを作成します。
    • メソッドのサマリー

      修飾子と型 メソッド 説明
      void destroy()
      チケットと、チケットに格納されている重要な情報を破棄します。
      boolean equals​(Object other)
      指定されたオブジェクトとこのKerberosTicketが等しいかどうかを比較します。
      Date getAuthTime()
      クライアントが認証された時間を返します。
      KerberosPrincipal getClient()
      このチケットに関連付けられたクライアント主体を返します。
      InetAddress[] getClientAddresses()
      このチケットを使用可能なアドレスのリストを返します。
      byte[] getEncoded()
      チケット全体のASN.1エンコーディングを返します。
      Date getEndTime()
      このチケットの有効期間の期限切れ時間を返します。
      boolean[] getFlags()
      このチケットに関連付けられたフラグを返します。
      Date getRenewTill()
      すべての更新を含む、このチケットの最新の有効期限を返します。
      KerberosPrincipal getServer()
      このチケットに関連付けられたサービス主体を返します。
      SecretKey getSessionKey()
      このチケットに関連付けられたセッション鍵を返します。
      int getSessionKeyType()
      Kerberosプロトコル仕様で定義された、このチケットに関連付けられたセッション鍵の鍵タイプを返します。
      Date getStartTime()
      このチケットの有効期間の開始時間を返します。
      int hashCode()
      このKerberosTicketのハッシュ・コードを返します。
      boolean isCurrent()
      このチケットが最新のままであるかどうかを判定します。
      boolean isDestroyed()
      このチケットが破棄されたかどうかを判定します。
      boolean isForwardable()
      このチケットが転送可能であるかどうかを判定します。
      boolean isForwarded()
      このチケットが転送されてきたか、認証によって発行されたかどうかを判定します(転送されてきたチケット認可チケットを含む)。
      boolean isInitial()
      このチケットがKerberos AS-Exchangeプロトコルを使用して発行されていて、チケット認可チケットを元に発行されていないかどうかを判定します。
      boolean isPostdated()
      このチケットが事後の日付であるかどうかを判定します。
      boolean isProxiable()
      このチケットがプロキシ可能であるかどうかを判定します。
      boolean isProxy()
      このチケットがプロキシ・チケットであるかどうかを判定します。
      boolean isRenewable()
      このチケットが更新可能であるかどうかを判定します。
      void refresh()
      このチケットの有効期間を延長します。
      String toString()
      このKerberosTicketの有益なテキスト表現を返します。
    • コンストラクタの詳細

      • KerberosTicket

        public KerberosTicket​(byte[] asn1Encoding,
                              KerberosPrincipal client,
                              KerberosPrincipal server,
                              byte[] sessionKey,
                              int keyType,
                              boolean[] flags,
                              Date authTime,
                              Date startTime,
                              Date endTime,
                              Date renewTill,
                              InetAddress[] clientAddresses)
        クライアントがKDCから受け取るか、またはキャッシュから読み取る資格証明を使用してKerberosTicketを作成します。
        パラメータ:
        asn1Encoding - Kerberosプロトコル仕様に定義された、チケットのASN.1エンコーディング。
        client - このサービス・チケットを所有するクライアント
        server - このチケットが使用されるサービス
        sessionKey - サーバーに送信されるオーセンティケータを暗号化するために使用する必要があるセッション鍵のrawバイト
        keyType - Kerberosプロトコル仕様で定義された、セッション鍵の鍵タイプ。
        flags - チケット・フラグ。 この配列の各要素は、チケット・フラグを表すASN.1 BitStringの対応するビットの値を示す。 この配列の要素数がKerberosプロトコルで使用されるフラグの数よりも少ない場合、足りないフラグはfalseになる。
        authTime - クライアントを初期認証した時間
        startTime - チケットが有効になる時間。 authTimeの値がstartTimeとして扱われる場合は、nullも可。
        endTime - チケットが無効になる時間
        renewTill - 可能なすべての更新を含めた、チケットの絶対有効期限。 更新不可能なチケットでは、このフィールドはnullも可。
        clientAddresses - クライアントがチケットを使用できるアドレス。 チケットを任意のアドレスで使用できるとき、このフィールドはnullになる。
    • メソッドの詳細

      • getClient

        public final KerberosPrincipal getClient()
        このチケットに関連付けられたクライアント主体を返します。
        戻り値:
        クライアント・プリンシパル、または破棄された場合はnull
      • getServer

        public final KerberosPrincipal getServer()
        このチケットに関連付けられたサービス主体を返します。
        戻り値:
        サービス・プリンシパル、または破棄された場合はnull
      • getSessionKey

        public final SecretKey getSessionKey()
        このチケットに関連付けられたセッション鍵を返します。 戻り値は常にEncryptionKeyオブジェクトです。
        戻り値:
        セッション鍵。
        例外:
        IllegalStateException - このチケットが破棄された場合
      • getSessionKeyType

        public final int getSessionKeyType()
        Kerberosプロトコル仕様で定義された、このチケットに関連付けられたセッション鍵の鍵タイプを返します。
        戻り値:
        このチケットに関連付けられたセッション鍵の鍵タイプ。
        例外:
        IllegalStateException - このチケットが破棄された場合
        関連項目:
        getSessionKey()
      • isForwardable

        public final boolean isForwardable()
        このチケットが転送可能であるかどうかを判定します。
        戻り値:
        このチケットが転送可能な場合はtrue、転送不可能または破棄されない場合はfalse。
      • isForwarded

        public final boolean isForwarded()
        このチケットが転送されてきたか、認証によって発行されたかどうかを判定します(転送されてきたチケット認可チケットを含む)。
        戻り値:
        このチケットが転送された場合、または転送されたチケット許可チケットを含む認証に基づいて発行された場合はtrue、それ以外の場合はfalse、または破棄されます。
      • isProxiable

        public final boolean isProxiable()
        このチケットがプロキシ可能であるかどうかを判定します。
        戻り値:
        このチケットがプロキシブルである場合はtrue、プロキシ可能でない場合はfalse、または破棄されます。
      • isProxy

        public final boolean isProxy()
        このチケットがプロキシ・チケットであるかどうかを判定します。
        戻り値:
        このチケットがプロキシ・チケットである場合はtrue、プロキシ・チケットでない場合はfalse、または破棄されます。
      • isPostdated

        public final boolean isPostdated()
        このチケットが事後の日付であるかどうかを判定します。
        戻り値:
        このチケットの日付が期限切れの場合はtrue、期限が過ぎていないか破棄されていない場合はfalseです。
      • isRenewable

        public final boolean isRenewable()
        このチケットが更新可能であるかどうかを判定します。 更新可能な場合、更新有効期間が過ぎていないと見なされ、refreshメソッドを呼び出すことができます。
        戻り値:
        このチケットが再生可能である場合はtrue、再生できない場合はfalse、または破棄されます。
      • isInitial

        public final boolean isInitial()
        このチケットがKerberos AS-Exchangeプロトコルを使用して発行されていて、チケット認可チケットを元に発行されていないかどうかを判定します。
        戻り値:
        このチケットがKerberos AS-Exchangeプロトコルを使用して発行された場合はtrue、そうでない場合はfalse、または破棄されます。
      • getFlags

        public final boolean[] getFlags()
        このチケットに関連付けられたフラグを返します。 返された配列の各要素は、チケット・フラグを表すASN.1 BitStringの対応するビットの値を示します。
        戻り値:
        このチケットに関連付けられたフラグ、または破棄された場合はnull
      • getAuthTime

        public final Date getAuthTime()
        クライアントが認証された時間を返します。
        戻り値:
        クライアントが認証された時間、またはフィールドが設定されていないか、このチケットが破棄された場合はnull
      • getStartTime

        public final Date getStartTime()
        このチケットの有効期間の開始時間を返します。
        戻り値:
        フィールドが設定されていないか、このチケットが破棄されている場合は、このチケット有効期間の開始時間またはnull
      • getEndTime

        public final Date getEndTime()
        このチケットの有効期間の期限切れ時間を返します。
        戻り値:
        このチケット有効期間の有効期限、または破棄された場合はnull
      • getRenewTill

        public final Date getRenewTill()
        すべての更新を含む、このチケットの最新の有効期限を返します。 更新不可能なチケットではnull値が返されます。
        戻り値:
        このチケットの最新の有効期限、または破棄された場合はnull
      • getClientAddresses

        public final InetAddress[] getClientAddresses()
        このチケットを使用可能なアドレスのリストを返します。
        戻り値:
        このフィールドが提供されなかった場合、またはこのチケットが破棄された場合は、nullを返します。
      • getEncoded

        public final byte[] getEncoded()
        チケット全体のASN.1エンコーディングを返します。
        戻り値:
        チケット全体のASN.1エンコーディング。 このメソッドが呼び出されるたびに、新しいバイト配列が返されます。
        例外:
        IllegalStateException - このチケットが破棄された場合
      • isCurrent

        public boolean isCurrent()
        このチケットが最新のままであるかどうかを判定します。
        定義:
        isCurrent、インタフェース: Refreshable
        戻り値:
        このチケットがまだ最新の場合はtrue、最新でない場合はfalse、または破棄されます。
      • refresh

        public void refresh()
                     throws RefreshFailedException
        このチケットの有効期間を延長します。 更新処理に成功すると、チケットに新しいセッション鍵が追加されます。 チケットが更新可能ではない場合や、最後の更新可能な時間が過ぎている場合は、更新処理に失敗します。 KDCからエラーが返された場合も、このメソッドは失敗します。 ノート: このメソッドは、このオブジェクトのアクセサ・メソッドと同期されません。 したがって、呼出し側は、このオブジェクトにアクセスし、更新を試みるスレッドが同時に複数存在する可能性がある点に注意する必要があります。
        定義:
        refresh、インタフェース: Refreshable
        例外:
        IllegalStateException - このチケットが破棄された場合
        RefreshFailedException - チケットが更新可能ではない場合、最後の更新可能な時間が過ぎている場合、またはKDCがエラーを返す場合。
        関連項目:
        isRenewable(), getRenewTill()
      • isDestroyed

        public boolean isDestroyed()
        このチケットが破棄されたかどうかを判定します。
        定義:
        isDestroyed、インタフェース: Destroyable
        戻り値:
        このObjectが破棄された場合はtrue、そうでない場合はfalse。
      • toString

        public String toString()
        このKerberosTicketの有益なテキスト表現を返します。
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        このKerberosTicketの有益なテキスト表現です。
      • equals

        public boolean equals​(Object other)
        指定されたオブジェクトとこのKerberosTicketが等しいかどうかを比較します。 指定されたオブジェクトがKerberosTicketであり、2つのKerberosTicketインスタンスが等価である場合、trueを返します。 破壊されたKerberosTicketオブジェクトは、それ自体と同じです。
        オーバーライド:
        equals 、クラス:  Object
        パラメータ:
        other - 比較するオブジェクト
        戻り値:
        指定されたオブジェクトがこのKerberosTicketと等しい場合はtrue、そうでない場合はfalse。
        導入されたバージョン:
        1.6
        関連項目:
        Object.hashCode()HashMap