authentication - 如何在设置了 auth-url 的 kubernetes 入口中公开一条路由?
问题描述
我正在通过 Kubernetes 入口(我们使用 Nginx 入口)进行基于路径的路由。我们有一个服务通过外部服务启动并在身份验证之后运行,例如第一个片段中的服务。该服务已被我们生态系统中的其他服务使用,但是随着开发的进行,该服务现在具有管理 API,我们需要关闭特定路径的身份验证。根据这个答案,这对于基本身份验证是不可能的,并且根据我尝试过的(第二个片段),也无法通过外部服务进行身份验证。有没有其他方法可以在不完全重新架构入口和域/路径的情况下允许特定路径而无需身份验证?
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: path-based-routing-1
annotations:
kubernetes.io/tls-acme: "true"
kubernetes.io/ingress.class: nginx-external
nginx.ingress.kubernetes.io/auth-url: http://authorizer.dev.svc.cluster.local
spec:
tls:
- hosts:
- 'routing.example.com'
secretName: routing.example.com
rules:
- host: 'routing.example.com'
http:
paths:
- path: /
backend:
serviceName: path-based-routing-1
servicePort: 80
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: path-based-routing-2
annotations:
kubernetes.io/tls-acme: "true"
nginx.ingress.kubernetes.io/auth-type: ""
kubernetes.io/ingress.class: nginx-external
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- 'routing.example.com'
secretName: routing.example.com
rules:
- host: 'routing.example.com'
http:
paths:
- path: /management-api
backend:
serviceName: path-based-routing-2
servicePort: 80
解决方案
推荐阅读
- swift - SwiftUI:在不动画内容更改的情况下动画列表中的更改
- python - 使用服务器通过 Selenium Webdriver 运行任务
- c# - 使用冒泡算法方法对列表进行排序 Unity C# 不起作用
- bash - 如何从 Visual Slick Edit 打开 BASH 终端?
- python - 每个时期的活跃ID数
- tensorflow - 是否可以更改 Keras 中训练输出的格式?
- dictionary - 从键和值的数组构建任意深度的嵌套映射
- javascript - 对 FCM 执行 POST 请求时服务器密钥无效?
- java - 在 Java 中观察关于 OutOfMemoryError 的奇怪行为
- javascript - 如何将 DataTable 与对象数组一起使用?