我有一个Kubernetes v1.26自管理集群。我有多个通过Nginx-ingress proxy暴露的应用程序。
我想通过身份验证来保护对这些应用程序的访问,我找到了Keycloak并将其部署在bitnami chart,版本docker.io/bitnami/keycloak:20.0.5-debian-11-r4
中。我已经在此领域中创建了一个领域services
和一个客户端nginx
。(我对这代表什么不完全有信心)
现在我被困在更新我的入口规则以强制认证时访问我的应用程序.我在这里找到了一个例子与oauth添加以下注解:
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"
我尝试了$host
、/auth
和/realms/services
的多种组合,但到目前为止,我找不到正确的端点,所有请求都被重定向到404。
在Keycloak的客户端页面上,有Client id和secret,但我没有找到任何nginx注解来使用它们。
谢谢!
1条答案
按热度按时间46qrfjad1#
希望这能帮助任何处于这种情况的人:
我发现了这个类似的question。从我的理解来看,Nginx不能直接与Keycloak通信,oauth2代理也不能代替Nginx功能来管理kubernetes入口。
我用以下方法实现了它:
oauth2-proxy已部署。我没有找到任何部署示例,下面是我所做的:
以及需要保护的资源的Nginx ingress注解: