Nodeflux Central
Konsep Dasar

Keamanan & Akses

Memahami RBAC (Role-Based Access Control) dan dua mekanisme otentikasi yang digunakan Lenz.

Apa yang Akan Anda Pelajari

Lenz adalah sistem yang menangani data sensitif — wajah, plat kendaraan, rekaman video. Karena itu, kontrol akses adalah hal mendasar. Halaman ini menjelaskan dua konsep penting:

  • RBAC — siapa boleh melakukan apa di Lenz
  • Otentikasi — cara membuktikan identitas saat mengakses sistem (UI maupun API)

RBAC (Role-Based Access Control)

RBAC adalah model kontrol akses yang berjenjang. Modelnya dibangun dari tiga konsep:

memiliki terdiri dari banyak berlaku untuk User Role Permission Resource
IstilahPenjelasanContoh
UserAkun individu yang login ke Lenz"siti.rahayu"
RoleKumpulan permission yang diberi nama"Operator", "Supervisor", "Admin"
PermissionAksi yang diizinkan pada sebuah resource"boleh read stream"
ResourceObjek di sistem yang aksesnya dikendalikanstream, enrollment, alert-rule, site

Contoh Role

RoleBisa Melakukan
OperatorLihat stream, lihat event, lihat alert
SupervisorSemua akses Operator + buat/edit alert rule
Enrollment OfficerKelola data wajah dan plat enrollment
AdministratorSemua akses penuh termasuk manajemen user

Bagaimana RBAC Diberlakukan

  • Setiap halaman dan aksi di Lenz memeriksa permission sebelum menampilkan data
  • Jika user tidak punya permission, fitur tersebut tidak ditampilkan atau menolak request dengan error 403 Forbidden
  • Role dan permission dikelola oleh administrator melalui menu User Access

RBAC bersifat default deny: jika role tidak secara eksplisit memiliki permission untuk sebuah aksi, aksi itu tidak diizinkan. Ini lebih aman daripada model "default allow".


Otentikasi

Otentikasi adalah proses membuktikan identitas Anda ke sistem. Lenz mendukung dua mekanisme, masing-masing untuk konteks berbeda.

login integrasi Pengguna Manusia JWT TokenAuthorization: Bearer Sistem Lenz Aplikasi / Service Eksternal API KeyX-Api-Key

JWT Token (untuk User)

JWT (JSON Web Token) digunakan saat manusia login ke Dashboard Lenz. Cara kerjanya:

  1. User memasukkan username & password di halaman login
  2. Sistem mengembalikan JWT yang berlaku untuk durasi tertentu
  3. Setiap request berikutnya menyertakan JWT di header Authorization: Bearer <token>
  4. Saat token mendekati kadaluarsa, sistem otomatis refresh tanpa mengganggu user
GET /api/streams
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Cocok untuk: penggunaan Dashboard sehari-hari, akses dari aplikasi yang punya alur login.

API Key (untuk Service)

API Key digunakan untuk integrasi service-to-service — misalnya aplikasi internal Anda yang perlu mengirim atau membaca data dari Lenz secara otomatis, tanpa ada user yang login.

GET /api/streams
X-Api-Key: lenz_sk_a1b2c3d4e5f6...

Karakteristik API Key:

  • Tidak ada masa berlaku otomatis — tetap aktif sampai dinonaktifkan administrator
  • Dibuat oleh administrator melalui menu User Access → API Keys
  • Dapat dicabut kapan saja jika dicurigai bocor
  • Memiliki permission tersendiri — sama seperti role user

Jaga API Key seperti password. Jangan commit API Key ke repository Git, jangan kirim via channel chat publik. Jika curiga API Key bocor, segera nonaktifkan di Dashboard dan buat yang baru.

Memilih Mekanisme

KonteksPakai
User login ke DashboardJWT (otomatis dari proses login)
Aplikasi mobile / web pihak AndaJWT (login dengan kredensial user)
Backend script otomatisAPI Key
Integrasi sistem eksternalAPI Key
Webhook receiver memvalidasi callerAPI Key

Best Practice

  1. Prinsip Least Privilege — beri user hanya permission yang benar-benar dibutuhkan, jangan default ke role Administrator
  2. Gunakan API Key terpisah per integrasi — agar mudah dicabut jika hanya satu integrasi yang bermasalah
  3. Rotasi API Key secara berkala — terutama untuk integrasi yang berjalan jangka panjang
  4. Audit log secara rutin — periksa siapa melakukan apa kapan melalui menu Audit Logs

Selanjutnya

On this page