Bagikan melalui


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.

Nilai Makna
RPC_C_HTTP_FLAG_USE_SSL
Menginstruksikan RPC untuk menggunakan SSL untuk berkomunikasi dengan Proksi RPC.
RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME
Saat diatur, RPC memilih skema pertama dalam array AuthnSchemes dan mencoba mengautentikasi ke Proksi RPC. Jika Proksi RPC tidak mendukung skema autentikasi yang dipilih, panggilan gagal. Saat tidak diatur, klien RPC meminta Proksi RPC untuk skema autentikasi yang didukung, dan memilihnya.

AuthenticationTarget

Menentukan target autentikasi.

Harus diatur ke salah satu atau kedua nilai berikut:

Nilai Makna
RPC_C_HTTP_AUTHN_TARGET_SERVER
Autentikasi terhadap Proksi RPC, yang merupakan Server HTTP dari perspektif HTTP. Ini adalah nilai yang paling umum.
RPC_C_HTTP_AUTHN_TARGET_PROXY
Autentikasi terhadap Proksi HTTP. Nilai ini jarang.

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.
Jika versi Unicode dari fungsi RpcBindingSetAuthInfoEx digunakan, versi Unicode dari struktur RPC_HTTP_TRANSPORT_CREDENTIALS_V3 dan SEC_WINNT_AUTH_IDENTITY juga harus disediakan, dan anggota Bendera di TransportCredentials harus diatur ke SEC_WINNT_AUTH_IDENTITY_UNICODE. Jika versi ANSI dari fungsi RpcBindingSetAuthInfoEx digunakan, versi ANSI struktur RPC_HTTP_TRANSPORT_CREDENTIALS_V3 dan SEC_WINNT_AUTH_IDENTITY harus disediakan, dan anggota Bendera di TransportCredentials harus diatur ke SEC_WINNT_AUTH_IDENTITY_ANSI.

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

Nama Utama

RPC_HTTP_TRANSPORT_CREDENTIALS

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

RPC_SECURITY_QOS

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

Panggilan Prosedur Jarak Jauh Menggunakan RPC melalui HTTP

RpcBindingSetAuthInfoEx

RpcCertGeneratePrincipalName

SEC_WINNT_AUTH_IDENTITY