我正在尝试使用keycloak-proxy将Zabbix UI与Keycloak SSO集成在一起。 我的设置如下:
我已经在Keycloak和Zabbix中创建了一个测试用户。 身份验证流程还可以:我已重定向到KeyCloak,我进行了身份验证,但始终收到“登录名或密码错误”的信息。通过Zabbix UI。
我在做什么错? 有没有人尝试将OIDC身份验证与Zabbix一起使用?
我正在使用Zabbix 4.0,KeyCloak 4.4,Keycloak-proxy 2.3.0。
keycloak-proxy配置:
client-id: zabbix-client
client-secret: <secret>
discovery-url: http://keycloak.my.domain:8080/auth/realms/myrealm
enable-default-deny: true
enable-logout-redirect: true
enable-logging: true
encryption_key: <secret>
listen: 127.0.0.1:10080
redirection-url: http://testbed-zabbix.my.domain
upstream-url: http://a.b.c.d:80/zabbix
secure-cookie: false
enable-authorization-header: true
resources:
- uri: /*
roles:
- zabbix
答案 0 :(得分:1)
Zabbix需要带有用户名的PHP_AUTH_USER
(或REMOTE_USER
或AUTH_USER
)标头,但keycloak-proxy不提供它。让我们使用电子邮件作为用户名(理论上您可以使用访问令牌中的任何声明)。将电子邮件添加到keycloak-proxy配置中的请求标头中:
add-claims:
- email
并在Zabbix Apache配置中的电子邮件标头中创建PHP_AUTH_USER
变量:
SetEnvIfNoCase X-Auth-Email "(.*)" PHP_AUTH_USER=$1
注意:Conf语法可能不正确,因为它不在我的脑海中-可能需要一些调整。
顺便说一句:有一个(骇客的)用户补丁-https://support.zabbix.com/browse/ZBXNEXT-4640,但是keycloak-gatekeeper是更好的解决方案
记录:keycloak-proxy = keycloak-gatekeeper(该项目已重命名并最近迁移到keycloak org)