HTTP-аутентификация Zabbix с использованием Keycloak-прокси - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь интегрировать Zabbix UI с Keycloak SSO, используя keycloak-proxy.Моя настройка следующая:

  1. Nginx - это точка входа: он обрабатывает «виртуальный хост», перенаправляя запросы к keycloak-proxy.
  2. Keyclock-proxy настраивается с помощью client_id, client_secret и т. д. для аутентификации пользователей в Keycloak;
  3. Панель управления Zabbix на Apache, настройка по умолчанию: я включаю HTTP-аутентификацию.

Я создал тестового пользователя вKeycloak и Zabbix.Процесс аутентификации в порядке: я перенаправлен на KeyCloak, я выполняю аутентификацию, но я всегда получаю «Логин или пароль неверны».из Zabbix UI.

Что я делаю не так?Кто-нибудь пытался использовать OIDC-аутентификацию с Zabbix?

I, используя 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

1 Ответ

0 голосов
/ 26 сентября 2018

Zabbix ожидает заголовок PHP_AUTH_USER (или REMOTE_USER или AUTH_USER) с именем пользователя, но keycloak-proxy не предоставляет его.Давайте использовать электронную почту в качестве имени пользователя (теоретически вы можете использовать любое утверждение из токена доступа).Добавьте электронную почту в заголовок запроса в конфигурации keycloak-proxy:

add-claims:
- email

И создайте PHP_AUTH_USER переменную из заголовка электронной почты в конфигурации Zabbix Apache:

SetEnvIfNoCase X-Auth-Email "(.*)" PHP_AUTH_USER=$1

Примечание: Синтаксис Confможет быть неправильным, потому что это не в моей голове - может потребоваться несколько настроек.

Кстати: есть (хакерский) пользовательский патч - https://support.zabbix.com/browse/ZBXNEXT-4640, но лучше keycloak-gatekeeperрешение

Для записи: keycloak-proxy = keycloak-gatekeeper (проект был переименован и недавно перенесен в keycloak org)

...