- Print
- DarkLight
- PDF
Kerberos - Настройка доменной авторизации для нескольких доменов
Настройка файлов конфигурации AD
Рассмотрим на примере: Приложением пользуются сотрудники из двух разных доменов, и web-сайт размещён в другой отдельной доменной зоне:
Домены: KUBIK.COM и RUBIK.COM
Web-сайт: doczilla.kubikrubik.com
1. На контроллере AD каждого домена создать системного пользователя и добавить Service Principal Names (SPN) для него
Логин: doczilla
Пароль: doczPswd!
описание команды:
пример команды:
setspn -A HTTP/doczilla.kubikrubik.com doczilla
2. На сервере приложения создать в /opt/doczilla/cong/spnego/ отдельные директории под каждый домен и скопировать туда по 2 конфигурационных файла (jaas.conf, krb5.ini)
cd /opt/doczilla/cong/spnego/
mkdir kubik.com
cp ./jaas.conf ./kubik.com/
cp ./krb5.ini ./kubik.com/
mkdir rubik.com
cp ./jaas.conf ./rubik.com/
cp ./krb5.ini ./rubik.com/
3. На контроллере AD каждого домена создать отдельный «krb5.keytab»
описание команды:
https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/ktpass
пример команды:
ktpass -princ HTTP/doczilla.testdomain.local@TESTDOMAIN.LOCAL -mapuser doczilla@testdomain.local -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass doczPswd! -out krb5.keytab
Если запрещено использовать шифрование RC4-HMAC-NT возможно AES256-SHA1. Необходимо в команде у ключа -crypto заменить алгоритм, и в Свойствах системной учетной записи в AD поставить галку «Поддержка Kerberos AES 256»
Скопировать на сервер приложения в свои соответствующие папки:
- создаем для домена kubik.com и копируем в /opt/doczilla/cong/spnego/kubik.com/
ktpass -princ HTTP/doczilla.kubikrubik.com@KUBIKRUBIK.COM -mapuser doczilla@kubik.com -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass doczPswd! -out krb5.keytab
- создаем для домена rubik.com и копируем в /opt/doczilla/cong/spnego/rubik.com/
ktpass -princ HTTP/doczilla.kubikrubik.com@KUBIKRUBIK.COM -mapuser doczilla@rubik.com -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL -pass doczPswd! -out krb5.keytab
4. Необходимо отредактировать под свой домен все шаблоны конфигурационных файлов согласно комментариям внутри файлов:
- jaas.conf
- krb5.ini
(при обновлении проекта шаблоны файлов не перезаписывать)
5. В файле проекта ./bin/service.sh
- Включите режим расширенных логов для отладки, раскомментируйте:
DEBUG="true"
- Включите режим мультидоменной авторизации:
SSO="MULTISPNEGO"
- Замените наименование домена, в переменной (обязательно Большими Буквами). Указываем не домены пользователей, а который один для всех:
DOMAIN="KUBIKRUBIK.COM"
- Замените наименование сайта с приложением (HTTP/ не удалять)
TARGET="HTTP/doczilla.kubikrubik.com"
6. Настройка доверенной зоны (выполните п.1.6) указав web-сайт:
doczilla.kubikrubik.com
Настройка LDAP подключения
1. Зайти в приложение и открыть раздел «Настройки» -> «Параметры» -> «Ldap»
2. В блоке Ldap заполнить переменные (в поле description указаны примеры):
- ldap url – адрес подключения
ldap://192.168.0.1:389
- ldap principal name - логин пользователя
doczilla@testdomain.local
- ldap password - пароль пользователя
doczPswd!
- search base - базовое уникальное имя
dc=testdomain,dc=local
3. Открыть раздел «Администрирование» -> «Задания»
4. Найти задание «Синхронизация AD пользователей»
5. Сделать задачу активной и написать крон-выражение периодичности выполнения задачи, например каждый час:
0 */24 * * *
Содержимое шаблонов
Пример для мульти-доменной авторизации
(для второго домена соответственно только kubik.com заменить на rubik.com)