mcpField
S
secure-endpoint

secure-endpoint

github.com/ngrok安全18145 次安装4 天前更新
代码仓库

关于 secure-endpoint

secure-endpoint 是用于 ngrok Traffic Policy 的技能,帮助为端点配置访问控制、限流和边缘响应,无需修改应用代码。适用于需要在应用外管理端点防护的场景。

主要功能

  1. 01配置 OAuth/OIDC 登录门控
  2. 02按 IP 地址或网段限制访问
  3. 03按路径或条件拒绝请求
  4. 04限制请求速率
  5. 05在边缘返回自定义响应
  6. 06添加或移除请求头

适用场景

  1. 01为端点要求登录并限制特定用户
  2. 02仅允许指定 IP 或 CIDR 访问
  3. 03限制客户端请求速率以保护上游
  4. 04维护期间从边缘返回自定义页面

MCP 相关

技能说明在 ngrok MCP 服务已连接时,可先验证 Traffic Policy;策略配置和端点状态可通过相关 ngrok 工具处理。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ngrok/skills --skill secure-endpoint

安装后在 Claude Code 中输入/secure-endpoint确认已加载。

详细介绍

保护端点

使用 Traffic Policy 为端点添加访问控制、限流或边缘响应,无需修改应用。一项技能涵盖常见的访问限制;请跳转到符合需求的场景。

开始之前

需要身份验证(ngrok-setup)。从 ngrok-engine 获取操作配置;如果要保护的端点是私有接收器,还需获取内部绑定规则。

场景

要求登录(OAuth / OIDC)

在身份提供商后为端点设置访问限制,然后可选择限制特定用户。

on_http_request:
  - actions:
      - type: oauth
        config: { provider: google }
  - expressions:
      - "!actions.ngrok.oauth.identity.email.endsWith('@yourcompany.com')"
    actions:
      - type: deny

完整的提供商列表和原始 OIDC 配置:ngrok-engine -> ngrok-engine/references/auth-actions.md。

限制为特定 IP

仅允许已知地址/CIDR;拒绝其余请求。

on_http_request:
  - actions:
      - type: restrict-ips
        config:
          enforce: true
          allow:
            - 203.0.113.4/32
            - 198.51.100.0/24

对于地址范围,请使用 restrict-ips。conn.client_ip in [...] 会进行精确的字符串 比较:它能匹配单个地址('203.0.113.4'),但绝不会匹配 CIDR,因为 203.0.113.4 不等于字符串 203.0.113.4/32——因此 CIDR 列表 不会匹配任何内容,规则会拒绝所有人。restrict-ips 用于评估 CIDR。对于少数几个精确地址,CEL in 测试是可行的。

阻止路径或条件(拒绝)
on_http_request:
  - expressions: ["req.url.path.startsWith('/admin')"]
    actions:
      - type: deny
        config: { status_code: 403 }
限流

按客户端限流,以保护上游。请从 ngrok-engine 获取当前的 rate-limit 操作配置(它需要名称、速率、桶键、算法和容量),并像其他操作一样将其附加上去。

维护页面 / 自定义响应

直接从边缘返回响应,不访问上游。

on_http_request:
  - actions:
      - type: custom-response
        config:
          status_code: 503
          headers: { content-type: text/html }
          body: "<html><body><h1>Back soon</h1></body></html>"

不会访问应用的健康检查:

on_http_request:
  - expressions: ["req.url.path == '/healthz'"]
    actions:
      - type: custom-response
        config:
          {
            status_code: 200,
            headers: { content-type: text/plain },
            body: "ok",
          }
添加 / 移除标头

通常作为辅助步骤(注入上游身份验证标头、添加 CORS、移除标头)。请参阅 ngrok-engine 中的 add-headers。

组合使用

规则按顺序运行;可以叠加使用。典型的 API 网关入口:restrict-ips -> oauth -> rate-limit -> forward。将终止操作(deny、custom-response)放在应停止执行链的规则中。

应用策略

在用户使用的入口配置策略——请参阅 ngrok-surfaces。策略正文在各处都相同。如果已连接 ngrok MCP 服务,请先验证策略(请参阅 ngrok-engine)。

给 Agent 的说明

  • 根据用户的描述匹配场景;不要一股脑列出所有场景。
  • 这些规则可以与其他任务组合使用:保护 Webhook 接收器时,可将此技能的身份验证规则与 receive-webhooks 的 verify+forward 结合使用。
  • 无需修改应用代码——如果你正准备使用应用的身份验证中间件,请停下;这正是此策略要替代的内容。

评论

支持 Markdown