Произвольный LDAP («своя схема»)
Профиль custom для каталогов с нестандартной схемой: 389 Directory Server, Red Hat Directory Server, OpenLDAP со своими классами и другие LDAP-серверы. Фильтры и атрибуты задаются флагами setup. Этот профиль работает в автотесте Trialix на каждом выпуске (OpenLDAP 2.4, entryUUID, свой признак отключения). Для Active Directory и Samba AD используйте профили ad и samba: в custom двоичный objectGUID не переводится в строку GUID.
Сервисная учётная запись
Нужна учётная запись с правом чтения веток сотрудников и групп, включая операционные атрибуты, если идентификатор операционный (entryUUID, nsUniqueId). Пример для OpenLDAP - в разделе OpenLDAP.
Флаги
| Флаг | Обязателен | Значение |
|---|---|---|
--profile custom | да | включает свою схему |
--user-filter | да | фильтр сотрудников, например (objectClass=inetOrgPerson) |
--group-filter | да | фильтр групп, например (objectClass=groupOfNames) |
--attr ключ=атрибут | нет | свои имена атрибутов, флаг повторяется |
Ключи --attr и значения по умолчанию:
| Ключ | По умолчанию | Что это |
|---|---|---|
id | entryUUID | неизменяемый идентификатор, текстовый |
login | uid | логин |
mail | mail | почта |
first | givenName | имя |
last | sn | фамилия |
title | title | должность |
dept | departmentNumber | отдел |
phone | telephoneNumber | телефон |
manager | manager | руководитель (DN) |
member | member | атрибут группы со списком DN участников |
groupName | cn | название группы |
disabled | не задан | атрибут-признак: если у сотрудника он заполнен любым значением, учётная запись считается отключённой |
Кроме атрибута member у групп коннектор читает memberOf у сотрудников. Значения членства должны быть DN; списки логинов (memberUid) не поддерживаются.
Пример
sudo -i
read -rs SVC_PW && export SVC_PW
trialix-connector setup --profile custom --url ldaps://ldap.company.local:636 --base-dn dc=company,dc=local \
--user-base-dn ou=staff,dc=company,dc=local --group-base-dn ou=roles,dc=company,dc=local \
--bind-dn cn=svc-trialix,ou=services,dc=company,dc=local --password-env SVC_PW \
--user-filter "(&(objectClass=inetOrgPerson)(employeeType=staff))" \
--group-filter "(objectClass=groupOfUniqueNames)" \
--attr id=entryUUID --attr member=uniqueMember --attr dept=ou --attr disabled=employeeEndDate
Для 389 Directory Server идентификатор обычно nsUniqueId (--attr id=nsUniqueId). Атрибут nsAccountLock там может стоять со значением false у активных учётных записей, а профиль custom считает отключённым любое заполненное значение. В этом случае не используйте nsAccountLock как признак, а исключайте уволенных из групп или выбирайте атрибут, который появляется только у отключённых.
Выбор идентификатора
Идентификатор должен быть уникальным и не меняться при переименовании и переносе записи между ветками. Подходят entryUUID, nsUniqueId, ipaUniqueID, табельный номер в собственном атрибуте. Не подходят uid, cn, mail и DN: при их смене Trialix сначала попробует сопоставить сотрудника по DN, логину и почте, но надёжнее опираться на неизменяемый атрибут. Если у записи атрибута нет, коннектор подставит dn:<DN>.
Проверка
sudo trialix-connector doctor
sudo trialix-connector preview --json | head -60
Проверьте в выводе: id заполнен, email есть у сотрудников, groups содержит идентификаторы групп, disabled стоит только у уволенных.
Обновлено 29.09.2026