Данная глава руководства администратора рассказывает о возможности импорта
объектов ARTA Synergy
из сторонних
каталогов посредством Active Directory
. В
ней детально описано как настроить и эксплуатировать LDAP
а рамках ARTA
Synergy
.
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 <-> Пользователь Synergy”) настраиваемый, например, можно использовать для этого ИИН.
Пароли пользователей не синхронизируются, авторизация происходит
непосредственно на LDAP
каталоге
посредством Simple Bind
.
Помимо стандартных полей карточки пользователя (ФИО, доступ в систему и т.п.) можно синхронизировать произвольные поля - с добавлением в карточку пользователя на формах.
Active Directory
— LDAP-совместимая
реализация службы каталогов корпорации Microsoft для операционных систем
семейства Windows Server. Позволяет администраторам использовать групповые
политики для обеспечения единообразия настройки пользовательской рабочей
среды, разворачивать программное обеспечение на множестве компьютеров через
групповые политики или посредством System Center Configuration Manager,
устанавливать обновления операционной системы, прикладного и серверного
программного обеспечения на всех компьютерах в сети, используя Службу
обновления Windows Server.
Подробно рассмотрим установку и настройку Active Directory в ОС Windows Server 2012 R2.
Перейдите в Server Manager и нажмите на Add roles and features.
Откроется мастер установки ролей и компонентов.
В шаге Installation Type выберите пункт Role-based of feature-based installation.
В шаге Server Selection выберите пункт сервер, для которого будет установлена роль.
В шаге Server Roles выберите пункт Active Directory Domain Services.
Подтвердите добавление компонентов роли, нажав на кнопку Add Features.
Пропустите шаг Features и подтвердите установку роли Active Directory.
После успешной установки роли мастер установки отобразит окно подтверждения.
После успешной установки необходимо настроить Active Directory. Откройте Server Manager и нажмите на пиктограмму флага. В открывшемся выпадающем списке нажмите на Promote this server to a domain controller.
В открывшемся мастере настройки Active Directory добавьте новый лес. Для этого в шаге Deployment Configuration выберите пункт Add a new forest и укажите название корневого домена.
В шаге Domain Controller Service задайте пароль для режима восстановления служб каталогов.
В шаге Additional Options измените имя домена NetBIOS.
В шаге Paths укажите папки базы данных, файлов журнала и SVSVOL.
В шаге Review Options отобразится список всех настраиваемых опций.
В шаге Prerequisites Check подтвердите настройку выбранных опций.
После успешной настройки компьютер будет перезагружен автоматически.
После успешных установки и настройки Active Directory добавим пользователей для доступа к ARTA Synergy.
Откройте Active Directory Users and Computers.
Выделите ноду Вашего домена (в примере synergy.tm) и нажмите кнопку добавления подразделения.
Введите название будущего подразделения.
Выбрав новое созданное подразделение, нажмите на кнопку создания пользователей.
Укажите имя, фамилию и логин будущего пользователя.
Задайте пароль и включите флаг, отвечающий за устаревание пароля (если включен - пароль никогда не устаревает).
Подтвердите создание нового пользователя.
Повторив пп. 4-7 создайте требуемых пользователей.
Теперь необходимо выдать этим пользователям доступ в систему ARTA Synergy. Для этого нажмите на кнопку создания новых групп.
Укажите название будущей группы. В данную группу будет входить Администратор Active Directory.
Нажмите на кнопку Add.
Введите имя пользователя и нажмите на кнопку Check Names.
Мастер автоматически дополнит значение учетной записи соответствующего пользователя.
Создайте еще одну группу для доступа всех пользователей к системе ARTA Synergy.
Повторив пп. 11-13 добавьте всех пользователей в группу доступа.
Для работы с LDAP
-каталогами возможно
использовать любой клиент с поддержкой LDAP
-протокола. Одним их таких клиентов является
JXplorer
.
JXplorer
- кроссплатформенный LDAP
браузер и редактор с поддержкой безопасности
(в том числе SSL
, SASL
и GSSAPI
),
перевода на многие языки, онлайн-помощью, коммерческой поддержкой,
пользовательскими формами и многими другими возможностями.
Соответствует общим стандартам клиентов LDAP
, которые можно использовать для поиска,
чтения и редактирования любого стандартного каталога LDAP
или любой службы каталогов с LDAP
или интерфейсом DSML
.
Рассмотрим его функциональность на примере поиска пользователя в одном из каталогов.
Подключимся к серверу с данными Администратора:
В открывшейся закладке Explore
отобразилось дерево со всеми объектами каталога, доступные авторизованному
Администратору. При выборе объекта из навигатора в основной рабочей области
отобразились все атрибуты данного объекта, а также их значения:
Примечание
Полный список возможных атрибутов представлен здесь
Вызовем окно поиска по каталогу - Search
-> Search Dialog
. В открывшемся
диалоге укажем базовый узел поиска, от которого он будет осуществляться, и
сам фильтр:
Клиент автоматически перешел на вкладку Results
с найденными результатами запроса:
Для конфигурирования синхронизации используется файл /opt/synergy/jboss/standalone/configuration/arta/ldap-sync.xml
.
ARTA Synergy
поддерживает одновременную
синхронизацию с несколькими LDAP
каталогами. Вся конфигурация хранится в одном файле и разделена на секции
(item
). Секции же должны иметь уникальный
номер (ID
). По умолчанию файл содержит
две секции — первая для OpenLDAP
, вторая
для Active Directory
. Данные секции
указаны для примера и отключены.
Обозначения тегов:
Тег | Значение и содержание |
---|---|
|
Секция параметров синхронизации |
|
|
|
Доменное имя сервера |
|
Секция параметров синхронизации с |
|
|
|
Данные учетной записи для подключения к |
|
Пароль от учетной записи, указанной в теге |
|
Параметр включения / отключения работы секции ( |
|
Интервал синхронизации (в милисекундах) |
|
Расписание синхронизации (по времени сервера), альтернативный интервалу синхронизации |
|
Параметр перехода по ссылкам (по умолчанию |
|
Предоставлять ли импортируемым пользователям доступ в систему, пока
позволяет лицензия ( |
|
Код группы пользователей, в котороую нужно включить всех импортированных пользователей |
|
Параметры доступа |
|
Общая группа доступа - пользователям данной группы будет разрешен доступ в
систему (обязательно |
|
Параметры учетных записей, которые буду иметь права Администратора в
|
|
Параметры пользователей |
|
Атрибут объекта Значения данного атрибута должны быть уникальны относительно пользователей |
|
Атрибут объекта |
|
Имя пользователя |
|
Отчество пользователя |
|
Фамилия пользователя |
|
Почта пользователя (при наличии) |
|
Базовый узел поиска |
|
Фильтр для синхронизации (по умолчанию |
|
Параметры групп |
|
|
|
Импортировать ли группы (если указано |
|
Имя группы |
|
Члены группы |
|
Базовый узел поиска |
|
Фильтрация импортируемых классов объектов, например, |
|
Поле LDAP, из которого будет записан код группы (см. пример секции |
|
Для версий Synergy, начиная с |
Конфигурационный файл 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
будет сформирован по следующим правилам:
если указано поле <code>
, то при
импорте в код группы будет добавлен префикс кода приложения, например,
app1_group_code
;
если приложение не указано, либо указано приложение по умолчанию (default_application
), либо код сформирован из
ldap_$sha1($DN + $application_code)
,
префикс добавляться не будет;
если указанного приложения в Synergy нет, в лог записывается ошибка;
если приложение не указано, группа будет добавлена в приложение по умолчанию при его наличии.
Файл конфигурации представлен в одной их следующих версий:
Сопоставление пользователя 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>
Сопоставление пользователя 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
, чтобы в случае возникновения ошибок иметь
возможность восстановления базы до текущего состояния.
Подключимся к серверу с данными Администратора:
Вызовем меню создания группы:
Указываем уникальное имя DN
:
Заполним все обязательные параметры (выделены жирным начертанием):
Добавим пользователей в группу:
Группа успешно создана:
Вызовем меню создания группы:
В окне создания группы указываем имя и параметры группы:
Добавляем пользователй в данную группу, которые будут иметь доступ к
платформе ARTA Synergy
:
Для импользования фильтрации пользователей для объекта понадобится
уникальное имя DN
. Для этого перейдем во
вкладку “Редактор атрибутов”:
Переходим в консоль сервера.
Открываем файл для конфигурирования синхронизации:
nano
/opt/synergy/jboss/standalone/configuration/arta/ldap-sync.xml
Изменим данный файл в соответствии поставленной задачи (добавлен комментарий
изменено
):
Без фильтрации - если необходима полная синхронизация со всеми пользователями и группами:
<!-- синхронизация с 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>
С фильтрацией - если необходима
синхронизация только с пользователями, которые будут иметь доступ к
платформе 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>
Примечание
Данные для фильтра берутся из атрибутов группы.
Без названия группы - если нет
необходимости в отображении названий групп в 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>
Перезапускаем jboss
.
В приложении администратора Synergy
“Картотека -> Управление пользователями” появится список
пользователей. Синхронизация осуществляется в одностороннем порядке: при
добавлении пользователя в AD
, он
отображается в ARTA Synergy
, но не
наоборот.