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

Kong Basic Auth不同服务路由认证凭证可跨路由访问问题咨询

问题定位步骤
  • 确认basic-auth插件的绑定范围:Kong插件支持全局、服务、路由三级绑定,若basic-auth被绑定到全局,所有合法凭证默认都可访问所有开启认证的路由,这是该问题最常见的诱因。可通过Admin API执行GET /plugins查询,若返回的插件配置中service.id和route.id均为空,即可确认为全局绑定。
  • 检查访问控制逻辑配置:Kong原生basic-auth插件仅负责校验凭证的合法性,不会自动限制凭证的访问范围,只要是系统内存在的有效凭证,都能通过任意绑定了basic-auth插件的路由的认证校验,除非额外配置了权限控制规则。
  • 排查其他插件冲突:检查是否启用了全局放行类插件,或是ACL、RBAC类插件配置错误,导致权限限制未生效。
修复方案
  • 调整basic-auth插件绑定范围
    解绑全局的basic-auth插件,改为分别给对应路由单独绑定,操作命令参考:
    # 删除全局basic-auth插件
    curl -X DELETE http://<kong-admin-ip>:8001/plugins/<basic-auth插件ID>
    # 给Route1绑定basic-auth
    curl -X POST http://<kong-admin-ip>:8001/routes/Route1/plugins \
      --data "name=basic-auth" \
      --data "config.hide_credentials=true"
    # 给Route2绑定basic-auth
    curl -X POST http://<kong-admin-ip>:8001/routes/Route2/plugins \
      --data "name=basic-auth" \
      --data "config.hide_credentials=true"
    
  • 配合ACL插件做细粒度权限控制
    给不同用户分配独立访问组,在对应路由上配置组访问限制,操作命令参考:
    # 给user1分配group1组
    curl -X POST http://<kong-admin-ip>:8001/consumers/user1/acls \
      --data "group=group1"
    # 给user2分配group2组
    curl -X POST http://<kong-admin-ip>:8001/consumers/user2/acls \
      --data "group=group2"
    # 给Route1绑定ACL插件,仅允许group1访问
    curl -X POST http://<kong-admin-ip>:8001/routes/Route1/plugins \
      --data "name=acl" \
      --data "config.allow=group1"
    # 给Route2绑定ACL插件,仅允许group2访问
    curl -X POST http://<kong-admin-ip>:8001/routes/Route2/plugins \
      --data "name=acl" \
      --data "config.allow=group2"
    
  • 企业版用户可直接配置路由消费者白名单
    若使用Kong Enterprise版本,可直接在路由配置中指定允许访问的消费者ID列表,无需额外部署ACL插件即可实现权限隔离。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:24:03