Kerberos - сетевой протокол аутентификации, который предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними.
Для возможности аутентификации в продукте FlyBI с помощью Kerberos требуется настройка:
Apache2-сервера;
BI-сервера;
web-сервера.
Для настройки Apache2-сервера для аутентификации с помощью Kerberos:
Установите пакет mod-auth-kerb с помощью команды:
sudo apt-get install libapache2-mod-auth-kerb
Создайте модуль auth_kerb.load в папке /etc/apache2-FlyBI/mods-available/ и добавьте в него строку:
LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so
Запустите модуль auth_kerb.load с помощью команды:
sudo ln -s /etc/apache2-FlyBI/mods-available/auth_kerb.load /etc/apache2-FlyBI/mods-enabled/auth_kerb.load
Создайте файл auth_kerb.conf в папке /etc/apache2-FlyBI/mods-enabled/ и добавьте в него строки:
KrbMethodNegotiate on
KrbMethodK5Passwd off
KrbAuthoritative on
KrbAuthRealms DOMAIN.RU
KrbServiceName HTTP/machine.realm
Krb5Keytab /etc/apache2-FlyBI/flybihttp.keytab
KrbSaveCredentials on
KrbDelegateBasic off
KrbLocalUserMapping off
Параметры:
KrbAuthRealms. Домен Krb;
KrbServiceName. Имя службы. Параметр регистрозависимый. Служба должна быть прописана в соответствии с той службой, которая была создана при создании keytab-файла:
пример значения параметра для Windows Active Directory: HTTP/flyby.domain.ru@DOMAIN.RU;
пример значения параметра для Astra Linux Directory: HTTP/flyby.domain.ru;
Krb5Keytab. Путь до keytab-файла.
Добавьте в файл /etc/apache2-FlyBI/mods-available/FlyBI-biserver.conf раздел Location с параметрами:
<Location /FPBI_App/axis2>
Options FollowSymLinks
AllowOverride None
AuthType KerberosV5
Require valid-user
SetHandler axis2_module
</Location>
В результате для сервера Apache2 будет настроена Kerberos-аутентификация. Для проверки настройки укажите адрес в строке браузера:
http://host.domain.local:8010/FPBI_App/axis2/services
При корректной настройке отобразится список доступных операций BI-сервера.
Для возможности аутентификации с помощью Kerberos также необходимо настроить браузер для работы с механизмом GSSAPI. Вход в клиент должен осуществляться под доменным пользователем.
Для настройки BI-сервера для аутентификации с помощью Kerberos:
Установите пакет libsasl2-modules-gssapi-mit с помощью команды:
sudo apt install libsasl2-modules-gssapi-mit
Настройте поиск доменных пользователей через протокол LDAP в файле Settings.xml.
Указанные настройки являются типовыми для поиска доменных пользователей через LDAP и могут отличаться в зависимости от требуемых условий поиска.
Перезапустите службу apache2-FlyBI с помощью команды:
sudo systemctl restart apache2-FlyBI
В результате для BI-сервера будет настроена Kerberos-аутентификация.
Для настройки web-сервера для аутентификации с помощью Kerberos:
Создайте модуль auth_kerb.load в папке /etc/apache2-FlyBI-web/mods-available/ и добавьте в него строку:
LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so
Запустите модуль auth_kerb.load с помощью команды:
sudo ln -s /etc/apache2-FlyBI-web/mods-available/auth_kerb.load /etc/apache2-FlyBI-web/mods-enabled/auth_kerb.load
Создайте файл auth_kerb.conf в папке /etc/apache2-FlyBI-web/mods-enabled/ и добавьте в него строки:
KrbMethodNegotiate on
KrbMethodK5Passwd off
KrbAuthoritative on
KrbAuthRealms DOMAIN.RU
KrbServiceName HTTP/полное имя сервера в домене
Krb5Keytab /etc/apache2-FlyBI/flybihttp.keytab
KrbSaveCredentials on
KrbDelegateBasic off
KrbLocalUserMapping off
Параметры:
KrbAuthRealms. Домен Krb;
KrbServiceName. Имя службы. Параметр регистрозависимый. Служба должна быть прописана в соответствии с той службой, которая была создана при создании keytab-файла:
пример значения параметра для Windows Active Directory: HTTP/flyby.domain.ru@DOMAIN.RU;
пример значения параметра для Astra Linux Directory: HTTP/flyby.domain.ru;
Krb5Keytab. Путь до keytab-файла.
Задайте настройки в файле /etc/apache2-FlyBI-web/sites-available/webserver.conf:
<VirtualHost *:8110>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
DocumentRoot ${PATH_TO_MOD}
RewriteEngine On
RewriteRule ^/login$ ${PATH_TO_MOD}/index.html
RewriteRule ^/workspace/(.*)$ ${PATH_TO_MOD}/index.html
RewriteRule ^/create-workspace$ ${PATH_TO_MOD}/index.html
<Directory "${PATH_TO_MOD}/">
Options FollowSymLinks
AllowOverride None
AuthType KerberosV5
Require valid-user
Order allow,deny
Allow from all
FileETag None
SetEnv no-gzip 1
SetEnv dont-vary 1
<FilesMatch "\.([^.]+)$">
Header set Cache-Control "public, max-age=31536000" env=CACHEBLE
Header unset Pragma
Header unset ETag
UnsetEnv CACHEBLE
</FilesMatch>
<FilesMatch "\.cache\.(js|html)$">
Header set Cache-Control "public, max-age=31536000"
</FilesMatch>
</Directory>
ProxyPass /app/PPService.axd ${PP_SOM} retry=1 acquire=3000 timeout=6000 Keepalive=On
<Directory />
Options FollowSymLinks
AllowOverride None
AuthType KerberosV5
Require valid-user
</Directory>
</VirtualHost>
Задайте параметр PP_SOM в файле /etc/opt/foresight/FlyBI-webserver/envvars:
PP_SOM=http://hostname.domain.local:8010/FPBI_App/axis2/services/PP.SOM.Som
Задайте настройки в файле config.json:
{
"targetRepo": "<идентификатор репозитория>",
"targetApp": "DB",
"serviceUrl": "http://hostname.domain:8110/app/PPService.axd",
"locale": "ru",
"locales": [ "ru" ],
"title": "FlyBI",
"authorization": "integrated",
"loginPageUrl": ""
}
Примечание. Идентификатор репозитория можно посмотреть в файле Metabases.xml.
Задайте настройки в файле PP.xml:
<pp>
<service url="http://hostname.domain:8110/app/PPService.axd" />
<metabase id="<идентификатор репозитория>" authentication="IntegratedDomain"/>
<cultures>
<culture cultureName="ru"/>
</cultures>
</pp>
Примечание. Идентификатор репозитория можно посмотреть в файле Metabases.xml.
Укажите в настройках подключения СУБД парольный вход для служебных пользователей. Для этого добавьте в файл /etc/postgresql/13/main/pg_hba.conf строки:
host all USER_SERVICE 0.0.0.0/0 md5
host all USER_TECH 0.0.0.0/0 md5
Примечание. Строки добавляются перед методом gss. При необходимости входа в систему под парольным пользователем требуется также требуется указать для него настройки метода md5.
Перезапустите службы postgresql и apache2-FlyBI-web с помощью команд:
sudo systemctl restart postgresql
sudo systemctl restart apache2-FlyBI-web
В результате для web-сервера будет настроена Kerberos-аутентификация.
См. также: