Di banyak perusahaan, masalah kontrol akses baru keliatan saat ada approval yang lolos tanpa wewenang atau saat audit minta bukti siapa menyetujui apa dan kapan. Menguji aplikasi approval dengan pendekatan yang tepat membantu memastikan peran, batas persetujuan, dan jejak audit berjalan konsisten. Panduan ini merangkum langkah uji praktis agar kontrol akses tidak hanya rapi di dokumen, tetapi juga kuat saat dipakai sehari-hari.
1) Tetapkan model kontrol akses dan risiko yang ingin dicegah
Pengujian efektif dimulai dari definisi kontrol akses yang jelas, bukan dari daftar fitur. Peta siapa yang boleh membuat, mengubah, mengajukan, menyetujui, menolak, membatalkan, dan mengekspor data untuk tiap jenis dokumen (misalnya PR/PO, klaim biaya, kontrak, permintaan akses).
Ada dua pendekatan umum: RBAC (role-based access control) dan ABAC (attribute-based access control). RBAC cocok untuk struktur peran yang stabil, sedangkan ABAC berguna jika ada atribut dinamis seperti nilai transaksi, unit kerja, lokasi, kategori pengadaan, atau proyek.
Identifikasi risiko yang relevan, misalnya konflik kepentingan dan segregation of duties (SoD). Contohnya: pembuat permintaan tidak boleh menjadi approver final untuk permintaan yang sama; admin teknis tidak seharusnya bisa menyetujui transaksi bisnis hanya karena punya akses teknis.
Dokumentasikan aturan sebagai matriks akses yang bisa diuji, bukan narasi panjang. Minimal, sertakan peran, aksi, objek (jenis dokumen), kondisi (nilai/limit, unit kerja), dan hasil yang diharapkan (allow/deny + alasan).
2) Rancang skenario uji end-to-end yang meniru alur kerja nyata
Setelah model akses jelas, buat skenario uji berbasis proses. Celah sering muncul di transisi status dan integrasi, jadi uji dari pembuatan dokumen sampai routing persetujuan, delegasi, hingga posting atau arsip.
Pilih kumpulan skenario inti yang mewakili 80% penggunaan dan 20% kasus berisiko tinggi. Enam skenario berikut biasanya cepat menemukan kelemahan kontrol akses:
- SoD: pembuat tidak dapat menyetujui dokumen yang sama, termasuk lewat delegasi atau akun alternatif.
- Limit persetujuan: nilai di bawah dan di atas batas memicu jalur approver yang berbeda.
- Perubahan setelah submit: edit field kunci (vendor, bank, nilai) harus dibatasi atau memicu re-approval.
- Delegasi dan cuti: approver mendelegasikan, namun tetap ada batas waktu, jejak audit, dan pembatasan ruang lingkup.
- Multi-entity: user cabang A tidak bisa melihat atau menyetujui transaksi cabang B tanpa otorisasi eksplisit.
- Ekspor dan API: hak unduh/ekspor serta akses API mengikuti role, bukan sekadar akses halaman.
Gunakan data uji yang realistis namun aman: nama vendor dummy, nomor rekening fiktif, dan nominal yang mencerminkan variasi limit (misalnya Rp25.000.000, Rp100.000.000, Rp250.000.000). Jika aplikasi dipakai untuk pengadaan, samakan uji limit dan hirarki persetujuan dengan kebijakan internal; pembahasan limit biasanya terkait dengan workflow persetujuan dan penetapan limit pada pengadaan.
Jangan lupa uji kondisi paralel: dua approver membuka dokumen bersamaan atau requester mengajukan revisi saat approver memproses. Di situ sering muncul race condition yang membuat status tidak konsisten dan memengaruhi kontrol akses.
3) Uji keamanan: autentikasi, otorisasi, dan jejak audit yang dapat diaudit
Perbedaan terbesar ada pada autentikasi (siapa yang login) dan otorisasi (apa yang boleh dilakukan). Pastikan integrasi SSO (SAML/OIDC) diuji untuk skenario joiner-mover-leaver: user baru, pindah departemen, dan resign, termasuk waktu propagasi perubahan grup/role.
Lakukan pengujian negatif secara sistematis: coba akses fungsi tanpa hak, manipulasi parameter, dan akses langsung ke endpoint. Banyak aplikasi tampak aman di UI, tetapi longgar di API atau URL direct access; gunakan akun role rendah untuk mencoba tindakan sensitif seperti approve, override limit, atau melihat dokumen unit kerja lain.
Audit trail harus lengkap dan tahan uji. Pastikan audit mencatat: identitas user, waktu (dengan zona waktu konsisten), aksi (approve/reject/modify), nilai sebelum-sesudah untuk field kunci, alasan/komentar, serta sumber aksi (UI, mobile, API, integrasi).
Uji juga integritas log dari perspektif admin: apakah admin bisa menghapus atau mengubah log. Jika ada kebutuhan operasional untuk koreksi data, buat mekanisme append-only dengan catatan koreksi, bukan edit diam-diam.
Tambahkan pengujian sesi dan perangkat: timeout, concurrent sessions, dan revocation saat password direset atau token dicabut. Ini penting saat perangkat mobile dipakai untuk approval cepat karena risiko akses berlanjut saat perangkat berpindah tangan.
4) Validasi operasional dan kepatuhan: kontrol berjalan konsisten setelah go-live
Setelah lulus uji teknis, pastikan tim operasional bisa memelihara kontrol akses tanpa membuka celah baru. Uji proses provisioning role: siapa yang boleh memberi role, apakah ada approval untuk perubahan role, dan apakah perubahan role menghasilkan log yang mudah ditelusuri saat audit.
Uji juga pelaporan dan rekonsiliasi: apakah Anda bisa menghasilkan laporan daftar user per role, daftar delegasi aktif, dan transaksi yang melampaui limit tertentu. Saat audit, kemampuan menyajikan bukti dengan cepat sering sama pentingnya dengan kontrol itu sendiri.
Perhatikan klasifikasi data dan prinsip perlindungan data pribadi di Indonesia, terutama jika dokumen berisi NIK, nomor rekening, atau informasi karyawan. Batasi akses berdasarkan kebutuhan kerja, terapkan retensi yang jelas, dan pastikan permintaan akses log dapat dipertanggungjawabkan.
Terakhir, lakukan uji regresi setiap ada perubahan: update role, penambahan jalur persetujuan, atau integrasi baru. Banyak insiden kontrol akses terjadi karena perubahan kecil yang tidak diuji ulang, misalnya role baru yang mewarisi izin terlalu luas.
Jika diuji dengan model risiko yang jelas, skenario end-to-end yang realistis, pengujian keamanan yang tegas, dan validasi operasional, aplikasi approval akan lebih tahan terhadap penyalahgunaan serta lebih siap menghadapi audit.
Catat temuan utama dan jadwalkan uji ulang berkala setelah perubahan kebijakan atau integrasi sistem.
Pelajari Epruvo lebih lanjut: https://epruvo.com