首页 > 解决方案 > 在 Ingress-Nginx 上接收请求后,如何使用 Keycloak(用于身份验证/授权)作为中间件?

问题描述

我在 MiniKube 上的测试 kubernetes 集群中部署了几个微服务,根据 ingress-nginx 控制器中定义的规则路由请求;因此,对于如何将 Keycloak 添加为这些微服务的身份验证/授权服务,我几乎没有疑问,这样我就可以实现以下场景:

请求 Microservice-1 (ms1):- (ms1.example.com/) :-

^我想用一些 microservice-2 和 microservice-3 来实现类似的事情,其中​​ microservice-2 和 microservice-3 是内部服务,只能通过 microservice-1 访问,前提是请求者对其请求具有授权权限。

目前的工作方式:-(没有身份验证/授权):-

进一步的问题:

  1. 我如何实现这些场景并将我的 keycloak 与 ingress-nginx 控制器绑定,以便它检查在 ingress-nginx 上收到的请求并将它们转发给服务,如果它们有效,如果它们不是则失败?
  2. 我目前在 kubernetes 中直接使用来自 jboss 的 keycloak 映像,然后直接通过 UI 进行配置,所以我需要 Keycloak 网关还是什么?因为我没有真正理解它的目的。
  3. 这是正确的方法吗?或者你能建议我做一些更好/更合乎逻辑的事情吗?

我真的需要建设性的反馈以及我的问题的答案,因为如果这个实验有效,我想在 GCP 或使用 KubeAdm 的本地 VM 上设置的多节点中进行类似的部署。因此,我们将不胜感激对这个问题的任何帮助。

(注意:请记住,作为一个整体,我在 Kubernetes 和 DevOps 方面还比较陌生,所以健康的建设性反馈会真正激励我,对我的成长很有帮助)

提前非常感谢。

标签: kubernetesmicroserviceskeycloakminikubenginx-ingress

解决方案


推荐阅读