LDAP-синхронизация#

В статье описано, как настроить LDAP-синхронизацию пользователей в системе и выполнить импорт пользователей из службы каталогов.

LDAP-синхронизация используется в случаях, когда необходимо подключить систему к корпоративному домену и автоматически загрузить учетные записи пользователей, чтобы не создавать их вручную. Это позволяет использовать в системе существующие доменные учетные записи, упростить первоначальное заполнение списка пользователей и автоматически назначать пользователям настройки доступа.

В общем виде работа с LDAP-синхронизацией включает следующие шаги:

  1. Настройте параметры LDAP-синхронизации и подключение к доменам.

  2. Настройте назначение прав для синхронизируемых пользователей.

  3. Откройте список пользователей и запустите синхронизацию.

  4. Проверьте отчет о выполнении операции и результат загрузки пользователей и доменных групп.

Как работает синхронизация#

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

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

В ходе синхронизации система выполняет следующие действия:

  1. Определяет пользователя или создает его, если включена настройка Создавать физ лицо.

  2. Определяет объект Bs_Person и объект Bs_Employ или создает их при отсутствии. Для создания этих объектов используются данные, полученные из LDAP.

  3. Определяет, в какие доменные группы и подгруппы входит пользователь.

  4. На основе данных пользователя, связанных с ним объектов Bs_Person и Bs_Employ, а также его доменных групп проверяет, существуют ли в классе Bs_OFStructureUserGroupLink настроенные соответствия.

  5. Если такие соответствия найдены, пользователю назначаются соответствующие профили и другие настройки доступа.

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

Какие данные загружаются из LDAP#

При синхронизации из LDAP в систему загружаются и обновляются следующие данные:

  • ФИО физического лица;

  • логин пользователя;

  • значение пароля, которое используется при создании пользователя;

  • email;

  • флаг заблокированности;

  • доменные группы;

  • департамент;

  • должность;

  • описание.

Эти данные используются при создании или обновлении пользователя, а также связанных с ним объектов и настроек доступа.

Синхронизируемые поля пользователя#

Для пользователя синхронизируются следующие поля:

  • Системное имя — атрибут sAMAccountName, если он пустой, используется uid;

  • Пароль — при создании пользователя равен системному имени;

  • Группа — определяется через атрибут memberOf;

  • Подразделение Active Directory — атрибут department;

  • Наименование Active Directory — атрибут title;

  • Описание Active Directory — атрибут description.

Синхронизируемые поля физического лица#

Для физического лица синхронизируются следующие поля:

  • Фамилия — первое слово из атрибута displayName, если в нем три слова; в остальных случаях — атрибут sn;

  • Имя — второе слово из атрибута displayName, если в нем три слова; первое слово из атрибута givenName, если в нем два слова; в остальных случаях — атрибут givenName целиком;

  • Отчество — третье слово из атрибута displayName, если в нем три слова; второе слово из атрибута givenName, если в нем два слова;

  • email — атрибут mail.

Синхронизируемые поля групп#

Для доменных групп синхронизируются следующие поля:

  • Наименование — атрибут name, если он не указан, используется полное имя группы, например CN=Domain users,CN=Users;

  • Системное имя — полное имя группы.

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

Для настройки синхронизации пользователей откройте приложение Настройка системы и перейдите в раздел Настройки и сервисы > Настройки модулей системы > Общие настройки модулей > Btk > LDAP-синхронизация.

2

После открытия раздела отобразится окно настроек LDAP-синхронизации.

3

В таблице ниже приведены основные параметры настройки LDAP-синхронизации.

Наименование

Описание

Создавать физ лицо

Если настройка выключена, для пользователей, появившихся в результате синхронизации, система ищет соответствующее физическое лицо (Bs_Person) по совпадению фамилии, имени и отчества. В найденном физическом лице устанавливается ссылка на пользователя и email, если он передан из LDAP. Если настройка включена, для пользователей, у которых не удалось найти существующее физическое лицо, создается новое физическое лицо с ФИО и email из LDAP

Тип синхронизации

Пользователи группы — загружает из указанных доменов заданную группу, ее подгруппы и входящих в них пользователей с сохранением доменной структуры. Для этого режима нужно заполнить настройку Фильтр по группе.

Все пользователи — загружает из заданных доменов всех пользователей и доменные группы с сохранением структуры, если это возможно

Фильтр по группе

Полное название группы, члены которой должны быть синхронизированы. Значение задается в формате CN=...,OU=...,DC=.... Используется только при выборе типа синхронизации Пользователи группы

Домены

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

Пример настройки LDAP-синхронизации

{"jArrayDomains":[{"sDomain":"local.local","sLogin":"admin@local.local","sUrl":"ldap://<IP_ADDRESS>:<PORT>","sPass":"EncryptedStorage:<PASS>"}],"sGroupFilter":null,"idSyncType":2}

Пример настройки Quartz

{"database":"<DATABASE>","pass":"<PASSWORD>","soapReqStr":"/app/sys/soap/sys-service-1.0.0","publicKey":"<PUB_KEY>","login":"<LOGIN>","soapPort":80,"restAcquireJobReqStr":"/app/sys/rest/ss/pkg/Btk_QuartzRestPkg/getactivejobs","soapHost":"pg.local"}

Параметр Домены содержит список настроек доменов. Ниже приведены параметры отдельной доменной настройки.

Окно настройки домена показано на скриншоте ниже.

6

Настройки домена определяют параметры подключения к LDAP-серверу и правила формирования системного имени пользователя.

Наименование

Описание

Добавить домен к пользователю

Если настройка включена, система добавляет домен к системному имени пользователя в формате User@Domain

Домен

Домен, в котором система выполняет поиск пользователей

Логин

Учетная запись, от имени которой система подключается к домену

Пароль

Пароль учетной записи, используемой для подключения к домену

URL

Адрес LDAP-сервера, который система использует для подключения к домену

Пример настройки доменов

[{"sDomain":"local.local","sLogin":"admin@local.local","sUrl":"ldap://<IP_ADDRESS>:<PORT>","sPass":"EncryptedStorage:<PASS>"}]

Настройка прав для синхронизируемых пользователей#

Назначение прав по доменным группам настраивается через класс Bs_OFStructureUserGroupLink (Соответствие групп пользователей и ОФС).

Общий принцип настройки следующий:

  1. В классе Bs_OFStructureUserGroupLink вручную задаются пары вида доменная группа — объект ОФС.

  2. Для объекта ОФС, указанного в такой связке, в карточке настраиваются профили, которые будут назначаться пользователю.

Детальнее про настройку ОФС.

Если для группы пользователя настроена связь с ОФС, для сотрудника создается запись в Bs_OFSEmployee. Если у связанной ОФС настроены профили доступа, они применяются и к пользователю.

Как запустить синхронизацию#

После заполнения параметров LDAP-синхронизации, настройки доменов и правил назначения прав можно запустить синхронизацию в приложении Администратор.

  1. Откройте раздел Доступ > Пользователи.

  2. В списке пользователей раскройте выпадающий список у операции с молоточком.

  3. Выберите операцию Синхронизация пользователей Active Directory.

img_6.png

После этого откроется окно синхронизации.

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

Шаблон для новых пользователей#

Шаблон позволяет автоматически назначить новым пользователям настройки доступа при синхронизации.

В качестве шаблона используется пользователь, для которого установлен признак Является шаблоном. Такие пользователи отображаются в списке выбора в поле Шаблон, применяемый к новым пользователям.

Общий порядок работы с шаблоном:

  1. Создайте пользователя, который будет использоваться как шаблон.

  2. Установите для него признак Является шаблоном.

  3. Назначьте этому пользователю необходимые профили и другие настройки доступа.

  4. При запуске синхронизации выберите этот шаблон в поле Шаблон, применяемый к новым пользователям.

При создании нового пользователя система применяет к нему все настройки шаблона. После этого часть значений заполняется данными из LDAP и перезаписывает соответствующие поля шаблона. К таким значениям относятся пароль, имя пользователя, AdDepartment, AdTitle и AdDescription. Остальные настройки сохраняются из шаблона.

Использование шаблона позволяет не назначать права каждому новому пользователю вручную. Шаблон можно использовать как один из способов автоматической настройки новых пользователей при загрузке из LDAP.

Результат синхронизации#

img_7.png

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

Пользователи создаются только в том случае, если они не заблокированы в домене. Если пользователь заблокирован и уже зарегистрирован в системе, ему устанавливается признак Заблокирован.

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

Структура загруженных данных выглядит следующим образом:

  • Все пользователи

    • LDAP - Active Directory

      • Домен: название первого домена

      • Домен: название второго домена

      • Домен: название последнего домена

Пример итогового результата показан на скриншоте ниже.

img_8.png

Особенности работы#

При использовании LDAP-синхронизации учитывайте следующее:

  • в систему загружаются пользователи и доменные группы;

  • из LDAP загружаются и обновляются ФИО, логин, пароль, email, флаг заблокированности, доменные группы, департамент, должность и описание;

  • Bs_Person и Bs_Employ создаются только при отсутствии;

  • права и профили могут назначаться как через шаблон нового пользователя, так и через настроенные соответствия доменных групп;

  • если пользователь входит во вложенную доменную подгруппу, права могут назначаться и по вышестоящим группам, для которых настроены соответствия.