Anda di halaman 1dari 6

BAB II

PEMBAHASAN

2.1 Penjelasan RBAC ( Role Based Access Control )

RBAC ( Role Based Access Control ) adalah control akses yang merupakan alternative
baru yang merupakan perpaduan mandatory access control (MAC) dan discretionary
access control (DAC). RBAC mengacu pada role based security. RBAC bersifat netral
dan merupakan teknologi control akses yang flexible untuk simulasi DAC dan MAC.
Sebaliknya, MAC dapat mensimulasikan RBAC jika grafik peran dibatasi pada pohon
daripada kumpulan yang diurutkan sebagian. Dalam organisasi, roles dibuat untuk fungsi
kerja yang berbeda. Dengan kata lain peran keanggotaan didasarkan pada kompetensi,
tugas, dan kewenangan.

Role berorientasi pada group, sekumpulan transaksi dibuat. Transaksi disini dapat
merupakan obyek yang berupa program yang berhubungan dengan data. Seorang
admintrator sekuriti dapat menambah dan menghapus transaksi ke dalam sebuah role atau
bahkan menolak user pada suatu role. Dengan mengelompokkan user kedalam role maka
ada memudahkan pada proses otorisasi dan kemampuan audit. Hal ini bertolak
belakangan dengan access list model pada umumnya yang dilakukan dengan jalan
mencari seluruh otorisasi yang ada kemudian mengalokasi hak dan ijin untuk user
tersebut.

Dalam mengembangkan aplikasi, kita tentu membagi-bagi user sesuai fungsinya. Kita
dapat merancang pembagian user sendiri atau kita belajar dari best practice yang pernah
dilakukan. Best practice untuk pembagian akses aplikasi adalah menggunakan RBAC
atau Role Based Access Control. Dalam RBAC ini kita akan membuat Role untuk
masing-masing tingkatan user. Dalam setiap Role ini terdapat berbagai menu yang
diberikan kepada Role ini lengkap dengan permissionnya.

Misal Role Admin Purchasing akan mendapatkan menu Purchase Order dengan
permission Create.

Kemudian Role Purchasing Manager akan mendapatkan menu Purchase Order dan
Purchase Request masing-masing dengan permission Approve.
Secara relasi tabelnya Role -> Menu -> Permission .

Kemudian setiap user akan diberikan satu atau beberapa Role.

Dengan demikan akan terjadi relasi Many to Many untuk User <-> Role.

Dalam sistem keamanan komputer, role-based access control (RBAC) adalah sebuah
pendekatan untuk membatasi akses sistem untuk pengguna yang berwenang. Hal ini
digunakan oleh sebagian besar perusahaan dengan lebih dari 500 karyawan, dan dapat
diimplementasikan melalui mandatory access control (MAC) atau discretionary access
control (DAC). RBAC kadang-kadang disebut sebagai role-based security.

2.2 Manajemen Hak Istimewa Keamanan


Permission adalah persetujuan untuk melakukan suatu operasi pada satu obyek atau lebih
pada RBAC. Obyek dapat berupa sebuah program yang dieksekusi. Tipe operasi dan
control pada RBAC tergantung pada sistem dimana operasi itu dimplemtasikan. Sebagai
contoh adalah operasi read, write, dan execute sedangkan pada manajemen database pada
operasi dapat dikatakan sebagai insert, delete, append dan update.

Role dapat dilihat dari beberapa sudut padang:

 Pengelompokkan berdasarkan organisasi. Cara pandangan klasik ini di hasilkan


dengan membuat beberapa role agar didapat role secara keseluruhan.
 Pengelompokkan berdasarkan hubungan relatif. Role seorang user ditentukan
berdasarkan obyek apa saja yang berhubungan dengan user tersebut. Misalnya role
seorang manajer dapat diberikan berdasarkan apa saja yang dikerjakan oleh manajer
tersebut misalnya, proyek, teknologi, atau staff.
 Pengelompokkan berdasarkan kemudahan. Hal ini merupakan cara pandang klasik
dimana otorisasi dapat diubah secara fleksibel.
 Pengelompokkan berdasarkan dari seleksi. Pengelompokkan ini dilakukan dengan
sesuai dengan kapabilitas atau sesuai dengan proses alur kerja.
2.3 Penerapan RBAC( Role Based Access Control ) Menggunakan SQL

Pada diagram di bawah, hubungan antara Pengguna (u), Grup / Role (g), dan Izin (p)
dengan tiga tabel, yaitu u_g, g_p, dan g_g, cukup fleksibel untuk mencakup semua tree
atau jaringan

Semua pernyataan berikut benar dalam model ini:

 seorang pengguna dapat ditautkan ke banyak grup;


 grup dapat ditautkan ke banyak pengguna;
 izin dapat ditautkan ke banyak grup;
 sebuah grup dapat dihubungkan ke banyak izin;
 sebuah grup dapat dihubungkan ke banyak grup anak;
 sebuah grup dapat ditautkan ke banyak grup induk;

Namun, bagian yang sulit dari model ini adalah bagaimana menangani hierarki role /
grup dalam SQL karena sifat rekursif dari navigasi antara hubungan grup (g_g).

Salah satu solusinya adalah dengan menggunakan SQL stored routines. Berikut ini
adalah desain di MySQL:

 call get_permisions('u2');
 call get_users('p1');
Untuk mendapatkan semua izin pengguna atau semua pengguna yang memiliki izin.

Untuk Syntax Query nya adalah sebagai berikut:

DROP PROCEDURE IF EXISTS test.get_users;


CREATE PROCEDURE test.`get_users`(p VARCHAR(20))
BEGIN
SELECT group_concat(gID)
INTO @groups
FROM g_p
WHERE pID = p;

SELECT DISTINCT uID


FROM u_g
WHERE FIND_IN_SET(gID, parents(@groups)) > 0;
END;

DROP PROCEDURE IF EXISTS test.get_permisions;


CREATE PROCEDURE test.`get_permisions`(u VARCHAR(20))
BEGIN
SELECT group_concat(gID)
INTO @groups
FROM u_g
WHERE uID = u;

SELECT DISTINCT pID


FROM g_p
WHERE FIND_IN_SET(gID, children(@groups)) > 0;
END;

DROP FUNCTION IF EXISTS test.children;


CREATE FUNCTION test.`children`(parents VARCHAR(255)) RETURNS
varchar(255)
CHARSET utf8
BEGIN
DECLARE x VARCHAR(255);
SET @@SESSION.max_sp_recursion_depth = 25;
CALL get_children(parents, x);
RETURN x;
END;

DROP PROCEDURE IF EXISTS test.get_children;


CREATE PROCEDURE test.`get_children`(IN parents VARCHAR(255),
OUT children VARCHAR(255))
BEGIN
DECLARE x VARCHAR(255);
SET children = parents;

SELECT group_concat(DISTINCT child)


INTO x
FROM g_g
WHERE FIND_IN_SET(parent, parents);
IF (x IS NOT NULL)
THEN
CALL get_children(x, x);
SET children = concat(parents, ',', x);
END IF;
END;

DROP FUNCTION IF EXISTS test.parents;


CREATE FUNCTION test.`parents`(children VARCHAR(255)) RETURNS
varchar(255)
CHARSET utf8
BEGIN
DECLARE x VARCHAR(255);
SET @@SESSION.max_sp_recursion_depth = 25;
CALL get_parents(children, x);
RETURN x;
END;

DROP PROCEDURE IF EXISTS test.get_parents;


CREATE PROCEDURE test.`get_parents`(IN children VARCHAR(255),
OUT parents VARCHAR(255))
BEGIN
DECLARE x VARCHAR(255);
SET parents = children;

SELECT group_concat(DISTINCT parent)


INTO x
FROM g_g
WHERE FIND_IN_SET(child, children);

IF (x IS NOT NULL)
THEN
CALL get_parents(x, x);
SET parents = concat(children, ',', x);
END IF;
END;
BAB III
PENUTUP

3.1 Kesimpulan

Role-Based Access Control (RBAC) adalah sebuah mekanisme pengelolaan sejumlah


hak akses yang lebih fleksibel dibandingkan dengan model kontrol akses Mandatory
Access Control (MAC) maupun Discretionary Access Control (DAC). Hak akses tidak
harus diberikan kepada subjek yang sama dalam waktu yang bersamaan dalam RBAC
untuk menjaga keamanan sistem dari pihak yang tidak diinginkan. RBAC sebenarnya
adalah bentuk MAC, tetapi tidak didasarkan pada persyaratan keamanan yang bertingkat
seperti diterapkan pada aplikasi militer. Kebijakan akses yang dilakukan oleh MAC
berdasarkan ketentuan yang ditentukan oleh otoritas pusat, bukan dilakukan oleh para
pemilik individu dari objek tersebut, dan pemilik tidak dapat mengubah hak akses yang
telah dibuat. MAC memperlakukan kontrol akses berdasarkan keamanan informasi yang
melekat pada pengguna dan objek.

Anda mungkin juga menyukai