Предусловия для Active Directory при сервере на Linux
Документация
Главная

Предусловия для Active Directory при сервере на Linux

Для интеграции Proceset с Microsoft Active Directory при сервере приложения на Linux выполните подготовительные шаги, описанные на этой странице. Они обязательны как для синхронизации справочника пользователей, так и для Kerberos-аутентификации.

Часть шагов выполняется на стороне Active Directory, часть — на стороне Linux.

Подготовка на стороне Active Directory

Сервисная учетная запись для подключения

Создайте обычную пользовательскую учетную запись в Active Directory — она используется для подключения Proceset к контроллеру домена (LDAP bind) и синхронизации справочника:

ПараметрЗначение
ТипУчастник группы Domain Users
ПарольДлинный. Настройте Password never expires или согласуйте регламент ротации на стороне Linux
ПраваRead-only на подразделения (OU) и группы, которые будут синхронизироваться
Логин (UPN)Например, svc-proceset@corp.local — потребуется при настройке подключения

Учетной записи достаточно права Read all user information на нужных OU. Права администратора домена не нужны.

Заметка

При использовании Universal Security Groups в доменных путях необходимо, чтобы сервисная учетная запись также входила в Domain Users на уровне соответствующих OU.

CA-сертификат для LDAPS

Если планируется подключение по LDAPS (порт 636), экспортируйте корневой или промежуточный CA-сертификат в формате PEM или DER — он понадобится при настройке подключения и загружается через интерфейс Proceset.

Экспортировать можно через консоль MMC → Certificates → Trusted Root → Export (Base64) или командой:

certutil -ca.cert root-ca.cer

Сертификат самого контроллера домена не нужен — нужен сертификат издателя (корневой или промежуточный CA).

Подготовка для Kerberos-аутентификации

Если планируется Kerberos/SSO, дополнительно создайте сервисную учетную запись для регистрации SPN и сгенерируйте keytab-файл — инструкция на странице Kerberos/SSO при сервере на Linux.

При генерации keytab укажите шифрование AES256-SHA1. Это гарантирует совместимость с политиками домена, которые запрещают устаревшие алгоритмы RC4 и DES.

Подготовка на стороне Linux

Разрешение имен контроллеров домена в DNS

Контейнер Proceset должен разрешать имена контроллеров домена в IP-адреса.

Настройте DNS-сервер контейнера в docker-compose.yml:

services:
  proceset:
    dns:
      - <ip-корпоративного-dns>

Или передайте DNS при запуске: docker run --dns=<ip-корпоративного-dns>.

Добавьте поиск по домену (search corp.local), чтобы использовать короткие имена.

Для Kerberos-аутентификации дополнительно настройте обратное разрешение (PTR-записи) для IP-адресов контроллеров домена.

Проверьте DNS из контейнера:

nslookup dc1.corp.local
nslookup -type=SRV _ldap._tcp.corp.local
nslookup -type=SRV _kerberos._tcp.corp.local

FQDN самого контейнера (для Kerberos)

При использовании Kerberos/SSO браузер запрашивает у KDC билет на имя HTTP/<fqdn-сервиса>. Это имя должно совпадать с SPN, зарегистрированным в AD.

Задайте hostname контейнера через docker-compose.yml:

services:
  proceset:
    hostname: proceset.corp.local

Проверьте из контейнера:

hostname -f
nslookup proceset.corp.local
nslookup <ip-контейнера>

Синхронизация времени по NTP

Для Kerberos-аутентификации расхождение времени контейнера и контроллера домена не должно превышать 5 минут — иначе аутентификация завершится с ошибкой KRB_AP_ERR_SKEW.

Синхронизируйте время хоста через chronyd или systemd-timesyncd, указывая в качестве источника серверы, которые обслуживают AD (обычно сам PDC Emulator):

chronyc tracking
timedatectl show-timesync --all

Контейнер наследует время от хоста. На Docker Desktop (Windows / WSL2) после выхода из режима сна часы контейнера могут сдвинуться — проверяйте в этом случае отдельно.

Открытые порты до контроллеров домена

С хоста, на котором работает контейнер Proceset, должна быть TCP-доступность до всех контроллеров домена:

ПортНазначениеКогда нужен
53DNSВсегда
389LDAPПри подключении без LDAPS
636LDAPSПри подключении с LDAPS
88Kerberos (KDC)При Kerberos-аутентификации
464Kerberos (kpasswd)Опционально, при смене паролей
Заметка

Порты LDAP Global Catalog (3268/3269) не используются: Proceset подключается напрямую к 389/636 на адрес контроллера.

Проверьте доступность из контейнера:

nc -zv dc1.corp.local 389
nc -zv dc1.corp.local 636
nc -zv dc1.corp.local 88

Доступный на запись временный каталог

Proceset записывает служебные файлы во временный каталог при старте. Убедитесь, что временный каталог, заданный в конфигурации платформы, доступен на запись внутри контейнера.

На образах с файловой системой только для чтения (read-only) смонтируйте отдельный том или tmpfs на путь временного каталога.

Прямой маршрут до контроллеров домена

Proceset подключается к контроллерам домена напрямую по TCP и не поддерживает HTTP- или SOCKS-прокси между контейнером и контроллером. Если между ними стоит прокси — соединение не установится.

Убедитесь, что от контейнера до контроллеров домена есть прямой L3/L4-маршрут.

Что не нужно делать

Proceset управляет следующими компонентами самостоятельно — выполнять эти шаги вручную не требуется:

  • Создавать /etc/krb5.conf в контейнере — Proceset генерирует файл конфигурации Kerberos автоматически.
  • Монтировать keytab-файл в контейнер — keytab загружается через GraphQL и применяется автоматически при запуске.
  • Устанавливать системные пакеты krb5-user или openldap-clients для работы — они нужны только для диагностики.
  • Настраивать pam_krb5 или sssd на уровне ОС — Proceset обрабатывает Kerberos-аутентификацию самостоятельно.

Проверка готовности

Перед настройкой синхронизации или Kerberos убедитесь, что выполнены все пункты:

На стороне Active Directory:

  • Создана сервисная учетная запись
  • Для LDAPS — экспортирован CA-сертификат
  • Для Kerberos — создана отдельная учетная запись, зарегистрирован SPN, сгенерирован keytab

На стороне Linux:

  • Из контейнера разрешаются имена всех контроллеров домена (прямое и обратное разрешение)
  • Для Kerberos — hostname -f внутри контейнера совпадает с SPN, настроены A- и PTR-записи
  • Время хоста синхронизировано с контроллерами домена, отклонение менее 5 минут
  • Открыты порты 389/636 (LDAP/LDAPS) и 88/464 (Kerberos)
  • nc -zv подтверждает доступность контроллеров домена из контейнера
  • Временный каталог tempDir доступен на запись
  • Между контейнером и контроллерами домена нет HTTP/SOCKS-прокси

Следующие шаги

Была ли статья полезна?

Предыдущая
Интеграция с Active Directory
Следующая
Синхронизация пользователей с Active Directory
430006, Саранск,
Северо-восточное шоссе, д. 3
ОКВЭД 62.01
ИНН 1328​909857
Код вида деятельности
в области ИТ 15.02 и 17.01
Языки программирования