创建安全的Webhook – 必备指南

工作原理

该工作流程展示了一个通过要求API密钥来保护webhook的基本模式。它充当守门人,在允许请求继续之前检查请求头中的有效密钥。

  1. 传入请求: Secured Webhook节点接收传入的POST请求。它期望在x-api-key头中发送API密钥。
  2. API密钥验证:
    • Check API Key节点从传入请求的头中获取密钥。
    • 然后它向充当模拟数据库的第二个webhook(Get API Key)发出内部HTTP请求。
    • 第二个webhook从Registered API Keys节点检索已注册的API密钥列表,并过滤以找到与提供的密钥匹配的密钥。
  3. 条件响应:
    • 如果找到匹配项API Key Identified节点将执行路由到“成功”路径,返回带有识别用户ID的200 OK响应。
    • 如果未找到匹配项,它将路由到“未授权”路径,返回401 Unauthorized错误。

这种模式将面向公众的端点与数据源分开,这是一种良好的安全实践。

设置步骤

设置时间:约2分钟

该工作流程设计为一个自包含的示例。

  1. 设置凭据: 该工作流程使用“Header Auth”进行内部通信。转到Credentials并创建一个新的Header Auth凭据。您可以使用任何名称和值(例如,名称:X-N8N-Auth,值:my-secret-password)。在所有四个webhook/HTTP请求节点中选择此凭据。
  2. 添加您的API密钥: 打开Registered API Keys节点。这是您的模拟数据库。编辑数组以包含您想要授权的user_idapi_key对。
  3. 激活工作流程。
  4. 测试: 使用Test Secure Webhook节点发送请求。
    • 尝试使用列表中的有效密钥查看成功响应。
    • x-api-key头更改为无效密钥以查看401 Unauthorized错误。

生产环境: 将此工作流程的模拟数据库部分(Get API Keywebhook和Registered API Keys节点)替换为真实的数据库节点,如Supabase、Postgres或Baserow以查找密钥。

(0)
上一篇 2天前
下一篇 2天前

更多相关内容

从零掌握 AI + MCP/Responses API 的自动化设计,节省90%的时间和成本,成为AI自动化专家。学会 n8n、Coze、Dify 接入全球领先 AI应用生态,打造属于你的 AI智能工作流。