struktur SEC_WINNT_AUTH_IDENTITY_EX2 (sspi.h)

Berisi informasi tentang identitas autentikasi. Struktur SEC_WINNT_AUTH_IDENTITY_EX2 berisi data autentikasi yang disediakan untuk fungsi AcquireCredentialsHandle .

Sintaks

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;

Anggota

Version

Nomor versi struktur. Ini harus SEC_WINNT_AUTH_IDENTITY_VERSION_2.

cbHeaderLength

Ukuran, dalam byte, dari header struktur.

cbStructureLength

Ukuran struktur dalam byte.

UserOffset

Offset dari awal struktur ke awal string nama pengguna.

UserLength

Ukuran, dalam byte, dari string nama pengguna.

DomainOffset

Offset dari awal struktur ke awal string nama domain.

Kredensial identitas harus berisi nama idP alih-alih nama domain.

DomainLength

Ukuran, dalam byte, dari string nama domain.

PackedCredentialsOffset

Offset dari awal struktur hingga awal kredensial yang dikemas.

Kredensial yang dikemas adalah struktur SEC_WINNT_AUTH_PACKED_CREDENTIALS yang berisi jenis kredensial yang secara unik menentukan jenis kredensial.

PackedCredentialsLength

Ukuran, dalam byte, dari string kredensial yang dikemas.

Flags

Bendera panjang yang tidak ditandatangani yang menunjukkan jenis yang digunakan oleh paket keamanan yang dapat dinegosiasikan.

Nilai Makna
SEC_WINNT_AUTH_IDENTITY_MARSHALLED
4 (0x4)
Semua data berada dalam satu buffer.
SEC_WINNT_AUTH_IDENTITY_ONLY
8 (0x8)
Digunakan dengan penyedia dukungan keamanan (SSP) Kerberos. Kredensial hanya untuk identitas. Paket Kerberos diarahkan untuk tidak menyertakan data otorisasi dalam tiket.
SEC_WINNT_AUTH_IDENTITY_ANSI
1 (0x1)
Kredensial dalam bentuk ANSI.
SEC_WINNT_AUTH_IDENTITY_UNICODE
2 (0x2)
Kredensial dalam bentuk Unicode.
SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER
524288 (0x80000)
Ketika jenis kredensial adalah kata sandi, keberadaan bendera ini menentukan bahwa strukturnya adalah kredensial ID online. Anggota DomainOffset dan DomainLength sesuai dengan nama penyedia ID online.

Windows Server 2008 R2 dan Windows 7: Bendera ini tidak didukung.

SEC_WINNT_AUTH_IDENTITY_FLAGS_PROCESS_ENCRYPTED
16 (0x10)
Struktur dienkripsi oleh fungsi SspiEncryptAuthIdentity atau oleh fungsi SspiEncryptAuthIdentityEx dengan opsi SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS. Ini hanya dapat didekripsi oleh proses yang sama.

Windows Server 2008 R2 dan Windows 7: Bendera ini tidak didukung.

SEC_WINNT_AUTH_IDENTITY_FLAGS_SYSTEM_PROTECTED
32 (0x20)
Struktur dienkripsi oleh fungsi SspiEncryptAuthIdentityEx dengan opsi SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON di bawah konteks keamanan SISTEM. Ini hanya dapat didekripsi oleh utas yang berjalan sebagai SYSTEM.

Windows Server 2008 R2 dan Windows 7: Bendera ini tidak didukung.

SEC_WINNT_AUTH_IDENTITY_FLAGS_USER_PROTECTED
64 (0x40)
Struktur dienkripsi oleh fungsi SspiEncryptAuthIdentityEx dengan opsi SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON di bawah konteks keamanan non-SISTEM. Ini hanya dapat didekripsi oleh utas yang berjalan dalam sesi masuk yang sama di mana ia dienkripsi.

Windows Server 2008 R2 dan Windows 7: Bendera ini tidak didukung.

SEC_WINNT_AUTH_IDENTITY_FLAGS_RESERVED
65536 (0x10000)
Buffer identitas autentikasi adalah cbStructureLength + 8 byte padding yang diperlukan untuk enkripsi di tempat atau dekripsi identitas.

PackageListOffset

Offset dari awal struktur ke awal daftar paket yang didukung.

PackageListLength

Ukuran, dalam byte, dari daftar paket yang didukung.

Keterangan

Buffer identitas autentikasi ini dapat dikembalikan dari beberapa API kredensial, misalnya, metode GetSerialization dan fungsi CredUIPromptForWindowsCredential dan SspiPromptForCredentials .

Struktur menjelaskan header buffer identitas autentikasi dan data ditambahkan di akhir struktur. Meskipun ukuran buffer ditentukan oleh anggota cbStructureLength , ukuran buffer aktual bisa lebih besar atau lebih kecil dari cbStructureLength. Beberapa fungsi, seperti SspiValidateAuthIdentity, mengambil pointer, tetapi bukan ukuran buffer, ke struktur identitas sebagai input. Akibatnya, fungsi-fungsi tersebut dapat memvalidasi data buffer internal tetapi tidak dapat memverifikasi ukuran buffer. Hal ini dapat mengakibatkan pembacaan atau penulisan data di luar rentang buffer. Untuk menghindari overrun buffer saat menangani buffer identitas yang tidak tepercaya, aplikasi harus memanggil SspiUnmarshalAuthIdentity untuk mendapatkan penunjuk ke struktur identitas dengan ukuran yang divalidasi dan kemudian meneruskan penunjuk tersebut ke fungsi.

Struktur SEC_WINNT_AUTH_IDENTITY_EX2 dapat dikembalikan oleh QueryContextAttributes(CredSSP) dan digunakan oleh AcquireCredentialsHandle(CredSSP), LsaLogonUser, dan antarmuka penyedia identitas lainnya.

SEC_WINNT_AUTH_PACKED_CREDENTIALS dapat berisi jenis kredensial kata sandi, yang didefinisikan sebagai SEC_WINNT_AUTH_DATA_TYPE_PASSWORD. Jenis kredensial ini menjelaskan kredensial kata sandi pengguna domain serta identitas online lainnya. Aplikasi harus menentukan _SEC_WINNT_AUTH_TYPES untuk mengkompilasi kode yang mereferensikan jenis kredensial ini serta definisi lain dari struktur SEC_WINNT_AUTH_PACKED_CREDENTIALS .

Aplikasi tidak boleh mengkueri atau mengatur anggota Bendera secara langsung. Gunakan fungsi SspiIsAuthIdentityEncrypted, SspiEncryptAuthIdentityEx, dan SspiDecryptAuthIdentityEx untuk mengelola enkripsi dan dekripsi struktur SEC_WINNT_AUTH_IDENTITY_EX2 .

Penyedia identitas harus secara eksplisit memeriksa atau mengatur SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER dan bidang nama domain untuk membedakan kredensial kata sandi mereka dari kata sandi domain dan kata sandi penyedia identitas lain.

Fungsi CredPackAuthenticationBuffer dapat dipanggil dengan opsi CRED_PACK_ID_PROVIDER_CREDENTIALS untuk membuat struktur SEC_WINNT_AUTH_IDENTITY_EX2 dengan data autentikasi jenis kredensial SEC_WINNT_AUTH_DATA_TYPE_PASSWORD, anggota Bendera yang berisi nilai SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER, dan anggota DomainOffset yang diatur ke nama penyedia.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Header sspi.h