KERB_RETRIEVE_TKT_REQUEST 構造体 (ntsecapi.h)

KERB_RETRIEVE_TKT_REQUEST構造体には、チケットの取得に使用される情報が含まれています。

LsaCallAuthenticationPackage によって使用されます。Kerberos チケットは、インターネット RFC 4120 で定義されています。 詳細については、「http://www.ietf.org」を参照してください。

構文

typedef struct _KERB_RETRIEVE_TKT_REQUEST {
  KERB_PROTOCOL_MESSAGE_TYPE MessageType;
  LUID                       LogonId;
  UNICODE_STRING             TargetName;
  ULONG                      TicketFlags;
  ULONG                      CacheOptions;
  LONG                       EncryptionType;
  SecHandle                  CredentialsHandle;
} KERB_RETRIEVE_TKT_REQUEST, *PKERB_RETRIEVE_TKT_REQUEST;

メンバー

MessageType

KERB_PROTOCOL_MESSAGE_TYPE 要求の種類を示す値です。 このメンバーは KerbRetrieveEncodedTicketMessage に設定する必要があります。

LogonId

ログオン セッション識別子を含む LUID 構造体。 これは、現在のユーザーのログオン セッションの場合は 0 にすることができます。 ゼロでない場合、呼び出し元には SeTcbPrivilege 特権セットが必要です。 これが失敗した場合、Kerberos 認証パッケージは LsaCallAuthenticationPackageProtocolStatus パラメーターをSTATUS_ACCESS_DENIEDに設定します。

TargetName

ターゲット サービスの名前を含むUNICODE_STRING

TicketFlags

取得したチケットの用途を指定するフラグが含まれます。 TicketFlags が 0 に設定されていて、キャッシュに一致するチケットが見つかった場合は、そのフラグ値に関係なく、そのチケットが返されます。 キャッシュに一致するものがない場合は、既定のフラグ値を持つ新しいチケットが要求されます。

このメンバーが 0 に設定されていない場合、返されたチケットはキャッシュされません。

CacheOptions

キャッシュを検索するためのオプションを示します。 キャッシュを検索する必要があることを示し、チケットが見つからない場合は、新しいチケットを要求する必要があることを示すには、このメンバーを 0 に設定します。

このメンバーが 0 に設定されていない場合、返されたチケットはキャッシュされません。

CacheOptions には、 次の値を含めることができます。

意味
KERB_RETRIEVE_TICKET_DONT_USE_CACHE
1
常に新しいチケットを要求します。キャッシュを検索しません。

チケットが取得されると、Kerberos 認証パッケージは LsaCallAuthenticationPackage 関数の ProtocolStatus パラメーターでSTATUS_SUCCESSを返します。

KERB_RETRIEVE_TICKET_USE_CREDHANDLE
4
ログオン セッションを識別するには、LogonId の代わりに CredentialsHandle メンバーを使用します。 資格情報ハンドルは、チケットを取得するクライアント資格情報として使用されます

メモ このオプションは、64 ビット Windows で実行されている 32 ビット Windows ベースのアプリケーションでは使用できません。

KERB_RETRIEVE_TICKET_USE_CACHE_ONLY
2
以前にキャッシュされたチケットのみを返します。

このようなチケットが見つからない場合、Kerberos 認証パッケージは LsaCallAuthenticationPackage 関数の ProtocolStatus パラメーターでSTATUS_OBJECT_NAME_NOT_FOUNDを返します。

KERB_RETRIEVE_TICKET_AS_KERB_CRED
8
Kerberos 資格情報としてチケットを返します。 Kerberos チケットは、インターネット RFC 4120 でKRB_CREDとして定義されています。 詳細については、「http://www.ietf.org」を参照してください。
KERB_RETRIEVE_TICKET_WITH_SEC_CRED
10
実装されていません。
KERB_RETRIEVE_TICKET_CACHE_TICKET
20
現在キャッシュ内にあるチケットを返します。 チケットがキャッシュにない場合は、要求され、キャッシュされます。 このフラグは、KERB_RETRIEVE_TICKET_DONT_USE_CACHE フラグと共に使用しないでください。

SP1 以前および Windows Server 2003 の Windows XP: このオプションは使用できません。

KERB_RETRIEVE_TICKET_MAX_LIFETIME
40
ポリシーで最大許容時間を持つ新しいチケットを返します。 ティッカーは後でキャッシュされます。 このフラグを使用すると、KERB_RETRIEVE_TICKET_USE_CACHE_ONLYが設定されておらず、KERB_RETRIEVE_TICKET_CACHE_TICKETが設定されていることを意味します。

Windows Vista、Windows Server 2008、Windows XP SP1 以前および Windows Server 2003: このオプションは使用できません。

EncryptionType

要求されたチケットに使用する暗号化の種類を指定します。 このメンバーが 0 に設定されていない場合、返されたチケットはキャッシュされません。

このメンバーには、次のいずれかの値を指定できます。

意味
KERB_ETYPE_DES_CBC_CRC
CRC-32 チェックサムを使用して暗号ブロック チェーン モードで DES 暗号化を使用します。
KERB_ETYPE_DES_CBC_MD4
MD4 チェックサムを使用して暗号ブロック チェーン モードで DES 暗号化を使用します。
KERB_ETYPE_DES_CBC_MD5
MD5 チェックサムを使用して暗号ブロック チェーン モードで DES 暗号化を使用します。
KERB_ETYPE_NULL
暗号化を使用しません。
KERB_ETYPE_RC4_HMAC_NT
Windows で使用されるハッシュベースのメッセージ認証コード (MAC) で RC4 ストリーム暗号を使用します。
KERB_ETYPE_RC4_MD4
MD4 ハッシュ関数で RC4 ストリーム暗号を使用します。
>127
127 より大きい値はローカル値用に予約されており、予告なしに変更される可能性があります。

CredentialsHandle

ログオン セッション識別子の代わりに使用される SSPI 資格情報ハンドル。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
Header ntsecapi.h