Top.Mail.Ru
Центр помощи / Для администратора / 4. Интеграции / Синхронизация пользователей / Настройка синхронизации с Active Directory (AD LDAP / OpenLDAP)

Настройка синхронизации с Active Directory (AD LDAP / OpenLDAP)

Инструкция для администратора UnSpot и администратора каталога: как подключить синхронизацию сотрудников из локального Active Directory или OpenLDAP, какие поля перенести и как ограничить выборку. Подключение выполняется в разделе Настройка → Интеграции, в блоке «Синхронизация пользователей». Настраивать интеграции могут роли Владелец и Администратор интеграций. Как устроен сам обмен и что уходит из каталога — в парной статье «Синхронизация пользователей с Active Directory (AD LDAP / OpenLDAP): как устроена»; её же передают службе информационной безопасности на согласование.

Что понадобится

  • Роль в UnSpot: Владелец или Администратор интеграций.
  • Сетевой доступ: контроллер домена должен принимать входящие подключения с адресов UnSpot (актуальный список адресов запросите в поддержке) на порт 389 или 636 — смотря какой протокол вы выберете. Без сетевого доступа форма не сохранится: настройки записываются только после успешно пройденной проверки интеграции (шаг 7).
  • Сервисная учётная запись в каталоге с правами только на чтение объектов пользователей, групп и подразделений.
  • DN контейнера, от которого искать сотрудников.
  • Свободный слот синхронизации: одновременно может быть подключён только один способ — AD LDAP, OpenLDAP, Entra ID или Google Workspace. Если подключён другой, сначала отключите его.

Шаг 1. Подключение протокола

Откройте Настройка → Интеграции. В блоке «Синхронизация пользователей» собраны все способы: у AD LDAP, OpenLDAP, Entra ID (Azure AD), Google Workspace и SCIM 2.0 есть кнопка «Подключить», а CSV и OpenID Connect ведут ссылкой «Перейти к настройке» в свои разделы.

Нажмите «Подключить» в карточке AD LDAP — откроется форма «Настройки синхронизации» (у уже настроенной интеграции та же форма открывается кнопкой «Изменить»). Форма заполняется сверху вниз и разделена на четыре блока — именно в этом порядке:

  • Подключение протокола — протокол, адрес сервера каталога, порт, DN и учётные данные сервисной записи.
  • Параметры синхронизации для пользователей.
  • Маппинг данных о пользователе — из каких атрибутов каталога брать поля карточки сотрудника.
  • Параметры синхронизации для пользователей — фильтр по пользователям, и Дополнительные параметры синхронизации — группы доступа, оргструктура и приветственные письма; у групп и оргструктуры свои фильтры.

Под блоками — «Проверка интеграции»: пока она не пройдена, подключение не сохраняется (шаг 7). Начните с блока «Подключение протокола»:

ПолеЧто указать
ПротоколОбязательный список: «LDAP · без шифрования (389)» или «LDAPS · с шифрованием (636)». Пока значение не выбрано, в поле стоит подсказка «Выберите протокол»
ХостСетевой адрес сервера каталога без префикса протокола — например dc01.mycompany.ru. Префикс в это поле больше не пишут: UnSpot подставляет его по выбранному протоколу при сохранении, а у уже настроенного подключения определяет протокол по сохранённому адресу
DN*Отличительное имя контейнера, от которого искать пользователей. Под полем показан образец: «Пример CN=Users, DC=mycompany, DC=ru». Поле обязательное: искать от корня каталога нельзя
ПортПодставляется сам при выборе протокола — 389 для LDAP и 636 для LDAPS, — если поле пустое или в нём стоит порт по умолчанию другого протокола. Нестандартный порт укажите вручную: введённое значение подстановка не затирает
ЛогинУчётная запись, под которой UnSpot будет читать каталог. Достаточно прав на чтение. Строка передаётся в bind как есть — подойдёт UPN (svc-unspot@corp.local) или полный DN
ПарольПароль этой учётной записи. При новом подключении поле обязательное. При изменении существующего подключения его можно оставить пустым — тогда сохранённый пароль не меняется

Выбирайте «LDAPS · с шифрованием (636)», если каталог принимает такие подключения. Вариант «LDAP · без шифрования (389)» передаёт логин, пароль и содержимое каталога по сети без шифрования. Какие компенсирующие меры имеет смысл заложить на стороне сети, разобрано в парной статье про устройство обмена.

Шаг 2. Маппинг данных о пользователе

Блок «Маппинг данных о пользователе» отвечает на вопрос, из каких атрибутов каталога брать поля карточки сотрудника. Три поля — Email, имя и фамилия — задаются списками: пока значение не выбрано, в поле стоит подсказка «Выберите атрибут». Все три обязательны, и значения по умолчанию у них нет: раньше в поле Email подставлялся первый вариант, теперь его выбирают руками. Остальные поля остались отметками, но рядом с каждой подписано имя атрибута: department, manager, position, telephoneNumber, thumbnailPhoto. Подписи фиксированные и не всегда совпадают с тем, что UnSpot действительно читает: должность берётся из атрибута title, а в карточке OpenLDAP отдел читается из departmentNumber, а фотография — из jpegPhoto. Отмечать эти поля необязательно — подключиться можно, заполнив только три обязательных списка.

Поле в формеВарианты в спискеЧто это значит
Email*userPrincipalName (в карточке AD LDAP) или userName (в карточке OpenLDAP); EmailЛогин сотрудника в UnSpot. По этому значению записи каталога сопоставляются с карточками сотрудников, поэтому у синхронизируемых пользователей атрибут должен быть заполнен. Записи без userPrincipalName в выборку не попадают независимо от выбора
Имя*givenName; «displayName (фамилия ИМЯ отчество)»; «displayName (ИМЯ отчество фамилия)»Имя в карточке сотрудника. Первый вариант берёт атрибут целиком, два других вырезают нужное слово из displayName
Фамилия*sn; «displayName (ФАМИЛИЯ имя отчество)»; «displayName (имя отчество ФАМИЛИЯ)»Фамилия в карточке сотрудника. Первый вариант берёт атрибут целиком, два других вырезают нужное слово из displayName

Как разбирается displayName. Значение режется по пробелам, кратные пробелы схлопываются. Первая часть — первое слово строки, средняя — второе, последняя — последнее. Заглавные буквы в подписи варианта показывают, какое слово попадёт в поле: «displayName (фамилия ИМЯ отчество)» возьмёт в имя второе слово, «displayName (имя отчество ФАМИЛИЯ)» возьмёт в фамилию последнее. Если нужного слова в строке нет — например, в displayName всего одно слово — или атрибут пуст, UnSpot берёт значение из givenName для имени и из sn для фамилии.

Если пусты и givenName со sn, срабатывает последний фоллбэк: в карточке AD LDAP имя и фамилия достаются из атрибута name (строка делится по первому пробелу), в карточке OpenLDAP на их место подставляется адрес электронной почты. И только если после всех фоллбэков имя или фамилия остались пустыми, сотрудник молча пропускается при синхронизации — ни ошибки в интерфейсе, ни записи в журнале, ни строки в сводке при этом не будет, карточка просто не появится. На практике до этого доходит редко. Гораздо чаще неверно выбранный источник виден иначе: имя или фамилия в карточке выглядят как название записи каталога или как адрес почты. Тогда проверьте, что выбранный вариант разбора displayName подходит формату, принятому в вашем каталоге.

Отметка в формеАтрибут рядом с отметкойЧто переносится
Отображаемое имяdisplayNameПоле «Отображаемое имя» в карточке сотрудника — имя, под которым сотрудник виден по всему продукту. Отметка появилась 31.08.2026 и по умолчанию выключена. Атрибут переносится как есть, без разбора на слова и без фоллбэков: если displayName в каталоге пуст или его нет, поле в карточке будет затёрто. Пока отметка снята, поле не трогается — остаётся то, что заполнили руками. Включённая отметка делает поле в карточке сотрудника нередактируемым: при наведении показывается подсказка «Вы не можете редактировать это поле, так как этот пользователь синхронизируется с Active Directory»
ОтделdepartmentОтдел в карточке сотрудника. Взаимоисключается с синхронизацией оргструктуры — см. шаг 5
РуководительmanagerРуководитель в карточке. В UnSpot связь строится по адресу почты руководителя, поэтому его карточка тоже должна попадать в выборку
ДолжностьpositionДолжность в карточке. Значение длиннее 128 символов обрезается
ТелефонtelephoneNumberТелефон в карточке сотрудника
АватарthumbnailPhotoФотография сотрудника. Переносится отдельным заданием: оно запускается сразу при подключении интеграции и при включении отметки, а последующие смены фото в каталоге подхватываются по расписанию платформы; суточный цикл и кнопка ручного запуска фотографии не обновляют

Шаг 3. Номер пропуска СКУД

Строка «Номер пропуска СКУД» (раньше подпись выглядела как NumberPass) устроена иначе остальных: она устроена иначе остальных: рядом с отметкой стоит не имя атрибута, а текстовое поле с подсказкой «Укажите LDAP-атрибут». Номер пропуска нужен интеграциям со СКУД и модулю «Посетители».

  • Пока отметка снята, поле недоступно и остаётся пустым, а атрибут из каталога не вычитывается.
  • Когда отметку ставят, поле становится обязательным.
  • Значение — любое имя атрибута вашего каталога: закрытого списка нет. Номер пропуска редко лежит в стандартном атрибуте схемы, поэтому его обычно заводят сами; значение по умолчанию — numberPass.

Шаг 4. Дополнительные параметры синхронизации

Начните с блока «Параметры синхронизации для пользователей»: в нём одно поле — «Фильтр по пользователям», и оно решает, кто вообще попадёт в синхронизацию.

Поле «Фильтр по пользователям» ограничивает выборку стандартным LDAP-фильтром, длиной до 255 символов. Фильтр указывается со своими скобками — он подставляется внутрь общего условия как есть. Чтобы синхронизировать только участников конкретной группы:

(memberOf=CN=UnSpotUsers,OU=Groups,DC=mycompany,DC=ru)

Если фильтр пустой, синхронизируются все подходящие объекты внутри указанного DN. Проверьте на контроллере домена ограничение на число записей в ответе (в Active Directory — параметр MaxPageSize, по умолчанию 1000): UnSpot читает выборку одним запросом, и если каталог отдаст её не полностью, недостающие сотрудники будут выглядеть как удалённые из каталога и попадут в архив вместе с отменой своих броней. Держите фильтр таким, чтобы выборка укладывалась в лимит.

Шаг 5. Группы и организационная структура

В том же блоке — два независимых переключателя, у каждого своё описание и свой фильтр. Поля фильтров видны всегда, но остаются неактивными, пока переключатель выключен. Фильтр по группам и фильтр для орг. структуры принимают до 255 знаков.

ПереключательФильтрЧто делает
Синхронизировать группы доступаФильтр по группамВ форме описан словами «Загружать группы доступа из AD». Группы каталога переносятся в группы UnSpot — их можно использовать в политиках бронирования, доступе к ячейкам хранения и правах доступа. Состав группы задаёт каталог: синхронизируемые сотрудники, добавленные в такую группу вручную, будут из неё удалены при следующем цикле; карточек, заведённых в UnSpot вручную и не связанных с каталогом, это не касается. Группа, пропавшая из каталога или не прошедшая фильтр, удаляется из UnSpot целиком — вместе с её ролью в политиках бронирования и правах
Синхронизировать оргструктуруФильтр для орг. структурыВ форме описан словами «Построить дерево подразделений из AD». Из каталога переносится дерево подразделений. Для Active Directory дополнительно переносится руководитель подразделения из атрибута managedBy

«Отдел» и «Синхронизировать оргструктуру» взаимоисключаются. Включить оба нельзя: подразделение сотрудника заполняется только из одного источника. Форма блокирует второй вариант, а при попытке сохранить оба UnSpot вернёт ошибку «Нельзя одновременно синхронизировать отдел и организационную структуру».

Дерево подразделений обновляется не в каждом цикле. Оно читается в момент подключения интеграции и в момент включения переключателя «Синхронизировать оргструктуру». Суточный цикл и кнопка «Обновить on-premise AD» его не затрагивают, поэтому после реорганизации в каталоге выключите и снова включите этот переключатель.

Шаг 6. Приветственные письма

Тумблер «Отправлять приветственные письма» управляет онбордингом: в форме он описан словами «При создании пользователя ему придёт письмо с краткой инструкцией». По умолчанию тумблер выключен. Если вы хотите сначала настроить пространство и только потом приглашать сотрудников — оставьте его выключенным.

Шаг 7. Проверка интеграции

Внизу формы — блок «Проверка интеграции» с кнопкой «Проверить интеграцию». Проверка обращается к каталогу с теми параметрами, что заполнены в форме, и возвращает до пяти строк:

Что проверяетсяСтрока при успехеСтрока при ошибкеЧто она значит
СоединениеХост доступен, соединение установленоОшибка подключения. Проверьте протокол подключения, адрес сервера, порт.UnSpot дошёл до сервера каталога по выбранному протоколу, адресу и порту
Учётные данныеУчётные данные принятыНе удалось пройти авторизацию. Проверьте логин и пароль учетной записи.Каталог принял логин и пароль сервисной записи. Строка появляется только если соединение установилось
ПользователиПользователи найденыПользователи: Не найденыВ указанном DN с учётом фильтра по пользователям нашлась хотя бы одна запись пользователя
Группы доступаГруппы доступа найденыГруппы доступа: Не найденыНашлась хотя бы одна группа, проходящая фильтр по группам. Строка показывается только при включённом переключателе групп
ПодразделенияПодразделения найденыПодразделения: Не найденыНашлось хотя бы одно подразделение, проходящее фильтр для орг. структуры. Строка показывается только при включённой синхронизации оргструктуры

Строки про пользователей, группы и подразделения появляются только тогда, когда прошли и соединение, и авторизация: пока UnSpot не дошёл до каталога, проверять выборку нечем.

Без успешно пройденной проверки подключение не сохраняется. Кнопка сохранения запускает проверку сама, и настройки записываются только при её успехе. Успехом считаются соединение, учётные данные и пользователи, а также группы и подразделения, если соответствующие переключатели включены. Если обязательные поля формы не заполнены или сам запрос проверки не выполнился, под блоком появляется «Проверка интеграции не пройдена». Если проверка выполнилась, но какие-то строки её не прошли, отдельного сообщения не будет — смотрите сами строки в блоке. При сбое запроса дополнительно всплывает сообщение об ошибке; когда сервер ничего не вернул, это «Не удалось выполнить проверку LDAP-интеграции».

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

Ещё две вещи, о которых стоит знать заранее. Неудачная проверка не помечает существующую интеграцию нерабочей: состояние уже настроенного подключения она не меняет, синхронизация продолжает идти на прежних параметрах. И проверка читает по одной записи каждого типа, поэтому отвечает на вопрос «доступно ли вообще», а не «сколько сотрудников загрузится»: пройденная проверка не обещает, что в выборку попадут все нужные сотрудники.

Что доступно после подключения

Карточка показывает адрес подключения и список «Поля синхронизации:» — номер пропуска в нём теперь называется «Номер пропуска», а не NumberPass. Дальше синхронизация идёт автоматически — раз в сутки по расписанию платформы. Кнопки на карточке:

КнопкаКогда доступнаЧто делает
Обновить on-premise AD
(в карточке OpenLDAP — «Обновить on-premise»)
когда подключение исправно, не чаще одного раза в часЗапускает обмен вручную: пользователи, группы и состав групп. Фотографии и дерево подразделений не обновляет. После нажатия кнопка блокируется, а подсказка показывает время следующего запуска — «будет доступно в ЧЧ:ММ»
Изменитькогда подключение исправноОткрывает форму настроек: параметры подключения, набор полей, фильтры, отметки групп и оргструктуры. Добавленные отметки применяются сразу — UnSpot запускает внеплановый обмен, не дожидаясь суточного цикла; снятие отметки вступает в силу со следующего цикла. Это же способ сменить пароль сервисной учётной записи — переподключение для этого не нужно. Пароль при изменении можно не вводить, но сохранить форму всё равно удастся только после успешной проверки интеграции
Переподключитьтолько когда подключение помечено недействительным — на карточке появляется сообщение «Эта учетная запись недействительна. Пожалуйста, переподключите свой аккаунт или используйте другой»Отключает интеграцию: стирает настройки и связи между записями каталога и карточками UnSpot. Подключение придётся собрать заново кнопкой «Подключить» — форма откроется пустой, а объекты сопоставятся заново по адресам почты. Если нужно только поменять пароль — используйте «Изменить»
ОтключитьвсегдаОстанавливает синхронизацию. Карточки сотрудников и созданные группы в UnSpot сохраняются, но связи с записями каталога и признак синхронизации у подразделений удаляются (если параллельно подключён SCIM-провижининг, признак у подразделений сохраняется)

Чем отличается карточка OpenLDAP

Рядом с AD LDAP есть отдельная карточка OpenLDAP — для каталогов OpenLDAP и совместимых. Форма настроек та же самая, кнопка ручного запуска называется «Обновить on-premise» и так же ограничена одним запуском в час. Различия, которые видны администратору:

ЧтоAD LDAPOpenLDAP
Класс объектов пользователейobjectClass=userobjectClass=inetOrgPerson
Класс объектов группobjectCategory=groupobjectClass=posixGroup — требуются gidNumber и cn
Первый вариант в списке для поля Email*подписан userPrincipalName, читается он жеподписан userName, фактически читается uid
Какие атрибуты обязательны у записиuserPrincipalNameuidNumber и mail — запись без любого из них пропускается
Атрибут отделаdepartmentdepartmentNumber
Атрибут фотографииthumbnailPhotojpegPhoto
Отключённые учётные записиотсеиваются автоматическине отсеиваются — исключайте их фильтром
Руководитель подразделенияпереноситсяне переносится

Одновременно может быть подключён только один каталог — AD LDAP или OpenLDAP, и то же ограничение действует для Entra ID и Google Workspace.

Готовые шаблоны для «Фильтра по пользователям» OpenLDAP. Выбор членов двух групп (нужен включённый оверлей memberOf): (|(memberOf=cn=unspot-users,ou=groups,dc=example,dc=com)(memberOf=cn=contractors,ou=groups,dc=example,dc=com)). Исключение заблокированных — по атрибуту вашей схемы, например (!(nsAccountLock=TRUE)) в 389 Directory Server и FreeIPA. Помните, что фильтр вставляется внутрь служебного запроса вместе со своими скобками.

Если что-то не работает

Что видитеВ чём причинаЧто делать
«Ошибка подключения. Проверьте протокол подключения, адрес сервера, порт.»Проверка интеграции не дошла до каталогаПроверьте протокол, адрес и порт, а также что межсетевой экран пропускает входящие подключения с адресов UnSpot. Частая причина — протокол и порт, которых каталог не слушает. UnSpot ждёт ответа каталога 5 секунд — при задержках на канале проверка может не пройти, даже если каталог жив
«Не удалось пройти авторизацию. Проверьте логин и пароль учетной записи.»Каталог отклонил логин или парольПроверьте сервисную учётную запись и что она не заблокирована и её пароль не истёк
«Проверка интеграции не пройдена»Форма не сохраняется, пока проверка не пройдена целикомНажмите «Проверить интеграцию» и разберите строки, которые не прошли. Помните, что правка любого параметра подключения сбрасывает результат проверки
«Не удалось выполнить проверку LDAP-интеграции»Сам запрос проверки не выполнилсяУбедитесь, что обязательные поля формы заполнены, и запустите проверку ещё раз
«Синхронизация пользователей уже подключена (используется другая служба каталогов)»Уже подключён другой способ синхронизацииОтключите текущий способ, затем подключайте этот
«Время синхронизации еще не наступило»Ручной запуск был меньше часа назадДождитесь времени, показанного в подсказке к кнопке
«Нельзя одновременно синхронизировать отдел и организационную структуру»Выбраны обе взаимоисключающие настройкиОставьте одну — см. шаг 5
Сотрудники синхронизировались не всеВыборка не прошла целиком: не заполнен атрибут, выбранный для Email, запись отсечена фильтром, сработало серверное ограничение на число записей — либо после разбора displayName у сотрудника оказались пусты имя или фамилия, и он был пропущен молчаСверьте выбранные источники имени и фамилии с тем, что лежит в каталоге, затем проверьте фильтр и MaxPageSize на контроллере домена. Пропущенные из-за пустого имени сотрудники просто не появятся, а вот те, кто исчез из выборки, архивируются — с отменой их броней
Дерево подразделений устарелоОргструктура не входит в суточный циклВыключите и снова включите переключатель «Синхронизировать оргструктуру»
Аватары не появилисьФото переносит отдельное задание: внеплановый запуск — сразу при подключении и при включении отметки, дальше — по расписанию платформыЕсли фото нет и сразу после включения отметки — проверьте права учётной записи на чтение thumbnailPhoto; смена фото в каталоге появится после следующего запуска задания

Историю изменений, сделанных синхронизацией, видно в разделе Аналитика → Отчёты, отчёт «История управления пользователями»: у таких записей в поле инициатора стоит признак синхронизации.

Связанные статьи

Оставьте заявку, и мы свяжемся с вами в течение 30 минут.

Loading

Как улучшить работу офиса?

Оставьте контакт - покажем на демо как уйти от таблиц, двойных бронирований и путаницы с рабочими местами.

Loading