n8n Credentials Management: จัดการรหัสผ่านและ API Keys อย่างปลอดภัย
การจัดการ Credentials อย่างถูกต้องเป็นเรื่องสำคัญมากสำหรับความปลอดภัยของระบบ automation บทความนี้จะสอนวิธีจัดการ credentials ใน n8n อย่างมืออาชีพ
Credential Types ใน n8n
1. Built-in Credentials
n8n มี credential types สำเร็จรูปสำหรับบริการยอดนิยม:
- Google Sheets API
- Slack API
- Notion API
- Airtable API
- GitHub API
- Stripe API
- และอีกมากมาย...
2. Generic Credentials
สำหรับบริการที่ไม่มี built-in:
- Header Auth: API Key ใน header
- Query Auth: API Key ใน URL query
- Basic Auth: Username + Password
- OAuth2: Token-based authentication
- Custom Auth: สร้าง format เอง
Creating Credentials
วิธีสร้าง Credentials
1. ไปที่ Credentials (ซ้ายล่าง)
2. คลิก "Add Credential"
3. เลือก type (เช่น Google Sheets API)
4. ตั้งชื่อที่จำง่าย
5. กรอกข้อมูลตามที่ระบบขอ
6. Test และ Save
ตั้งชื่อ Credential ที่ดี
❌ ชื่อไม่ดี:
- "API Key"
- "My Creds"
- "Test"
✅ ชื่อที่ดี:
- "Google Sheets - Production"
- "Slack - Marketing Team"
- "Stripe - Live Account"
- "Notion - Company Workspace"
Pattern: [Service] - [Environment/Purpose]
Authentication Types
1. API Key Authentication
เมื่อไหร่ใช้:
- REST APIs ส่วนใหญ่
- Third-party services
วิธีตั้งค่า:
1. เลือก "Header Auth" หรือ "Query Auth"
2. ระบุ header name (เช่น X-API-Key, Authorization)
3. ใส่ API Key value
2. Basic Authentication
เมื่อไหร่ใช้:
- HTTP Basic Auth
- Legacy APIs
วิธีตั้งค่า:
1. เลือก "Basic Auth"
2. ใส่ Username
3. ใส่ Password
4. n8n จะ encode เป็น Base64 ให้
3. OAuth2
เมื่อไหร่ใช้:
- Google APIs
- Microsoft APIs
- Social login
วิธีตั้งค่า:
1. สร้าง OAuth App ใน provider
2. ได้ Client ID และ Client Secret
3. ใส่ใน n8n credential
4. Authorize ผ่าน browser
OAuth2 Flows:
- Authorization Code (มี user login)
- Client Credentials (server-to-server)
4. Bearer Token
เมื่อไหร่ใช้:
- JWT tokens
- Personal Access Tokens
วิธีตั้งค่า:
1. เลือก "Header Auth"
2. Name: Authorization
3. Value: Bearer your-token-here
Security Best Practices
1. ไม่ Hardcode Credentials
❌ ไม่ดี - Hardcode ใน Expression:
{{ 'sk-1234567890abcdef' }}
✅ ดี - ใช้ Credential:
{{ $credentials.apiKey }}
2. แยก Environment
สร้าง credentials แยกสำหรับ:
Development:
- "Stripe - Test Mode"
- "Database - Dev"
- "Email - Sandbox"
Production:
- "Stripe - Live Mode"
- "Database - Prod"
- "Email - Production"
→ ป้องกันการใช้ผิด environment
3. Principle of Least Privilege
ให้ credentials มีสิทธิ์เท่าที่จำเป็น:
❌ ไม่ดี:
- Admin API key ที่ทำได้ทุกอย่าง
✅ ดี:
- Read-only key สำหรับ workflow ที่แค่อ่านข้อมูล
- Limited scope key สำหรับ specific actions
4. Rotate Credentials Regularly
ตั้งการ rotate credentials:
- API Keys: ทุก 90 วัน
- Passwords: ทุก 60 วัน
- Tokens: ตาม expiry
Checklist:
☐ สร้าง key/token ใหม่
☐ อัปเดตใน n8n
☐ Test workflows
☐ Revoke key เก่า
5. Audit Credential Usage
ติดตามว่า credential ใช้ที่ไหน:
1. ไปที่ Credentials
2. คลิก credential ที่ต้องการ
3. ดู "Used in" section
4. Review workflows ที่ใช้
→ ลบ credentials ที่ไม่ได้ใช้
Environment Variables
ใช้ ENV Variables
สำหรับ self-hosted n8n:
docker-compose.yml:
environment:
- MY_API_KEY=sk-xxxxx
- DATABASE_URL=postgres://...
ใน n8n:
{{ $env.MY_API_KEY }}
{{ $env.DATABASE_URL }}
Encryption
n8n เข้ารหัส credentials ด้วย:
1. N8N_ENCRYPTION_KEY
- ต้องตั้งค่าเอง (self-hosted)
- รักษาให้ปลอดภัย
- อย่าทำหาย (ถอดรหัสไม่ได้)
docker-compose.yml:
environment:
- N8N_ENCRYPTION_KEY=your-very-long-secret-key
Sharing Credentials
Share within Team
n8n Cloud & Enterprise:
1. ไปที่ Credentials
2. คลิก credential → Share
3. เลือก users/teams
4. กำหนด permission (Use/Edit)
Self-hosted:
- ใช้ shared credentials ผ่าน config
- หรือ export/import credentials
Export/Import (Self-hosted)
Export:
n8n export:credentials --all --output=creds.json
Import:
n8n import:credentials --input=creds.json
⚠️ WARNING:
- Exported file มี sensitive data
- เก็บอย่างปลอดภัย
- ลบหลังใช้งาน
Troubleshooting
Credential Test Fails
Common issues:
1. API Key expired/revoked
→ สร้างใหม่
2. Wrong scope/permissions
→ ตรวจสอบ API permissions
3. IP whitelist
→ เพิ่ม n8n server IP
4. Rate limiting
→ รอสักครู่แล้วลองใหม่
5. OAuth token expired
→ Re-authorize
OAuth2 Issues
"Invalid redirect URI":
→ เพิ่ม n8n callback URL ใน OAuth app
"Token expired":
→ Delete credential แล้วสร้างใหม่
"Insufficient scope":
→ เพิ่ม required scopes ใน OAuth app
Credential Templates
Google APIs
1. ไป Google Cloud Console
2. สร้าง Project
3. Enable API ที่ต้องการ
4. สร้าง OAuth consent screen
5. สร้าง OAuth credentials
6. ใส่ใน n8n:
- Client ID
- Client Secret
7. Authorize
Slack
1. ไป api.slack.com
2. สร้าง App
3. เพิ่ม Bot Token Scopes ที่ต้องการ
4. Install to Workspace
5. Copy Bot Token (xoxb-...)
6. ใส่ใน n8n credential
Notion
1. ไป notion.so/my-integrations
2. สร้าง Integration
3. Copy Internal Integration Token
4. Share pages กับ integration
5. ใส่ใน n8n credential
Security Checklist
☐ ใช้ unique credentials per environment
☐ ใช้ least privilege principle
☐ ตั้ง N8N_ENCRYPTION_KEY (self-hosted)
☐ Rotate credentials ทุก 90 วัน
☐ Audit unused credentials
☐ ไม่ hardcode secrets ใน workflows
☐ Backup encryption key อย่างปลอดภัย
☐ ใช้ OAuth แทน API key ถ้าได้
☐ Enable 2FA บน service accounts
☐ Log credential access (Enterprise)
สรุป
Credential Management Essentials:
- Naming Convention: ตั้งชื่อให้ชัดเจน
- Separation: แยก dev/prod credentials
- Least Privilege: ให้สิทธิ์เท่าที่จำเป็น
- Rotation: เปลี่ยนรหัสผ่านเป็นประจำ
- Encryption: ใช้ encryption key ที่แข็งแกร่ง
Security Tips:
- อย่า hardcode credentials
- Audit การใช้งานเป็นประจำ
- ลบ credentials ที่ไม่ใช้
- ใช้ OAuth2 ถ้าเป็นไปได้
- Backup encryption key
อ่านเพิ่มเติม:
เขียนโดย
AI Unlocked Team
บทความอื่นๆ ที่น่าสนใจ
วิธีติดตั้ง FFmpeg บน Windows และ Mac: คู่มือฉบับสมบูรณ์
เรียนรู้วิธีติดตั้ง FFmpeg บน Windows และ macOS พร้อมการตั้งค่า PATH อย่างละเอียด เพื่อใช้งานโปรแกรมตัดต่อวิดีโอและเสียงระดับมืออาชีพ
04/12/2568
สร้าง AI-Powered SaaS: จากไอเดียสู่ผลิตภัณฑ์
คู่มือครบวงจรในการสร้าง AI-Powered SaaS ตั้งแต่การวางแผน พัฒนา ไปจนถึง launch และ scale รวมถึง tech stack, pricing และ business model
03/02/2568
AI Security: วิธีใช้ AI อย่างปลอดภัย
เรียนรู้แนวทางการใช้ AI อย่างปลอดภัย ครอบคลุม prompt injection, data privacy, API security และ best practices สำหรับองค์กร
02/02/2568