struktur RPC_SECURITY_QOS_V5_A (rpcdce.h)
Struktur RPC_SECURITY_QOS_V5 mendefinisikan pengaturan kualitas layanan keamanan versi 5 pada handel pengikatan. Lihat Keterangan untuk ketersediaan versi pada edisi Windows.
Sintaks
typedef struct _RPC_SECURITY_QOS_V5_A {
unsigned long Version;
unsigned long Capabilities;
unsigned long IdentityTracking;
unsigned long ImpersonationType;
unsigned long AdditionalSecurityInfoType;
union {
RPC_HTTP_TRANSPORT_CREDENTIALS_A *HttpCredentials;
} u;
void *Sid;
unsigned int EffectiveOnly;
void *ServerSecurityDescriptor;
} RPC_SECURITY_QOS_V5_A, *PRPC_SECURITY_QOS_V5_A;
Anggota
Version
Versi struktur RPC_SECURITY_QOS yang digunakan. Topik ini mendandani versi 5 dari struktur RPC_SECURITY_QOS . Lihat RPC_SECURITY_QOS, RPC_SECURITY_QOS_V2, RPC_SECURITY_QOS_V3, dan RPC_SECURITY_QOS_V4 untuk versi lainnya.
Capabilities
Layanan keamanan disediakan untuk aplikasi. Kemampuan adalah sekumpulan bendera yang dapat digabungkan menggunakan operator OR bitwise.
Nilai | Makna |
---|---|
|
Tidak diperlukan kemampuan khusus penyedia. |
|
Run time RPC meminta autentikasi bersama dari penyedia keamanan. Beberapa penyedia keamanan tidak mendukung autentikasi bersama. Jika penyedia keamanan tidak mendukung autentikasi bersama, 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; pada gilirannya panggilan RPC gagal jika laporan 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 bersama. Periksa dengan SSP tertentu yang digunakan untuk menentukan perilakunya sehubungan dengan opsi keamanan.
|
|
Saat ini tidak diimplementasikan. |
|
Menerima kredensial klien bahkan jika otoritas sertifikat (CA) tidak ada dalam daftar CA tepercaya server. Konstanta ini hanya digunakan oleh SCHANNEL SSP. |
|
Runtime RPC pada klien mengabaikan kesalahan untuk menetapkan 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.
|
|
Server lokal untuk mesin 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 hanya tersedia di RPC_SECURITY_QOS_V3, RPC_SECURITY_QOS_V4, dan 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.
|
IdentityTracking
Mode pelacakan konteks sebagai salah satu nilai berikut.
Nilai | Makna |
---|---|
|
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_V5 tidak ditentukan. |
|
Konteks Keamanan 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 |
---|---|
|
Menggunakan tingkat peniruan default. |
|
Klien tidak memberikan informasi identifikasi ke server. Server tidak dapat meniru klien atau mengidentifikasi klien. Banyak server menolak panggilan dengan jenis peniruan ini. |
|
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.
|
|
Server dapat meniru konteks keamanan klien pada sistem lokalnya, tetapi tidak pada sistem jarak jauh. |
|
Server dapat meniru konteks keamanan klien saat bertindak atas nama klien. Server juga dapat melakukan panggilan keluar ke server lain sambil bertindak atas nama klien. Server dapat menggunakan konteks keamanan klien pada komputer lain untuk mengakses sumber daya lokal dan jarak jauh sebagai klien. |
AdditionalSecurityInfoType
Jenis kredensial tambahan yang ada di u union. Konstanta berikut didukung:
Konstanta yang Didukung | Makna |
---|---|
|
Tidak ada kredensial tambahan yang diteruskan di u union. |
|
Anggota HttpCredentials dari serikat u menunjuk ke struktur RPC_HTTP_TRANSPORT_CREDENTIALS . Nilai ini hanya dapat digunakan ketika urutan protokol ncacn_http. Urutan protokol lainnya mengembalikan RPC_S_INVALID_ARG. |
u
u.HttpCredentials
Set kredensial tambahan untuk diteruskan ke RPC, dalam bentuk struktur RPC_HTTP_TRANSPORT_CREDENTIALS . Digunakan saat anggota AdditionalSecurityInfoType diatur ke RPC_C_AUTHN_INFO_TYPE_HTTP.
Sid
Penunjuk ke pengidentifikasi keamanan (SID). SID adalah alternatif untuk anggota ServerPrincName , dan hanya satu yang dapat ditentukan. Anggota Sid tidak dapat diatur ke non-NULL jika penyedia keamanan adalah SCHANNEL SSP. Beberapa urutan protokol menggunakan Sid secara internal untuk keamanan, dan beberapa menggunakan ServerPrincName. Misalnya, ncalrpc menggunakan Sid secara internal, dan jika pemanggil tahu SID dan ServerPrincName, panggilan menggunakan ncalrpc dapat selesai jauh lebih cepat dalam beberapa kasus jika SID diteruskan. Sebaliknya, urutan protokol ncacn_ dan ncadg_ menggunakan ServerPrincName secara internal, dan karenanya dapat menjalankan panggilan lebih cepat ketika disediakan ServerPrincName.
EffectiveOnly
Jika diatur, hanya hak istimewa yang diaktifkan yang dilihat oleh server.
ServerSecurityDescriptor
Penunjuk ke SECURITY_DESCRIPTOR yang mengidentifikasi server. Diperlukan untuk autentikasi bersama.
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.
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 (tidak didukung pada Windows XP dan edisi klien sebelumnya, tidak didukung pada Windows 2000 dan edisi server yang lebih lama). 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.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2012 [hanya aplikasi desktop] |
Header | rpcdce.h (termasuk Rpc.h) |
Lihat juga
RPC_BINDING_HANDLE_SECURITY_V1