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

Я пытаюсь настроить запись в zabbix с помощью Keycloack.Моя настройка следующая:

  1. Запуск Zabbix на хосте apache 1: 62200
  2. Запуск Keycloak на хосте 2: 63665
  3. Nginx - это точка входа на хосте 1: 62236:он обрабатывает «виртуальный хост», перенаправляя запросы к keycloak-proxy (localhost: 4180).
  4. Я устанавливаю прокси nginx на zabbix host1: 62237, потому что я не смог пройти путь host1: 62200 / zabbix

keycloak-gatekeeper настроен с client_id, client_secret и т. Д. Для аутентификациипользователи Keycloak;Zabbix dashboard на Apache, настройка по умолчанию: я включаю HTTP-аутентификацию.

Конфиг привратник

client-id: zabbix_tst
client-secret: f2d8a52c-ebca-4fdb-85b7-36b203a75h54

discovery-url: http://host2:63665/auth/realms/demo
enable-default-deny: true
enable-logout-redirect: true
enable-logging: true



listen: 0.0.0.0:4180
redirection-url: http://host1:62236
upstream-url: http://127.0.0.1:62237
secure-cookie: false
enable-authorization-header: true
#enable-refresh-tokens: true
enable-session-cookies: true

scopes:
  - data
  - email

add-claims:
- name
- email
- given_name

Конфигурация Nginx для привратника

server {
    listen 62236;

    root / ;
    access_log /var/log/nginx/kc.access.log;
    server_name keycloak;

    index index.html;

    location / {
        proxy_pass  http://127.0.0.1:4180;

        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto http;
        proxy_set_header X-Forwarded-Scheme http;
        proxy_set_header X-Scheme http;
        #proxy_redirect off;
    }

    location /oauth/callback {
        proxy_pass     http://127.0.0.1:4180;
        #proxy_set_header    X-Auth-Name  $email;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto http;
        proxy_set_header X-Forwarded-Scheme http;
        proxy_set_header X-Scheme http;
    }

    location /oauth/authorize {
        proxy_pass     http://127.0.0.1:4180;
        proxy_set_header    X-Auth-Name  $request_uri;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto http;
        proxy_set_header X-Forwarded-Scheme http;
        proxy_set_header X-Scheme https;
    }
}

Я получаю форму авторизации иперенаправить в zabbix, но всегда с ошибкой, что я не авторизован в zabbix.

Что я делаю не так?

1 Ответ

0 голосов
/ 29 ноября 2018

Вы должны передать переменную заголовка запроса PHP_AUTH_USER (или REMOTE_USER или AUTH_USER) в Zabbix.ИМХО, лучшим вариантом для этого является Apache - Zabbix HTTP-аутентификация с Keycloak-proxy

...