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

求助:基于Helm Chart配置Kong网关JWT认证插件的步骤

通过Helm配置Kong JWT插件实现服务认证

一、修改Helm values.yaml启用JWT插件

Kong的Helm Chart支持两种插件启用方式,可根据需求选择:

方式1:全局默认启用(所有路由生效)

编辑你的Kong Helm values.yaml,找到plugins配置块,添加JWT插件启用规则,还可按需配置默认参数:

plugins:
  enabled:
    - jwt
  # 可选:配置JWT全局默认参数
  config:
    jwt:
      uri_param_names: ["jwt"]  # 允许通过查询参数传递token
      cookie_names: ["auth_token"]  # 允许通过Cookie传递token

执行Helm升级使配置生效:

helm upgrade kong kong/kong -n <你的命名空间> -f values.yaml

方式2:按需启用(仅绑定的路由生效,推荐)

确保values.yaml中plugins.enabled包含jwt(或未禁用),后续通过Kong的CRD资源绑定到特定路由,更灵活。

二、创建JWT插件实例并绑定到目标路由

1. 定义KongPlugin CRD资源

创建jwt-plugin.yaml文件:

apiVersion: configuration.konghq.com/v1
kind: KongPlugin
metadata:
  name: jwt-auth-plugin
plugin: jwt
config:
  key_claim_name: iss  # 用于识别消费者的JWT Claim字段
  secret_is_base64: false

应用该资源:

kubectl apply -f jwt-plugin.yaml -n <你的命名空间>

2. 绑定插件到路由/服务

如果使用K8s Ingress资源,在annotations中添加插件绑定:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: example-service-ingress
  annotations:
    konghq.com/plugins: jwt-auth-plugin
spec:
  rules:
  - host: example.anuj.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: <你的后端服务名>
            port:
              number: <服务端口>

如果使用KongRoute CRD,直接在资源中声明插件:

apiVersion: configuration.konghq.com/v1
kind: KongRoute
metadata:
  name: example-route
spec:
  routes:
  - hosts:
    - example.anuj.com
    paths:
    - /
  plugins:
  - name: jwt-auth-plugin

三、创建JWT消费者与凭证

JWT插件需要关联消费者和对应密钥,才能验证token合法性:

1. 创建KongConsumer

创建jwt-consumer.yaml:

apiVersion: configuration.konghq.com/v1
kind: KongConsumer
metadata:
  name: example-consumer
  annotations:
    kubernetes.io/ingress.class: kong
username: example-user

应用资源:

kubectl apply -f jwt-consumer.yaml -n <你的命名空间>

2. 创建JWT凭证

创建jwt-credential.yaml,其中key和secret用于生成JWT token:

apiVersion: configuration.konghq.com/v1
kind: KongCredential
metadata:
  name: example-jwt-credential
consumerRef: example-consumer
type: jwt
config:
  key: "your-jwt-key"
  secret: "your-jwt-secret"

应用资源:

kubectl apply -f jwt-credential.yaml -n <你的命名空间>

四、验证配置

生成包含iss字段(对应之前key_claim_name配置)的JWT token,发起请求测试:

curl -H "Authorization: Bearer <你的JWT Token>" https://example.anuj.com

配置正确时请求会被正常转发;若配置有误,Kong将返回401 Unauthorized。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 19:13:29