Keamanan, Autentikasi & Hak Akses
Codeverta ERP menerapkan standar keamanan ketat untuk melindungi akses pengguna dan integritas data enterprise.
1. Metode Autentikasi Pengguna
Codeverta ERP mendukung 4 skema autentikasi utama:
A. JWT Token & Refresh Token Lifecycle
- Access Token: Berumur pendek (short-lived) yang dikirim melalui header
Authorization: Bearer <token>. - Refresh Token: Berumur lebih panjang yang disimpan secara aman untuk memperbarui access token tanpa memaksa login ulang.
- Handoff Token Exchange: Mekanisme penukaran token yang aman saat berpindah antarsistem atau domain tenant.
B. WebAuthn / Passkeys (FIDO2)
- Pengguna dapat mendaftarkan kredensial biometrik (Touch ID, Face ID, Windows Hello, Hardware Security Keys).
- Endpoint:
/api/auth/webauthn/login/begin&/api/auth/webauthn/login/finish/api/auth/webauthn/login/discoverable/begin&/api/auth/webauthn/login/discoverable/finish
C. Google OAuth2 Single Sign-On
- Integrasi login 1-klik dengan Google Account.
- Endpoint:
/api/auth/google/start,/api/auth/google/callback, dan/api/auth/google/status.
D. Password Reset & Captcha Protection
- Lupa kata sandi dilengkapi dengan tantangan Captcha (
/api/auth/password-reset/captcha). - Verifikasi via token email yang dikirim melalui Tencent SES.
2. Authorization & RBAC (Role-Based Access Control)
Hak akses dikontrol melalui 3 pilar:
- Roles: Peran tingkat tinggi (contoh:
Super Admin,Tenant Admin,Sales Manager,Warehouse Manager). - Profiles & Permissions: Profil hak akses terbutir (fine-grained) yang mendefinisikan tindakan spesifik (CREATE, READ, UPDATE, DELETE, SUBMIT, CANCEL).
- Assignments: Pemetaan izin spesifik ke pengguna (
/api/authorization/users/:id/assignments).
3. User Impersonation
Superadmin atau Tenant Admin dapat melakukan Impersonation (bertindak atas nama akun pengguna lain) untuk keperluan dukungan teknis atau audit operasional:
- Start Impersonation:
POST /api/users/:id/impersonate - Stop Impersonation:
POST /api/auth/impersonation/stop
Setiap tindakan selama sesi impersonation dicatat secara otomatis ke dalam Audit Log dengan flag penanda khusus.
4. Security Middlewares & Protection
Codeverta ERP dilengkapi berbagai lapis pertahanan otomatis:
- Global API Rate Limit (
middleware.GlobalAPIRateLimit): Mencegah serangan Denial of Service (DoS) pada tingkat API. - Critical Rate Limit (
middleware.CriticalRateLimit): Pembatasan super ketat pada endpoint sensitif (Login, Register, Password Reset, Capture Lead). - Max Body Size Limit (
middleware.MaxSizeMiddleware): Pembatasan ukuran request body (secara default 50KB, kecuali endpoint upload media/file tertentu hingga 25MB). - Login Attempt Throttling (
middleware.RecordLoginAttempt): Mencatat dan memblokir percobaan login beruntun yang mencurigakan (brute-force defense). - Audit Trail GORM Plugin (
middleware.RegisterAuditPlugin): Merekam setiap perubahan data tingkat database besertauser_id,tenant_id,IP address, danpayload diff.