Только для продукта ПОЛИНОМ:MDM
AD-аутентификация для веб-сервера на Linux
Если в ПОЛИНОМ:MDM есть пользователи из Active Directory, необходимо выполнить дополнительные настройки.
Если вы не используете учетные записи Windows в ПОЛИНОМ:MDM, выполнять инструкции из раздела не нужно.
Важно
Веб-сервер ПОЛИНОМ:MDM должен быть присоединен к домену
Обозначения:
example.com - домен
dc.example.com - контроллер домена
polynom-server.example.com, polynom-serve - веб-сервер ПОЛИНОМ:MDM
PolynomDomainUser - пользователь домена, через которого будет осуществляться авторизация
PolynomDomainUserPassword - пароль пользователя PolynomDomainUser
polynom - пользователь от которого запущен веб-сервер
Примечание
Для каждого Linux-сервера, который присоединен к домену, нужен отдельный доменный пользователь. Ограничение файла keytab.
Создание файла keytab
На контроллере домена в командной строке, запущенной от имени администратора, выполните следующие команды
Получите информацию о контроллере домена
nltest /dsgetdc:EXAMPLE.COM
замените EXAMPLE.COM на ваш домен
В выводе будет содержаться следующая информация
Контроллер домена: \\dc.EXAMPLE.COM Адрес: \\10.10.10.10 ... Команда выполнена успешно.
Скопируйте имя и адрес контроллера домена в текстовый файл — они понадобятся для дальнейшей настройки веб-сервера ПОЛИНОМ:MDM
Проверьте наличие записей о веб-сервере в Active Directory
setspn -L polynom-server
замените polynom-server на имя сервера, на котором установлен веб-сервер ПОЛИНОМ:MDM
Если записей нет, добавьте их командами
setspn -S HTTP/polynom-server.example.com PolynomDomainUserзамените polynom-server на имя сервера, на котором установлен веб-сервер ПОЛИНОМ:MDM, а example.com - на ваш домен
setspn -S HTTP/polynom-server.example.com@EXAMPLE.COM PolynomDomainUserзамените polynom-server на имя сервера, на котором установлен веб-сервер ПОЛИНОМ:MDM, а EXAMPLE.COM - на ваш домен в верхнем регистре
Проверьте наличие разрешений на работу с шифрованием AES128 и AES256 у пользователя домена, через которого будет осуществляться авторизация
Перейдите в Server Manager -> Tools -> Active Directory Users and Computers
Выберите домен
Перейдите в Users
Выберите пользователя (в нашем примере это PolynomDomainUser)
Откройте контекстное меню и выберите Properties
В открывшемся окне на вкладке Account в разделе Account Options должны быть включены опции:
This account supports Kerberos AES 128 bit encryption
This account supports Kerberos AES 256 bit encryption
Создайте файл keytab с помощью утилиты ktpass
На контроллере домена в командной строке, запущенной от имени администратора, перейдите в папку C:\Windows\system32 и выполните команду
ktpass -princ HTTP/polynom-server.example.com@EXAMPLE.COM -mapuser PolynomDomainUser -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass PolynomDomainUserPassword -target dc.example.com -out C:\polynom-server_HTTP.keytabВажно
В свойствах учетной записи в Active Directory на вкладке Учетная запись должно поменяться имя входа на HTTP/polynom-server.example.com
Скопируйте файл на веб-сервер ПОЛИНОМ:MDM в папку /etc/ascon/polynom/
Перейдите на веб-сервер и выполните настройку веб-сервера
Настройка веб-сервера
Настройте права доступа к файлу keytab.
В целях безопасности доступ к файлу должен иметь только его владелец
sudo chown polynom /etc/ascon/polynom/polynom-server_HTTP.keytab
Команда сделает пользователя polynom владельцем файла
sudo chmod 400 /etc/ascon/polynom/polynom-server_HTTP.keytabКоманда ограничит доступ к файлу всем пользователям кроме polynom
Установите пакеты, необходимые для работы системной авторизации
sudo apt-get install realmd krb5-user software-properties-common python3-software-properties packagekit
sudo yum install realmd krb5-workstation
sudo apt-get install realmd krb5-kinit packagekit
Отредактируйте конфигурацию сетевого интерфейса
Вам потребуется IP-адрес и имя контроллера домена, которые вы получили на шаге 1 при создании файла keytab
Добавьте DNS-сервер и домен поиска в файле /etc/network/interfaces
<...> # The primary network interface auto eth0 iface eth0 inet dhcp dns-nameservers 10.10.10.10 dns-search dc.EXAMPLE.COM
замените 10.10.10.10 на IP-адрес вашего контроллера домена
замените dc.EXAMPLE.COM на имя вашего контроллера домена
Перезапустите сетевую службу
sudo ifdown eth0 && sudo ifup eth0
Имя сетевого интерфейса (eth0) может отличаться для разных компьютеров. Список сетевых интерфейсов можно получить командой ifconfig
Отредактируйте dns в файле /etc/sysconfig/network-scripts/ifcfg-eth0
Имя файла может отличаться в зависимости от вашей конфигурации
<...> PEERDNS=no DNS1=10.10.10.10
замените 10.10.10.10 на IP-адрес вашего контроллера домена
Перезапустите сетевую службу
sudo systemctl restart network
Добавьте DNS-сервер и домен поиска в ЦУС или в файле /etc/net/ifaces/<имя сетевого интерфейса>/resolv.conf
nameserver 10.10.10.10 search dc.EXAMPLE.COM
замените 10.10.10.10 на IP-адрес вашего контроллера домена
замените dc.EXAMPLE.COM на имя вашего контроллера домена
Перезапустите сетевую службу
sudo ifdown eth0 && sudo ifup eth0
Имя сетевого интерфейса (eth0) может отличаться для разных компьютеров. Список сетевых интерфейсов можно получить командой ifconfig
Убедитесь, что файл /etc/resolv.conf содержит строку
nameserver 10.10.10.10вместо 10.10.10.10 должен быть указан IP-адрес вашего контроллера домена
Настройте файл krb5.conf
nano /etc/krb5.conf [libdefaults] default_realm = EXAMPLE.COM rdns = no dns_lookup_kdc = true dns_lookup_realm = true [realms] EXAMPLE.COM = { kdc = dc.example.com admin_server = dc.example.com }
Запустите оболочку от имени пользователя polynom
sudo su polynomСоздайте файл /etc/ascon/polynom/domain.ini со следующим содержимым
Domain=example.com;User=PolynomDomainUser;Password=PolynomDomainUserPassword;AuthType=1;замените:
example.com на ваш домен
PolynomDomainUser на имя пользователя, через которого будет осуществляться авторизация
PolynomDomainUserPassword на пароль пользователя PolynomDomainUser
Файл domain.ini используется сервером приложений ПОЛИНОМ для авторизации пользователя.
Проверьте доступные билеты
klist -k -t /etc/ascon/polynom/polynom-server_HTTP.keytab
В выводе должна содержаться следующая информация
Keytab name: FILE:/etc/ascon/polynom/polynom-server_HTTP.keytab KVNO Timestamp Principal ---- ------------------- ------------------------------------------------------------------ 13 01.01.1970 03:00:00 HTTP/polynom-server.example.com@EXAMPLE.COM (DEPRECATED:des-cbc-crc) 13 01.01.1970 03:00:00 HTTP/polynom-server.example.com@EXAMPLE.COM (DEPRECATED:des-cbc-md5) 13 01.01.1970 03:00:00 HTTP/polynom-server.example.com@EXAMPLE.COM (DEPRECATED:arcfour-hmac) 13 01.01.1970 03:00:00 HTTP/polynom-server.example.com@EXAMPLE.COM (aes256-cts-hmac-sha1-96) 13 01.01.1970 03:00:00 HTTP/polynom-server.example.com@EXAMPLE.COM (aes128-cts-hmac-sha1-96)
Примечание
Значения KVNO и Principal должны быть идентичными тем, что выдала команда ktpass при создании файла keytab.
Проверьте получение билета
kinit -k -t /etc/ascon/polynom/polynom-server_HTTP.keytab HTTP/polynom-server.example.com@EXAMPLE.COM -v -VВывод:
keytab specified, forcing -k Using default cache: /tmp/krb5cc_1001 Using principal: HTTP/polynom-server.example.com@EXAMPLE.COM Using keytab: /etc/ascon/polynom/polynom-server_HTTP.keytab Authenticated to Kerberos v5
В файл службы /etc/systemd/system/polynomweb.service в раздел [Service] добавьте путь к файлу keytab:
Environment=KRB5_KTNAME=/etc/ascon/polynom/polynom-server_HTTP.keytabПерезапустите службу polynomweb
sudo systemctl daemon-reload sudo systemctl restart polynomweb.service
Совет
Для диагностики временно запустите службу polynomweb.service c отладкой
[Service]
...
Environment=KRB5_TRACE=/tmp/krb5.trace
Environment=GSSAPI_TRACE=1
Информация о проблеме будет записана в файл /tmp/krb5.trace
После завершения диагностики удалите добавленные строки из файла службы и выполните перезапуск, чтобы отключить отладку.
Настройка браузера
Примечание
Windows-авторизация работает только в браузерах ОС Windows.
Windows-авторизация работает без дополнительной настройки в браузерах Chrome и Edge.
Если вы используете Firefox, требуется настроить браузер.
Введите в адресной строке about:config
Измените настройки как показано ниже
network.auth.use-sspi: false network.negotiate-auth.trusted-uris = .example.com # (1)! network.negotiate-auth.using-native-gsslib: false network.negotiate-auth.gsslib: C:\Program Files\MIT\Kerberos\bin\gssapi64.dll
замените example.com на ваш домен