求助:基于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
相关产品推荐
相关产品推荐

