Bagikan melalui


Memeriksa Akses ke Objek Privat

Aplikasi server yang dilindungi harus memeriksa hak akses klien sebelum mengizinkan klien mengakses objek privat yang dilindungi. Untuk melakukan ini, server meneruskan token peniruan, deskriptor keamanan, dan sekumpulan hak akses yang diminta ke AccessCheck. Entri kontrol akses (ACE) dalam DACL deskriptor keamanan menentukan hak akses yang diizinkan atau ditolak untuk berbagai kepercayaan. Fungsi AccessCheck membandingkan wali amanat di setiap ACE dengan kepercayaan yang diidentifikasi dalam token peniruan. Untuk deskripsi algoritma yang digunakan untuk memberikan atau menolak akses, lihat Cara DACL Mengontrol Akses ke Objek.

Fungsi AccessCheckAndAuditAlarm melakukan pemeriksaan akses serupa. Selain itu, ini menghasilkan catatan audit dalam log peristiwa keamanan tergantung pada SACL di deskriptor keamanan.

Fungsi AccessCheckByType dan AccessCheckByTypeAndAuditAlarm mirip dengan AccessCheck dan AccessCheckAndAuditAlarm kecuali memungkinkan Anda memeriksa akses ke subobject objek, seperti kumpulan properti atau properti. Fungsi AccessCheckByTypeResultList dan AccessCheckByTypeResultListAndAuditAlarm juga mirip dengan AccessCheck kecuali bahwa fungsi tersebut memberikan hasil pemeriksaan akses untuk setiap subobject dalam hierarki properti objek dan kumpulan properti. Fungsi-fungsi ini menggunakan struktur OBJECT_TYPE_LIST untuk menjelaskan hierarki objek tempat akses diperiksa. Fungsi yang menghasilkan pesan audit menggunakan jenis enumerasi AUDIT_EVENT_TYPE untuk menunjukkan apakah objek yang diperiksa adalah objek layanan direktori. Untuk informasi selengkapnya tentang hierarki objek dan subobjeknya, lihat ACE untuk Mengontrol Akses ke Properti Objek.

Hak akses yang diminta yang diteruskan ke fungsi AccessCheck dan AccessCheckAndAuditAlarm tidak boleh menyertakan hak akses generik apa pun. Server dapat menggunakan fungsi MapGenericMask untuk mengonversi hak akses generik apa pun ke hak spesifik dan standar yang sesuai sesuai dengan pemetaan yang ditentukan dalam struktur GENERIC_MAPPING .

Fungsi AreAllAccessesGranted dan AreAnyAccessesGranted membandingkanmasker akses yang diminta dengan masker akses yang diberikan.

Untuk kode sampel yang menggunakan fungsi AccessCheck , lihat Memverifikasi Akses Klien dengan ACL di C++.

Fungsi ConvertToAutoInheritPrivateObjectSecurity membuat dan mengembalikan deskriptor keamanan dalam format yang memungkinkan penyebaran otomatis ACE yang dapat diwariskan. Deskriptor keamanan ini berisi semua ACE, diwariskan dan tidak diwariskan, dalam deskriptor keamanan saat ini dan dalam format relatif mandiri . Fungsi ConvertToAutoInheritPrivateObjectSecurity menentukan apakah ACE diwariskan atau tidak diwariskan dengan membandingkan semua ACE dalam deskriptor keamanan saat ini dengan semua ACE dalam deskriptor keamanan induknya. Mungkin tidak ada korespondensi satu-ke-satu antara dua grup ACE. Misalnya, ACE yang memungkinkan izin baca/tulis dapat setara dengan dua ACE: ACE yang memungkinkan izin baca dan ACE yang memungkinkan izin tulis. Deskriptor keamanan induk mungkin tidak disediakan ketika pendeskripsi keamanan saat ini adalah induknya.