Cara Kerja AccessCheck
Ketika utas mencoba mengakses objek yang dapat diamankan, sistem memberikan atau menolak akses. Jika objek tidak memiliki daftar kontrol akses diskresi (DACL), sistem memberikan akses; jika tidak, sistem mencari entri Access Control (ACE) di DACL objek yang berlaku untuk utas. Setiap ACE dalam DACL objek menentukan hak akses yang diizinkan atau ditolak untuk wali, yang dapat berupa akun pengguna, akun grup, atau sesi masuk.
DACL
Sistem membandingkan wali amanat di setiap ACE dengan kepercayaan yang diidentifikasi dalam token akses utas. Token akses berisi pengidentifikasi keamanan (SID) yang mengidentifikasi pengguna dan akun grup tempat pengguna berada. Token juga berisi SID masuk yang mengidentifikasi sesi masuk saat ini. Selama pemeriksaan akses, sistem mengabaikan SID grup yang tidak diaktifkan. Untuk informasi selengkapnya tentang SID yang diaktifkan, dinonaktifkan, dan hanya ditolak, lihat Atribut SID dalam Token Akses.
Biasanya, sistem menggunakan token akses utama utas yang meminta akses. Namun, jika utas meniru pengguna lain, sistem menggunakan token peniruan utas.
Sistem memeriksa setiap ACE secara berurutan sampai salah satu peristiwa berikut terjadi:
- ACE yang ditolak akses secara eksplisit menolak salah satu hak akses yang diminta ke salah satu kepercayaan yang tercantum dalam token akses utas.
- Satu atau beberapa ACE yang diizinkan akses untuk wali yang tercantum dalam token akses utas secara eksplisit memberikan semua hak akses yang diminta.
- Semua ACE telah diperiksa dan masih ada setidaknya satu hak akses yang diminta yang belum diizinkan secara eksplisit, dalam hal ini, akses secara implisit ditolak.
Ilustrasi berikut menunjukkan bagaimana DACL objek dapat mengizinkan akses ke satu utas sambil menolak akses ke utas lainnya.
Untuk Thread A, sistem membaca ACE 1 dan segera menolak akses karena ACE yang ditolak akses berlaku untuk pengguna dalam token akses utas. Dalam hal ini, sistem tidak memeriksa ACE 2 dan 3. Untuk Thread B, ACE 1 tidak berlaku, sehingga sistem melanjutkan ke ACE 2, yang memungkinkan akses tulis, dan ACE 3 yang memungkinkan akses baca dan jalankan.
Karena sistem berhenti memeriksa ACE ketika akses yang diminta secara eksplisit diberikan atau ditolak, urutan ACE dalam DACL adalah penting. Perhatikan bahwa jika urutan ACE berbeda dalam contoh, sistem mungkin telah memberikan akses ke Utas A. Untuk objek sistem, sistem operasi mendefinisikan urutan ACE pilihan dalam DACL.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk