我正在istio + kubernetes上做3条腿oauth。我没有找到将未经身份验证的请求路由到执行身份验证并将流量路由回目标服务的身份验证代理服务的方法。我已经使用以下注释通过nginx kubernetes入口控制器完成了此操作-
nginx.ingress.kubernetes.io/auth-url //Auth url that requests will be forwarded to nginx.ingress.kubernetes.io/auth-signin //Sign in page the request is routed to when the above returns 401
我在Istio中找不到同等的产品。我检查了documentation,它说它除了jwt外还支持自定义身份验证,但是我没有找到任何这种支持。
答案 0 :(得分:1)
回答我自己的问题。 至此,我已经确定了执行此操作的唯一方法是通过istio上的EnvoyFilter。这使我们能够编写自定义lua filter来将未经身份验证的请求路由到可以执行三足oauth流的oauth代理。
请求控制流程是
客户端->入口网关-> istio-proxy sidecar->使节过滤器->目标
该过滤器能够进行http调用并处理标头,从而满足此要求。
编辑: 有关详细信息,请参见here。