Связанные статьи:
Включение LDAP аутентификации на портале (кнопка "Вход через Windows")
Синхронизация списка пользователей с LDAP-каталогом (AD)
...
Статья посвящена настройке интеграции системы, развернутой на сервере под управлением ОС Linux, с глобальным каталогом LDAP (Active Directory) с использованием механизма Kerberos.Связанные статьи:
Синхронизация списка пользователей с LDAP
Для интеграции Linux с корпоративным LDAP (в данном примере, на основе Active Directory) требуется установить необходимые пакеты и настроить сам Kerberos, для этого необходимо:
- Установить необходимые пакеты
- Задать имя серверу
- Настроить синхронизацию времени
Создание учетной записи в AD и файла keytab
Создание keytab-файла
Настройка kerberos на Linux сервере
Настройка Веб-приложения Vitro для авторизации в каталоге LDAP/AD при помощи сервис принципала
Для работы на Linux необходим пакет libldap-2.5. Если в используемой ОС в OpenLDAP используется другая версия, то будут возникать ошибки.
Установить версию 2.5 можно следуя инструкции.
1. Установка пакетов
Установить необходимые пакеты из репозиториев.
...
| Code Block | ||
|---|---|---|
| ||
yum install krb5-workstation |
Для РЕД ОС дополнительно необходимо установить актуальную версию openldap-compat:
| Code Block | ||
|---|---|---|
| ||
yum install openldap-compat |
2. Имя сервера
В процессе настройки аутентификации через LDAP необходимо задать в качестве принципала имя нашего сервера:
...
* Для примера настройки в качестве FQDN имени сервера будет использовано vitroweb.domain.local (домен domain.local).
3. Настройка времени
Для работы с LDAP необходимо, чтобы время на контроллере совпадало с временем на нашем веб-сервере. Для этого необходимо настроить синхронизацию.
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
... server dc1.domain.local iburst # server ... # server ... # server ... ... |
4. Создание учетной записи в AD и файла keytab
Для подключения к контроллеру домена нам необходимо подтверждать подлинность. Это выполняется с помощью учетной записи в LDAP и ее отпечатка в файле keytab.
...
| Warning |
|---|
| Учетная запись должна быть размещена по пути, в котором присутствуют названия только на латинице. Подразделения и контейнеры не должны быть на русском. В противном случае, при выполнении команды ниже мы получим ошибку «Password set failed! 0x00000020». |
5. Создание keytab-файла
Данный файл позволяет пройти идентификацию в Kerberos без запроса пароля. Он содержит пары имен субъектов Kerberos и зашифрованные ключи, полученные из пароля Kerberos.
...
В нашем примере, после выполнения команды на контроллере домена в директории C:\temp появится файл krb5.keytab. Его следует скопировать на Linux-сервер, например, при помощи WinSCP.
| Warning | ||
|---|---|---|
| ||
Имя файла должно быть krb5.keytab. На Linux-сервере файл необходимо разместить в каталоге /etc. Необходимо выдать разрешения на файл krb5.keytab командой |
6. Настройка kerberos на Linux сервере
1. Открыть на редактирование файл:
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
[libdefaults] default_realm = DOMAIN.LOCAL # The following krb5.conf variables are only for MIT Kerberos. kdc_timesync = 1 ccache_type = 4 forwardable = true proxiable = true # The following libdefaults parameters are only for Heimdal Kerberos. fcc-mit-ticketflags = true [realms] VITRODOMAIN.INTRALOCAL = { kdc = 10.0.0.1 kdc = 10.0.0.5 admin_server = domain.local default_domain = domain.local } [domain_realm] .domain.local = DOMAIN.LOCAL domain.local = DOMAIN.LOCAL |
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
Credentials cache: FILE:/tmp/krb5cc_0 Principal: vitro_krb5@DOMAIN.LOCAL Issued Expires Principal Jul 30 21:09:34 2024 Jul 31 07:09:34 2024 HTTP/vitroweb.domain.local@DOMAIN.LOCAL |
7. Настройка Веб-приложения Vitro для авторизации в каталоге LDAP/AD при помощи сервис принципала
Отредактировать (а при отсутствии предварительно создать) файл /usr/local/Vitro.Server.Core.Web/etc/Vitro/Server/Conf/auth.json*
| Code Block | ||||
|---|---|---|---|---|
| ||||
{
"DomainName": "dc1.domain.local",
"PortNumber": 389,
"Container": "DC=vitro,DC=intra",
"UserName": "vitro_krb5",
"Password": "@pwd4krb!",
"AuthType": "Basic",
"Ssl": false
} |
* путь "/usr/local/Vitro.Server.Core.Webetc/Vitro/Server/Conf" - это путь к директории с конфигурационными файлами Vitro. В случае размещения рабочей директории "Vitro.Server.Core.Web" по иному префикс-пути, отличного от "/usr/local" следует изменить значение пути на соответствующее собственное.
...
| Info | ||
|---|---|---|
| ||
"DomainName" - FQDN имя контроллера домена "PortNumber" - Номер порта для подключения к LDAP каталогу. Для подключения к LDAPS используется порт с номером 636 или 3269. Значение по умолчанию: 389. "Container" - объект структуры каталога LDAP/AD в котором осуществляется поиск пользователей "UserName" - имя пользователя, от имени которого осуществляется подключение к каталогу LDAP/AD "Password" - пароль пользователя, от имени которого осуществляется подключение к каталогу LDAP/AD "AuthType" - тип аутентификации (оставить "Basic") "Ssl" - Подключаться по SSL протоколу. Используется совместно с параметром PortNumber (порт 636 или 3269). Значение по умолчанию: false. |