Настройка синхронизации с Active Directory

Введение

Данная глава руководства администратора рассказывает о возможности импорта объектов ARTA Synergy из сторонних каталогов посредством Active Directory. В ней детально описано как настроить и эксплуатировать LDAP а рамках ARTA Synergy.

Что такое LDAP

LDAP - это аббревиатура от Lightweight Directory Access Protocol. Как следует из названия, это облегчённый протокол доступа к службам каталогов, предназначенный для доступа к службам каталогов на основе X.500. LDAP работает поверх TCP/IP или других ориентированных на соединение сетевых протоколов. LDAP стандартизирован в качестве протокола IETF.

Информационная модель LDAP основана на записях (entry). Запись - это коллекция атрибутов (attribute), обладающая уникальным именем (Distinguished Name, DN). DN глобально-уникально для всего каталога и служит для однозначного указания на запись. Каждый атрибут записи имеет свой тип (type) и одно или несколько значений (value). Обычно типы - это мнемонические строки, в которых отражено назначение атрибута, например cn - для общепринятого имени (common name), или mail - для адреса электронной почты. Синтаксис значений зависит от типа атрибута.

Записи каталога LDAP выстраиваются в виде иерархической древовидной структуры. Традиционно, эта структура отражает географическое и/или организационное устройство хранимых данных. В вершине дерева располагаются записи, представляющие собой страны. Под ними располагаются записи, представляющие области стран и организации. Еще ниже располагаются записи, отражающие подразделения организаций, людей, принтеры, документы, или просто всё то, что Вы захотите включить в каталог.

Кроме того, LDAP, посредством специального атрибута objectClass, позволяет контролировать, какие атрибуты обязательны и какие допустимы в той или иной записи. Значения атрибута objectClass определяются правилами схемы (schema), которым должны подчиняться записи.

В LDAP определены операции для опроса и обновления каталога. К числу последних относятся операции добавления и удаления записи из каталога, изменения существующей записи и изменения названия записи. Однако, большую часть времени LDAP используется для поиска информации в каталоге. Операции поиска LDAP позволяют производить поиск записей в определённой части каталога по различным критериям, заданным поисковыми фильтрами. У каждой записи, найденной в соответствии с критериями, может быть запрошена информация, содержащаяся в её атрибутах.

LDAP и Arta Synergy

При синхронизации LDAP и Arta Synergy можно выделить некоторые особенности:

  • Синхронизация LDAP и Arta Synergy осуществима из LDAP каталога в ARTA Synergy, причем за тот период, который указан в конфигурационном файле.

  • Синхронизация возможна сразу с несколькими каталогами.

  • Списки синхронизируемых пользователей и групп определяются фильтрами, указанными в конфигурационном файле.

  • Ключ соответствия (поле, по которому будет определяться связка Объект каталога LDAP <-> Пользователь Synergy) настраиваемый, например, можно использовать для этого ИИН.

  • Пароли пользователей не синхронизируются, авторизация происходит непосредственно на LDAP каталоге посредством Simple Bind.

  • Помимо стандартных полей карточки пользователя (ФИО, доступ в систему и т.п.) можно синхронизировать произвольные поля - с добавлением в карточку пользователя на формах.

Установка и настройка Active Directory

Active Directory — LDAP-совместимая реализация службы каталогов корпорации Microsoft для операционных систем семейства Windows Server. Позволяет администраторам использовать групповые политики для обеспечения единообразия настройки пользовательской рабочей среды, разворачивать программное обеспечение на множестве компьютеров через групповые политики или посредством System Center Configuration Manager, устанавливать обновления операционной системы, прикладного и серверного программного обеспечения на всех компьютерах в сети, используя Службу обновления Windows Server.

Подробно рассмотрим установку и настройку Active Directory в ОС Windows Server 2012 R2.

  1. Перейдите в Server Manager и нажмите на Add roles and features.


  2. Откроется мастер установки ролей и компонентов.


  3. В шаге Installation Type выберите пункт Role-based of feature-based installation.


  4. В шаге Server Selection выберите пункт сервер, для которого будет установлена роль.


  5. В шаге Server Roles выберите пункт Active Directory Domain Services.


  6. Подтвердите добавление компонентов роли, нажав на кнопку Add Features.


  7. Пропустите шаг Features и подтвердите установку роли Active Directory.


  8. После успешной установки роли мастер установки отобразит окно подтверждения.


  9. После успешной установки необходимо настроить Active Directory. Откройте Server Manager и нажмите на пиктограмму флага. В открывшемся выпадающем списке нажмите на Promote this server to a domain controller.


  10. В открывшемся мастере настройки Active Directory добавьте новый лес. Для этого в шаге Deployment Configuration выберите пункт Add a new forest и укажите название корневого домена.


  11. В шаге Domain Controller Service задайте пароль для режима восстановления служб каталогов.


  12. В шаге Additional Options измените имя домена NetBIOS.


  13. В шаге Paths укажите папки базы данных, файлов журнала и SVSVOL.


  14. В шаге Review Options отобразится список всех настраиваемых опций.


  15. В шаге Prerequisites Check подтвердите настройку выбранных опций.


  16. После успешной настройки компьютер будет перезагружен автоматически.

Создание пользователей в Active Directory

После успешных установки и настройки Active Directory добавим пользователей для доступа к ARTA Synergy.

  1. Откройте Active Directory Users and Computers.


  2. Выделите ноду Вашего домена (в примере synergy.tm) и нажмите кнопку добавления подразделения.


  3. Введите название будущего подразделения.


  4. Выбрав новое созданное подразделение, нажмите на кнопку создания пользователей.


  5. Укажите имя, фамилию и логин будущего пользователя.


  6. Задайте пароль и включите флаг, отвечающий за устаревание пароля (если включен - пароль никогда не устаревает).


  7. Подтвердите создание нового пользователя.


  8. Повторив пп. 4-7 создайте требуемых пользователей.


  9. Теперь необходимо выдать этим пользователям доступ в систему ARTA Synergy. Для этого нажмите на кнопку создания новых групп.


  10. Укажите название будущей группы. В данную группу будет входить Администратор Active Directory.


  11. Нажмите на кнопку Add.


  12. Введите имя пользователя и нажмите на кнопку Check Names.


  13. Мастер автоматически дополнит значение учетной записи соответствующего пользователя.


  14. Создайте еще одну группу для доступа всех пользователей к системе ARTA Synergy.


  15. Повторив пп. 11-13 добавьте всех пользователей в группу доступа.


Работа с LDAP-каталогами

Для работы с LDAP-каталогами возможно использовать любой клиент с поддержкой LDAP-протокола. Одним их таких клиентов является JXplorer.

JXplorer - кроссплатформенный LDAP браузер и редактор с поддержкой безопасности (в том числе SSL, SASL и GSSAPI), перевода на многие языки, онлайн-помощью, коммерческой поддержкой, пользовательскими формами и многими другими возможностями.

Соответствует общим стандартам клиентов LDAP, которые можно использовать для поиска, чтения и редактирования любого стандартного каталога LDAP или любой службы каталогов с LDAP или интерфейсом DSML.

Рассмотрим его функциональность на примере поиска пользователя в одном из каталогов.

  1. Подключимся к серверу с данными Администратора:

Figure 7.17. Рисунок 1

Рисунок 1

  1. В открывшейся закладке Explore отобразилось дерево со всеми объектами каталога, доступные авторизованному Администратору. При выборе объекта из навигатора в основной рабочей области отобразились все атрибуты данного объекта, а также их значения:

Figure 7.18. Рисунок 2

Рисунок 2

Примечание

Полный список возможных атрибутов представлен здесь

  1. Вызовем окно поиска по каталогу - Search -> Search Dialog. В открывшемся диалоге укажем базовый узел поиска, от которого он будет осуществляться, и сам фильтр:

Figure 7.19. Рисунок 3

Рисунок 3

  1. Клиент автоматически перешел на вкладку Results с найденными результатами запроса:

Figure 7.20. Рисунок 4

Рисунок 4

Описание конфигурационного файла

Для конфигурирования синхронизации используется файл /opt/synergy/jboss/standalone/configuration/arta/ldap-sync.xml.

ARTA Synergy поддерживает одновременную синхронизацию с несколькими LDAP каталогами. Вся конфигурация хранится в одном файле и разделена на секции (item). Секции же должны иметь уникальный номер (ID). По умолчанию файл содержит две секции — первая для OpenLDAP, вторая для Active Directory. Данные секции указаны для примера и отключены.

Обозначения тегов:

Тег Значение и содержание

<item> </item>

Секция параметров синхронизации

<id> </id>

ID секции (уникальный)

<domain> </domain>

Доменное имя сервера

<sync> </sync>

Секция параметров синхронизации с host

<host> </host>

IP-адрес host OpenLDAP

<user-dn> </user-dn>

Данные учетной записи для подключения к host

<password> </password>

Пароль от учетной записи, указанной в теге <user-dn>

<active> </active>

Параметр включения / отключения работы секции (true / false)

<interval> </interval>

Интервал синхронизации (в милисекундах)

<schedules> </schedules>

Расписание синхронизации (по времени сервера), альтернативный интервалу синхронизации

<referral> </referral>

Параметр перехода по ссылкам (по умолчанию ignore)

<defaultAccess>

Предоставлять ли импортируемым пользователям доступ в систему, пока позволяет лицензия (true или false)

<defaultGroup>

Код группы пользователей, в котороую нужно включить всех импортированных пользователей

<access> </access>

Параметры доступа

<allow> </allow>

Общая группа доступа - пользователям данной группы будет разрешен доступ в систему (обязательно objectClass=group)

<admin> </admin>

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

<account> </account>

Параметры пользователей

<id> </id>

Атрибут объекта LDAP, который будет использован в качестве ID пользователя ARTA Synergy (если пусто - используется md5 от DN)

Значения данного атрибута должны быть уникальны относительно пользователей

<login> </login>

Атрибут объекта LDAP, который будет использован в качестве логина пользователя ARTA Synergy (по умолчанию cn)

<firstname> </firstname>

Имя пользователя

<middlename> </middlename>

Отчество пользователя

<lastname> </lastname>

Фамилия пользователя

<email> </email>

Почта пользователя (при наличии)

<base> </base>

Базовый узел поиска

<filter> </filter>

Фильтр для синхронизации (по умолчанию objectClass=inetOrgPerson)

<group> </group>

Параметры групп

<id> </id>

ID группы (если пусто - используется hashCode от DN)

<importGroups> /<importGroups>

Импортировать ли группы (если указано false, то при импорте группы будут проигнорированы)

<name> </name>

Имя группы

<member> </member>

Члены группы

<base> </base>

Базовый узел поиска

<filter> </filter>

Фильтрация импортируемых классов объектов, например, (objectClass=groupOfNames)

<code></code>

Поле LDAP, из которого будет записан код группы (см. пример секции <group> ниже)*

<application> </application>

Для версий Synergy, начиная с hamming - код приложения, куда будет записана группа (см. пример секции <group> ниже)**

Конфигурационный файл ldap-sync.xml с полями <code> и <application>

?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration xmlns="http://www.arta.kz/xml/ns/as/ldap-sync"
  <!-- ... -->
  <!-- синхронизация с OpenLDAP -->
  <item>
    <!-- ... -->
    <group>
      <!-- ... -->
      <!-- поле ldap, из которого будет записан код группы -->
      <code>group_code</code>
      <!-- код приложения, куда будет записана группа -->
      <application>app1</application>
    </group>
  </item>
  <!-- ... -->
<configuration>

Примечания

* - если параметр пуст или отсутствует, в код группы записывается `ldap_$sha1($DN)`, 

т. е. префикс ldap и sha1-хэш от Distiguished Name объекта. Можно записать в <code> название атрибута LDAP, из которого будет взят код группы. При импорте для кода проводится валидация на уникальность и соответствие правилам кода. Если валидация не прошла, невалидная группа пропускается, в лог записывается ошибка, а импорт продолжается.

** - обязательный параметр, может использоваться несколько раз. Код группы в Synergy 

будет сформирован по следующим правилам:

  1. если указано поле <code>, то при импорте в код группы будет добавлен префикс кода приложения, например, app1_group_code;

  2. если приложение не указано, либо указано приложение по умолчанию (default_application), либо код сформирован из ldap_$sha1($DN + $application_code), префикс добавляться не будет;

  3. если указанного приложения в Synergy нет, в лог записывается ошибка;

  4. если приложение не указано, группа будет добавлена в приложение по умолчанию при его наличии.

Файл конфигурации представлен в одной их следующих версий:

  1. Сопоставление пользователя LDAP пользователю ARTA Synergy только по его идентификатору в ARTA Synergy:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <configuration
        xmlns="http://www.arta.kz/xml/ns/as/ldap-sync"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.arta.kz/xml/ns/as/ldap-sync ldap-sync.xsd">
    <!-- синхронизация с OpenLDAP -->
    <item>
       <!-- id синхронизации -->
       <id>1</id>
       <!-- домен -->
       <domain>test.ldap.com</domain>
       <!-- синхронизация -->  
       <sync>
            <!-- LDAP хост -->
            <host>10.20.30.1</host>
            <!-- учетная запись для подключения к каталогу LDAP -->
            <user-dn>cn=syncuser,dc=test,dc=ldap,dc=com</user-dn>
            <!-- пароль -->
            <password>password</password>
            <!-- активно, неактивно -->
            <active>false</active>
            <!-- интервал синхронизации в мс -->
            <interval>1800000</interval>
            <!-- расписание синхронизации; параметр указан, поэтому интервал синхронизации игнорируется -->
            <schedules>19:00,00:00</schedules>
            <!-- следовать ссылкам -->
            <referral>ignore</referral>
            <!-- код группы пользователей, в которую будут включены все импортированные пользователи -->
            <defaultGroup>client_access</defaultGroup>
            <!-- предоставлять ли импортированным пользователям доступ в систему, пока позволяет лицензия --> 
            <!-- после превышения лимита пользователи будут импортированы, но у них будет заблокирован доступ в систему --> 
            <defaultAccess>true</defaultAccess>
        </sync>
        <access>
            <!-- группа доступа -->
            <allow>cn=aiusers,ou=Groups,ou=People,dc=test,dc=ldap,dc=com</allow>
            <!-- группа админов -->
            <admin>cn=aiadmin,ou=Groups,ou=People,dc=test,dc=ldap,dc=com</admin>
        </access>
        <!-- пользователи -->
        <account>
            <!-- поле id пользователя, если пусто - будет использоваться md5 от DN (как раньше было), иначе md5 от поля -->
            <id></id>
            <!-- поле логин -->
            <login>cn</login>
            <!-- поле имя -->
            <firstname>firstName</firstname>
            <!-- поле отчество -->
            <middlename>middleName</middlename>
            <!-- поле фамилия -->
            <lastname>sn</lastname>
            <!-- поле почта -->
            <email>mail</email>
            <!-- базовый узел -->
            <base>dc=test,dc=ldap,dc=com</base>
            <!-- фильтр -->
            <filter>(objectClass=inetOrgPerson)</filter>
        </account>
        <!-- группы -->
        <group>
         <!-- поле id группы, если пусто - будет использоваться hashCode от DN (как раньше было), иначе hashCode от поля -->
            <id></id>
            <!-- при импорте игнорировать группы -->
            <importGroups>false</importGroups>
            <!-- поле имя -->
            <name>cn</name>
            <!-- поле члены -->
            <member>member</member>
            <!-- базовый узел -->
            <base>dc=test,dc=ldap,dc=com</base>
            <!-- фильтр -->
            <filter>(objectClass=groupOfNames)</filter>
        </group>
    </item>

    <!-- синхронизация с Active Directory -->
    <item>
        <id>2</id>
        <domain>msad.com</domain>
        <sync>
            <host>10.20.30.2</host>
            <user-dn>Administrator@msad.com</user-dn>
            <password>secret</password>
            <active>false</active>
            <interval>1800000</interval>
            <referral>follow</referral>
        </sync>
        <access>
        <!-- userAccountControl указывает на поле "Активен" в AD, вместо него можно использовать просто группу -->
            <allow>userAccountControl</allow>
            <admin>CN=aiadmin,CN=Users,dc=msad,dc=com</admin>
        </access>
        <account>
            <id>objectGUID</id>
            <login>sAMAccountName</login>
            <firstname>givenName</firstname>
            <middlename>initials</middlename>
            <lastname>sn</lastname>
            <email>mail</email>
            <base>dc=msad,dc=com</base>
            <filter>(objectClass=person)</filter>
        </account>
        <group>
            <id>objectGUID</id>
            <name>cn</name>
            <member>member</member>
            <base>dc=msad,dc=com</base>
            <filter>(objectClass=group)</filter>
        </group>
    </item>
    </configuration>
  1. Сопоставление пользователя LDAP пользователю ARTA Synergy по любому полю объекта, полученного из LDAP:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <configuration
        xmlns="http://www.arta.kz/xml/ns/as/ldap-sync"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        version= "2"
        xsi:schemaLocation="http://www.arta.kz/xml/ns/as/ldap-sync ldap-sync_2.xsd">
    <!-- Наборы синхронизации, таких может быть несколько -->
    <item>
        <!-- id синхронизации -->
        <id>1</id>
        <!-- домен -->
        <domain>test.ldap.com</domain>
        <!-- синхронизация -->  
        <sync>
            <!-- LDAP хост -->
            <host>10.20.30.1</host>
            <!-- учетная запись для подключения к каталогу LDAP -->
            <user-dn>cn=syncuser,dc=test,dc=ldap,dc=com</user-dn>
            <!-- пароль -->
            <password>password</password>
            <!-- активно, неактивно -->
            <active>false</active>
            <!-- интервал синхронизации в мс -->
            <interval>1800000</interval>
            <!-- следовать ссылкам -->
            <referral>ignore</referral>
        </sync>
        <!-- доступ -->
        <access>
            <!-- группа доступа -->
            <!-- значение userAccountControl в этом поле указывает на поле "Активен" в AD, вместо него можно      
            использовать просто группу
            -->                                               
            <allow>cn=aiusers,ou=Groups,ou=People,dc=test,dc=ldap,dc=com</allow>
            <!-- группа админов -->
            <admin>cn=aiadmin,ou=Groups,ou=People,dc=test,dc=ldap,dc=com</admin>
        </access>
        <!-- пользователи -->
            <user>
            <!-- базовый узел поиска в LDAP -->
            <base>dc=test,dc=ldap,dc=com</base>
            <!-- фильтр -->
            <filter>(objectClass=inetOrgPerson)</filter>
            <!-- По какому полю сравнивать пользователей -->
            <identity>
                <!-- Откуда из Synergy брать поле для сравнения, из учётной записи -->
                <source type="account"/>
                <!-- либо из произвольной карточки
                <source type="personalrecord" id="id личной карточки"/>
                -->
                <!-- Поля для сравнения. Блок id может быть только один в этом блоке. -->
                <id>
                    <!-- Идентификатор поля Synergy. Для типа источника account возможные значения: id, login, email.
                    Для типа источника personalrecord — идентификатор поля формы карточки пользователя.
                    -->
                        <synergy>id</synergy>
                        <!-- Поле id пользователя из LDAP, если пусто - будет использоваться md5 от DN объекта. Eсли указанное поле отсутствует в импортируемом объекте, либо оно является пустым, то импорт этого объекта не производится, о чём делается запись в лог -->
                        <ldap></ldap>
                    </id>
                </identity>
                <!-- Сопоставление полей учётной записи -->
                <account>   
                    <!-- поле логин -->
                    <login>cn</login>
                    <!-- поле имя -->
                    <firstname>firstName</firstname>
                    <!-- поле отчество -->
                    <middlename>middleName</middlename>
                    <!-- поле фамилия -->
                    <lastname>sn</lastname>
                    <!-- поле почта -->
                    <email>mail</email>
                </account>
                <!-- Сопоставление полей карточки пользователя. Блоков personalrecord может быть несколько
                -->
                <personalrecord>
                    <!-- Идентификатор карточки пользователя. Обязательно должен быть непустым -->
                    <id>какой-то id</id>
                    <!-- Блок field указывает на связь поля из LDAP с полем карточки пользователя. Таких блоков может быть несколько -->
                    <field>
                        <ldap>IIN</ldap>
                        <synergy>form-iin</synergy>
                    </field>
                </personalrecord>
            </user>
                <!-- группы -->
                <group>
                    <!-- базовый узел -->
                    <base>dc=test,dc=ldap,dc=com</base>
                    <!-- фильтр -->
                    <filter>(objectClass=groupOfNames)</filter>
                    <!-- поле id группы, если пусто - будет использоваться hashCode от DN (как раньше было), иначе hashCode от поля -->
                    <id></id>
                    <!-- поле имя -->
                    <name>cn</name>
                    <!-- поле члены -->
                    <member>member</member>
                 </group>
            </item>
        </configuration>

Настройка синхронизации

Данная глава содержит инструкцию по настройке синхронизации и разделена на два подраздела:

  • создание группы пользователей для последующей синхронизации с LDAP каталогами;

  • настройка конфигурационного файла.

Для настройки синхронизации необходимо иметь права Администратора AD. Перед началом настройки настоятельно рекомендуется сделать резервную копию базы mySQL, чтобы в случае возникновения ошибок иметь возможность восстановления базы до текущего состояния.

Создание групп в JXplorer

  1. Подключимся к серверу с данными Администратора:

Figure 7.21. Рисунок 1

Рисунок 1

  1. Вызовем меню создания группы:

Figure 7.22. Рисунок 2

Рисунок 2

  1. Указываем уникальное имя DN:

Figure 7.23. Рисунок 3

Рисунок 3

  1. Заполним все обязательные параметры (выделены жирным начертанием):

Figure 7.24. Рисунок 4

Рисунок 4

Figure 7.25. Рисунок 5

Рисунок 5

  1. Добавим пользователей в группу:

Figure 7.26. Рисунок 6

Рисунок 6

  1. Группа успешно создана:

Figure 7.27. Рисунок 7

Рисунок 7

Создание групп в Active Directory

  1. Вызовем меню создания группы:

Figure 7.28. Рисунок 1

Рисунок 1

  1. В окне создания группы указываем имя и параметры группы:

Figure 7.29. Рисунок 2

Рисунок 2

  1. Добавляем пользователй в данную группу, которые будут иметь доступ к платформе ARTA Synergy:

Figure 7.30. Рисунок 3

Рисунок 3

  1. Для импользования фильтрации пользователей для объекта понадобится уникальное имя DN. Для этого перейдем во вкладку Редактор атрибутов:

Figure 7.31. Рисунок 4

Рисунок 4

Настройка конфигурационного файла

  1. Переходим в консоль сервера.

  2. Открываем файл для конфигурирования синхронизации:

    nano /opt/synergy/jboss/standalone/configuration/arta/ldap-sync.xml

  3. Изменим данный файл в соответствии поставленной задачи (добавлен комментарий изменено):

  1. Без фильтрации - если необходима полная синхронизация со всеми пользователями и группами:

    <!-- синхронизация с Active Directory -->
     <item>
    <id>2</id>
       <!-- изменено -->
       <domain>test-ad.kz</domain>
       <sync>
         <!-- изменено -->
         <host>192.168.7.105</host>
         <!-- изменено -->
         <user-dn>adm@test-ad.kz</user-dn>
         <!-- изменено -->
         <password>123456Qw</password>
         <!-- изменено -->
         <active>true</active>
         <!-- изменено -->
         <interval>900000</interval>
         <referral>follow</referral>
       </sync>
       <access>
         <!-- userAccountControl указывает на поле "Активен" в AD, вместо него
         можно использовать просто группу
         -->
         <allow>userAccountControl</allow>
         <!-- изменено -->
         <admin>CN=Users,dc=test-ad,dc=kz</admin>
       </access>
       <account>
         <id>objectGUID</id>
         <login>sAMAccountName</login>
         <firstname>givenName</firstname>
         <middlename>info</middlename>
         <lastname>sn</lastname>
         <email>mail</email>
         <!-- изменено -->
         <base>dc=test-ad,dc=kz</base>
         <!-- изменено -->
         <filter>(objectClass=person)</filter>
       </account>
       <group>
         <id>objectGUID</id>
         <name>cn</name>
         <member>member</member>
         <!-- изменено -->
         <base>dc=test-ad,dc=kz</base>
         <filter>(objectClass=group)</filter>
       </group>
     </item>
    
  2. С фильтрацией - если необходима синхронизация только с пользователями, которые будут иметь доступ к платформе ARTA Synergy (рекомендуется):

    <!-- синхронизация с Active Directory -->
     <item>
    <id>2</id>
       <!-- изменено -->
       <domain>test-ad.kz</domain>
       <sync>
         <!-- изменено -->
         <host>192.168.7.105</host>
         <!-- изменено -->
         <user-dn>adm@test-ad.kz</user-dn>
         <!-- изменено -->
         <password>123456Qw</password>
         <!-- изменено -->
         <active>true</active>
         <!-- изменено -->
         <interval>900000</interval>
         <referral>follow</referral>
       </sync>
       <access>
         <!-- userAccountControl указывает на поле "Активен" в AD, вместо него
         можно использовать просто группу
         -->
         <allow>userAccountControl</allow>
         <!-- изменено -->
         <admin>CN=Users,dc=test-ad,dc=kz</admin>
       </access>
       <account>
         <id>objectGUID</id>
         <login>sAMAccountName</login>
         <firstname>givenName</firstname>
         <middlename>info</middlename>
         <lastname>sn</lastname>
         <email>mail</email>
         <!-- изменено -->
         <base>dc=test-ad,dc=kz</base>
         <!-- изменено -->
         <filter>(memberOf=CN=Synergy,CN=Users,DC=test-ad,DC=kz)</filter>
       </account>
       <group>
         <id>objectGUID</id>
         <name>cn</name>
         <member>member</member>
         <!-- изменено -->
         <base>dc=test-ad,dc=kz</base>
         <filter>(objectClass=group)</filter>
       </group>
     </item>
    

    Примечание

    Данные для фильтра берутся из атрибутов группы.

  3. Без названия группы - если нет необходимости в отображении названий групп в ARTA Synergy:

    <!-- синхронизация с Active Directory -->
     <item>
    <id>2</id>
       <!-- изменено -->
       <domain>test-ad.kz</domain>
       <sync>
         <!-- изменено -->
         <host>192.168.7.105</host>
         <!-- изменено -->
         <user-dn>adm@test-ad.kz</user-dn>
         <!-- изменено -->
         <password>123456Qw</password>
         <!-- изменено -->
         <active>true</active>
         <!-- изменено -->
         <interval>900000</interval>
         <referral>follow</referral>
       </sync>
       <access>
         <!-- userAccountControl указывает на поле "Активен" в AD, вместо него
         можно использовать просто группу
         -->
         <allow>userAccountControl</allow>
         <!-- изменено -->
         <admin>CN=Users,dc=test-ad,dc=kz</admin>
       </access>
       <account>
         <id>objectGUID</id>
         <login>sAMAccountName</login>
         <firstname>givenName</firstname>
         <middlename>info</middlename>
         <lastname>sn</lastname>
         <email>mail</email>
         <!-- изменено -->
         <base>dc=test-ad,dc=kz</base>
         <!-- изменено -->
         <filter>(memberOf=CN=Synergy,CN=Users,DC=test-ad,DC=kz)</filter>
       </account>
       <group>
         <id>objectGUID</id>
         <name>cn</name>
         <member>member</member>
         <!-- изменено -->
         <base>dc=test-ad,dc=kz</base>
         <!-- изменено -->
         <filter>(objectClass=NONEXISTENTANDWILLNOTEXISTFOREVER)</filter>
       </group>
     </item>
    
  1. Перезапускаем jboss.

В приложении администратора Synergy Картотека -> Управление пользователями появится список пользователей. Синхронизация осуществляется в одностороннем порядке: при добавлении пользователя в AD, он отображается в ARTA Synergy, но не наоборот.

Источники и дополнительная информация

Проект Pro-LDAP

Статья на Википедии

Использование LDAP-фильтров

Атрибуты Active Directory