可以对 Kubernetes 入口(如 kong、nginx(执行授权(基于规则的类似(。 例如,我有这个:
api版本: extensions/v1beta1
kind: Ingress
metadata:
name: foo-bar
spec:
rules:
- host: api.foo.bar
http:
paths:
- path: /service
backend:
serviceName: service.foo.bar
servicePort: 80
但在重定向到/service 之前,如果请求令牌具有要传递/service 的规则,我需要在我的授权 api 中执行有效调用。
或者我真的需要使用入口后面的 API 网关(如弹簧 zuul(来执行此操作?
Ingress
清单只是控制器的输入。您还需要一个入口控制器,一个了解Ingress
对象的代理。Kong和Nginx是实现的两个例子。
Nginx Ingress Controller 由 Kubernetes 社区提供,它有一个使用注释配置外部 oauth2 代理的示例。
annotations:
nginx.ingress.kubernetes.io/auth-url: "https://$host/oauth2/auth"
nginx.ingress.kubernetes.io/auth-signin: "https://$host/oauth2/start?rd=$escaped_request_uri"