Bagikan melalui


struktur RPC_SECURITY_QOS (rpcdce.h)

Struktur RPC_SECURITY_QOS menentukan pengaturan kualitas layanan keamanan pada handel pengikatan. Lihat Keterangan untuk ketersediaan versi pada edisi Windows.

Sintaks

typedef struct _RPC_SECURITY_QOS {
  unsigned long Version;
  unsigned long Capabilities;
  unsigned long IdentityTracking;
  unsigned long ImpersonationType;
} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;

Anggota

Version

Versi struktur RPC_SECURITY_QOS yang digunakan. Topik ini mendokumentasikan versi 1 dari struktur RPC_SECURITY_QOS . Lihat RPC_SECURITY_QOS_V2, RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4 , dan RPC_SECURITY_QOS_V5 untuk versi lain.

Capabilities

Layanan keamanan disediakan untuk aplikasi. Kemampuan adalah sekumpulan bendera yang dapat digabungkan menggunakan operator OR bitwise.

Nilai Makna
RPC_C_QOS_CAPABILITIES_DEFAULT
Digunakan ketika tidak ada kemampuan khusus penyedia yang diperlukan.
RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH
Menentukan bendera ini menyebabkan run time RPC meminta autentikasi timbal balik dari penyedia keamanan. Beberapa penyedia keamanan tidak mendukung autentikasi timbal balik. Jika penyedia keamanan tidak mendukung autentikasi timbal balik, atau identitas server tidak dapat dibuat, panggilan prosedur jarak jauh ke server tersebut gagal dengan kesalahan RPC_S_SEC_PKG_ERROR.
Catatan RPC bergantung pada SSP untuk menunjukkan opsi keamanan mana yang berhasil dinegosiasikan; RPC pada gilirannya gagal setiap panggilan yang laporan Penyedia Layanan Keamanan (SSP) tidak dapat menegosiasikan opsi. Namun, beberapa penyedia keamanan diketahui melaporkan keberhasilan negosiasi opsi bahkan ketika opsi tidak berhasil dinegosiasikan. Misalnya, NTLM akan melaporkan keberhasilan negosiasi autentikasi timbal balik karena alasan kompatibilitas mundur, meskipun tidak mendukung autentikasi timbal balik. Periksa dengan SSP tertentu yang digunakan untuk menentukan perilakunya sehubungan dengan opsi keamanan.
 
RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC
Saat ini tidak diimplementasikan.
RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY
Menerima kredensial klien meskipun otoritas sertifikat (CA) tidak ada dalam daftar CA tepercaya server. Konstanta ini hanya digunakan oleh SCHANNEL SSP.
RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE
Ketika ditentukan, bendera ini mengarahkan runtime RPC pada klien untuk mengabaikan kesalahan untuk membuat konteks keamanan yang mendukung delegasi. Biasanya, jika klien meminta delegasi dan sistem keamanan tidak dapat menetapkan konteks keamanan yang mendukung delegasi, kesalahan RPC_S_SEC_PKG_ERROR dikembalikan; ketika bendera ini ditentukan, tidak ada kesalahan yang dikembalikan.
Catatan Tidak didukung pada Windows XP dan edisi klien sebelumnya, tidak didukung pada Windows 2000 dan edisi server sebelumnya.
 
RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT
Bendera ini menentukan ke RPC bahwa server bersifat lokal untuk komputer yang melakukan panggilan RPC. Dalam situasi ini RPC menginstruksikan pemeta titik akhir untuk hanya mengambil titik akhir yang didaftarkan oleh prinsipal yang ditentukan dalam anggota ServerPrincName atau Sid (anggota ini tersedia dalam RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4, dan hanya RPC_SECURITY_QOS_V5 ). Lihat Keterangan untuk informasi selengkapnya.
Catatan Tidak didukung pada Windows XP dan edisi klien sebelumnya, tidak didukung pada Windows 2000 dan edisi server sebelumnya.
 
RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY
Jika diatur, runtime RPC menggunakan SChannel SSP untuk melakukan autentikasi berbasis smartcard tanpa menampilkan kotak dialog perintah PIN oleh penyedia layanan kriptografi (CSP).

Dalam panggilan ke RpcBindingSetAuthInfoEx, parameter AuthIdentity harus merupakan struktur SEC_WINNT_AUTH_IDENTITY yang anggotanya berisi yang berikut ini:

  • Pengguna harus menjadi penunjuk ke struktur SCHANNEL_CRED
  • UserLength harus 0
  • Domain harus NULL
  • DomainLength harus 0
  • Kata sandi mungkin PIN sertifikat atau NULL. Jika Kata Sandi adalah PIN, PasswordLength harus panjang yang benar untuk PIN, dan jika Kata Sandi NULL, PasswordLength harus 0
Jika bendera RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY digunakan untuk SSP apa pun selain SChannel, atau jika anggota SEC_WINNT_AUTH_IDENTITY tidak sesuai dengan hal di atas, RPC_S_INVALID_ARG akan dikembalikan oleh RpcBindingSetAuthInfoEx.

IdentityTracking

Mengatur mode pelacakan konteks. Harus diatur ke salah satu nilai yang diperlihatkan dalam tabel berikut ini.

Nilai Makna
RPC_C_QOS_IDENTITY_STATIC
Konteks keamanan dibuat hanya sekali dan tidak pernah direvisi selama seluruh komunikasi, bahkan jika sisi klien mengubahnya. Ini adalah perilaku default jika RPC_SECURITY_QOS tidak ditentukan.
RPC_C_QOS_IDENTITY_DYNAMIC
Konteks direvisi setiap kali ModifiedId dalam token klien diubah. Semua protokol menggunakan ModifiedId (lihat catatan).

Windows 2000: Semua protokol jarak jauh (semua protokol selain ncalrpc) menggunakan AuthenticationID, juga dikenal sebagai LogonId, untuk melacak perubahan dalam identitas klien. Protokol ncalrpc menggunakan ModifiedId.

ImpersonationType

Tingkat di mana proses server dapat meniru klien.

Nilai Makna
RPC_C_IMP_LEVEL_DEFAULT
Menggunakan tingkat peniruan default.
RPC_C_IMP_LEVEL_ANONYMOUS
Klien tidak memberikan informasi identifikasi ke server. Server tidak dapat meniru klien atau mengidentifikasi klien. Banyak server menolak panggilan dengan jenis peniruan ini.
Catatan Beberapa penyedia keamanan mungkin memperlakukan jenis peniruan ini setara dengan RPC_C_IMP_LEVEL_IMPERSONATE. Dari penyedia keamanan Windows, ini dilakukan oleh RPC_C_AUTHN_WINNT hanya ketika digunakan dengan urutan protokol selain ncalrpc. Ini juga dilakukan oleh RPC_C_AUTHN_GSS_NEGOTIATE, RPC_C_AUTHN_GSS_SCHANNEL dan RPC_C_AUTHN_GSS_KERBEROS.
 
RPC_C_IMP_LEVEL_IDENTIFY
Server dapat memperoleh identitas klien, dan meniru klien untuk melakukan pemeriksaan daftar Access Control (ACL), tetapi tidak dapat meniru klien. Lihat Tingkat Peniruan Untuk informasi selengkapnya.
Catatan Beberapa penyedia keamanan mungkin memperlakukan jenis peniruan ini setara dengan RPC_C_IMP_LEVEL_IMPERSONATE. Dari penyedia keamanan Windows, ini dilakukan oleh RPC_C_AUTHN_WINNT hanya ketika digunakan dengan urutan protokol selain ncalrpc. Ini juga dilakukan oleh RPC_C_AUTHN_GSS_NEGOTIATE, RPC_C_AUTHN_GSS_SCHANNEL dan RPC_C_AUTHN_GSS_KERBEROS.
 
RPC_C_IMP_LEVEL_IMPERSONATE
Server dapat meniru konteks keamanan klien pada sistem lokalnya, tetapi tidak pada sistem jarak jauh.
RPC_C_IMP_LEVEL_DELEGATE
Server dapat meniru konteks keamanan klien saat bertindak atas nama klien. Server juga dapat melakukan panggilan keluar ke server lain saat bertindak atas nama klien. Server dapat menggunakan konteks keamanan klien pada komputer lain untuk mengakses sumber daya lokal dan jarak jauh sebagai klien.

Keterangan

Daftar berikut menentukan ketersediaan versi QOS pada berbagai sistem operasi Windows:

  • Versi 1: Windows 2000 dan yang lebih baru.
  • Versi 2: Windows XP dengan Paket Layanan 1 (SP1) dan yang lebih baru.
  • Versi 3: Windows Server 2003 dan yang lebih baru.
  • Versi 4: Windows Vista dan yang lebih baru.
  • Versi 5: Windows 8 dan yang lebih baru.
Edisi Windows juga mendukung versi tingkat bawah. Misalnya, Windows Server 2003 mendukung versi 3, tetapi juga mendukung versi 1 dan 2.

Fungsi keamanan sisi klien RpcBindingInqAuthInfoEx dan RpcBindingSetAuthInfo menggunakan struktur RPC_SECURITY_QOS untuk menanyakan, atau mengatur, kualitas keamanan layanan untuk handel pengikatan.

RPC mendukung petunjuk RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT. Petunjuk ini hanya digunakan ketika titik akhir dinamis dan autentikasi timbal balik digunakan. Selain itu, ini tidak didukung untuk urutan protokol ncadg_ . Jika bendera ini digunakan untuk urutan protokol ncadg_ , atau tanpa menggunakan autentikasi timbal balik, RPC_S_INVALID_ARG dikembalikan dari panggilan fungsi RpcBindingSetAuthInfoEx . Bendera ini dirancang untuk mencegah Penolakan Serangan Layanan. Menggunakan bendera ini memaksa Runtime RPC untuk meminta pemeta titik akhir hanya untuk titik akhir yang didaftarkan oleh prinsipal yang ditentukan dalam anggota ServerPrincName atau Sid . Ini mencegah penyerang pada komputer lokal mencoba menipu klien RPC Anda untuk terhubung ke titik akhir spoof yang telah terdaftar di pemeta titik akhir. Perhatikan bahwa karena serangan hanya lokal (seperti dari komputer server terminal dengan banyak pengguna), bendera juga hanya berfungsi untuk panggilan RPC yang dilakukan secara lokal.

Catatan Beberapa penyedia keamanan, seperti Kerberos, mendukung jenis peniruan identitas delegasi. Pada edisi Windows yang mendukung jenis peniruan identitas delegasi, jika klien telah meminta delegasi tetapi penyedia keamanan tidak dapat menyediakannya, panggilan gagal dengan PRC_S_SEC_PKG_ERROR kecuali bendera RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE ditentukan.
 

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Header rpcdce.h (termasuk Rpc.h)

Lihat juga

RPC_SECURITY_QOS_V2

RPC_SECURITY_QOS_V3

RPC_SECURITY_QOS_V4

RPC_SECURITY_QOS_V5

RpcBindingInqAuthInfoEx

RpcBindingSetAuthInfoEx