Bagikan melalui


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.

Sintaksis

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, dalam byte, dari struktur.

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 penyedia identitas 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 tidak ditandatangani yang menunjukkan jenis yang digunakan oleh paket keamanan yang dapat dinegosiasikan.

Nilai Arti
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 struktur adalah kredensial ID online. 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 itu dienkripsi.

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

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

PackageListOffset

Offset dari awal struktur ke awal daftar paket yang didukung.

PackageListLength

Ukuran, dalam byte, dari daftar paket yang didukung.

Komentar

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

Struktur menjelaskan header buffer identitas autentikasi dan data ditambahkan di akhir struktur. Meskipun ukuran buffer ditentukan oleh cbStructureLength anggota, ukuran buffer yang sebenarnya bisa lebih besar atau lebih kecil dari cbStructureLength. Beberapa fungsi, seperti SspiValidateAuthIdentity, ambil penunjuk, 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 overruns buffer saat menangani buffer identitas yang tidak tepercaya, aplikasi harus memanggil SspiUnmarshalAuthIdentity untuk mendapatkan pointer 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 Flags anggota secara langsung. Gunakan fungsi SspiIsAuthIdentityEncrypted, SspiEncryptAuthIdentityEx, dan SspiDecryptAuthIdentity Ex 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 DomainOffset anggota diatur ke nama penyedia.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows 7 [hanya aplikasi desktop]
server minimum yang didukung Windows Server 2008 R2 [hanya aplikasi desktop]
Header sspi.h