Skip to main content

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:

  1. Roles: Peran tingkat tinggi (contoh: Super Admin, Tenant Admin, Sales Manager, Warehouse Manager).
  2. Profiles & Permissions: Profil hak akses terbutir (fine-grained) yang mendefinisikan tindakan spesifik (CREATE, READ, UPDATE, DELETE, SUBMIT, CANCEL).
  3. 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 beserta user_id, tenant_id, IP address, dan payload diff.