Authentication 使用KeyClope代理的Zabbix HTTP身份验证

Authentication 使用KeyClope代理的Zabbix HTTP身份验证,authentication,keycloak,zabbix,openid-connect,keycloak-gatekeeper,Authentication,Keycloak,Zabbix,Openid Connect,Keycloak Gatekeeper,我正在尝试使用keydove代理将Zabbix用户界面与keydove SSO集成。 我的设置如下所示: Nginx是入口点:它处理“虚拟主机”,将请求转发给keydape代理 Keyclock proxy配置客户端id、客户端密钥等,对用户进行密钥伪装认证 Apache上的Zabbix仪表板,默认设置:我启用HTTP身份验证 我已经在keybeave和Zabbix中创建了一个测试用户。 身份验证流程正常:我被重定向到keydove,我进行身份验证,但我总是从Zabbix UI获得“登录名或密码

我正在尝试使用keydove代理将Zabbix用户界面与keydove SSO集成。 我的设置如下所示:

  • Nginx是入口点:它处理“虚拟主机”,将请求转发给keydape代理
  • Keyclock proxy配置客户端id、客户端密钥等,对用户进行密钥伪装认证
  • Apache上的Zabbix仪表板,默认设置:我启用HTTP身份验证
  • 我已经在keybeave和Zabbix中创建了一个测试用户。 身份验证流程正常:我被重定向到keydove,我进行身份验证,但我总是从Zabbix UI获得“登录名或密码不正确”

    我做错了什么? 是否有人尝试将OIDC身份验证用于Zabbix

    我正在使用Zabbix 4.0、KeyDope 4.4和KeyDope proxy 2.3.0

    密钥斗篷代理配置:

    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
    
    客户端id:zabbix客户端
    客户机密:
    发现url:http://keycloak.my.domain:8080/auth/realms/myrealm
    启用默认拒绝:true
    启用注销重定向:true
    启用日志记录:true
    加密密钥:
    听:127.0.0.1:10080
    重定向url:http://testbed-zabbix.my.domain
    上游url:http://a.b.c.d:80/zabbix
    安全cookie:false
    启用授权标头:true
    资源:
    -uri:/*
    角色:
    -扎比克斯
    
    Zabbix希望
    PHP\u AUTH\u USER
    (或
    REMOTE\u USER
    AUTH\u USER
    )头包含用户名,但Keyclope proxy不提供它。让我们使用电子邮件作为用户名(理论上,您可以使用访问令牌的任何声明)。将电子邮件添加到KeyClope代理配置中的请求标头:

    add-claims:
    - email
    
    并从Zabbix Apache配置中的电子邮件头创建
    PHP\u AUTH\u USER
    变量:

    SetEnvIfNoCase X-Auth-Email "(.*)" PHP_AUTH_USER=$1
    
    注意:Conf语法可能不正确,因为它不在我的脑海中-它可能需要一些调整

    顺便说一句:有一个(黑客的)用户补丁可用,但Keyclope gatekeeper是一个更好的解决方案


    记录如下:keydove proxy=keydove gatekeeper(该项目最近被重命名并迁移到keydove org)

    我尝试了您提到的Zabbix补丁,但它在Zabbix 4.0上不起作用。谢谢。我有一个类似的设置问题。你能上传你的Nginx配置吗?谢谢。对不起,我没有任何Nginx/Apache配置。