Role dan Hak Akses ERP: Panduan Desain Least Privilege
Oleh Apex Horizon Digital
Akses ERP sering dirancang dengan menyalin permission pegawai berpengalaman atau memberi role luas ketika seseorang tidak dapat menyelesaikan task. Cara itu terasa efisien sampai staf dapat membuat dan menyetujui transaksi yang sama, melihat data sensitif di luar tanggung jawabnya, atau tetap memiliki akses setelah pindah jabatan. Least privilege berarti memberikan setiap identity hanya akses yang dibutuhkan untuk pekerjaan resmi. Dalam ERP, desain ini melampaui menu visibility. Sistem harus mengatur action, data scope, workflow state, monetary limit, sensitive field, administration, dan waktu.
Ringkasan utama
- Rancang role dari job task dan prohibited combination, bukan dari request user individual.
- Pisahkan kemampuan create, approve, fulfill, adjust, pay, dan report ketika risiko membutuhkan independent control.
- Uji scenario yang diizinkan dan ditolak, review akses berkala, serta simpan evidence setiap perubahan.
1. Ubah job responsibility menjadi permission statement
Daftarkan recurring task per job function dan tulis akses sebagai verb, object, scope, serta condition. Pernyataan seperti menyetujui purchase order untuk Company A sampai limit tertentu dapat diuji. Label procurement power user tidak dapat diuji. Sertakan view, create, edit, submit, approve, cancel, export, adjust, post, pay, configure, dan administer. Catat apakah akses berlaku untuk company, branch, warehouse, department, project, atau assigned customer set. Definisikan sensitive data terpisah. Warehouse operator dapat fulfill order tanpa melihat margin, bank data, atau payroll. Gunakan job role sebagai reusable bundle dan dokumentasikan exceptional addition dengan expiry date serta owner.
- Verb dan business object
- Data dan organizational scope
- Condition, state, dan limit
- Sensitive-field visibility
2. Bangun separation-of-duties matrix
Petakan critical transaction chain dari request sampai settlement. Tandai step yang menciptakan obligation, memindahkan asset, mengubah balance, atau menyembunyikan evidence. Kombinasi yang perlu ditantang mencakup membuat supplier dan mengganti bank account, meminta dan menyetujui purchase, menerima serta menyesuaikan stock, membuat dan menyetujui credit note, atau menyiapkan serta melepaskan payment. Dalam tim kecil, perfect separation mungkin tidak praktis. Dokumentasikan exception dan tambahkan control seperti independent daily review, approval limit lebih rendah, notification ke owner, atau restricted scope. Matrix harus menyebut risk, prohibited combination, exception approver, dan monitoring evidence.
- Create versus approve
- Fulfill versus adjust
- Prepare versus release payment
- Exception dan compensating review
3. Tambahkan data scope, workflow state, dan approval limit
Role dapat aman untuk satu warehouse tetapi berbahaya untuk seluruh perusahaan. Gabungkan functional permission dengan row-level scope bila tersedia. Batasi action berdasarkan legal entity, business unit, location, project, atau assignment. Definisikan temporary cover dan buat expiry otomatis. Terapkan state serta amount restriction di server atau workflow layer, bukan hanya menyembunyikan button. User yang membuat draft tidak boleh melewati validation melalui integration endpoint. Approval limit perlu memakai currency dan rule split transaction yang jelas. Role assignment, configuration change, audit-log administration, dan bulk export memerlukan approval berbeda karena memperluas dampak melampaui operasi rutin.
- Company dan location scope
- Workflow-state restriction
- Amount dan currency rule
- Administrative access boundary
4. Uji permission dengan positive dan negative case
Buat representative test user untuk setiap role. Verifikasi task yang harus selesai, lalu coba action yang wajib ditolak. Uji direct URL, export, API, mobile view, integration account, bulk action, dan record di luar scope. Pastikan denial message tidak membuka detail sensitif. Uji kondisi setelah record berganti state atau melewati limit. Pertahankan role-permission matrix yang menghubungkan role dengan action, scope, dan constraint, lalu kaitkan evidence ke configuration version. Ketika permission berubah, jalankan ulang affected scenario. Negative testing penting karena authorized flow yang berhasil tidak membuktikan unauthorized path aman.
- Required task berhasil
- Forbidden action ditolak
- Data di luar scope tetap tersembunyi
- Path API dan bulk sama dengan UI
5. Kelola joiner, mover, leaver, dan periodic review
Access request perlu menyebut role, scope, business reason, approver, start date, serta expiry untuk temporary access. Perubahan jabatan harus menghapus akses lama, bukan hanya menambah akses baru. Disable departed user dan rotate integration credential saat ownership berubah. Hindari shared account karena menghancurkan individual accountability. Jalankan periodic review memakai membership, activity, exception, dan sensitive capability aktual. Manager mengonfirmasi job need, sedangkan system owner memverifikasi technical meaning. Hapus unused access dan investigasi dormant privileged account. Simpan audit trail request, approval, change, test, serta review decision. Artifact utamanya memisahkan create, approve, fulfill, adjust, report, pay, export, dan administer.
- Request dan approval evidence
- Penggantian akses saat mover
- Leaver dan credential control
- Periodic certification dan removal