【发布时间】:2021-10-04 09:18:30
【问题描述】:
我们将 Kubernetes 入口与外部服务 JWT authentication 结合使用,并将 auth-url 作为入口的一部分。
现在我们要使用auth-cache-key 注解来控制 JWT 令牌的缓存。目前,我们的外部身份验证服务只需通过查看令牌来回复 200/401。我们所有的组件都是带有rest api的后端微服务。传入的请求可能不是 UI 请求。我们如何为传入的 JWT 令牌填写 `auth-cache-key'。
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: '$remote_user$http_authorization'
nginx.ingress.kubernetes.io/auth-cache-duration: '1m'
kubernetes.io/ingress.class: "nginx"
看示例,$remote_user$http_authorization 在 K8s 文档中被指定为示例。但是不确定在我们的案例中是否会设置$remote_user。因为这不是外部基本身份验证。在这种情况下,我们如何确定 auth 缓存键?
没有足够的示例/文档。
【问题讨论】:
-
您使用的是哪个 Kubernetes 和 NGINX Ingress 控制器版本?
-
您能否解释一下“传入的请求可能不是 UI 请求。”和“在这种情况下,我们如何确定身份验证缓存键?”您的问题到底是什么?你想达到吗?
-
您能否提供当前设置的最小可重现示例?
标签: authentication kubernetes ingress-nginx