我們將服務部署在 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”入口控制器中執行這些操作?我正在尋找開源入口控制器。
謝謝。
問候, 普拉卡什
uj5u.com熱心網友回復:
Datawiza ( https://www.datawiza.com/platform/ ) 為此提供了商業解決方案。它有基本使用的免費計劃。
uj5u.com熱心網友回復:
我不是 100% 肯定,但你不能用 ingress-nginx 做到這一點,我試過但失敗了,因為 Nginx 不會給你很大的靈活性加上它的代理服務。
我建議檢查一次 Kong API 網關,或者您也可以將其用作入口控制器,它也是開源的。您可以使用開源插件并無需任何更改即可使用它們。
使用 Kong 插件可以輕松設定 AuthZ 和 AuthN。
在這里你可以參考我的一篇關于 Authz & AuthN with Kong, keycloak 的文章:https ://faun.pub/kong-jwt-scope-base-auth-with-keycloak-b9938a96d281
uj5u.com熱心網友回復:
APIsix網關推薦支持身份認證和K8S部署 https://apisix.apache.org/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/435764.html
標籤:Kubernetes Kubernetes入口 nginx入口 开放策略代理 入口控制器
