Аутентификация в zabbix с использованием Keycloak-прокси
Я пытаюсь настроить запись в Zabbix с помощью Keycloack. Моя установка следующая:
- Zabbix запускается в apache host1: 62200
- Keycloak начало в host2: 63665
- Nginx - это точка входа на host1:62236: он обрабатывает "виртуальный хост", направляя запросы к keycloak-proxy(localhost:4180).
- Я устанавливаю прокси nginx на zabbix host1:62237, потому что я не мог пройти путь host1: 62200 / zabbix
keycloak-gatekeeper настроен с помощью client_id, client_secret и т. д. для аутентификации пользователей в Keycloak; Панель управления Zabbix на 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 ответ
Вы должны пройти PHP_AUTH_USER
(или же REMOTE_USER
или же AUTH_USER
) переменная заголовка запроса к Zabbix. ИМХО, лучшим вариантом для этого является Apache - HTTP-аутентификация Zabbix с Keycloak-прокси