對於要讓外部系統觸發你的 webhook 或 MCP Server(例如 n8n 的 MCP Server Trigger)時,常見的驗證選項有 Bearer Auth 與 Header Auth。兩者都能驗證請求來源,但設計理念與安全性不同。本文用實務角度說明如何使用、各自優缺點,以及在什麼情境下該選哪一個。
什麼是 Bearer Auth
- 核心觀念:任何「持有」權杖(token)的人就可存取受保護資源。
- 常見型態:JWT(JSON Web Token)或其他不透明的 access token。
- 標準背景:屬於 OAuth 2.0 的權杖使用方式(RFC 6750)。
- HTTP 標頭固定格式:Authorization: Bearer <token>
- 伺服器端驗證流程:
- 解析 Authorization 標頭。
- 檢查 token 是否有效(簽章、發行者、受眾、時效等)。-(選用)驗證 scope/權限。
- 範例(curl):
textcurl -X POST https://example.com/webhook \
-H "Authorization: Bearer eyJhbGciOi..." \
-H "Content-Type: application/json" \
-d '{"event":"ping"}'
什麼是 Header Auth
- 核心觀念:用自訂的 HTTP 標頭與值(通常是 API Key)進行驗證。
- 常見作法:X-API-Key: <your_api_key>,或 X-Auth-Token: <token>。
- 沒有統一標準,名稱與格式可自訂,實作簡單直接。
如何使用 Header Auth
- 自訂一個固定的標頭名稱與密鑰值。
- 伺服器端驗證流程:
- 檢查該標頭是否存在且值正確。
- 範例(curl):
textcurl -X POST https://example.com/webhook \
-H "X-API-Key: sk_live_abc123" \
-H "Content-Type: application/json" \
-d '{"event":"ping"}'
安全性比較
- 標準化程度
- Bearer Auth:高度標準化(OAuth 2.0 / RFC 6750),與多數雲服務與框架相容。
- Header Auth:非標準,易用但可攜性與一致性較低。
- 金鑰/權杖生命週期
- Bearer Auth:通常具備短時效(例如 15 分鐘),可降低洩漏風險;可搭配 refresh token 更新。
- Header Auth:多為長期靜態 API Key;若洩漏,風險持續至你手動輪替。
- 權限範圍
- Bearer Auth:可設計 scope/claims,細緻授權(唯讀、限定資源等)。
- Header Auth:多半是全域權限或粗粒度授權,不易精細控管。
- 實作成本
- Bearer Auth:需要 token 簽發、驗證機制(例如 JWT 驗簽、黑名單、時效檢查)。
- Header Auth:設定一組固定金鑰即可,導入成本低。
- 結論(要點)
- 重視安全、可擴充與權限細緻化時,優先選 Bearer Auth。
- 內部服務、原型驗證或低風險場景,可採 Header Auth 求快。
在 n8n(MCP Server Trigger)中的實作建議
- 選擇 Bearer Auth:
- 在節點設定中填入你要驗證的 Bearer Token。
- 來自客戶端的請求必須帶 Authorization: Bearer <token>。
- 適合對外服務、需要更嚴謹控管的整合。
- 選擇 Header Auth:
- 指定自訂標頭名稱(例如 X-API-Key)與值。
- 來自客戶端的請求需帶上該標頭與正確值。
- 適合內網或暫時性整合,未來若向外開放建議升級至 Bearer。
最佳實務清單(不論選哪一種都應採用)
- 強制 HTTPS/TLS:避免權杖或金鑰被竊聽。
- 最小權限與分權:
- Bearer:用 scope 限縮可用操作與資源。
- Header:至少使用不同金鑰對應不同用途/環境(dev/stage/prod)。
- 設定時效與輪替:
- Bearer:權杖短時效+可撤銷機制(黑名單或版本號)。
- Header:定期輪替 API Key,建立撤銷流程與緊急更換指引。
- 要求重放保護(進階):
- 要求請求包含 timestamp、nonce,伺服器驗證時效窗格與唯一性。
- 或採用 HMAC 簽名(body + timestamp),伺服器端驗證簽章。
- 網路層限制:
- 搭配 IP allowlist、防火牆/WAF 規則、速率限制(Rate Limit)。
- 稽核與監控:
- 記錄成功與失敗驗證、來源 IP、User-Agent、失敗原因。
- 建立告警門檻(例如失敗率上升、異常流量激增)。
- 錯誤處理:
- 不要在錯誤訊息中透露金鑰格式或驗證細節。
- 對未授權請求回應 401;權限不足用 403。
情境選擇指南
- 對外 API、第三方整合、多服務協作
- 優先使用 Bearer Auth,受益於標準化、短時效與細緻權限控管。
- 內部自動化、私有網段、原型測試
- Header Auth 可快速上線,配合 IP 限制、金鑰輪替與稽核即可滿足多數需求。
- 高敏感資料或需法規遵循
- Bearer Auth 搭配短效權杖、細緻 scope、重放保護與稽核紀錄。
常見問題速覽
- Bearer 一定要用 JWT 嗎?
- 不一定。JWT 常見且易於無狀態驗證,但也可用不透明 token,由伺服器查詢狀態。
- 可以同時用 Authorization 與自訂 Header 嗎?
- 可以,但需明確紀錄與文件化,避免客戶端混淆;且伺服器端要定義清晰優先順序。
- 為什麼我用 Header Auth 也覺得很安全?
- 若搭配 HTTPS、IP 限制、金鑰輪替、稽核與速率限制,Header Auth 在許多內部場景已足夠。但一旦要對外、需要細緻授權或可撤銷能力,還是建議改用 Bearer。
結語
- 想要安全與擴充性並重,選擇 Bearer Auth,建立完善的權杖生命週期與權限設計。
- 想要快速導入且使用範圍受控,選擇 Header Auth,並用網路與作業流程上的管控來補強。
- 不論何者,HTTPS、最小權限、稽核監控與金鑰/權杖輪替,都是不可省略的底線。












