struktur RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W (rpcdce.h)
Struktur RPC_HTTP_TRANSPORT_CREDENTIALS_V3 menentukan kredensial tambahan untuk mengautentikasi ke server proksi RPC atau server proksi HTTP saat menggunakan RPC/HTTP.
RPC_HTTP_TRANSPORT_CREDENTIALS_V3 memperluas RPC_HTTP_TRANSPORT_CREDENTIALS_V2 dengan memungkinkan formulir kredensial arbitrer digunakan.
Sintaks
typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W {
RPC_AUTH_IDENTITY_HANDLE TransportCredentials;
unsigned long Flags;
unsigned long AuthenticationTarget;
unsigned long NumberOfAuthnSchemes;
unsigned long *AuthnSchemes;
unsigned short *ServerCertificateSubject;
RPC_AUTH_IDENTITY_HANDLE ProxyCredentials;
unsigned long NumberOfProxyAuthnSchemes;
unsigned long *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
Anggota
TransportCredentials
Penunjuk ke handel autentikasi buram dalam bentuk struktur RPC_AUTH_IDENTITY_HANDLE .
Flags
Sekumpulan bendera yang dapat dikombinasikan dengan operator OR bitwise.
AuthenticationTarget
Menentukan target autentikasi.
Harus diatur ke salah satu atau kedua nilai berikut:
NumberOfAuthnSchemes
Jumlah elemen dalam array AuthnScheme .
AuthnSchemes
Penunjuk ke array skema autentikasi yang ingin digunakan klien. Setiap elemen array dapat berisi salah satu konstanta berikut:
RPC_C_HTTP_AUTHN_SCHEME_BASIC
RPC_C_HTTP_AUTHN_SCHEME_NTLM
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT
RPC_C_HTTP_AUTHN_SCHEME_DIGEST
RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT, RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE, dan RPC_C_HTTP_AUTHN_SCHEME_DIGEST didefinisikan sebagai konstanta, tetapi saat ini tidak didukung. Penelepon tidak boleh menentukannya; melakukannya menghasilkan kesalahan RPC_S_CANNOT_SUPPORT. Setiap konstanta dapat ditentukan sekali. RPC tidak memverifikasi pembatasan ini karena alasan performa, tetapi menentukan konstanta lebih dari sekali menghasilkan hasil yang tidak terdefinisi.
Algoritma untuk memilih skema autentikasi aktual adalah sebagai berikut:
Jika RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME ditentukan, skema autentikasi pertama dipilih. Jika tidak didukung oleh server, pembentukan koneksi gagal. Jika RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME tidak ditentukan, klien RPC pertama kali mencoba koneksi anonim ke Proksi RPC. Jika IIS mengembalikan tantangan autentikasi, klien RPC memilih skema autentikasi yang lebih disukai oleh server jika juga berada dalam array AuthnScheme . Jika skema yang disukai oleh server tidak berada dalam array AuthnScheme , array AuthnScheme akan dilalui dari awal hingga akhir, dan jika skema ditemukan yang juga didukung oleh server, skema autentikasi tersebut digunakan.
ServerCertificateSubject
Berisi string opsional dengan nama prinsipal server yang diharapkan. Nama utama dalam format yang sama dengan yang dihasilkan untuk RpcCertGeneratePrincipalName (lihat Nama Utama untuk informasi selengkapnya). Anggota ini hanya digunakan ketika SSL digunakan. Dalam kasus seperti itu, sertifikat server diperiksa terhadap nama utama yang dihasilkan. Jika tidak cocok, kesalahan akan dikembalikan. Anggota ini memungkinkan klien untuk mengautentikasi Proksi RPC.
ProxyCredentials
Penunjuk ke handel autentikasi buram dalam bentuk struktur RPC_AUTH_IDENTITY_HANDLE saat mengautentikasi terhadap server proksi HTTP. ProxyCredentials hanya valid saat AuthenticationTarget berisi RPC_C_HTTP_AUTHN_TARGET_PROXY.
NumberOfProxyAuthnSchemes
Jumlah elemen dalam array ProxyAuthnSchemes saat mengautentikasi terhadap server proksi HTTP. NumberOfProxyAuthnSchemes hanya valid saat AuthenticationTarget berisi RPC_C_HTTP_AUTHN_TARGET_PROXY.
ProxyAuthnSchemes
Penunjuk ke array skema autentikasi yang ingin digunakan klien saat mengautentikasi terhadap server proksi HTTP. Setiap elemen array dapat berisi salah satu konstanta berikut. ProxyAuthnSchemes hanya valid saat AuthenticationTarget berisi RPC_C_HTTP_AUTHN_TARGET_PROXY.
RPC_C_HTTP_AUTHN_SCHEME_BASIC
RPC_C_HTTP_AUTHN_SCHEME_NTLM
RPC_C_HTTP_AUTHN_SCHEME_PASSPORT
RPC_C_HTTP_AUTHN_SCHEME_DIGEST
RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE
Keterangan
Jika anggota TransportCredentials adalah NULL dan skema autentikasi adalah NTLM, kredensial pengguna yang saat ini masuk digunakan. Untuk menghindari mengekspos kredensial pengguna di jaringan melalui hash LM yang lemah, kredensial masuk pengguna hanya digunakan jika salah satu atau kedua kondisi berikut ini benar:
- Pemanggil meminta penggunaan SSL dan menggunakan anggota ServerCertificateSubject . Skenario ini menjamin kredensial dilindungi baik saat transit maupun di tujuan akhir, bahkan jika hash yang lemah digunakan.
- Kunci lncompatibilitylevel diatur ke 2 atau lebih tinggi. Ini menyebabkan penyedia keamanan NTLM memancarkan atau merespons hanya hash NT yang kuat, bukan hash LM yang lemah. Selain itu, pelanggan didorong untuk menggunakan tingkat 3 atau lebih tinggi, yang akan mencoba NTLMv2.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 7 [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 R2 [hanya aplikasi desktop] |
Header | rpcdce.h (termasuk Rpc.h) |
Lihat juga
RPC_HTTP_TRANSPORT_CREDENTIALS
RPC_HTTP_TRANSPORT_CREDENTIALS_V2