Share via


SEC_WINNT_AUTH_IDENTITY_EX2 構造体 (sspi.h)

認証 ID に関する情報が含まれます。 SEC_WINNT_AUTH_IDENTITY_EX2構造体には、AcquireCredentialsHandle 関数に提供される認証データが含まれています。

構文

typedef struct _SEC_WINNT_AUTH_IDENTITY_EX2 {
  unsigned long  Version;
  unsigned short cbHeaderLength;
  unsigned long  cbStructureLength;
  unsigned long  UserOffset;
  unsigned short UserLength;
  unsigned long  DomainOffset;
  unsigned short DomainLength;
  unsigned long  PackedCredentialsOffset;
  unsigned short PackedCredentialsLength;
  unsigned long  Flags;
  unsigned long  PackageListOffset;
  unsigned short PackageListLength;
} SEC_WINNT_AUTH_IDENTITY_EX2, *PSEC_WINNT_AUTH_IDENTITY_EX2;

メンバー

Version

構造体のバージョン番号。 これは SEC_WINNT_AUTH_IDENTITY_VERSION_2する必要があります。

cbHeaderLength

構造体ヘッダーのサイズ (バイト単位)。

cbStructureLength

構造体のサイズ (バイト単位)。

UserOffset

構造体の先頭からユーザー名文字列の先頭までのオフセット。

UserLength

ユーザー名文字列のサイズ (バイト単位)。

DomainOffset

構造体の先頭からドメイン名文字列の先頭までのオフセット。

ID 資格情報には、ドメイン名ではなく ID プロバイダー名を含める必要があります。

DomainLength

ドメイン名文字列のサイズ (バイト単位)。

PackedCredentialsOffset

構造体の先頭からパックされた資格情報の先頭までのオフセット。

パックされた資格情報は 、資格情報 の種類を一意に指定する資格情報の種類を含むSEC_WINNT_AUTH_PACKED_CREDENTIALS構造体です。

PackedCredentialsLength

パックされた資格情報文字列のサイズ (バイト単位)。

Flags

否定可能なセキュリティ パッケージで使用される型を示す符号なし long フラグ。

意味
SEC_WINNT_AUTH_IDENTITY_MARSHALLED
4 (0x4)
すべてのデータは 1 つのバッファー内にあります。
SEC_WINNT_AUTH_IDENTITY_ONLY
8 (0x8)
Kerberosセキュリティ サポート プロバイダー (SSP) で使用されます。 資格情報は ID 専用です。 Kerberos パッケージは、チケットに承認データを含めないように指示されます。
SEC_WINNT_AUTH_IDENTITY_ANSI
1 (0x1)
資格情報は ANSI 形式です。
SEC_WINNT_AUTH_IDENTITY_UNICODE
2 (0x2)
資格情報は Unicode 形式です。
SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER
524288 (0x80000)
資格情報の種類が password の場合、このフラグが存在すると、構造体がオンライン ID 資格情報であることを指定します。 DomainOffset メンバーと DomainLength メンバーは、オンライン ID プロバイダー名に対応します。

Windows Server 2008 R2 と Windows 7: このフラグはサポートされていません。

SEC_WINNT_AUTH_IDENTITY_FLAGS_PROCESS_ENCRYPTED
16 (0x10)
構造体は、 SspiEncryptAuthIdentity 関数または SspiEncryptAuthIdentityEx 関数によって、SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS オプションを使用して暗号化されます。 同じプロセスでのみ暗号化を解除できます。

Windows Server 2008 R2 と Windows 7: このフラグはサポートされていません。

SEC_WINNT_AUTH_IDENTITY_FLAGS_SYSTEM_PROTECTED
32 (0x20)
構造体は、 SspiEncryptAuthIdentityEx 関数によって暗号化され、SYSTEM セキュリティ コンテキストの下に SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON オプションがあります。 これは、SYSTEM として実行されているスレッドによってのみ復号化できます。

Windows Server 2008 R2 と Windows 7: このフラグはサポートされていません。

SEC_WINNT_AUTH_IDENTITY_FLAGS_USER_PROTECTED
64 (0x40)
構造体は、 SspiEncryptAuthIdentityEx 関数によって暗号化され、system 以外のセキュリティ コンテキストでSEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON オプションが使用されます。 暗号化されたのと同じログオン セッションで実行されているスレッドによってのみ復号化できます。

Windows Server 2008 R2 と Windows 7: このフラグはサポートされていません。

SEC_WINNT_AUTH_IDENTITY_FLAGS_RESERVED
65536 (0x10000)
認証 ID バッファーは cbStructureLength + 8 個の埋め込みバイトで、ID のインプレース暗号化または暗号化解除に必要です。

PackageListOffset

構造体の先頭からサポートされているパッケージの一覧の先頭までのオフセット。

PackageListLength

サポートされているパッケージ リストのサイズ (バイト単位)。

注釈

この認証 ID バッファーは、 GetSerialization メソッドや CredUIPromptForWindowsCredential 関数、 SspiPromptForCredentials 関数など、いくつかの資格情報 API から返すことができます。

構造体は認証 ID バッファーのヘッダーを記述し、データは構造体の末尾に追加されます。 バッファー サイズは cbStructureLength メンバーによって指定されますが、実際のバッファー サイズは cbStructureLength より大きいか小さくすることができます。 SspiValidateAuthIdentity などの一部の関数は、ID 構造体へのポインターを入力として受け取りますが、バッファー サイズは受け取りません。 その結果、これらの関数は内部バッファー データを検証できますが、バッファー サイズを検証することはできません。 これにより、バッファー範囲外のデータの読み取りまたは書き込みが発生する可能性があります。 信頼されていない ID バッファーを処理するときにバッファー オーバーランを回避するには、アプリケーションで SspiUnmarshalAuthIdentity を呼び出して、検証済みのサイズの ID 構造体へのポインターを取得し、そのポインターを関数に渡す必要があります。

SEC_WINNT_AUTH_IDENTITY_EX2構造体は QueryContextAttributes(CredSSP) によって返され、AcquireCredentialsHandle(CredSSP)LsaLogonUser、およびその他の ID プロバイダー インターフェイスによって使用されます。

SEC_WINNT_AUTH_PACKED_CREDENTIALS には、SEC_WINNT_AUTH_DATA_TYPE_PASSWORDとして定義されたパスワード資格情報の種類を含めることができます。 この資格情報の種類では、ドメイン ユーザーのパスワード資格情報と、その他のオンライン ID について説明します。 アプリケーションでは、この資格情報の種類とSEC_WINNT_AUTH_PACKED_CREDENTIALS構造の他の定義を参照するコードをコンパイルするための _SEC_WINNT_AUTH_TYPES を定義する必要があります。

アプリケーションでは、 Flags メンバーを直接照会または設定しないでください。 SspiIsAuthIdentityEncryptedSspiEncryptAuthIdentityEx、および SspiDecryptAuthIdentityEx 関数を使用して、SEC_WINNT_AUTH_IDENTITY_EX2構造体の暗号化と暗号化解除を管理します。

ID プロバイダーは、パスワードの資格情報とドメイン パスワードと別の ID プロバイダーのパスワードを区別するために、SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDERとドメイン名フィールドを明示的にチェックまたは設定する必要があります。

CredPackAuthenticationBuffer 関数は、CRED_PACK_ID_PROVIDER_CREDENTIALS オプションを使用して呼び出して、資格情報の種類の認証データ、SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER値を含む Flags メンバー、プロバイダー名に設定された DomainOffset メンバー SEC_WINNT_AUTH_DATA_TYPE_PASSWORD SEC_WINNT_AUTH_IDENTITY_EX2構造体を作成できます。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
Header sspi.h