Argus¶
В данном разделе приведены сведения о Argus, плагине для СУБД Picodata.
Picodata Enterprise
Функциональность плагина доступна только в коммерческой версии Picodata.
Общие сведения¶
Плагин Argus используется для синхронизации учетных данных между сервером LDAP и Picodata. Синхронизация происходит однонаправленно и позволяет импортировать данные пользователей и групп с сервера LDAP в Picodata, для которой перед этим была настроена авторизация с помощью LDAP.
Состав плагина¶
Внутри архива с плагином находится структура вложенных директорий, включающая имя и версию плагина, а также его файлы:
└── argus
└── 1.0.0
├── libargus.so
├── manifest.yaml
└── migrations
Основная логика плагина обеспечивается разделяемой библиотекой
libargus.so
. Исходная конфигурация плагина задается в файле манифеста
(manifest.yaml
). Директория migrations
зарезервирована для файлов
миграций.
Предварительные настройки в Picodata¶
Перед использованием плагина Argus убедитесь, что на стороне Picodata:
- созданы роли (соответствующие группам пользователей в каталоге LDAP), и ролям выданы нужные привилегии
- настроено подключение к серверу LDAP
Подключение плагина¶
Содержимое архива с плагином следует распаковать в любую удобную
директорию, которую после этого нужно будет указать как PLUGIN_DIR
для
инстанса Picodata.
При запуске одного инстанса из командной строки директорию плагина можно указать с помощью параметра:
picodata run --plugin-dir=<PLUGIN-DIR> ...
Однако, для полноценной использования плагина рекомендуется запустить кластер с помощью роли Ansible.
После запуска Picodata с поддержкой плагинов в заданной директории подключитесь к административной консоли инстанса Picodata.
Установите плагин, добавьте его к тиру и включите его с помощью следующих SQL-команд:
CREATE PLUGIN argus 1.0.0;
ALTER PLUGIN argus 1.0.0 ADD SERVICE argus TO TIER default;
ALTER PLUGIN argus 1.0.0 ENABLE;
Для диагностики работы плагина обратитесь к отладочному журналу инстанса Picodata.
Конфигурация плагина¶
Исходная конфигурация плагина задается в файле manifest.yaml
.
Впоследствии конфигурацию можно менять, редактируя отдельный YAML-файл,
который имеет следующую структуру:
interval_sec`: # Как часто опрашивать LDAP на предмет пользователей и ролей. Число, в секундах
ldap: # Настройки подключения к LDAP:
bind_dn: # Имя пользователя, под которой Argus будет подключаться к вашему LDAP-серверу
bind_password: # Пароль этого пользователя
url: # Ссылка на LDAP-сервер
disabled_attr: # Название атрибута, который вы используете для отключения, но не удаления пользователей. Если значение этого атрибута у пользователя `true`, Argus отключит его и в Picodata
tries: # Число попыток подключения к LDAP-серверу. Для маленьких интервалов рекомендуем оставить `1`
searches: # Поисковые запросы и их соответствие ролям:
role: # Название роли в Picodata, которая синхронизируется данным запросом
base: # База поиска (объект вашего LDAP-каталога, с которого начнется поиск)
filter: # Фильтр для поиска
attr: # Атрибут, в котором находится имя пользователя, которое будет использоваться в Picodata
Укажите путь к файлу конфигурации в инвентарном файле роли Ansible.
Для изменения конфигурации уже добавленного и запущенного плагина
предпочтительно использовать Ansible (перезапуск плейбука применит
изменения в конфигурационном файле), однако можно использовать и
непосредственно SQL-команды вида ALTER PLUGIN argus 1.0.0 SET
argus.ldap = ...
. Пример:
ALTER PLUGIN argus 1.0.0 SET argus.ldap = '{"bind_dn":"cn=admin,dc=example,dc=org","bind_password":"admin","url":"ldap://localhost:389","disabled_attr":"employeeType","tries":1,"searches":[{"role":"reader","base":"dc=example,dc=org","filter":"(&(objectClass=inetOrgPerson)(businessCategory=reader))","attr":"cn"},{"role":"writer","base":"dc=example,dc=org","filter":"(&(objectClass=inetOrgPerson)(businessCategory=writer))","attr":"cn"},{"role":"nothing","base":"dc=example,dc=org","filter":"(&(objectClass=inetOrgPerson)(businessCategory=nothing))","attr":"cn"}]}'
См. также: