Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Настройка Linux для интеграции с AD
Для интеграции Linux с корпоративным LDAP (в данном примере, на основе Active Directory) установим необходимые пакеты и настроим Kerberos. 

1.Установка пакетов

Необходимые пакеты ставим из репозиториев. 

...

Code Block
languagebash
yum install krb5-workstation

2.Имя сервера

В процессе настройки аутентификации через LDAP необходимо задать в качестве принципала имя нашего сервера:

Code Block
languagebash
hostnamectl set-hostname vitroweb.domain.local

* Для примера настройки в качестве FQDN имени сервера будет использовано vitroweb.domain.local (домен domain.local).

3.Настройка времени

Для работы с LDAP необходимо, чтобы время на контроллере совпадало с временем на нашем веб-сервере. Для этого необходимо настроить синхронизацию.

...

Code Block
languageyml
titlechrony.conf
...
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
languagepowershell
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
languagebash
klist

Мы должны увидеть что-то на подобие:

Code Block
languagebash
themeEmacs
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*

...