Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Memungkinkan pengguna untuk mengikat pengontrol domain (DC) tertentu, menggantikan cache pengikatan domain Kerberos. Kerberos memberlakukan pencarian DC ketika Dynamic Access Control (DAC) diaktifkan, jadi biasanya autentikasi tidak terikat ke DC tertentu. Pengguna tertentu mungkin ingin mengikat ke DC tertentu tempat mereka membuat akun atau mengatur kata sandi baru untuk menghindari penundaan replikasi DC. Anda harus memiliki set hak istimewa SeTcbPrivilege .
Sintaks
typedef struct _KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST {
KERB_PROTOCOL_MESSAGE_TYPE MessageType;
UNICODE_STRING RealmName;
UNICODE_STRING KdcAddress;
ULONG AddressType;
ULONG DcFlags;
} KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST, *PKERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST;
Anggota
MessageType
Nilai enumerasi KERB_PROTOCOL_MESSAGE_TYPE yang mencantumkan jenis pesan yang dapat dikirim ke paket autentikasi Kerberos dengan memanggil fungsi LsaCallAuthenticationPackage . Anggota ini harus diatur ke KerbAddBindingCacheEntryExMessage.
RealmName
Nama ranah pengendali domain.
KdcAddress
Alamat Pusat Distribusi Utama (KDC) server yang ingin Anda ikat.
AddressType
Jenis string yang terkandung dalam anggota KdcAddress . Ini bisa menjadi salah satu nilai berikut.
| Nilai | Makna |
|---|---|
|
Alamat adalah alamat IP string pengontrol domain, misalnya, "\\157.55.94.74"). |
|
Alamat adalah nama NetBIOS dari pengendali domain, misalnya, "\\phoenix". |
DcFlags
Pengendali domain menandai bendera yang disediakan pemanggil. Bendera ini diperlukan untuk meneruskan ke fungsi DsGetDcName .
Keterangan
Untuk memenuhi persyaratan pengguna dan persyaratan Kerberos, Anda perlu melakukan dua panggilan untuk mengambil alih cache pengikatan domain Kerberos.
- Pertama, Anda membuat jenis pesan permintaan KERB_QUERY_DOMAIN_EXTENDED_POLICIES_REQUEST di mana anggota MessageType harus diatur ke KerbQueryDomainExtendedPoliciesMessage. Anggota DomainName diatur ke nama domain aktual yang dikueri oleh kebijakan domain yang diperluas. Jika DomainName diatur ke null, domain komputer lokal diasumsikan.
-
Selanjutnya, Anda memanggil fungsi LsaCallAuthenticationPackage dengan paket autentikasi Kerberos dan pesan permintaan. Setelah berhasil kembali, KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE dikembalikan.
- Jika komputer lokal telah menonaktifkan DAC, anggota Bendera diatur ke KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE_FLAG_DAC_DISABLED.
- Jika domain yang ditentukan mengaktifkan Flexible Authentication Secure Tunneling (FAST), anggota ExtendedPolicies diatur ke KERB_EXTENDED_POLICY_FAST_CAPABLE (0x10000).
- Jika domain yang ditentukan mengaktifkan Klaim, anggota ExtendedPolicies diatur ke KERB_EXTENDED_POLICY_CLAIMS_CAPABLE (0x40000).
- Jika domain komputer lokal tidak menonaktifkan DAC dan domain yang ditentukan mengaktifkan FAST atau Claims, anggota DsFlags dari fungsi DsGetDcName diatur ke DS_DIRECTORY_SERVICE_8_REQUIRED. Jika tidak, DsFlags adalah 0.
- Jika fungsi mengembalikan kegagalan di anggota ProtocolStatus , STATUS_NOT_FOUND menunjukkan bahwa domain yang ditentukan tidak dapat dikueri karena komputer lokal tidak memiliki kepercayaan ke domain yang ditentukan. Kode kesalahan lainnya menunjukkan kegagalan aktual yang ditemui.
- Kemudian Anda harus memanggil DsGetDcName dengan DsFlags yang dikembalikan diatur dengan bendera yang mewakili persyaratan Anda sendiri, yang mungkin beberapa, jadi gunakan operator logis ATAU. Anggota DomainControllerInfo dikembalikan.
- Terakhir, Anda memanggil fungsi LsaCallAuthenticationPackage lagi dengan paket autentikasi Kerberos dan permintaan KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST di mana anggota DcFlags diatur ke bendera DomainControllerInfo . Semua anggota lain harus diisi dengan cara yang sama seperti KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST. Jika DsFlags dari KERB_QUERY_DOMAIN_EXTENDED_POLICIES_RESPONSE adalah nol, maka DcFlags harus diatur ke nol saat memanggil KERB_ADD_BINDING_CACHE_ENTRY_EX_REQUEST atau default kembali ke permintaan KERB_ADD_BINDING_CACHE_ENTRY_REQUEST yang ada.
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows 8 [khusus aplikasi desktop] |
| Server minimum yang didukung | Windows Server 2012 [hanya aplikasi desktop] |
| Header | ntsecapi.h |