it-swarm-id.com

Apa perbedaan antara RBAC dan DAC / ACL?

Apa manfaat dari masing-masing, dan kapan saya harus memilih satu dari yang lain? Apakah ada situasi di mana ini harus digabung?

Apakah Anda memiliki contoh penggunaan umum?

Dan bagaimana dengan MAC, di mana itu cocok?

64
AviD

RBAC (Kontrol akses berbasis peran) didasarkan pada penetapan daftar peran bisnis, dan menambahkan setiap pengguna dalam sistem ke satu peran atau lebih. Izin dan hak istimewa kemudian diberikan untuk setiap peran, dan pengguna menerimanya melalui keanggotaan mereka dalam peran (cukup banyak setara dengan grup). Aplikasi biasanya akan menguji pengguna untuk keanggotaan dalam peran tertentu, dan memberikan atau menolak akses berdasarkan itu.
Discretionary Access Control (DAC) memungkinkan pengguna atau administrator untuk menentukan Daftar Kontrol Akses (ACL) pada sumber daya tertentu (misalnya file, kunci registri, tabel basis data, objek OS, objek OS, dll), Daftar ini akan berisi entri (ACE) yang mendefinisikan setiap pengguna yang memiliki akses ke sumber daya, dan apa hak-hak istimewanya untuk sumber daya itu.

Manfaat utama RBAC daripada DAC, adalah kemudahan manajemen - pada prinsipnya Anda memiliki peran yang sangat sedikit, dikelola secara terpusat, tidak peduli berapa banyak pengguna, dan itu hanya masalah pemberian setiap pengguna peran yang benar; sebagai lawan DAC, di mana untuk setiap pengguna baru (atau perubahan pengguna, atau penghapusan, dll), Anda harus berkeliling ke semua sumber daya yang dia butuhkan akses dan menambahkannya ke daftar.
Di sisi lain, DAC seringkali lebih sederhana, dan umumnya lebih terperinci. Juga, dalam model DAC pemilik data dapat memutuskan siapa yang memiliki akses (jika ia memiliki izin pada data tersebut) dan menambah atau menghapus orang dari daftar.

Contoh DAC yang sangat umum adalah sistem file Windows. Di sisi lain, contoh RBAC yang sangat umum adalah DAC pada server file perusahaan - siapa pun di grup ActiveDirectory "Penjualan" akan memiliki akses ke folder\Sales\shared. Lebih umum adalah grup Administrator di Windows.

MAC adalah Kontrol Akses Wajib, ini dapat dilihat sebagai klasifikasi atau tingkat privasi. Ini paling sering digunakan dalam sistem militer, dan kembali pada masa Mainframe :). Tidak begitu banyak digunakan lagi, meskipun OS saat ini menerapkan rasa ini, seperti Vista/Win7's Integrity Levels.

Untuk meringkas perbedaan:

  • DAC didasarkan pada izin pribadi, RBAC pada izin tingkat "grup"
  • DAC diatur oleh pemilik data, RBAC oleh pemilik sistem (biasanya pengembang menentukan akses yang diberikan untuk setiap peran, dan admin operasional menempatkan pengguna ke dalam peran)
  • Definisi DAC biasanya dilampirkan pada data/sumber daya, sedangkan RBAC biasanya didefinisikan di dua tempat: dalam kode/konfigurasi/metadata (akses peran), dan pada objek pengguna (atau tabel - peran yang dimiliki masing-masing pengguna).
  • Di sisi lain, peran RBAC dikelola secara terpusat (yang dikaitkan dengan peran mana), sedangkan DAC diberikan "pada sumber daya" (mis. Anda mengelola setiap sumber daya secara individual).
  • Definisi izin per peran biasanya statis di RBAC, dan pengguna hanya diberi peran; di DAC izin per sumber daya sering diubah saat runtime.
  • DAC harus dilihat sebagai enumerasi "siapa yang memiliki akses ke data saya", dan RBAC mendefinisikan "apa yang dapat dilakukan pengguna ini".
87
AviD