Введение
ADSync — сложный инструмент, поэтому очень важно понимать, как он устроен и по каким признакам можно отличить нормальную работу от ошибок. Есть операции, которые администратору не следует выполнять, не разобравшись заранее в их последствиях. В этом документе вы найдёте понятное и подробное описание принципов работы ADSync, чтобы уверенно и безопасно настраивать и поддерживать его.
Обязательно прочитайте весь документ перед установкой или запуском службы ADSync.
Служба ADSync - обеспечивает непрерывную, одностороннюю синхронизацию из Active Directory (AD) предприятия в Cloud24.
Установка AD Sync
Перед началом работ
Перед установкой необходимо определить:
- Какие группы AD используются для отслеживания изменений объектов
- Нужны ли кастомные рабочие процессы или правки в ADSync.exe.config
- Имеет ли сервер доступ к веб-сервису API по HTTP или HTTPS (https://panel.cloud24.kz/CortexAPI/Default.aspx)
Служба ADSync запускается автоматически после установки, но не стартует, если не может подключиться к API и проверить учётные данные. При неудаче установка откатывается
ADSync необходимо устанавливать на все контроллеры домена Active Directory, чтобы перехватывать изменения паролей, которые не всегда реплицируются между серверами AD.
При старте ADSync индексирует объекты AD в области охвата. Это может занимать много времени при большом количестве объектов. Параметр EventLogWatch определяет источник информации:
EventLogWatch (см. Таблицу натсроек приложения)
- True — строится каталог на основе Журнала событий
- False — каталог не строится
При включённом EventLogWatch ADSync:
- отслеживает тип изменения (новый объект, изменение, добавление/удаление из группы)
- фиксирует конкретные свойства, изменившиеся в объекте
- сохраняет информацию в .dat файлах в папке Queue
Если EventLogWatch = False, ADSync читает параметр LastUSN в AD, опрашивает объекты с большим значением LastUSN и отправляет запросы на синхронизацию даже без реальных изменений, что увеличивает нагрузку. Поэтому хорошей практикой является установка EventLogWatch=True
Группы-включения и Группы-исключения
Группы-включения: определяют объекты в AD (пользователей/группы/контакты), которые надо синхронизировать
Группы‑исключения: определяют объекты, которые нельзя синхронизировать
Группы-исключения: имеют приоритет над Группами-включения. Если объект не синхронизируется, проверьте, не исключён ли он.
Внимание: группы включения/исключения должны быть Глобальными группами безопасности. ADSync может игнорировать другие типы групп.
Когда пользователь впервые добавляется в Группу-включение:
- синхронизируется с пустым паролем
- пароль передаётся только после первого изменения пароля
Поэтому, чтобы синхронизировать пароль со стороной Atria, пользователь должен сменить свой пароль после синхронизации учетной записи. Самый простой способ сделать это — заставить его сменить пароль при следующем входе в систему.
Установка
- Создайте Global Security группу в вашей AD с названием ADSync и добавьте в эту группу всех пользователей, планируемых для синхронизации в Cloud24.
- Войдите в Панель управления пользователями и сервисами под учетной записью, имеющей доступ к ADSync
- В Панели в меню Services перейдите в AD Sync и нажмите AD Sync Download.
- В свойствах скачанного файла установщика отметьте Разблокировать и сохраните
- Запустите установку AD Sync;
- Нажмите Next;
- Введите пароль учетной записи, имеющей доступ к ADSync;
На шаге Events to watch включите Watch for changes to users, Watch for changes to contacts и Watch for changes to groups; в User out of scope action выберите Ignore; оставьте User, contact, and group watch frequency (second) = 5. Нажмите Next.
- На шаге User, contact, and group to synchronize очистите поля:
- Удалите все группы из Exclude users in these groups
- Удалите группу Users из Include users in these groups
- В поле Group name введите ADSync (группа безопасности созданная ранее) и нажмите Find now.
- На шаге User Information section оставляем без изменений;
- На шаге Connection Information section оставляем без изменений;
- Если в компании используется Proxy server для доступа в интернет, введите данные сервера;
- Путь установки рекомендуется оставить по умолчанию;
- После установки необходимо перезагрузить контроллер домена
Настройки после установки AD Sync.
Если применить дополнительные исправления или внести изменения в файл конфигурации сразу после установки ADSync, вам потребуется остановить службу ADSync сразу после завершения установки.
Учитывая, что остановка ADSync может занять некоторое время, особенно если программа считает, что остались еще какие-то невыполненные задачи, лучший способ сделать это — "убить" процесс.
Принудительное завершение процесса крайне нежелательно и допускается лишь в исключительных ситуациях — при полной неработоспособности службы или по указанию службы поддержки — поскольку это может привести к нарушению согласованности очереди и вызвать дополнительные сбои.
Перед внесением изменений обязательно сделайте резервную копию изменяемых файлов!
Увеличение размера файла логов
Файлы логов создаются в папке C:\Program Files\AD Sync\Logs, по умолчанию размер файла логов не может превышать стандартного ограничения файла .NET и по умолчанию составляет 5Мб. После в файл прекращается запись, ротация логов ежедневная. Рекомендуется увеличить до 10Мб.
- Сделайте резервную копию фала конфигурации C:\Program Files\AD Sync\ADSync.exe.config, можете просто скопировать в ту же папку и назвать, например, ADSync.exe.config.default
- Остановите службу AD Sync. (Win+R > Services.msc > Ad Sync > Stop)
- В файле ADSync.exe.config найдите строки (можно искать по add name="FileLog")
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" location="Custom" logFileCreationSchedule="Daily" traceOutputOptions="DateTime" autoFlush="True" customLocation="C:\Program Files\AD Sync\Logs">
<filter type="System.Diagnostics.EventTypeFilter" initializeData="ActivityTracing,Information"/>
</add>
заменить на:
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" location="Custom" logFileCreationSchedule="Daily" traceOutputOptions="DateTime" autoFlush="True" customLocation="C:\Program Files\AD Sync\Logs" maxFileSize="10000000" reserveDiskSpace="1073741824">
<filter type="System.Diagnostics.EventTypeFilter" initializeData="ActivityTracing,Information"/>
</add>
Где
Атрибут | Описание |
maxFileSize | Максимальный размер файла журнала в байтах. По умолчанию журналирование прекращается при достижении лимита. |
logFileCreationSchedule | Ротация файла журнала. Возможные значения: None, Daily, Weekly. |
customLocation | Полный путь к папке, в котором будут создаваться файлы логов. Можно указать отдельный диск |
reserveDiskSpace | Минимальное оставшееся место на диске в байтах, прежде чем разрешить запись файлов журнала. По умолчанию запись журнала прекращается при достижении этого предела. |
Изменение параметров AD Sync
- В файле ADSync.exe.config найдите строки с конфигурациями, например, искать можно setting name="UserPollTime" и вносить изменения заключенное в тег <value>20</value>
Таблица настроек приложения
Имя значения | Значение | Описание |
UserPollTime | 20 | Немного снижает нагрузку на AD |
UploadPollTime | 20 | Снижает нагрузку на API и SQL-сервер за счет уменьшения частоты выполнения выгрузки. |
LogMask | 65535 | Для более подробного логирования ошибок |
UploadMaxErrors | 5 | Количество попыток синхронизации при возникновении ошибок |
EventLogWatch | True | Использование изменений в AD, записанные в журнал событий. Позволяет синхронизировать только те изменения, которые включены в набор свойств объекта AD, что приводит к меньшему количеству вызовов API и повышению производительности в целом. |
UserAttributesSyncOnChange | True | Синхронизация только измененных атрибутов пользователя AD |
ContactAttributesSyncOnChange | True | Синхронизация только измененных атрибутов контакта AD |
GroupAttributesSyncOnChange | True | Синхронизация только измененных атрибутов группы AD |
MaxGetStatusTries | 5 | Обнаруживает объекты в состоянии подготовки и перезапускает синхронизацию |
ThrottleUploads | True | Включает ограничение количества измененных объектов в очереди на синхронизацию. Повышает производительность и снижает нагрузки на серверы API/SQL. |
ThrottleLimit | 50 | Количество элементов в очереди на синхронизацию |
BatchUploads | True | Если в синхронизируемой группе большое количество объектов этот параметр позволит разделить объекты на очереди что позволит снизить нагрузку на API |
UploadBatchSize | 50 | Количество элементов, отправляемых в одном запросе. (к элементу выше) |
MaxResubmits | 5 | Количество попыток повторной отправки элементов группы, если члены группы не смогли их отправить. Если это значение не задано, группа будет повторяться бесконечно. |
- После внесения изменений перезапустите службу AD Sync
Расширенные настройки AD Sync
В случае если у компании имеется несколько почтовых доменов и есть необходимость синхронизировать с вашей AD атрибут пользователя mail необходимо внести ряд изменений в сервис и конфигурационные файлы AD Sync
Обратитесь в службу поддержки, наши инженеры должны внести изменения в сервис как указано ниже
Перед внесением изменений обязательно сделайте резервную копию изменяемых файлов!
На всех контроллерах домена в файле C:\Program Files\AD Sync\Requests\SetUser.xml необходимо строки
<addresses templatedependency="userAddressSync">
<address templatedependency="otherAddresses" templateforeach="otherAddress,otherAddresses" primary="False">{otherAddress}</address>
<address templatedependency="mail,primaryAddress" templatecondition='{mail}<>""' primary="False">{mail}</address>
<address templatedependency="primaryAddress" primary="False">{upn}</address>
<address templatedependency="mail,-primaryAddress" templatecondition='{mail}<>""' primary="False">{upn}</address>
<address templatedependency="mail,-primaryAddress" templatecondition='{mail}=""' primary="True">{upn}</address>
<address templatedependency="-mail,-primaryAddress" primary="True">{upn}</address>
<address templatedependency="mail,-primaryAddress" templatecondition='{mail}<>""' primary="True">{mail}</address>
<address templatedependency="primaryAddress" primary="True">{primaryAddress}</address>
</addresses>
заменить на
<addresses templatedependency="userAddressSync">
<address templatedependency="otherAddresses" templateforeach="otherAddress,otherAddresses" primary="False">{otherAddress}</address>
<address templatedependency="mail,primaryAddress" templatecondition='{mail}<>""' primary="False">{mail}</address>
<address templatedependency="primaryAddress" primary="False">{mail}</address>
<address templatedependency="mail,-primaryAddress" templatecondition='{mail}<>""' primary="False">{mail}</address>
<address templatedependency="mail,-primaryAddress" templatecondition='{mail}=""' primary="True">{mail}</address>
<address templatedependency="-mail,-primaryAddress" primary="True">{mail}</address>
<address templatedependency="mail,-primaryAddress" templatecondition='{mail}<>""' primary="True">{mail}</address>
<address templatedependency="primaryAddress" primary="True">{primaryAddress}</address>
</addresses>
В файле C:\Program Files\AD Sync\ADSync.exe.config замените строки
<setting name="UserAdressSync" serializeAs="String">
<value>False</value>
</setting>
на
<setting name="UserAdressSync" serializeAs="String">
<value>True</value>
</setting>
Перезагрузите все ваши контроллеры домена.
После внесенных изменений будут синхронизироваться только пользователи с явно указанным атрибутом email иначе в логах Ad Sync вы увидите ошибки
Error 2 Failed to upload user 'Jane.Wilde' because Failed to update user 'Jane.Wilde': User eMail address '' is not valid