Сервер BOOCO Meteor (v 1.x) / Настройка работы со службами каталогов
Настройка работы со службами каталогов
Настройка работы с LDAP/Active Directory
Настройка работы со службой каталогов Google
Настройка работы со службой авторизации SAML
◼ Настройка правил синхронизации служб каталогов
В последних версиях появилась возможность гибко настраивать правила синхронизации служб каталогов. В пользовательском интерфейсе эта функция отсутствует.
Для настройки правил синхронизации служб каталогов нужно:
Экспорт и импорт триггеров с помощью файла в формате 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" }
];