Bagikan melalui


struktur RPC_HTTP_TRANSPORT_CREDENTIALS_A (rpcdce.h)

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

Sintaks

typedef struct _RPC_HTTP_TRANSPORT_CREDENTIALS_A {
  SEC_WINNT_AUTH_IDENTITY_A *TransportCredentials;
  unsigned long             Flags;
  unsigned long             AuthenticationTarget;
  unsigned long             NumberOfAuthnSchemes;
  unsigned long             *AuthnSchemes;
  unsigned char             *ServerCertificateSubject;
} RPC_HTTP_TRANSPORT_CREDENTIALS_A, *PRPC_HTTP_TRANSPORT_CREDENTIALS_A;

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.

NumberOfAuthnSchemes

Jumlah elemen dalam array AuthnScheme .

AuthnSchemes

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.

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 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 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 XP dengan SP1 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Header rpcdce.h (termasuk Rpc.h)

Lihat juga

Nama Utama

RPC_HTTP_TRANSPORT_CREDENTIALS_V2

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