Autentikasi & Kontrol Akses
Mengapa Ini Topik Terpenting?
Semua yang Anda bangun di n8n hanya seaman akses yang melindunginya. Instance n8n Anda menyimpan:
- API keys (OpenAI, Slack, dll.)
- Data klien & CRM
- Akses email & payment integration
- Kredensial setiap sistem yang terhubung
Jika seseorang masuk ke instance Anda, mereka memegang kunci ke SEMUA sistem yang pernah Anda hubungkan.
Dua Titik Masuk yang Harus Dilindungi
┌──────────────────────────────────────────────────┐
│ TITIK MASUK n8n │
├──────────────────────┬───────────────────────────┤
│ 1. Admin Panel UI │ 2. Public API Access │
├──────────────────────┼───────────────────────────┤
│ • Login dashboard │ • API Keys & Tokens │
│ • View/edit/delete │ • Client ID & Secret │
│ workflow │ • HTTP Request auth │
│ • Akses credential │ • Webhook endpoints │
│ vault │ │
├──────────────────────┼───────────────────────────┤
│ JUGA lindungi: │ │
│ • Hosting panel │ │
│ (Hostinger, dll) │ │
│ • VPS access │ │
└──────────────────────┴───────────────────────────┘Jangan Pernah Hard-code Keys!
Ini kesalahan paling umum dan paling berbahaya:
| Metode | Aman? | Alasan |
|---|---|---|
| Credential Manager n8n | ✅ | Terenkripsi, tidak muncul di JSON export |
| Environment Variables | ✅ | Tersimpan di level server (cloud-hosted) |
| Hard-code di Function Node | ❌ | Muncul saat copy/export workflow |
| Hard-code di HTTP Request | ❌ | Terlihat saat workflow di-share |
| Hard-code email/nomor HP | ❌ | Terekspos saat JSON dibagikan |
Kisah Nyata
Instruktur pernah meng-hardcode email utamanya di workflow yang di-share di YouTube (400+ views). Hasilnya: berbulan-bulan menerima email random dari orang-orang yang menjalankan workflow tersebut.
Checklist Sebelum Sharing Workflow
╔═══════════════════════════════════════════════════════╗
║ SEBELUM SHARE WORKFLOW (JSON EXPORT): ║
╠═══════════════════════════════════════════════════════╣
║ ║
║ 1. Export workflow sebagai JSON ║
║ 2. Buka di text editor (Notepad/VSCode) ║
║ 3. Cari: Nama Anda, email, nomor HP ║
║ 4. Cari: API key, token, password ║
║ 5. Cari: Nama klien, data sensitif ║
║ 6. Hapus/ganti semua yang ditemukan ║
║ 7. Baru share ke klien/publik ║
║ ║
╚═══════════════════════════════════════════════════════╝Variabel di n8n (Cloud-hosted)
Untuk pengguna n8n Cloud, tersedia fitur Variables:
- Buka Settings → Variables
- Buat variabel seperti
openai_key - Referensikan di credential dengan expression mode
- Sayangnya fitur ini tidak tersedia di self-hosted community edition
Manajemen User & Role
n8n menyediakan sistem user dengan 2 role:
| Role | Akses | Gunakan untuk |
|---|---|---|
| Admin | Penuh (CRUD workflow, credentials, settings) | Anda sendiri |
| Member | Terbatas | Intern, subordinat, junior |
Tips: Selalu berikan akses Member kepada bawahan/intern. Jangan pernah share akun Admin.
Kesimpulan
- Akses kontrol adalah kontrak kepercayaan dengan klien
- Satu insiden keamanan bisa menghancurkan reputasi agensi
- Gunakan credential manager, jangan hard-code
- Verifikasi JSON sebelum sharing
- Intern/junior mendapat akses Member, bukan Admin