You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kong + JWT:如何配置端点授权排除规则?

如何让Kong忽略特定端点的JWT认证?

当然没问题!Kong完全支持通过配置来让特定端点跳过JWT认证,这里有两种常用的实现方式,你可以根据自己的场景选择:

方法一:修改JWT插件配置,添加URI排除规则

这是最直接的方式,只需要给已有的JWT插件添加排除端点的配置即可:

  • 找到你当前绑定了JWT插件的服务或路由(可以通过Kong Admin API或者Kong Manager查看)
  • 在JWT插件的配置中,设置config.uri_exclude参数,将需要跳过认证的端点路径添加到列表里。比如你的开放端点是/api/public/health,就把这个路径加入数组
  • 如果你用Kong Admin API来修改,命令示例如下:
# 替换{plugin-id}为你的JWT插件ID,{kong-admin-url}为你的Kong管理地址
curl -X PATCH http://{kong-admin-url}/plugins/{plugin-id} \
  -H "Content-Type: application/json" \
  -d '{
    "config": {
      "uri_exclude": ["/api/public/health"]
    }
  }'
  • 配置生效后,Kong会自动检查请求的URI:如果匹配排除列表里的路径,就直接跳过JWT认证流程,转发请求到上游服务。

方法二:为开放端点单独创建无认证的路由

如果你不想改动原有插件的全局配置,可以给这个开放端点单独创建一条独立路由,不绑定JWT插件:

  • 确保你已经知道上游服务的ID(或者可以用服务名称关联)
  • 通过Kong Admin API创建新路由,示例如下:
# 替换{your-service-id}为你的上游服务ID,{kong-admin-url}为你的Kong管理地址
curl -X POST http://{kong-admin-url}/routes \
  -H "Content-Type: application/json" \
  -d '{
    "name": "public-health-route",
    "paths": ["/api/public/health"],
    "service": { "id": "{your-service-id}" }
  }'
  • 这条路由只会匹配指定的开放端点,而且没有绑定JWT插件,所以访问该端点时不会触发认证。

注意事项

  • 配置URI排除时,要注意Kong的路径匹配规则:如果你的路径是前缀匹配(比如/api/public),会跳过所有以该路径开头的请求,所以尽量精确到具体端点,避免意外跳过需要认证的接口
  • 如果使用Kong Manager(Web控制台)操作,直接找到对应的JWT插件,在配置页面的“URI Exclude”字段添加路径即可,操作更直观

内容的提问来源于stack exchange,提问作者jamesamuir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:25:04