Zscale AI Guard n8n 社区节点
一个生产准备的N8n社区节点,用于与该节点结合 Zscale AI 警卫 API (英语). 这个节点使您能够扫描AI的提示和对安全威胁的反应——毒性,PII,秘密,即时注射,以及更多——直接在您n8n工作流程中.
特征
- 提示扫描 ——扫描用户输入的安全威胁(方向:
IN(中文(简体) ) - 响应 扫描 扫描AI生成的对违反政策行为的回应(指示:
OUT(中文(简体) ) - 双扫描 ——按顺序扫描即时和应答;如果即时被阻断,应答扫描被跳过
- 自动策略解析 —— 当没有配置 Policy ID 时, API 解决与您的 API 密钥相链接的策略
- 未关闭错误处理 —— 启用“ 继续失败” 的内部错误时, 节点返回
action: BLOCK因此,安全永远不会被悄悄地绕过 - 归属元数据 – 丰富 n8n 工作流程上下文的产出(
workflowId, (中文(简体) ),workflowName, (中文(简体) ),executionId, (中文(简体) ),executionMode(中文(简体) ) - 内容大小验证 - 在发送到API之前拒绝超过5 MB的有效载荷
- 配置重试和超时 ——可调整重试计数(最多6个)并请求超时
安装
先决条件
- n8n例(云或自办)- 设置文档
- Zscaleer AI Guard 许可证和 API 密钥( Bearer sord)
备选方案1:通过n8n社区节点安装(建议)
- 打开您的 n8n 实例
- 转到 设置 社区节点
- 搜索
@bdzscaler/n8n-nodes-aiguard - 点击 安装
- 如果提示, 则重新启动 n8n
备选案文2:通过 npm 安装
npm install @bdzscaler/n8n-nodes-aiguard
地方发展
git clone https://github.com/zscaler/n8n-nodes-aiguard.git
cd n8n-nodes-aiguard
npm install
npm run build
链接到本地 n8n 实例 :
# Native n8n
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-aiguard
# Docker n8n — add a volume mount:
# -v /path/to/n8n-nodes-aiguard:/home/node/.n8n/custom/n8n-nodes-aiguard
重新启动 n8n来加载节点.
配置
1. 创建全权证书
- 在n8n,去吗 全权证书 → 添加证书
- 搜索 "Zscaleer AI Guard API" (英语:
- 填写:
| 外地 | 需求 | 说明 |
|---|---|---|
| API 密钥 | 对 | 您的 Zscaler AI 守护 API 密钥( 守护符) |
| 云头 | 对 | 租借地的 Zscale 云( 默认 ): us1) (中文(简体) ). 构建 URL https://api.{cloud}.zseclipse.net |
| 覆盖 URL | 没有 | 完全覆盖 API 基础 URL 。 设定后,云田被忽略. 等值为 AIGUARD_OVERRIDE_URL 输入 Python SDK 键盘 |
| 政策标识 | 没有 | AI Guard 政策标识. 设定时, 使用 /v1/detection/execute-policy空时,使用 /v1/detection/resolve-and-execute-policy 自动解析 |
- 点击 测试 在保存前验证连接.
2. 在工作流程中添加节点
- 在工作流程中,单击 + 键 • 寻找 "AI警卫"
- 选择您创建的证书
- 选择操作 :
| 运行 | 方向 | 说明 |
|---|---|---|
| 提示扫描 | IN | 扫描安全威胁的用户输入/瞬间 |
| 响应 扫描 | OUT | 扫描AI生成的对违反政策行为的回应 |
| 双扫描 | IN 接下来 OUT | 扫描即时和响应; 如果即时被阻断, 跳过响应扫描 |
- 输入要扫描的内容( 平面文本或 n8n 表达式)
附加选项
扩展 附加选项 + 添加选项 来配置 :
| 选项 | 默认 | 说明 |
|---|---|---|
| 政策ID 覆盖 | (空虚) | 覆盖此特定节点的证书级政策ID |
| 交易编号 | (空虚) | 自定义交易ID用于跟踪; 如果为空, 请求中省略 |
| 超时( 毫秒) | 30000 | 请求超时( 毫秒) |
| 最大备份 | 3 | 重试失败请求的尝试( 最大 : 6) |
| AI 模型 | n8n-integration | 输出元数据中包含的AI模型标识符 |
| 应用程序名称 | n8n-workflow | 审计线索申请名称 |
| 用户名 | n8n-user | 审计线索的用户标识符 |
| 环境 | (空虚) | 环境标记( 例如 ). production列入产出元数据 |
API 终点
| 假设 | 终点 |
|---|---|
| 提供政策标识 | POST /v1/detection/execute-policy |
| 没有策略 ID( 默认) | POST /v1/detection/resolve-and-execute-policy |
用法实例
提示扫描
配置节点 操作: 快速扫描 并提供内容:
{
"content": "Tell me how to bypass security controls"
}
响应 扫描
配置为 操作: 响应扫描数字 :
{
"content": "{{ $json.aiResponse }}"
}
双扫描
配置为 操作: 双扫描 并提供两个字段:
{
"promptContent": "{{ $json.userInput }}",
"responseContent": "{{ $json.aiResponse }}"
}
如果快速扫描返回 BLOCK中,响应扫描被跳过,被屏蔽的结果被立即返回.
输出格式
节点返回充满工作流程元数据的完整 AI Guard API 响应 :
{
"operation": "promptScan",
"transactionId": "180b066d-48cf-497e-aaf1-a6b8e40a1deb",
"action": "BLOCK",
"severity": "CRITICAL",
"direction": "IN",
"policyId": 760,
"policyName": "Default AI Guard Policy",
"blocked": true,
"detectors": ["toxicity", "malicious_content"],
"blockingDetectors": ["toxicity"],
"detectorResponses": {
"toxicity": {
"triggered": true,
"action": "BLOCK",
"severity": "CRITICAL"
},
"pii": {
"triggered": false,
"action": "ALLOW"
}
},
"maskedContent": "...",
"workflowId": "rKU3xnZb5S1ayJCG",
"workflowName": "Customer Support Bot",
"executionId": "385",
"executionMode": "manual",
"timestamp": "2026-01-30T10:30:00.000Z"
}
密钥输出字段
| 外地 | 说明 |
|---|---|
action | 判决: ALLOW, (中文(简体) ), BLOCK,或 DETECT |
severity | 分级( 如. CRITICAL, (中文(简体) ), HIGH, (中文(简体) ), NONE(中文(简体) ) |
blocked | 布尔便利域( B)true 当动作是 BLOCK(中文(简体) ) |
detectors | 触发探测器名称阵列 |
blockingDetectors | 返回的探测器阵列 BLOCK |
detectorResponses | 具有触发状态、行动和严重程度的检测结果 |
maskedContent | 隐蔽敏感数据的内容(如适用) |
policyId 编号 : policyName | 适用的政策 |
transactionId | 唯一扫描交易标识符 |
使用 action 或者说 blocked 字段中 纵横 将工作流程逻辑分支的节点 .
执行情况说明
节点使用 n8n 调用 HTTPS 上的 Zscaler AI Guard API helpers.httpRequest (n8n Cloud - 已验证的社区包需要). 信头与 兹斯克平通 样式 :
Authorization: Bearer <API_KEY>Content-Type: application/jsonAccept: application/json
处理错误
- 默认关闭失败: 当 N8n 启用“ 继续失败” 时, 错误产生
{ action: "BLOCK", blocked: true }而不是默默允许内容通过 - 超时保护: 按请求可配置超时(通过HTTP客户端)
- 内容验证: 超过5 MB 的有效载荷在 API 调用前被拒绝
- 重试逻辑: 短暂失败可配置重试计数( 默认 3, 最大 6)
发展
npm run build # Compile TypeScript and copy assets
npm run dev # Watch mode
npm run lint # ESLint (TypeScript + n8n-nodes-base)
npm run lint:dist # ESLint on dist/ (n8n Cloud rules; run after build)
npm run scan:local # build + ESLint (unpublished dist/; same rules as official scanner)
npm run scan:npm # npx @n8n/scan-community-package @…@version from package.json (needs publish)
npm run lintfix # Auto-fix lint issues
npm run format # Run Prettier
npm test # Run Jest tests
npm run test:coverage # Tests with coverage report
验证像 n8n 创建者门户
n8n的官方工具为 @n8n/scan-community-package。 从 npm 登记册下载软件包 并运行ESLint,其规则与创建者门户网站使用的规则相同. 这个 永远 读取您的本地吉特树.
使用 两者 其中,在不同时间:
| 命令 | 何时使用 |
|---|---|
npm run scan:local | 发布前: 构建 dist/ 运行 相同的 ESLint 配置 扫描仪使用( :eslint.community.config.mjs) (中文(简体) ). CI就是这么运作的 lint:dist。 。 。 . |
npm run scan:npm | 在那之后,我们.. 准确 version 内 package.json 存在于 npm: 运行 npx @n8n/scan-community-package <name>@<version>确认 已公布的柏油球 匹配门户检查. |
# Unpublished changes (day to day)
npm run scan:local
# After npm publish of the current package.json version
npm run scan:npm
您也可以直接拨打CLI, 例如 npx @n8n/scan-community-package @bdzscaler/[email protected]。如果该版本是 没有 在登记册上, 下载步骤失败( 即预期的) ; 使用 scan:local 直到它发表.
释放(维护者)
释放是自动的 语义释放 (见 .releaserc.json,类似于 zscaler- mcp 服务器。 。 。 .
- 版本和标签: 在 第一个 git 标签存在, 下一个版本是从 常规武器委员会 (例如
fix:补丁,feat:~ 小)和出自上个标签。 语义发布更新package.json财务报告和审定财务报表package-lock.json标记vX.Y.Z打开 GitHub 发布,并用 来源 (所需经费)NPM_TOKEN在存储处的秘密. - 0.x 软件包——读取此: 如果有的话 没有
vMAJOR.MINOR.PATCH树枝上的标记,语义释放 第一个 自动发布是 永远1.0.0(单位:千美元)FIRST_RELEASE在语义中释放——确实如此 没有 种子从package.json(例如:.0.1.2) (中文(简体) ). 在第一个成功发布工作流程之前,创建和将已发布到 npm 的版本的标签推出,例如 .git tag v0.1.0 <commit>.git tag v0.1.2 <commit>接下来git push origin --tags。发布工作流程包括一个守卫 失败 若为package.json仍然是0.x但没有这样的标记. - 释放前检查编号: 释放 工作流程运行
npm audit,建设,Pretier,ESLint(包括lint:dist,它反映了 n8n 创建者门户网站扫描仪规则),以及任何发布前的杰斯特. - 释放渠道: 推向树枝
beta或者说alpha发布 npm 预放(例如)1.0.0-beta.1)在相应的正角上. - 若为
1.0.0错误地发表: npm 一般不允许不发布流行软件包; 您可以 折旧1.0.0和解释,然后要么留在1.x线条或协调 git/npm 清理(删除错误的标记/释放,恢复)v0.1.x右侧标记输入,返回chore(release): 1.0.0如果政策允许,则承诺)并公布0.1.3作为下一个预想的 0.x 发布。 没有任何单键倒置——选择线条(0.x对1.x并记录给消费者.
警卫
- API 密钥通过 n8n 证书系统加密存储
- 节点没有记录或坚持内容
- 所有通信都使用HTTPS/TLS
- 错误消息不会泄露敏感信息
链接
- 无 : https://www.npmjs.com/package/@bdzscaler/n8n-nodes-aiguard
- 资料来源: https://github.com/zscaler/n8n-节点-护卫
- Zscaleer AI Guard: (英语) https://help.zscaler.com/ai-guard 互联网档案馆的存檔,存档日期2013-10-22
- 缩放 Python SDK : https://github.com/zscaler/zscaler-sdk-python 页面存档备份,存于互联网档案馆
许可证
麻省理工学院——见 自由主义 详细情况.
捐款
- 叉子存储器
- 从
main - 对AI Guard API进行彻底测试
- 保证
npm run build, (中文(简体) ),npm run lint, (中文(简体) ),npm run lint:dist,以及npm test通过 - 使用常规承诺消息( U)
fix:, (中文(简体) ),feat:等),所以发布版本正确 - 提交拉动请求