Credential là gì?
Credential trong n8n là hệ thống quản lý tập trung các thông tin xác thực dùng để kết nối an toàn với các dịch vụ bên ngoài như API, database hoặc ứng dụng web. Nó cho phép lưu trữ API key, OAuth 2.0 token, Basic Auth mà không cần hardcode trực tiếp vào node, giúp workflow dễ bảo trì và bảo mật hơn. Credential được thiết kế để tái sử dụng trên nhiều node và workflow.
Credential có vai trò gì trong n8n?
Credential đóng vai trò trung tâm trong việc xác thực và kết nối tích hợp trong n8n, đảm bảo workflow có thể truy cập dữ liệu từ các dịch vụ mà không lộ thông tin nhạy cảm. Nó hỗ trợ nguyên tắc least privilege bằng cách chỉ cấp quyền tối thiểu cần thiết cho từng kết nối. Nhờ đó, người dùng có thể quản lý, cập nhật hoặc xóa credential một lần duy nhất, áp dụng cho toàn bộ hệ thống.
Credential được dùng như thế nào trong thực tế?
Để sử dụng Credential, truy cập tab Credentials ở sidebar trái trong n8n, chọn New Credential và cấu hình loại xác thực phù hợp. Ví dụ, với API Key, nhập key và base URL; với OAuth 2.0, điền Client ID/Secret cùng scopes. Sau khi lưu, chọn credential trong node tương ứng như HTTP Request để tự động inject thông tin xác thực vào header hoặc query.
Quy trình cơ bản bao gồm các bước sau:
- Chọn loại credential (ví dụ: Basic Auth, Bearer Token, OAuth2).
- Điền thông tin từ dịch vụ bên ngoài (như GitHub OAuth app).
- Test kết nối ngay trong giao diện credential.
- Gán vào node và chạy workflow.
Ví dụ thực tế: Kết nối GitHub API bằng OAuth2, n8n sẽ xử lý token refresh tự động, tránh hết hạn thủ công. Với n8n API tự thân, dùng API key và base URL để chuyển workflow giữa các instance.
Những lưu ý quan trọng về Credential
Credential giúp bảo mật nhưng cần tuân thủ best practices để tránh rủi ro. Luôn áp dụng principle of least privilege: chỉ cấp scopes cần thiết, tránh dùng master key. Kiểm tra quyền chia sẻ credential giữa user hoặc workflow để tránh lộ thông tin.
Một số lưu ý chính:
- Không hardcode secret vào Expression hoặc node; luôn dùng Credential Manager.
- Test credential riêng lẻ trước khi dùng trong production workflow.
- Với self-hosted n8n, bảo vệ database chứa credential bằng encryption.
- Xử lý lỗi như 401 Unauthorized bằng cách kiểm tra scopes hoặc token expiry.
Tránh sai lầm phổ biến như chia sẻ credential công khai hoặc quên cập nhật khi API thay đổi, dẫn đến workflow fail hàng loạt.
Các thuật ngữ liên quan đến Credential
Dưới đây là một số thuật ngữ liên quan trực tiếp đến Credential trong n8n:
- OAuth 2.0: Giao thức xác thực hiện đại hỗ trợ token refresh, thường dùng cho Google, GitHub.
- API Key: Chuỗi khóa đơn giản gửi qua header để xác thực request nhanh chóng.
- Basic Auth: Phương thức encode username:password thành Base64 cho header Authorization.
- Bearer Token: Token gửi trong header
Authorization: Bearer <token>cho API hiện đại.
Các câu hỏi thường gặp
Credential trong n8n khác gì so với hardcode API key?
Credential tập trung quản lý và mã hóa thông tin, dễ cập nhật một nơi cho nhiều node, trong khi hardcode lộ secret và khó bảo trì. Hardcode làm workflow kém bảo mật và không tái sử dụng được. Credential hỗ trợ test độc lập và chia sẻ an toàn.
Tôi có thể chia sẻ Credential giữa các workflow không?
Có, Credential được thiết kế để tái sử dụng trên mọi workflow và node hỗ trợ. Chỉ cần tạo một lần ở Credentials tab, sau đó chọn trong node. Cập nhật credential sẽ tự áp dụng toàn bộ, tiết kiệm thời gian.
Điều gì xảy ra nếu Credential hết hạn hoặc sai?
Workflow sẽ báo lỗi như 401 Unauthorized hoặc 403 Forbidden ở node sử dụng. Kiểm tra logs, test credential riêng, và cập nhật token (OAuth tự refresh nếu cấu hình đúng). Dùng Error Handling node để retry hoặc fallback.
Khi nào nên dùng Generic Credential thay vì predefined?
Dùng Generic Credential cho API không có node sẵn, như custom header hoặc query auth. Predefined hỗ trợ nhanh cho dịch vụ phổ biến như OpenAI. Generic linh hoạt hơn nhưng cần cấu hình thủ công header như Authorization: Basic {{base64(user:pass)}}.