Сервер BOOCO Meteor (v 1.x) / Настройка работы со службами каталогов
Настройка работы со службами каталогов
Настройка работы с LDAP/Active Directory
Настройка работы со службой каталогов Google
Настройка работы со службой авторизации SAML
◼ Настройка правил синхронизации служб каталогов
В последних версиях появилась возможность гибко настраивать правила синхронизации служб каталогов. В пользовательском интерфейсе эта функция отсутствует.
Для настройки правил синхронизации служб каталогов нужно:
- внести данные напрямую в Mongo DB либо экспортировать триггеры в JSON-файл;
- внести изменение в триггер синхронизации и затем импортировать JSON-файл.
Экспорт и импорт триггеров с помощью файла в формате JSON можно выполнить на странице Дополнительные инструменты (Триггеры и правила → Инструменты), используя кнопки Экспорт и Импорт в разделе Операции с коллекциями.
Чтобы включить новый механизм синхронизации, нужно добавить массив rules
в поле action
триггера синхронизации службы каталога. Список атрибутов указывать не нужно. Этот список будет сформирован автоматически в соответствии со списком правил синхронизации.
Каждое правило синхронизации может содержать следующие поля:
source
— имя атрибута службы каталогов;match
— строка или регулярное выражение, которое будет применяться к исходному атрибуту (если поле пустое или отсутствует, то подходят любые значения);collection
— имя коллекции, в которую производится запись (если не указана, то берется коллекцияusers
);target
— поле в коллекции, которое нужно обновить;value
— значение, которое нужно записать в полеtarget
. Значение может быть абсолютным либо может содержать один или несколько атрибутов службы каталогов (в этом случае они указываются в фигурных скобках, например:“BOOCO\{sAMAccountName}”
). Еслиvalue
отсутствует или пустое, то берется значение атрибутаsource
;type
— тип значения:string
(по умолчанию),array
,object
. Если типobject
, то в качестве имени поля используется имя атрибута —source
, а в качестве значения — его значение;action
— действие, которое применяется в правиле:set
(по умолчанию) — устанавливает значение в полеsource
;add
— устанавливает или добавляет значение в полеtarget
;skip
— указывает, что нужно пропустить данную учетную запись в службе каталогов.
Правила выполняются в порядке их следования.
Пример использования правил:
[
/* Установить роль user всем пользователям */
{ "source": "name", "target": "profile.roles", "value": "user", "type": "array" },
/* Добавить роль admin всем пользователям из отдела, имя которого содержит IT*/
{ "source": "department", "target": "profile.roles", "match": "IT", "value": "admin", "action": "add" }
/* Синхронизировать департамент */
{ "source": "department", "target": "profile.department" },
/* Синхронизировать должность */
{ "source": "title", "target": "profile.title" },
/* Установить имя пользователя в профиле */
{ "source": "cn", "target": "profile.fullname", "match": "/^.+$/" },
/* Установить имя пользователя в профиле (переписывает предыдущее значение) */
{ "source": "name", "target": "profile.fullname", "match": "/^.+$/" },
/* Установить email, если mail не пустой */
{ "source": "mail", "target": "email", "match": "/^.+$/" },
/* Установить email, если email не пустой (переписывает предыдущее значение) */
{ "source": "email", "target": "email", "match": "/^.+$/" },
/* Установить login пользователя = userPrincipalName (если не пустой) */
{ "source": "userPrincipalName", "target": "username", "match": "/^.+$/" },
/* Установить login пользователя = BOOCO\\{sAMAccountName (переписывает предыдущее значение) */
{ "source": "sAMAccountName", "target": "username", "value": "BOOCO\\{sAMAccountName}" },
/* Синхронизировать мобильный телефон */
{ "source": "mobile", "target": "profile.mobile" },
/* Синхронизировать рабочий телефон */
{ "source": "telephoneNumber", "target": "profile.phone" },
/* Синхронизировать фотографию пользователя (сильно увеличивает время синхронизации!!!) */
{ "source": "thumbnailPhoto", "target": "profile.photo" },
/* Добавляет название департамента в коллекцию departments */
{ "source": "department", "target": "name", "collection": "departments", "match": "/^.+$/" },
/* Пропустить, если поле email пустое */
{ "source": "email", "match": "/^$/", "action": "skip" }
];