Если разрабатываемое веб-приложение предполагает аутентификацию в репозитории платформы под доменным пользователем, то для организации такой схемы работы потребуется дополнительная настройка как сервера СУБД, так и BI-сервера, установленного на Linux. Ниже приведен пример настройки доменной аутентификации на Ubuntu. Если используется СУБД Oracle, то указанные настройки актуальны для работы интегрированной доменной аутентификации.
Доменная аутентификация доступна при организации сервера на базе СУБД Oracle версии 11.x и выше или PostgreSQL. При работе с Oracle сервер СУБД необходимо подготовить, используя одну из следующих инструкций:
http://docs.oracle.com/cd/B28359_01/network.111/b28530/asokerb.htm;
http://www.ateam-oracle.com/configuring-your-oracle-database-for-kerberos-authentication.
При работе с PostgreSQL необходимо настроить аутентификацию по методу GSSAPI, руководствуясь документацией к СУБД.
Предполагается, что сервер СУБД и BI-сервер располагаются на различных физических серверах.
Предварительно выполните следующие действия:
Установите BI-сервер (при установке также будут произведены необходимые настройки).
Установите и настройте клиент Oracle.
Пример
установки и настройки клиента Oracle
Установите пакеты для протокола Kerberos:
sudo apt-get install krb5-user krb5-config
В /etc/krb5.conf добавьте информацию о домене, например:
[libdefaults]
default_realm = DOMAIN.RU
[realms] DOMAIN.RU = {
kdc = hostname1.domain.ru
kdc = hostname2.domain.ru
}
[domain_realm]
.domain.ru = DOMAIN.RU
domain.ru = DOMAIN.RU
При возникновении ошибки «kinit: Generic preauthentication failure while getting initial credentials» добавьте в /etc/krb5.conf:
default_tkt_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
default_tgs_enctypes = rc4-hmac des-cbc-crc des-cbc-md5
В slqnet.ora добавьте следующие строки:
SQLNET.AUTHENTICATION_SERVICES=(BEQ,KERBEROS5)
SQLNET.KERBEROS5_CONF_MIT=TRUE
SQLNET.KERBEROS5_CONF=/etc/krb5.conf
Помимо основной настройки Apache HTTP Server, которая будет выполнена при установке пакета BI-сервера, необходимо произвести дополнительную настройку.
Настройка модуля mod_auth_kerb:
Для аутентификации пользователя на сервере требуется установить модуль mod_auth_kerb. Модуль доступен по адресу: http://modauthkerb.sourceforge.net/.
На Ubuntu модуль доступен из стандартных репозиториев, для его установки выполните:
sudo apt-get install libapache2-mod-auth-kerb
Предполагается, что keytab-файл для сервиса HTTP находится в /etc/apache2/http.keytab и имеет права доступа на чтение для www-data.
После установки и активации модуля нужно скорректировать файл с настройками /etc/apache2/mods-enabled/auth_kerb.conf следующим образом (поменять <server> на имя сервера, на котором развернут BI-сервер продукта «Форсайт. Аналитическая платформа»):
# To enable or disable the use of the Negotiate method. You need a special support on the browser side to support this mechanism.
KrbMethodNegotiate on
# To enable or disable the use of password based authentication for Kerberos v5.
KrbMethodK5Passwd on
# If set to off this directive allow authentication controls to be pass on to another modules.
# Use only if you really know what you are doing.
KrbAuthoritative on
# This option takes one or more arguments (separated by spaces), specifying the Kerberos realm(s) to be used for authentication.
# This defaults to the default realm taken from the local Kerberos configuration.
KrbAuthRealms DOMAIN.RU
# This option can be used to disable the verification tickets against local keytab to prevent KDC spoofing atacks.
# It should be used only for testing purposes. You have been warned.
#KrbVerifyKDC on
# For specification the service name that will be used by Apache for authentication.
# Corresponding key of this name must be stored in the keytab.
KrbServiceName HTTP/<server>.domain.ru@DOMAIN.RU
# This option takes one argument, specifying the location of the Kerberos V5 keytab file.
# It will use the "default keytab" from Kerberos V5's config if it is not specified here.
# The keytab file must be readable for the apache process, and should be different from other keytabs in the system.
Krb5Keytab /etc/apache2/http.keytab
# This option enables credential saving functionality.
KrbSaveCredentials on
# Always offer Basic authentication regardless of KrbMethodK5Pass and pass on authentication to lower modules if Basic headers arrive.
KrbDelegateBasic off
# Set to 'on' to have Kerberos do auth_to_local mapping of principal names to system user names.
KrbLocalUserMapping off
В файле /etc/apache2/sites-enabled/000-default.conf (наименование может быть без .conf) следует добавить следующие строки:
ServerName <server>.domain.ru
<Directory />
Options FollowSymLinks
AllowOverride None
AuthType KerberosV5
Require valid-user
</Directory>
Настройка mpm-модуля coworker:
Для корректной работы через Kerberos на Apache нужен модифицированный mpm-модуль coworker вместо worker. Это требуется для того, чтобы изолировать процессы аутентификации пользователей.
Распакуйте архив с mpm-модулем в /usr/lib/apache2.
Сделайте символьную ссылку /usr/sbin/apache2 на /usr/lib/apache2/mpm-coworker/apache2.
В /etc/apache2/apache2.conf добавьте настройки следующего вида:
<IfModule mpm_coworker_module>
StartServers 2 # предполагаемое количество пользователей, работающих одновременно
MinSpareThreads 1
MaxSpareThreads 50
ThreadsPerChild 10
MaxRequestsPerChild 0
ExpireTimeout 3600 # таймаут в секундах, по истечению которого процесс может быть переиспользован новым пользователем
ChildPerUser On # включить разделение пользователей (по умолчанию выключено)
</IfModule>
Для работы с Active Directory нужно установить следующие пакеты:
sudo apt-get install libldap-2.4-2 libsasl2-modules-gssapi-mit
Далее в файл /etc/ldap/ldap.conf добавить информацию об Active Directory:
BASE ou=group,dc=domain,dc=ru
URI ldap://hostname1.domain.ru ldap://hostname2.domain.ru
Работу с Active Directory можно проверить и без Apache, для этого достаточно инициализировать кэш учетных данных доменного пользователя через kinit. Далее под тем же локальным пользователем, из-под которого запускали kinit, запустить axis2_http_server.
В настройках репозитория (файл Metabases.xml или registry.reg) должна быть установлена интегрированная доменная аутентификация: Authentication="2".
Описание процесса настройки веб-приложения, развёрнутого на веб-сервере с ОС Windows, представлено в статье «Настройка ASP.NET веб-приложения с доменной/интегрированной доменной аутентификацией». Актуальным является настройка файла PP.xml (пункт 5), включение делегирования (пункт 7) и настройка браузера (пункт 8).
См. также: