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

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