Если разрабатываемое веб-приложение предполагает аутентификацию в репозитории платформы под доменным пользователем, то для организации такой схемы работы потребуется дополнительная настройка как сервера СУБД, так и BI-сервера, установленного на Linux. Ниже приведен пример настройки доменной аутентификации на Ubuntu. Если используется СУБД Oracle, то указанные настройки актуальны для работы интегрированной доменной аутентификации.
Примечание. Настройка доменной аутентификации на веб-сервере Apache Tomcat при работе в ОС Linux не поддерживается.
Доменная аутентификация доступна при организации сервера на базе СУБД Oracle или 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>
Для работы с 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".
См. также: