问题描述
当 kubernetes 入口控制器身份验证失败且 Nginx.ingress.kubernetes.io/auth-url
注释中指定的 url 时,我可以将请求重定向到某个自定义 url 吗?
示例
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
Metadata:
annotations:
Nginx.ingress.kubernetes.io/auth-url: https://httpbin.org/basic-auth/user/passwd
creationTimestamp: 2016-10-03T13:50:35Z
谢谢。
解决方法
您的要求:
当 kubernetes 入口控制器认证失败时,将请求重定向到某个自定义 url
可以通过使用以下注释来解决:
nginx.ingress.kubernetes.io/auth-signin: https://SOME_URL/
说明
假设您有一个 Ingress
清单(只有其中的一部分):
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/auth-url: http://httpbin.default.svc.cluster.local:80/basic-auth/user/password
nginx.ingress.kubernetes.io/auth-signin: https://SOME_URL/
spec:
<-- REDACTED -->
我已经测试过这样的设置,它将按以下方式工作:
- 您将首先被
Service
注释重定向到内部httpbin
(auth-url
),系统会提示您输入凭据。 - 如果上述身份验证步骤失败,您将被重定向到
auth-signin
URL,对于 example 可能是:https://github.com/login
(这只是一个示例,而不是实际登录配置)。
其他资源: