Доменная аутентификация

Если разрабатываемое веб-приложение предполагает аутентификацию в репозитории платформы под доменным пользователем, то для организации такой схемы работы потребуется дополнительная настройка как сервера СУБД, так и BI-сервера, установленного на Linux. Ниже приведен пример настройки доменной аутентификации на Ubuntu. Если используется СУБД Oracle, то указанные настройки актуальны для работы интегрированной доменной аутентификации.

Примечание. Настройка доменной аутентификации на веб-сервере Apache Tomcat при работе в ОС Linux не поддерживается.

Сервер СУБД

Доменная аутентификация доступна при организации сервера на базе СУБД Oracle или PostgreSQL. При работе с Oracle сервер СУБД необходимо подготовить, используя одну из следующих инструкций:

При работе с PostgreSQL необходимо настроить аутентификацию по методу GSSAPI, руководствуясь документацией к СУБД.

Настройка BI-сервера продукта «Форсайт. Аналитическая платформа»

Предполагается, что сервер СУБД и BI-сервер располагаются на различных физических серверах.

Предварительно выполните следующие действия:

  1. Установите BI-сервер (при установке также будут произведены необходимые настройки).

  2. Установите и настройте клиент Oracle.

Пример установки и настройки клиента Oracle

Настройка клиента Kerberos

Установите пакеты для протокола 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

Настройка клиента Oracle

В slqnet.ora добавьте следующие строки:

SQLNET.AUTHENTICATION_SERVICES=(BEQ,KERBEROS5)

SQLNET.KERBEROS5_CONF_MIT=TRUE

SQLNET.KERBEROS5_CONF=/etc/krb5.conf

Настройка Apache

Помимо основной настройки 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>

Настройка LDAP

Для работы с 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".

См. также:

Дополнительные настройки