К содержанию
Trialix

OpenLDAP

Подключение OpenLDAP к Trialix через Trialix Connector, профиль openldap. OpenLDAP проверяется автотестом на каждом выпуске Trialix: сервер OpenLDAP 2.4 (образ osixia/openldap 1.5.0) с тестовыми сотрудниками и вложенными группами, настоящий коннектор, предпросмотр, синхронизация, пересоздание группы, порог отключений, пустой ответ каталога. В автотесте коннектор настроен профилем custom с теми же атрибутами (entryUUID, member, inetOrgPerson, groupOfNames); профиль openldap отличается от него только готовыми фильтрами и признаком отключения pwdAccountLockedTime.

Сервисная учётная запись

Заведите отдельную запись для входа коннектора и дайте ей только чтение нужных веток.

  1. Хеш пароля:
slappasswd
  1. Запись (подставьте хеш):
ldapadd -x -H ldaps://ldap.company.local -D cn=admin,dc=company,dc=local -W <<'LDIF'
dn: cn=svc-trialix,ou=services,dc=company,dc=local
objectClass: organizationalRole
objectClass: simpleSecurityObject
cn: svc-trialix
description: Trialix Connector, только чтение
userPassword: {SSHA}ЗАМЕНИТЕ_НА_ХЕШ
LDIF
  1. Права на чтение (конфигурация cn=config). Порядок правил olcAccess важен: новые правила ставьте выше общих, номер {0} и база {1}mdb зависят от вашей установки.
ldapmodify -Y EXTERNAL -H ldapi:/// <<'LDIF'
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to dn.subtree="ou=people,dc=company,dc=local" by dn.exact="cn=svc-trialix,ou=services,dc=company,dc=local" read by * break
olcAccess: {1}to dn.subtree="ou=groups,dc=company,dc=local" by dn.exact="cn=svc-trialix,ou=services,dc=company,dc=local" read by * break
LDIF

Проверка: ldapsearch -x -H ldaps://ldap.company.local -D cn=svc-trialix,ou=services,dc=company,dc=local -W -b ou=people,dc=company,dc=local "(objectClass=inetOrgPerson)" entryUUID mail.

Параметры подключения

ПараметрЗначение
Профильopenldap
Адресldaps://ldap.company.local:636 или ldap://ldap.company.local:389 со StartTLS
Базовый DNdc=company,dc=local
Ветки--user-base-dn ou=people,dc=company,dc=local, --group-base-dn ou=groups,dc=company,dc=local
Сервисная учётная записьcn=svc-trialix,ou=services,dc=company,dc=local
sudo -i
read -rs SVC_PW && export SVC_PW
trialix-connector setup --profile openldap --url ldaps://ldap.company.local:636 --base-dn dc=company,dc=local \
  --user-base-dn ou=people,dc=company,dc=local --group-base-dn ou=groups,dc=company,dc=local \
  --bind-dn cn=svc-trialix,ou=services,dc=company,dc=local --password-env SVC_PW --ca-file /etc/trialix-connector/ldap-ca.pem

Что читает коннектор

ЧтоАтрибут
Сотрудники(objectClass=inetOrgPerson)
Группы(objectClass=groupOfNames) или (objectClass=groupOfUniqueNames)
Неизменяемый идентификаторentryUUID (операционный атрибут, коннектор запрашивает его явно)
Вторичные признакиDN, uid, mail
Имя, фамилия, должность, отдел, телефон, руководительgivenName, sn, title, departmentNumber, telephoneNumber, manager
Членствоmember, uniqueMember (значения - DN), memberOf у пользователя, если включён оверлей memberof; вложенность до 5 уровней
Отключённая учётная записьpwdAccountLockedTime (оверлей ppolicy)

Ограничения:

  • Группы posixGroup с атрибутом memberUid (логины вместо DN) не поддерживаются. Используйте groupOfNames или groupOfUniqueNames.
  • Без оверлея ppolicy в OpenLDAP нет стандартного признака отключения. Тогда увольнение отражайте исключением сотрудника из привязанных групп или удалением записи: такой сотрудник в Trialix деактивируется. Свой признак отключения можно задать профилем «Произвольный LDAP».

LDAPS и StartTLS

  • LDAPS: в cn=config должны быть заданы olcTLSCertificateFile, olcTLSCertificateKeyFile, а в SLAPD_SERVICES (или slapd.service) - ldaps:///.
  • StartTLS: адрес ldap://…:389 и флаг --starttls.
  • Корневой сертификат, которым подписан сертификат сервера, укажите в --ca-file.

Проверка

sudo trialix-connector doctor
sudo trialix-connector preview --json | head -40

В preview --json у каждого сотрудника должен быть заполнен id (значение entryUUID). Если вместо него стоит dn:…, у сервисной учётной записи нет права читать entryUUID.

Обновлено 29.09.2026