n8n安全API密钥验证Webhook工作流 - Set、Webhook、HTTP Request节点应用
n8n工作流,API密钥验证,Webhook安全,HTTP Request,自动化,数据验证,API集成

## 工作流概述

这个n8n工作流演示了通过API密钥保护webhook的基本模式。它作为一个门卫,在允许请求继续之前检查请求头中的有效API密钥。

## 工作原理

### 1. 接收请求
– **Secured Webhook节点**:接收传入的POST请求,期望在x-api-key头中发送API密钥

### 2. API密钥验证
– **Check API Key节点**:从传入请求的头部获取密钥
– 向第二个webhook(Get API Key)发出内部HTTP请求,该webhook充当模拟数据库
– 第二个webhook检索已注册API密钥列表(来自Registered API Keys节点)并过滤以查找与提供的密钥匹配的密钥

### 3. 条件响应
– **API Key Identified节点**:如果找到匹配项,将执行路由到”success”路径,返回200 OK响应和已识别用户的ID
– 如果未找到匹配项,则路由到”unauthorized”路径,返回401 Unauthorized错误

## 设置步骤

### 设置时间:约2分钟

1. **设置凭据**:
– 此工作流对其内部通信使用”Header Auth”
– 转到凭据并创建新的Header Auth凭据
– 可以使用任何名称和值(例如,名称:X-N8N-Auth,值:my-secret-password)
– 在所有四个webhook/HTTP Request节点中选择此凭据

2. **添加您的API密钥**:
– 打开Registered API Keys节点,这是您的模拟数据库
– 编辑数组以包含要授权的user_id和api_key对

3. **激活工作流**

4. **测试**:
– 使用Test Secure Webhook节点发送请求
– 使用列表中的有效密钥尝试查看成功响应
– 将x-api-key头更改为无效密钥以查看401 Unauthorized错误

## 生产环境部署

将工作流的模拟数据库部分(Get API Key webhook和Registered API Keys节点)替换为真实的数据库节点,如Supabase、Postgres或Baserow来查找密钥。

## 安全优势

这种模式将面向公众的端点与数据源分离,这是一个良好的安全实践。通过内部验证机制,确保只有授权的API密钥才能访问受保护的资源。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。