Hướng dẫn Admin — Auth Config và Webhook
Tài liệu mô tả thao tác trên Admin Panel để cấu hình TenantAuthConfig và TenantWebhook. Phần nghiệp vụ, bảng dữ liệu và payload: xem Tổng quan hệ thống Webhook và Thêm cấu hình Webhook mới.
Mục lục
- Quyền và điều hướng
- Tạo Auth Config
- Tạo Webhook Config
- Liên kết Auth với Webhook
- Ví dụ nhanh
- Xử lý sự cố
- Ghi chú bảo mật và validation
Quyền và điều hướng
Quyền cần có
TENANT_AUTH_CONFIG— quản lý Auth ConfigTENANT_WEBHOOK— quản lý Webhook Config
Menu
| Mục đích | Đường đi |
|---|---|
| Auth Config | Module Core → Tenant Auth Configs |
| Webhook Config | Module Core → Tenant Webhooks |
Tạo Auth Config
Luồng chung
- Vào Tenant Auth Configs → Create
- Điền Tenant ID, Name (cặp
tenantId+namephải duy nhất) - Chọn Auth Type và điền giá trị tương ứng
- Cấu hình Auth Location (header hoặc query + tên key)
- Save — ghi nhớ ID nếu cần gắn vào webhook
Các loại xác thực (UI)
| Auth Type | Ý nghĩa | Giá trị nhập |
|---|---|---|
| API Key (1) | Gửi khóa API | Chuỗi API key |
| Basic Auth (2) | Basic Authentication | Username + password (hệ thống mã hóa Base64 khi gửi) |
| HMAC (3) | Chữ ký HMAC-SHA256 trên payload | Secret dùng để ký |
Auth Location
- Header hoặc Query parameter
- Key name: ví dụ
X-API-Key,Authorization,X-Signature(tùy endpoint đối tác)
Gợi ý mặc định thường gặp: API Key → X-API-Key; Basic → Authorization (có prefix Basic ). Chi tiết định dạng auth_location và bảng trường: Thêm cấu hình Webhook mới.
Tạo Webhook Config
- Vào Tenant Webhooks → Create
- Tenant ID — bắt buộc
- Code — mã định danh chức năng (cặp
tenantId+codeduy nhất), ví dụNEBULA_SIGNAL_UPDATE - Name — tên mô tả
- Endpoint — URL HTTPS nhận POST, bắt đầu bằng
https:// - Timeout (ms) — mặc định thường là
30000; phải > 0 - Retry policy — Exponential Backoff (khuyến nghị) hoặc Immediate
- Status — ACTIVE / INACTIVE / SUSPENDED
- Tenant Auth Config IDs (tùy chọn) — chọn từ dropdown hoặc nhập danh sách ID cách nhau bởi dấu phẩy, ví dụ
1, 2, 3
Lưu ý: Nếu endpoint đối tác không cần xác thực, không bắt buộc tạo Auth Config — cứ bỏ trống trường Tenant Auth Config IDs (không chọn, không nhập ID). Hệ thống vẫn gửi webhook bình thường, không gắn header/query auth.
Liên kết Auth với Webhook
- Có thể gắn nhiều Auth Config cho một webhook; thứ tự trong danh sách là thứ tự áp dụng.
- Nếu hai config cùng đặt vào cùng một header key, bản ghi sau ghi đè bản trước.
- Query parameters được merge vào URL khi gửi.
- Không cần auth: để trống Tenant Auth Config IDs — không cần điền placeholder hay giá trị giả.
Ví dụ nhanh
Một webhook + API Key
- Tenant Auth Configs → Create: Tenant ID
1, NameNebula API Key, type API Key, keysk_live_..., Location Header, KeyX-API-Key→ Save → ID ví dụ5. - Tenant Webhooks → Create: cùng tenant, Code
NEBULA_SIGNAL_UPDATE, Endpointhttps://api.partner.com/webhook/signals, Timeout30000, Retry Exponential Backoff, Status ACTIVE, Auth IDs5→ Save.
Kết quả: request webhook có header X-API-Key: ….
Một webhook + API Key và Basic
Tạo hai Auth Config (API Key + Basic), sau đó tại webhook nhập Tenant Auth Config IDs dạng 6, 7 đúng thứ tự mong muốn. Hệ thống gửi đủ các header/query đã cấu hình.
Clone Auth Config sang tenant khác
Trên danh sách Auth Config → Clone → đổi Tenant ID và/hoặc Name (và secret nếu cần) → tránh trùng ràng buộc unique.
Xử lý sự cố
| Triệu chứng | Hướng xử lý |
|---|---|
Tenant ID + Name must be unique | Đổi Name hoặc xóa bản ghi Auth Config trùng |
Tenant ID + Code must be unique | Đổi Code webhook hoặc xóa config cũ |
Endpoint must start with https:// | Chỉ dùng HTTPS; không dùng http:// |
| Auth Config không có trong dropdown | Tạo Auth Config trước; hoặc nhập trực tiếp ID vào trường Auth IDs |
| Webhook không gửi được | Kiểm tra Status = ACTIVE, URL, auth đã gắn; xem Kiểm tra log và Webhook Execution |
| Giá trị auth bị mask trong list | Hành vi bảo mật; mở View / Edit (nếu có quyền) để xem đầy đủ |
| Không xóa được Auth Config | Gỡ Auth Config khỏi mọi Tenant Webhooks (cột Auth Configs) rồi thử lại |
| Clone lỗi | Đảm bảo tenantId/name (Auth) hoặc code (Webhook) mới không trùng bản ghi khác |
Ghi chú bảo mật và validation
auth_valueđược mã hóa khi lưu DB; UI có thể giải mã khi xem form nhưng mask trong danh sách.- Auth Config: có
authTypethì phải cóauthValue;authLocationphải có key. - Webhook:
endpointbắt đầuhttps://;timeout> 0. Trường auth IDs để trống = gửi không kèm xác thực. Nếu có nhập ID thì từng ID phải tồn tại và hợp lệ.
Hỗ trợ
- Đọc thông báo lỗi trên UI
- Xem integration / execution log theo Kiểm tra log và Webhook Execution
- Xác nhận quyền
TENANT_AUTH_CONFIGvàTENANT_WEBHOOK - Liên hệ team vận hành nếu vẫn bị chặn