Архитектура и компоненты модуля синхронизации¶
Диаграмма контейнеров¶
Архитектура модуля синхронизации построена по принципу взаимодействия независимых сервисов, выполняющих сбор, обработку и применение изменений в доменах. Общая структура подсистемы представлена на следующей диаграмме.
syncer-pwdsync - Сервис выполняет синхронизацию паролей пользователей
между доменами.
syncer-watcher - Сервис производит выгрузку изменений из домена в базу
данных, для дальнейшего обновления состояния синхронизируемых объектов в
контроллере домена.
syncer-loadrunner - Сервис применяет накопленные изменения из базы
данных в контроллере домена.
В дополнение к диаграмме контейнеров, следующая таблица содержит расшифровку потоков взаимодействия между сервисами модуля синхронизации, их адресатами и используемыми протоколами передачи данных.
Инициатор информационного обмена |
Адресат информационного обмена |
Протокол |
Передаваемая информация |
|---|---|---|---|
Портал управления |
WebUI |
HTTPS |
Управление подсистемой и запись команд управления |
Портал управления |
PostgreSQL |
PSQL |
Управление подсистемой и получение состояния подсистемы |
syncer-pwdsync |
PostgreSQL |
PSQL |
Хранение данных синхронизации |
syncer-pwdsync |
Active Directory |
LDAPS |
Выгрузка и установка паролей пользователей домена |
syncer-pwdsync |
LDAPS |
Выгрузка и загрузка данных синхронизации |
|
syncer-watcher |
PostgreSQL |
PSQL |
Хранение данных синхронизации |
syncer-watcher |
Active Directory |
LDAPS |
Выгрузка объектов домена |
syncer-watcher |
LDAPS |
Выгрузка объектов домена |
|
syncer-loadrunner |
WebUI |
HTTPS |
Установка данных синхронизации |
syncer-loadrunner |
Active Directory |
LDAPS |
Выгрузка и загрузка данных синхронизации |
syncer-loadrunner |
LDAPS |
Выгрузка и загрузка данных синхронизации |
|
syncer-loadrunner |
PostgreSQL |
PSQL |
Хранение данных синхронизации |
WebUI |
LDAPS |
Управление объектами домена |
Функции компонентов¶
Основная функция модуля синхронизации - однонаправленная синхронизация объектов (пользователь, группа пользователей и подразделение) из LDAP-источника в целевой LDAP, с сохранением иерархии. Обратная синхронизация возможна только для паролей пользователей и реализована отдельным сервисом. Все сервисы при работе с любым источником данных (LDAP каталог или кеш в PostgreSQL) используют запросы которые возвращают 1000 объектов без сегментирования (непрерывное множество). Это условие выполняется для всех источников данных с настройками по умолчанию.
syncer-watcher
Сервис формирует кеш объектов в БД PostgreSQL без каких либо
модификаций. Для исключения возможности пропуска изменений в
LDAP-источнике (MS AD Domain Services, DS) все объекты читаются в соответствии с
увеличением значения их usnChanged. Каждый обновленный сервисом объект в
кеше получает значение sync_status=3, что представляет собой битовое
поле из 2 бит: 0b11. Первый бит определяет состояние ссылочной
целостности по атрибуту member, второй бит - по атрибуту rbtadp.
syncer-loadrunner
Сервис, следуя в порядке увеличения значений usnChanged в кеше: создает,
обновляет и удаляет объекты в соответствии с правилами транслитерации и
замены символов. Обработка объектов осуществляется отдельно для каждой
точки синхронизации с отдельными счетчиками usnChanged.
После обновления объекта сервис перейдет, в рамках той же точки
синхронизации, к восстановлению ссылочной целостности для атрибутов
member и rbtadp. При успешном восстановлении значений атрибутов,
соответствующий бит сбрасывается в sync_status (операция XOR по маске).
syncer-pwdsync
Сервис не использует кеш в БД PostgreSQL, а оперирует атрибутами
userParameters (MS AD DS) и epwd (ALD Pro). Выборка объектов происходит
по очередно из каждого LDAP каталога по наличию атрибутов userParameters
и epwd в соответствии с увеличением значения usn. Для соблюдения политик
паролей, при возвращении пароля из одного LDAP каталога в другой, в том
числе обновляется соответствующий атрибут даты изменения пароля. Для
корректной работы механизма срока истечения действия пароля, политики
паролей в LDAP каталогах должны быть идентичны.