Перейти к содержанию

Синхронизация с Active Directory / LDAP

Описание модуля

Модуль предназначен для синхронизации с Active Directory / LDAP карточек Сотрудников, Подразделений и Статических ролей.

Tip

Модуль не входит в типовую поставку и приобретается отдельно.

Tip

Начиная с версии 3.3 синхронизация совместима с протоколом LDAPv3.

Посмотреть информацию о доступных модулях, включённых в лицензию можно в приложении Tessa Admin, раздел “Информация”:

Данный модуль может выполнять:

  • периодическую синхронизацию данных в указанные моменты времени;

  • синхронизацию данных по запросу пользователя (вручную).

Модуль синхронизирует:

  • Карточки Сотрудников:

    • ФИО,

    • Логин,

    • Email,

    • Телефон,

    • Мобильный телефон,

    • Домашний телефон,

    • IP телефон,

    • Факс,

    • Должность.

Маппинг полей (тип объекта person / user):

Параметр в Active Directory / LDAP
Параметр в Tessa ([таблица].[поле]) Описание
sAMAccountName / uid PersonalRoles.Login Логин пользователя.
sn PersonalRoles.LastName Фамилия.
middleName PersonalRoles.MiddleName Отчество.
givenName PersonalRoles.FirstName Имя.
cn PersonalRoles.FullName Полное имя.
facsimileTelephoneNumber PersonalRoles.Fax Факс.
telephoneNumber PersonalRoles.Phone Телефон.
homePhone PersonalRoles.HomePhone Домашний телефон.
mobile PersonalRoles.MobilePhone Мобильный телефон.
IpPhone PersonalRoles.IPPhone IP телефон.
title PersonalRoles.Position Должность.
userAccountControl PersonalRoles.LoginTypeID Тип входа пользователя (Active Directory/LDAP/Отключен).
name Roles.Name Название.
whenChanged / modifyTimestamp Roles.AdSyncWhenChanged Дата изменения объекта.
distinguishedName Roles.AdSyncDistinguishedName Уникальное имя объекта.

Фамилия, имя и отчество берутся из указанных выше параметров или на основании параметров cn, name, displayName (если параметры из таблицы пусты).

  • Карточки Подразделений:

    • Название подразделения,

    • Глава подразделения,

    • Сотрудники, входящие в подразделение.

Маппинг полей (тип объекта organizationalUnit):

Параметр в Active Directory / LDAP
Параметр в Tessa ([таблица].[поле]) Описание
managedBy DepartmentRoles.HeadUserID Руководитель подразделения
description Roles.Description Описание объекта.
whenChanged / modifyTimestamp Roles.AdSyncWhenChanged Дата изменения объекта.
distinguishedName Roles.AdSyncDistinguishedName Уникальное имя объекта.
  • Карточки Статических ролей:

    • Имя роли,

    • Описание роли,

    • Сотрудники, входящие в статическую роль.

Маппинг полей (тип объекта group / ipausergroup / posixgroup):

Параметр в Active Directory / LDAP
Параметр в Tessa ([таблица].[поле]) Описание
name Roles.Name Название.
description Roles.Description Описание объекта.
whenChanged / modifyTimestamp Roles.AdSyncWhenChanged Дата изменения объекта.
distinguishedName Roles.AdSyncDistinguishedName Уникальное имя объекта.

Note

Если в Active Directory / LDAP удален (или заблокирован) сотрудник, удалены подразделение или группа, то после синхронизации в соответствующих карточках Tessa выставится флаг “Скрывать при выборе”. В карточке Сотрудника, помимо этого, поменяется тип входа на “Вход воспрещён”.

Автоматическая синхронизация

Для автоматической синхронизации необходимо включить основной плагин AdSyncPlugin и плагин периодической синхронизации AdSyncRecurrentPlugin, выставив в соответствующих конфигурационных xml файлах disabled="false". Все конфигурационные файлы плагинов сервиса Chronos хранятся в папке Chronos\Plugins\Tessa\configuration. Более подробно про плагины см. в разделе Настройка плагинов Chronos.

Затем необходимо настроить конфигурационный файл Chronos\app.json, добавив в раздел "Settings" строки, указанные ниже.

Для запуска синхронизации должны быть заполнены следующие параметры: AdSync.Server, AdSync.User, AdSync.Password. Остальные параметры являются опциональными и заполняются при необходимости.

Список настроек:

Параметр
Пример значения Описание
"AdSync.Server" “192.168.0.1” Контроллер домена.
"AdSync.Port" 389 Порт контроллера домена. По умолчанию 389.
"AdSync.TimeoutMilliseconds" 0 Таймаут на подключение к контроллеру домена. По умолчанию 0 - без ограничений.
"AdSync.UserDomain" “domain” Домен пользователя, может отличаться от серверного, например, пользователь входит в домен test.test.com, а контроллер домена находится на test.com.
"AdSync.User" “administrator” Логин пользователя в домене. Можно передать как domain\administrator и не использовать параметр AdSync.UserDomain.
"AdSync.Password" “Master1234” Пароль пользователя, используется вместе с "ADSync.User".
"AdSync.UseSsl" false Использовать SSL шифрование.
"AdSync.ConnectionAttemptCount" 10 Количество попыток соединения с реферальными серверами. По умолчанию 10.
"AdSync.ConnectionAttemptIdle" 10 Пауза между попытками соединения с реферальными серверами в секундах. По умолчанию 10.
"AdSync.SkipReferral" false Отключение поиска по всем реферальным серверам.
"AdSync.SkipReferralList" [“DC=ForestDnsZones,DC=company,DC=com”, “DC=DomainDnsZones,DC=company,DC=com”] Отключение поиска по списку реферальных серверов.
"AdSync.SkipSystemPartitions" true Игнорирование системных разделов, таких как ForestDnsZones, DomainDnsZones, Configuration.

Далее необходимо открыть карточку “Синхронизация AD / LDAP” (правое меню в Tessa Client - “Настройки→Синхронизация AD / LDAP”) и заполнить eё:

  • В поле “Группа синхронизации сотрудников” указывается DN группы, из которой будут синхронизироваться сотрудники. В случае, если поле не заполнено, будут синхронизированы все сотрудники из корневых элементов;

  • Флаг “Не переименовывать статические роли” позволяет не изменять имя роли в соответствии с именем в LDAP для созданных в системе статических ролей;

  • В таблице “Корневые элементы синхронизации (OU)” указываются OU, которые вместе с иерархией дочерних переносятся в карточки Подразделений, а элементы – в карточки Сотрудников/Статических ролей. Задаются в формате DN. Можно выбрать тип объекта для синхронизации;

  • Блок “Периодическая синхронизация” отвечает за периодическую синхронизацию и позволяет отключить синхронизацию конкретных видов карточек;

  • Блок “Ручная синхронизация” позволяет запустить ручную синхронизацию конкретных типов объектов.

Перед синхронизацией каждого сотрудника система также проверяет, входит ли данный сотрудник в группу, указанную в поле “Группа синхронизации сотрудников”. Если сотрудник не входит в эту группу, то он игнорируется и не будет синхронизирован. Если поле “Группа синхронизации сотрудников” не заполнено, то сотрудник будет синхронизирован.

Если необходимо синхронизировать только сотрудников, то флаг “Синхронизировать подразделения” в таблице “Корневые элементы синхронизации (OU)” должен быть отмечен. В противном случае сотрудники обновлены не будут. Объекты для синхронизации выбираются в разделе периодической синхронизации: если необходимо синхронизировать только сотрудников, то остальные флаги в этом разделе необходимо снять.

Warning

Если ни один корневой элемент не задать, синхронизация Сотрудников, Подразделений и Статических ролей работать не будет.

Автоматическая синхронизация будет выполняться сервисом Chronos с периодом, указанным в плагине AdSyncRecurrentPlugin. По умолчанию плагин запускается раз в сутки в полночь.

Ручная синхронизация

Синхронизацию можно выполнять по требованию: синхронизировать отдельные карточки Сотрудников, Подразделений, Статических ролей или запустить полную синхронизацию.

Предварительно необходимо выполнить все настройки, описанные в разделе Автоматическая синхронизация (кроме включения плагина AdSyncRecurrentPlugin).

Запустить полную синхронизацию Сотрудников, Подразделений или Статических ролей можно открыв карточку настроек “Синхронизация AD / LDAP” и нажав на соответствующие кнопки в блоке “Ручная синхронизация”:

Синхронизация выполняется асинхронно. После запуска синхронизации будет создана операция, по которой можно отслеживать прогресс синхронизации. Список всех активных операций можно посмотреть на рабочем месте Администратор, представление “Прочее → Активные операции”.

Также, при необходимости, можно выполнить синхронизацию отдельного объекта, т.е. конкретной карточки Сотрудника, Подразделения или Статической роли. Открыв нужную карточку необходимо раскрыть блок “Синхронизация с Active Directory / LDAP”, нажав левой кнопкой мыши на названии блока. По умолчанию во всех карточках он свёрнут.

В раскрывшемся блоке есть следующие поля:

  • Дата последней синхронизации - дата и время последней синхронизации текущей карточки;

  • Дата последнего изменения - дата и время последнего изменения текущего объекта в Active Directory / LDAP;

  • Уникальное имя (DN) - уникальное имя объекта в Active Directory / LDAP;

  • Active Directory / LDAP ID - идентификатор объекта в Active Directory / LDAP;

  • Синхронизация отключена - флаг для отключения синхронизации текущей карточки;

  • Синхронизируется независимо от корневых элементов - флаг для синхронизации, даже если объект не принадлежит к дереву корневых элементов;

  • Кнопка “Запустить ручную синхронизацию” - кнопка для запуска ручной синхронизации текущей карточки.

В случае, если необходимо связать уже созданные в Tessa Подразделения, Сотрудников или Статические роли, то можно заполнить поле “Уникальное имя (DN)” и выполнить ручную синхронизацию. Синхронизация найдет запись в домене по указанному DN и свяжет записи между собой. Связывание выполняется по атрибуту objectGuid.

Note

Сотрудники, добавленные в Подразделение или Статическую роль вручную (у Сотрудника не заполнено поле AdSyncID), а так же Сотрудники с флагом “Синхронизация отключена” не удаляются из состава роли/подразделения при синхронизации Подразделений.

Алгоритм работы синхронизации

После того, как операция синхронизации была создана вручную или периодическим плагином Chronos (AdSyncRecurrentPlugin), её подхватывает плагин AdSyncPlugin, который обрабатывает операции раз в 30 секунд (по умолчанию, настраивается в configuration/AdSyncPlugin.xml).

В первую очередь проверяется возможность перерасчёта ролей (раздел Активные операции). Если плагин не смог взять эксклюзивную блокировку (потому что длительное время выполнялась другая операция с ролями, такая как пересчёт замещений), то в лог пишется предупреждение, работа плагина при этом завершается (до следующего запуска).

После взятия блокировки из операции извлекается тип операции: синхронизация отдельной карточки или всех объектов.

  1. Если выполняется синхронизация отдельной карточки (например, по кнопке в карточке сотрудника):

    1. Для заданного типа проверяются все объекты с заполненным DN, но пустым AdSyncID, и выполняется поиск соответствий для объектов в системе и в Active Directory / LDAP.

    2. После этого по AdSyncID синхронизируемой карточки запрашивается объект из Active Directory / LDAP.

    3. После получения объекта выполняется синхронизация значений его свойств.

  2. Если выполняется синхронизация всех объектов:

    1. Проверяются все объекты с заполненным DN, но пустым AdSyncID, и выполняется поиск соответствий для объектов в системе и в Active Directory / LDAP.

    2. Система получает список ID корней, для которых включена синхронизация. После этого выполняется рекурсивный обход всех дочерних корней и проверяется, принадлежат ли они к списку корней, для которых включена синхронизация.

    3. Если принадлежат, то выполняется синхронизация выбранных в настройках объектов.

    4. После того, как рекурсивно будет пройден весь лес Active Directory / LDAP, проверяются объекты в системе, у которых выставлен флаг “Синхронизируется независимо от корневых элементов”. Такие объекты синхронизируются как отдельные карточки (см выше).

    5. После завершения синхронизации, если не было никаких ошибок, происходит скрытие элементов, которые не были обновлены системой, - такие объекты считаются удалёнными в домене, и поэтому для них устанавливается флаг “Скрывать при выборе”, фактического удаления не происходит.

Back to top