С помощью интеграции вы можете синхронизировать пользователей между LDAP и BILLmanager, чтобы при авторизации пользователя в BILLmanager введённые данные проходили проверку на стороне LDAP.
В BILLmanager импортируются новые клиенты и проверяется состояние существующих. Если пользователь блокируется в LDAP, после синхронизации он будет заблокирован и в BILLmanager.
Пользователи LDAP могут быть импортированы как сотрудники с полными правами, либо как клиенты. Интеграция поддерживает гибкую настройку ролей и прав доступа.
Поддерживаются только реализации Free IPA и Active Directory.
Интеграция с ALD Pro доступна через тип подключения FreeIPA.
Установка модуля
Чтобы установить модуль, перейдите в раздел Интеграция → Модули → LDAP → кнопка Установить.
Настройки подключения
Чтобы настроить синхронизацию с LDAP, перейдите в раздел Интеграция → Синхронизация с LDAP:
- Провайдер — выберите провайдера;
- Название подключения — укажите название подключения;
- Тип подключения — выберите реализацию LDAP
- FreeIPA;
- ActiveDirectory.
- Адрес сервера — укажите путь до сервера LDAP;
- Порт сервера — укажите порт для подключения к серверу LDAP;
- Игнорировать SSL — активируйте опцию, чтобы не проверять наличие и валидность SSL-сертификата;
- Путь до сертификата — укажите путь до файла публичного сертификата центра сертификации (CA certificate) на сервере. Обычно указывается для cамозаверенных сертификатов или сертификатов, которые не установлены на сервере;
- Base DN (Distinguished Name (имя основного домена)) — укажите объект каталога, начиная с которого производится поиск;
- Bind DN (Distinguished Name) — укажите пользователя в LDAP, от имени которого будут происходить запросы в LDAP;
- Пароль — введите пароль пользователя для подключения к серверу LDAP.

Настройка синхронизации
Синхронизация сотрудников
Чтобы импортировать пользователей LDAP как сотрудников, настройте:
- Путь к пользователям — укажите путь к пользователям, которых необходимо импортировать как сотрудников. Для записи используйте синтаксис строк подключения ADSI;
- Область поиска — укажите область поиска относительно пути к пользователям:
- one — поиск по дочерним записям на один уровень ниже;
- sub — поиск по всем дочерним записям на всю глубину иерархии, включая запись, на которую указывает путь к пользователям;
- children — поиск аналогично sub, но без учета записи, на которую указывает путь к пользователям;
- base — поиск только по записи, на которую указывает путь к пользователям;
- Фильтр для импорта пользователей — используется в запросах к LDAP-серверу при запросе списка пользователей. Если пользоваттель соответствует критериям фильтра, ему будет назначена соответствующая роль. Одному пользователю могут быть назначены несколько ролей. Чтобы добавить фильтр по группе пользователей, используйте конструкцию (memberOf=). Например, если путь к пользователям — cn=admins,cn=groups,cn=accounts,dc=example,dc=com, укажите фильтр (memberOf=cn=admins,cn=groups,cn=accounts,dc=example,dc=com).
- Роли сотрудников — выберите одну или несколько ролей для сотрудников, соответствующих критериям фильтра. Например, "Сотрудник техподдержки" и "Сотрудник бухгалтерии". Подробнее о том, как настроить роли, см. статью Настройка ролей пользователей

Синхронизация клиентов
Группы LDAP, полученные по указанным настройкам, будут импортированы как "Клиенты". Пользователи LDAP, которые состоят в этих группах, будут импортированы как пользователи "Клиента".
- Путь к группам — укажите путь к группам, которые необходимо импортировать как клиентов. Для записи используйте синтаксис строк подключения ADSI;
- Область поиска — укажите область поиска относительно пути к пользователям:
- one — поиск по дочерним записям на один уровень ниже;
- sub — поиск по всем дочерним записям на всю глубину иерархии, включая запись, на которую указывает путь к пользователям;
- children — поиск аналогично sub, но без учета записи, на которую указывает путь к пользователям;
- base — поиск только по записи, на которую указывает путь к пользователям;
- Фильтр для импорта групп — используется в запросах к LDAP-серверу при запросе списка групп;
- Атрибут наименования клиента — укажите имя атрибута на вашем LDAP-сервере, в котором хранится название группы. Например, CN;
- Фильтр для определения принадлежности к группе — используется в запросах к LDAP-серверу при определении принадлежности пользователя к группе, если пользователь подходит под условия фильтра, он будет импортирован как пользователь клиента. В фильтре можно указать макрос __group_dn__ — при выполнении запроса макрос будет заменен на dn группы, полученной по данным, которые указаны выше;
- Фильтр для импорта пользователей группы — используется в запросах к LDAP-серверу при запросе пользователей группы, которая импортируется как клиент.
- Роли пользователей — выберите одну или несколько ролей для пользователей, соответствующих критериям фильтра и укажите Фильтр для назначения роли. Например, "Куратор контента", "Аналитик данных", или "Разработчик". Подробнее о том, как настроить роли, см. статью Настройка ролей пользователей

Настройки атрибутов пользователя
Укажите соответствия атрибутов пользователей LDAP и параметров пользователей BILLmanager:
- Атрибут логина — имя атрибута на LDAP-сервере, в котором хранится логин пользователя, например, uid;
- Атрибут E-mail — имя атрибута на LDAP-сервере, в котором хранится email пользователя. Например, mail;
- Атрибут ФИО — имя атрибута на LDAP-сервере, в котором хранится полное имя пользователя. Например, CN;
- Атрибут блокировки — имя атрибута на LDAP-сервере, который отвечает за блокировку пользователя.

Удаление
Чтобы удалить синхронизацию с LDAP, перейдите в раздел Интеграция → Синхронизация с LDAP → выберите в списке подключение → кнопка Удалить.
Удаление интеграции с LDAP не затрагивает синхронизированных пользователей.
Синхронизация
Синхронизация запускается раз в день с помощью задания cron:
0 0 * * * /usr/local/mgr5/sbin/mgrctl -m billmgr crontask action=ldap.sync sok=ok sok=ok >/dev/null 2>&1
Чтобы запустить синхронизацию вручную, нажмите в списке подключений кнопку Синхронизация.