Prinsip Dasar RBAC

RBAC muncul untuk menjawab ketidakmampuan DAC (Discretionary Access Control) dan MAC (Mandatory Access Control). Tidak sebagaimana ACL (Access Control List) yang menyelesaikan masalah konkret dengan implementasi yang nyata, jurnal resmi yang memperkenalkan RBAC sama sekali tidak menyinggung bagaimana penerapannnya. RBAC sangat abstrak dan didefinisikan dengan formal dalam simbol-simbol kalkulus predikat.

ACL di Linux menitikberatkan pada subjek dengan data ACL-nya melekat di objek. ACL di Cisco menitikberatkan pada objek dengan data ACL-nya melekat pada subjek (router). Sementara itu, RBAC menitikberatkan pada subjek (dalam hal ini role) dengan deskripsi access control-nya melekat di subjek.

ACL baik di Linux maupun di Cisco hanya membatasi predikat pada beberapa hal tertentu saja (read/write/execute dan permit/deny). Predikat di RBAC dikenal dengan nama transaction, yang itu bisa berarti apa saja. Jelasnya begini. Subjek di RBAC cuma satu, yaitu role. Role adalah sekelompok pengguna yang mempunyai hak akses yang sama dalam sistem. Seorang pengguna bisa saja memiliki beberapa role. Setiap role bisa saja memiliki hak akses pada lebih dari satu transaction. Lalu, objeknya di mana? Tidak jelas, RBAC tidak mementingkan ada atau tidaknya objek. Intinya, RBAC cuma berhenti hingga "siapa boleh berbuat apa".

Berikut adalah contoh penerapan RBAC dalam (pura-puranya) sebuah mall daring alias e-commerce.

svg

Di dalam diagram di atas kita melihat banyak objek, semisal pesanan, stok, toko, laporan, dan lain-lain. Tapi, yang dipentingkan bukan objek-objek ini, melainkan transaksi-transaksinya, seperti beli barang, jual barang, tutup toko, dan lain-lain. Role juga bisa bertingkat-tingkat, contohnya role Pegawai Mall bisa lebih dikhususkan lagi menjadi manajer dan layanan pelanggan. Semua pegawai mall bisa melihat semua transaksi, sementara hanya manajer yang bisa menutup lapak.

Sederhana bukan? Karena sederhana inilah, RBAC sering jadi pilihan favorit untuk orang-orang yang baru mulai menerapkan access control. Walaupun sederhana, ternyata RBAC ini cukup ampuh, apalagi jika kebijakan-kebijakan organisasinya belum terlalu rumit. Tapi ternyata RBAC ini masih dipandang kurang mumpuni, utamanya untuk mengatasi masalah-masalah seperti "pegawai hanya boleh mengakses data pekerjaannya di jam kerja dan hanya boleh melalui PC kantor atau HP kantor" atau "hanya pegawai yang berumur lebih dari 40 tahun yang boleh menggunakan ruang olahraga". Untuk hal-hal seperti ini, diciptakanlah metode access control yang dinamakan ABAC atau Attribute-based Access Control.