1. Home
  2. Konten Bahasa Indonesia
  3. Jenis-jenis Access Control dalam Aplikasi

Jenis-jenis Access Control dalam Aplikasi

3 Minutes
Tags

Access Control

Access Control terhadap user digunakan untuk mengatur dan membuat policy terhadap akses data. Pembuatan Access control bisa memakan waktu karena jenis dan kebutuhannya berbeda-beda, tidak ada model khusus untuk membuat access control bahkan sebuah perusahaan atau satu tim khusus untuk mengelola akses kontrol ini agar menjadi se-dinamis mungkin sesuai kebutuhan perusahaan.

ACL (Access control list)

access-control list (ACL) is a list of permissions. Wikipedia

Sebagai contoh sebuah file memiliki ACL yaitu (alice: read,write; bob: read), ini memberikan akses file kepada alice dan bob dengan masing-masing aksi yang bisa dilakukan.

Dalam konteks pemrograman, SQL sudah menggunakan dengan perintah GRANT, GRANT ALL PRIVILEGES ON kinds TO manuel;.

ACL adalah hal sederhana untuk menggambarkan konsep sederhana dari access control, penggunaannya adalah menghubungkan Resource pada Policy (aturan/kebijakan) dan hanya berlaku untuk Resource tersebut.

RBAC (Role Based Access Control)

Role-based access control is a policy-neutral access control mechanism defined around roles and privileges. Wikipedia

RBAC lebih kompleks karena tidak mengikat aturan pada sebuah file tetapi pada Role. Role ini akan memiliki Permission sebagai validasi akses. Selain itu, Role perlu di Assign pada subject/user. 3 hal utama yang ada di RBAC:

  • Role Assignment
  • Role Authorization
  • Permission Authorization

RBAC memiliki beberapa attribut yaitu:

  • Subject, user atau orang
  • Role, Job function atau nama dari Role
  • permission, Akses ke Resource

Berbeda dengan ACL, RBAC melekatkan Policy pada Role User, tidak lagi melekat pada sebuah resource. Kelebihan dari RBAC adalah bisa membuat Role sebanyak mungkin untuk Resource apapun, kekurangannya tidak ada konteks dan untuk perusahaan besar yang memiliki berbagai departemen akan kewalahan karena banyaknya cabang perusahaan dan struktur organisasi yang besar.

ABAC (Attribute Based Access Control)

ABAC is a method of implementing access control policies that is highly adaptable and can be customized using a wide range of attributes, making it suitable for use in distributed or rapidly changing environments. Wikipedia

Berbeda dengan RBAC yang memiliki Role dengan spesifikasi permission, ABAC lebih kompleks dan fleksibel yang bisa dikondisikan berbeda-beda role, subject, project, hingga data atomic-valued lainnya. Misalnya user A di departemen ABC memiliki semua akses di departemen ABC dan memiliki akses approval dari departemen CDE".

Attribut yang ada dari ABAC adalah

  • Subject, tidak hanya data user, tetapi juga departemen, role, job title.
  • Action, seperti read, delete, view, approve
  • Object Attribute, misal medical record, bank account, departemen, location
  • Contextual (environment), seperti waktu, lokasi, dan skenario.

Selain itu, ABAC memiliki Policies (Kebijakan) seperti:

  • User bisa lihat data dokumen jika dokumen dari departemen yang sama
  • User bisa edit dokumen jika ia pemilik dokumen dan dokumen dalam mode draft
  • Akses ditolak jika lebih dari jam 9 malam.

ABAC sangat fleksibel karena memiliki konteks dan subject tidak hanya tentang user tetapi juga departemen, unit, role, job title. Kontekstual membuat dimensi baru dalam akses kontrol dan menjadi sangat fleksibel. Kita bisa membuat Policy tanpa batas untuk user dan kondisi apapun.

Kesimpulan

Access Control didalam aplikasi bisa sederhana hingga sangat kompleks sesuai kebutuhan dari perusahaan. Tidak ada yang satu tipe atau jenis untuk seluruh kasus, pilihlah sesuai kebutuhan. ACL adalah bentuk sederhana dan simpel, sering digunakan pada akses pada sebuah file. RBAC membuat role sebagai label yang disambungkan langsung pada user. Dilain sisi, ABAC adalah konfigurasi akses yang lebih dinamis karena tidak bergantung pada sebuah role saja tetapi hingga subjek dan konteks. Terima kasih sudah membaca semoga bermanfaat.

Stay Updated: Join The IO Hub

Be the first to get the latest updates, articles, and resources. Join the IO Hub on Telegram.

comments powered by Disqus