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

Kubernetes Nginx Ingress JWT认证场景auth-cache-key如何配置

针对JWT认证场景的auth-cache-key配置方案

首先明确$remote_user变量的适用范围:该变量是Nginx原生提供的、仅用于HTTP Basic认证场景下存储解析出的用户名,在JWT认证场景下该变量默认是空值,官方示例的$remote_user$http_authorization是为Basic认证场景设计的,不适用于你的业务场景。

你的外部认证服务仅校验请求携带的JWT token本身,不依赖其他请求属性,因此缓存key只要能唯一标识一个JWT token即可,最优配置如下:

annotations:
  nginx.ingress.kubernetes.io/auth-url: http://auth-service/validate
  nginx.ingress.kubernetes.io/auth-response-headers: "authorization"
  nginx.ingress.kubernetes.io/auth-cache-key: '$http_authorization'
  nginx.ingress.kubernetes.io/auth-cache-duration: '1m'
  kubernetes.io/ingress.class: "nginx"

额外注意事项:

  • $http_authorization会完整携带请求头里的Authorization内容,包含Bearer 前缀和token本身,天然可以唯一区分不同的token,不会出现不同token命中同一个缓存key的问题
  • 如果你的认证服务后续会加入请求路径、客户端IP等维度的校验逻辑,可以按需在缓存key中追加对应的Nginx变量,比如需要按客户端IP区分的话可以配置为'$http_authorization$remote_addr'
  • 缓存时长不建议设置超过5分钟,避免JWT被吊销后缓存仍生效产生安全风险

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:45:03