Перейти к основному содержимому

external_authorize. Установка соединения с LDAP-хранилищем

В исходном дистрибутиве установлено по умолчанию: нет.

Связанные компоненты: отсутствуют.

Схема размещения: ext.

Сведения

Разработано СУБД Pangolin.

В СУБД Pangolin реализован механизм внешней авторизации через LDAP. Существует функция roles_is_member_of, которая вызывается при составлении списка ролей, в которые входит current_user. В данную функцию добавлен хук, который получает role_id и возвращает список дополнительных Oid ролей. Эти роли также добавляются в список, формируемый функцией roles_is_member_of.

Сам хук реализован в рамках расширения external_authorize. Оно устанавливает соединение с LDAP-хранилищем, находит в нем узел, соответствующий авторизуемой роли, и загружает из него имена ролей (из атрибута, заданного в конфигурационном файле внешней авторизации). Далее эти имена ролей преобразуются в Oid и возвращаются из хука в виде списка.

Расширение external_authorize располагается в папке contrib.

Доработка​

Доработка не проводилась.

Ограничения​

Расширение позволяет централизованно сделать пользователя суперпользователем, поэтому требуется обратить на это внимание, при настройке LDAP, чтобы не выдать лишние привилегии.

Установка​

  1. Добавьте значения external_authorize в настроечный параметр shared_preload_libraries в конфигурационном файле postgresql.conf.

    shared_preload_libraries = '... , external_authorize'
  2. Добавьте параметр external_authorize.filename в postgresql.conf. В качестве значения укажите путь до файла с конфигурационным файлом внешней авторизации. Путь указывается относительно каталога $PGDATA:

    external_authorize.filename = 'external_authorize.conf'
  3. Выполните перезагрузку СУБД:

    pg_ctl reload
    pg_ctl restart

Отключение​

Для того чтобы отключить функциональность расширения, исключите расширение из параметра shared_preload_libraries, затем выполните перезагрузку СУБД (restart).

Настройка​

Конфигурационные параметры​

Имя параметраДопустимые значенияЗначение по умолчаниюУстановка параметраОписание параметра
external_authorize.filenameПуть к файлу в каталоге PGDATAexternal_authorize.confТребуется перезагрузка PangolinПуть к конфигурационному файлу внешней авторизации
external_authorize.ldap_network_timeout1-60000 мс500 мсТребуется перезагрузка PangolinТайм-аут подключения к LDAP-хранилищу
external_authorize.role_mapping_filenameПуть к файлу в каталоге PGDATAПустая строкаТребуется перезагрузка PangolinПуть к файлу с описанием сопоставления имен ролей в БД и узлов в LDAP
external_authorize.role_mappingНабор строк — содержимое конфигурационного файла сопоставления именПустая строкаВ случае защищенного конфигурирования смена параметров возможна только через сервер KMSОписание сопоставления имен ролей в БД и узлов в LDAP
external_authorize.ldap_cache_ttl1-86400 сек1800 секундТребуется перезагрузка PangolinTTL (Time To Live, время жизни) данных в кеше содержимого LDAP