...
Настройка Linux для интеграции с AD
Для интеграции Linux с корпоративным LDAP (в данном примере, на основе Active Directory) установим необходимые пакеты и настроим Kerberos.
1.Установка пакетов
Необходимые пакеты ставим из репозиториев.
...
| Code Block | ||
|---|---|---|
| ||
yum install krb5-workstation |
2.Имя сервера
В процессе настройки аутентификации через LDAP необходимо задать в качестве принципала имя нашего сервера:
| Code Block | ||
|---|---|---|
| ||
hostnamectl set-hostname vitroweb.domain.local |
* Для примера настройки в качестве 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.
...
| Code Block | ||
|---|---|---|
| ||
ktpass /princ HTTP/vitroweb.domainpublic.local@DOMAINcom@DOMAIN.LOCAL /mapuser vitro_krb5@DOMAIN.LOCAL /crypto ALL /ptype KRB5_NT_PRINCIPAL /out C:\temp\krb5.keytab /pass <пароль пользователя> |
| Info |
|---|
| vitroweb.domainpublic.local com — FQDN имя сервера Vitro. Указывается имя используемое конечными пользователями (публичное или внутрисетевое) для подключения к порталу, зарегистрированное в корпоративном DNS (запись типа A, или CNAME); DOMAIN.LOCAL — домен предприятия (realm kerberos); vitro_krb5@DOMAIN.LOCAL * — учетная запись в AD для выполнения запросов (создана на шаге выше); * регистр важен. |
В нашем примере, после выполнения команды на контроллере домена в директории C:\temp появится файл krb5.keytab. Его копируем на Linux-сервер, например, при помощи WinSCP.
6.Настройка kerberos на Linux сервере
Открываем на редактирование файл:
...
При выполнении команды будет запрошен пароль пользователя vitro_krb5. В результате выполнения команды будет создан токен авторизации и сохранен в системную БД.
Теперь выполним:
| Code Block | ||
|---|---|---|
| ||
klist |
Мы должны увидеть что-то на подобие:
| 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/Vitro/Server/Conf/auth.json*
...