...
- Настройка параметров запуска утилиты.
- Настройка расписания в планировщике заданий.
Для работы утилиты на Linux необходим пакет libldap-2.5. Если в используемой ОС в OpenLDAP используется другая версия, то будут возникать ошибки.
Установить версию 2.5 можно следуя инструкции.
Общая информация
- Синхронизация сотрудников и подразделений из LDAP каталога со списками "Пользователи" и "Должности" в Vitro-CAD (версия MP) выполняется с помощью утилиты "Vitro.Server.OrgStructureLdap".
- Корневой каталог утилиты - каталог, где располагается исполняемый файл утилиты. Для примера, на системах с Windows это каталог: "c:\Program Files\Vitro Software\Vitro\Server\Tools\OrgStructureLdap\".
- Настройки располагаются в файле "org_structure_ldap.json" каталога расположения основных конфигурационных файлов (для Linux: /etc/Vitro/Server/Conf, для Windows: C:\Program Files\Vitro Software\Vitro\Server\Conf).
- В файле "org_structure_ldap.json" можно указывать настройки для нескольких доменов синхронизации.
Code Block title Mode [ { // настройки синхронизации #1 "Mode": "Org", ... }, { // настройки синхронизации #2 "Mode": "List", ... }, ... { // настройки синхронизации #N ... } ] - Утилита записывает результаты работы в лог. Файлы логов размещаются в папке \logs корневого каталога утилиты. Имя файла лога формируется по маске "Sync-%date{yyyyMMdd-HHmm}.log", где date - текущая дата.
Используемые параметры AD
mail(эл. почта) - обязательный атрибут. Пользователи с незаполненным атрибутом синхронизироваться не будут.sn(фамилия),givenName(имя),middleName(отчество) - из этих атрибутов формируется значение атрибута Название для пользователя.
Если значение этого выражения возвращает пустую строку, то в качестве названия берется значение атрибутаdisplayName(выводимое имя).title(должность) - используется для создания записей в справочнике Должности.department(отдел),manager(руководитель) - два этих атрибута используются для построения дерева ОШС, когда утилита работает в режиме"Mode": "Org".userAccountControl- в этом атрибуте проверяется наличие флага, что пользователь отключен. Отключенные пользователи не синхронизируются.samAccountName(имя входа пользователя/логин) - используется при проверке параметра ExcludePrincipalList утилиты (исключение определенных пользователей из синхронизации).distinguishedName- путь до объекта в каталоге AD, напримерCN=Developer,CN=Users,DC=vitro,DC=dev. Используется для построения дерева с включенным флагом"OUStructure": true.description(описание) - используется в качестве названия подразделения (OrganizationUnit (OU) в AD), при синхронизации с включенным флагом"OUStructure": true.name- используется в качестве названия подразделения (OrganizationUnit (OU) в AD), при синхронизации с включенным флагом"OUStructure": true, если атрибутdescriptionне заполнен.
Настройка параметров запуска утилиты
...
| Code Block | ||
|---|---|---|
| ||
"FunctionalGroupRoot": "3047412c-dc93-4852-be34-f7081f65a57d" |
Имя домена.В случае включенного в домене шифрования LDAPS критически важно, чтобы в качестве значения параметра "DomainName" было указано имя контроллера домена в точности в соответствии с указанным в сертификате
| Code Block | ||
|---|---|---|
| ||
"DomainName": "vitrovitroDC01.example.com" |
Номер порта для подключения к LDAP каталогу. Для подключения к LDAPS используется порт с номером 636 или 3269. Значение по умолчанию: 389.
...
| Code Block | ||
|---|---|---|
| ||
"LdapUserName": "LdapUserLdapUser@example.com" |
Пароль пользователя для доступа к LDAP каталогу пользователей.
...
| Code Block | ||
|---|---|---|
| ||
ExcludeOrgUnitList: ["[excludeOU1;","excludeOU2"]" |
Перечень групп безопасности и/или пользователей (атрибут "SamAccountName"), которые будут исключены из синхронизации. Значение по умолчанию: []
| Code Block | ||
|---|---|---|
| ||
ExcludePrincipalList: ["[testGroup1;","testUser1"]" |
Подразделение, в которое помещаются сотрудники и подразделения, у которых нет родительского подразделения. Параметр не обязательный, может быть пустой строкой или отсутствовать.
Если параметр отсутствует, то указанные сотрудники и подразделения будут добавляться в корень списка "Пользователи".
...
| Code Block | ||
|---|---|---|
| ||
"IsTest": false - утилита работает в режиме синхронизации "IsTest": true - утилита работает в режиме вывода в лог SP, синхронизация не выполняется |
Необходимые компоненты
Для работы утилиты необходима библиотека libldap-2.5.so.0. В некоторых дистрибутивах по умолчанию этой библиотеки может не быть.
Например, в Ubuntu 24.04 по умолчанию установлен пакет libldap2, но он не включает в себя эту библиотеку.
В репозиториях так же может не оказаться пакета libldap-2.5-0.
В таком случае необходимо найти и установить пакет вручную.
...
...
...
В примерах указана актуальная ссылка для Ubuntu на момент написания статьи (может измениться).
История изменений
25.1.39.15 (17.03.2025) Добавлен новый параметр - FunctionalGroupRoot.
25.1.39.14 (14.03.2025) Добавлен возможность синхронизации с несколькими доменами.
25.1.39.12 (09.12.2024) При синхронизации поиск пользователей выполняется по атрибуту "objectGUID" (атрибут "ldap_object_guid"), если пользователь не найден, то поиск выполняется по атрибуту "mail" (атрибут "email"), при этом атрибут "ldap_object_guid" должен быть пустым.
25.1.39.11 (03.12.2024) Файл "config.json" переименован в "org_structure_ldap.json" и перенесен в каталог расположения основных конфигурационных файлов (для Linux: /etc/Vitro/Server/Conf, для Windows: C:\Program Files\Vitro Software\Vitro\Server\Conf).
25.1.39.10 (21.11.2024) Добавлены новые параметры "PortNumber", "Ssl" и "FunctionalGroup". Удален режим работы "Mode": "Group" (заменен на флаг "FunctionalGroup"). Удален параметр "Action", как более не актуальный.
25.1.39.8 (13.11.2024) Добавлен новый параметр "TitleField".
25.1.40.16 (05.06.2025) Исправлена ошибка, при которой не проверялся на равенство тип элемента, при сравнении элементов из списка "Пользователи".
25.1.40.17 (17.06.2025) Удален параметр "AddPrincipalToDepartmentHeader".Доработана Доработана логика параметра "DefaultDepartment" (см. описание параметра).
25.1.40.18 (30.06.2025) Добавлен параметр "OUStructure".
25.1.40.19 (13.08.2025) Уточнен алгоритм работы для параметра "OUStructure = true". В качестве названия создаваемого подразделения, берется атрибут "Описание" OU, если атрибут не заполнен, то имя OU.
2026.0.1.1 (20.03.2026) Исправлена ошибка при разборе строки атрибута "DistinguishedName", при включенном флаге "OUStructure" (если в строке есть экранированная запятая).
2026.0.1.2 (02.04.2026) Улучшения по информации, выводимой в лог. Вместо ошибки 500 без детализации, теперь выводится текст валидатора (они срабатывают чаще всего). Уточнение сообщений, выводимых в лог.
2026.0.3.3 (19.05.2026) Устранено зацикливания при обработке групп безопасности в режиме "FunctionalGroup", когда группа вложена сама в себя или через другую группу. Рефакторинг кода.