Аутентификация Аварии установки для Zabbix ui через mod_proxy

Я пытаюсь реализовать, устанавливают аутентификацию CAS для UI Zabbix.

Таким образом, я настроил аутентификацию Zabbix к находящейся в http аутентификации

У меня есть первое (и общественность) httpd сервер, я устанавливаю здесь mod_proxy на zabbix контексте.

с этой конфигурацией

auth_cas.conf:

LoadModule auth_cas_module /etc/httpd/modules/mod_auth_cas.so
<IfModule mod_auth_cas.c>
  CASVersion 2
  CASCookieDomain domain
  CASCookiePath /var/cache/apache2/mod_auth_cas/
  CASLoginURL https://casserver/login
  CASValidateURL https://casserver/serviceValidate
</IfModule>

proxy.conf:

ProxyPass /zabbix balancer://zabbix
<Proxy balancer://zabbix>
  BalancerMember http://subserver/zabbix/
  AuthType CAS
  AuthName "Authentication required"
  require valid-user
</Proxy>

Аутентификация CAS работает отлично, я хорошо аутентифицируюсь на моей общественности httpd сервер, как я вижу в доступе:

==> access   <==
192.168.0.2 - Antoine [02/Dec/2014:17:35:33 +0100] "GET /horus/ HTTP/1.1" 200 - "https://publicaddress.com/zabbix/" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36"

Но мой пользователь не хорошо аутентифицируется на моем внутреннем httpd сервере:

192.168.0.1 - - [02/Dec/2014:17:34:46 +0100] "GET /zabbix/ HTTP/1.1" 200 3902 "-" "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"

Если я пытаюсь установить основного автора (Основной AuthType) на основе файла на моем общедоступном сервере, имя пользователя передано моему внутреннему httpd, и это работает отлично.

0
задан 2 December 2014 в 18:38
1 ответ

Хорошо, наконец, это работает. Вот полное решение (возможно, есть некоторые детали, которые не очень чисты, но это работает).

Переднему серверу необходим прямой доступ к серверу cas, mod_auth_cas не поддерживает запросы через прокси, и сертификат cas должен соответствовать запрошенному адресу.

На моем переднем http я устанавливаю cas auth auth_cas.conf:

<IfModule !mod_ssl.c>
  LoadModule  /etc/httpd/modules/ssl_module modules/mod_ssl.so
</IfModule>

LoadModule auth_cas_module /etc/httpd/modules/mod_auth_cas.so

<IfModule mod_auth_cas.c>
  CASVersion 2
  CASDebug On
  CASAllowWildcardCert on
  CASValidateDepth 9
  CASCookieDomain public.domain
  CASCookiePath /var/cache/apache2/mod_auth_cas/
  CASLoginURL https://cas.address.com/login
  CASValidateURL https://cas.address.com/serviceValidate
  CASTimeout 7200
  CASIdleTimeout 7200
</IfModule>

И мод прокси, proxy.conf:

ProxyPass /zabbix balancer://zabbix 
ProxyPassReverse  /zabbix  balancer://zabbix 

<Proxy balancer://zabbix >
  BalancerMember http://internal.server/zabbix/
  AuthType CAS
  CASAuthNHeader REMOTE_USER
  CasScope /zabbix

  AuthName "Authentication required"
  require valid-user
</Proxy>

На внутреннем сервере в файле zabbix.conf добавьте следующее:

SetEnvIfNoCase remote_user "(.*)" PHP_AUTH_USER=$1
SetEnvIfNoCase remote_user "(.*)" PHP_AUTH_PW=$1

Zabbix читает PHP_AUTH_USER для имени пользователя и проверьте, не пуст ли PHP_AUTH_PW.

Директива «CASAuthNHeader REMOTE_USER» передает аутентифицированного пользователя на внутренний фронт в заголовке http.

и директивы

 SetEnvIfNoCase remote_user "(.*)" PHP_AUTH_USER=$1
 SetEnvIfNoCase remote_user "(.*)" PHP_AUTH_PW=$1

устанавливают PHP_AUTH_USER и PHP_AUTH_PW с заголовком «remote_user».

И не забудьте настроить аутентификацию zabbix на "HTTP".

0
ответ дан 5 December 2019 в 13:01

Теги

Похожие вопросы