我们将服务部署在 K8s 中,使用 istio 作为服务网格,并使用 Ingress-nginx 公开。
现在,我们想使用 Ingress-nginx 入口控制器添加 AuthN 和 AuthZ。
- 我们想做 Oauth2-OpenID。使用 oauth2-proxy 模块可以做到这一点。返回的 jwt 令牌具有用户的 UUID,但没有他的组。
- 我们有 k8s 服务,它具有用户 UUID 和组(后端 dynamodb)的映射。所以我们需要检索用户组。
- 我们有基于 OPA(开放策略代理)的规则,用于针对用户组的服务 API 的 AuthZ。因此必须针对用户组验证服务 API。
- 一旦 AuthN 和 AuthZ 成功后,带有用户 UUID 的 http 标头,userGroup 应该传递给上游服务。
- 我们还需要使用用户 UUID、userGroup 设置 cookie 以供客户端应用程序使用。
以上 5 个步骤都可以使用“Ingress-nginx”一点一点地执行。但是,不能一起作为代理链。有没有办法在“Ingress-nginx”入口控制器中执行这些操作?我正在寻找开源入口控制器。
谢谢。
问候, 普拉卡什