Настройка механизма аутентификации Kerberos

Kerberos - сетевой протокол аутентификации, который предлагает механизм взаимной аутентификации клиента и сервера перед установлением связи между ними.

Для возможности аутентификации в продукте FlyBI с помощью Kerberos требуется настройка:

Для настройки Apache2-сервера для аутентификации с помощью Kerberos:

  1. Установите пакет mod-auth-kerb с помощью команды:

sudo apt-get install libapache2-mod-auth-kerb

  1. Создайте модуль auth_kerb.load в папке /etc/apache2-FlyBI/mods-available/ и добавьте в него строку:

LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so

  1. Запустите модуль auth_kerb.load с помощью команды:

sudo ln -s /etc/apache2-FlyBI/mods-available/auth_kerb.load /etc/apache2-FlyBI/mods-enabled/auth_kerb.load

  1. Создайте файл 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-файла:

Krb5Keytab. Путь до keytab-файла.

  1. Добавьте в файл /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:

  1. Установите пакет libsasl2-modules-gssapi-mit с помощью команды:

sudo apt install libsasl2-modules-gssapi-mit

  1. Настройте поиск доменных пользователей через протокол LDAP в файле Settings.xml.

Настройка для ОС Linux

Настройка для ОС Windows

Указанные настройки являются типовыми для поиска доменных пользователей через LDAP и могут отличаться в зависимости от требуемых условий поиска.

Проверка работы поиска

  1. Перезапустите службу apache2-FlyBI с помощью команды:

sudo systemctl restart apache2-FlyBI

В результате для BI-сервера будет настроена Kerberos-аутентификация.

Для настройки web-сервера для аутентификации с помощью Kerberos:

  1. Создайте модуль auth_kerb.load в папке /etc/apache2-FlyBI-web/mods-available/ и добавьте в него строку:

LoadModule auth_kerb_module /usr/lib/apache2/modules/mod_auth_kerb.so

  1. Запустите модуль auth_kerb.load с помощью команды:

sudo ln -s /etc/apache2-FlyBI-web/mods-available/auth_kerb.load /etc/apache2-FlyBI-web/mods-enabled/auth_kerb.load

  1. Создайте файл 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-файла:

Krb5Keytab. Путь до keytab-файла.

  1. Задайте настройки в файле /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>

  1. Задайте параметр PP_SOM в файле /etc/opt/foresight/FlyBI-webserver/envvars:

PP_SOM=http://hostname.domain.local:8010/FPBI_App/axis2/services/PP.SOM.Som

  1. Задайте настройки в файле config.json:

{

"targetRepo": "<идентификатор репозитория>",

"targetApp": "DB",

"serviceUrl": "http://hostname.domain:8110/app/PPService.axd",

"locale": "ru",

"locales": [ "ru" ],

"title": "FlyBI",

"authorization": "integrated",

"loginPageUrl": ""

}

Примечание. Идентификатор репозитория можно посмотреть в файле Metabases.xml.

  1. Задайте настройки в файле PP.xml:

<pp>

<service url="http://hostname.domain:8110/app/PPService.axd" />

<metabase id="<идентификатор репозитория>" authentication="IntegratedDomain"/>

<cultures>

<culture cultureName="ru"/>

</cultures>

</pp>

Примечание. Идентификатор репозитория можно посмотреть в файле Metabases.xml.

  1. Укажите в настройках подключения СУБД парольный вход для служебных пользователей. Для этого добавьте в файл /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.

  1. Перезапустите службы postgresql и apache2-FlyBI-web с помощью команд:

sudo systemctl restart postgresql

sudo systemctl restart apache2-FlyBI-web

В результате для web-сервера будет настроена Kerberos-аутентификация.

См. также:

Настройка интегрированной доменной аутентификации