Bagikan melalui


struktur RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W (rpcdce.h)

Struktur RPC_HTTP_TRANSPORT_CREDENTIALS_V2 menentukan kredensial tambahan untuk mengautentikasi ke server proksi RPC atau server proksi HTTP saat menggunakan RPC/HTTP.

RPC_HTTP_TRANSPORT_CREDENTIALS_V2 memperluas RPC_HTTP_TRANSPORT_CREDENTIALS dengan mengizinkan autentikasi terhadap server proksi HTTP.

Sintaks

typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W {
  SEC_WINNT_AUTH_IDENTITY_W *TransportCredentials;
  unsigned long             Flags;
  unsigned long             AuthenticationTarget;
  unsigned long             NumberOfAuthnSchemes;
  unsigned long             *AuthnSchemes;
  unsigned short            *ServerCertificateSubject;
  SEC_WINNT_AUTH_IDENTITY_W *ProxyCredentials;
  unsigned long             NumberOfProxyAuthnSchemes;
  unsigned long             *ProxyAuthnSchemes;
} RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W, *PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;

Anggota

TransportCredentials

Penunjuk ke struktur SEC_WINNT_AUTH_IDENTITY yang berisi nama pengguna, domain, dan kata sandi untuk pengguna.

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 terjadi.

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 terlebih dahulu 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 utama 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 struktur SEC_WINNT_AUTH_IDENTITY yang berisi nama pengguna, domain, dan kata sandi untuk pengguna 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. Hal ini menyebabkan penyedia keamanan NTLM memancarkan atau merespons hanya hash NT yang kuat, bukan hash LM yang lemah. Selain itu, pelanggan didorong untuk menggunakan level 3 atau lebih tinggi, yang akan mencoba NTLMv2.
Jika versi Unicode dari fungsi RpcBindingSetAuthInfoEx digunakan, versi Unicode dari struktur RPC_HTTP_TRANSPORT_CREDENTIALS_V2 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 dari struktur RPC_HTTP_TRANSPORT_CREDENTIALS_V2 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 Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Header rpcdce.h (termasuk Rpc.h)

Lihat juga

Nama Utama

RPC_HTTP_TRANSPORT_CREDENTIALS

RPC_HTTP_TRANSPORT_CREDENTIALS_V3

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