Аутентификация LDAP в ADB
В ADB, как и в Greenplum, поддерживается аутентификация пользователей с использованием протокола LDAP (Lightweight Directory Access Protocol). При использовании LDAP-аутентификации проверка учетных записей пользователей и их паролей выполняется на выбранном LDAP-сервере. Порядок настройки LDAP-аутентификации в ADB с помощью ADCM описан ниже.
ПРИМЕЧАНИЕ
Возможность настройки параметров для LDAP-подключения через ADCM доступна в ADB 6 начиная с версии 6.25.1.49. В этой же версии реализована автоматическая синхронизация пользователей и групп ADB с LDAP — с помощью утилиты pg-ldap-sync, поставляемой в бандле ADB. В более ранних версиях ADB настройка LDAP-аутентификации была возможна, однако действия, описанные ниже в разделе Синхронизация ADB и LDAP (обновление файла pg_hba.conf и создание всех необходимых ролей в ADB), требовалось выполнять вручную.
|
Настройка LDAP-аутентификации
Для настройки LDAP-аутентификации в кластере ADB выполните следующие шаги:
-
Убедитесь, что LDAP-сервер настроен и доступен. ADB поддерживает две реализации протокола LDAP: Microsoft Active Directory (MS AD) и 389 Directory server в составе FreeIPA.
-
Откройте конфигурационную страницу сервиса ADB в ADCM.
-
Переведите переключатель UI LDAP authentication в активное состояние.
-
Поле Описание По умолчанию Пример в MS AD Type
Тип LDAP-сервера. Возможные значения:
-
MSAD
— Microsoft Active Directory; -
FreeIPA
— 389 Directory server в составе FreeIPA.
MSAD
MSAD
URI
URI для подключения к LDAP-серверу в формате
<хост>:<порт>
—
10.92.12.49:389
Users baseDN
Ограничение на область поиска объектов в каталоге LDAP, применяемое в запросах на поиск пользователей
—
ou=Peoples,dc=ad,dc=ranger-test
Groups baseDN
Ограничение на область поиска объектов в каталоге LDAP, применяемое в запросах на поиск групп пользователей
—
ou=Groups,dc=ad,dc=ranger-test
Users filter
LDAP-фильтр, используемый для поиска пользователей. Заполняется в соответствии с RFC 2254
(&(|(objectClass=person)(objectClass=inetOrgPerson))(cn=*))
(&(objectClass=person)(objectClass=organizationalPerson)(givenName=*)(sn=*)(sAMAccountName=*))
Groups filter
LDAP-фильтр, используемый для поиска групп пользователей. Заполняется в соответствии с RFC 2254
(&(|(objectClass=group)(objectClass=groupofnames)(objectClass=groupOfUniqueNames))(cn=*))
(cn=*)
SA Login
Имя пользователя, используемое в сервисных запросах к LDAP-серверу
—
cn=admin,dc=ad,dc=ranger-test
Password
Пароль пользователя, используемый в сервисных запросах к LDAP-серверу
—
Пароль пользователя
admin
Lowercase login
Необходимо ли преобразование имен пользователей в нижний регистр
false
false
Lowercase group
Необходимо ли преобразование имен групп в нижний регистр
false
false
Sync interval
Cron-выражение, описывающее периодичность синхронизации пользователей и групп в ADB на основе данных LDAP-сервера. Для синхронизации используется утилита pg-ldap-sync, поставляемая в бандле ADB
0 * * * *
0 * * * *
ПРИМЕЧАНИЕРазличные реализации LDAP используют разные имена для типов и идентификаторов объектов. Формат параметров для конкретной реализации LDAP рекомендуется уточнять у администратора LDAP-сервера.
-
-
Нажмите Save. Примените действие Reconfigure к сервису ADB.
Настройка LDAP-аутентификации для ADB в ADCM
Синхронизация ADB и LDAP
Если LDAP-аутентификация настроена успешно, в ADB автоматически выполняются следующие действия:
-
Обновление файла pg_hba.conf. В файл pg_hba.conf, расположенный в data-директории master-хоста (в нашем примере /data1/master/gpseg-1/), добавляется новая запись об LDAP-аутентификации следующего вида:
# BEGIN LDAP host all +ldap_users 0.0.0.0/0 ldap ldapserver=<URI> ldapbasedn="<Users baseDN>" ldapbinddn="<SA Login>" ldapbindpasswd="<Password>" ldapsearchattribute="<attribute>" # END LDAP
где:
-
ldap_users
— имя роли в ADB, в которую будут добавлены все полученные со стороны LDAP пользователи. -
<URI>
,<Users baseDN>
,<SA Login>
,<Password>
— значения одноименных параметров сервиса ADB. -
<attribute>
— атрибут LDAP, значение которого будет использовано в качестве имени каждой роли в ADB при синхронизации пользователей. Принимает одно из следующих значений:-
sAMAccountName
— для MS AD. -
uid
— для FreeIPA.
-
-
-
Синхронизация пользователей и групп ADB с LDAP. В базу данных ADB добавляется информация о группах и пользователях, заведенных на LDAP-сервере (и удовлетворяющих критериям отбора, указанным на этапе конфигурации). Синхронизация выполняется путем вызова утилиты pg-ldap-sync. Чтобы убедиться в успешной синхронизации, можно выполнить запрос к системной таблице
pg_roles
:SELECT rolname FROM pg_roles;
Как показывает вывод команды, в ADB автоматически созданы следующие роли в результате синхронизации с LDAP:
-
ldap_users
— роль, в которую добавляются все LDAP-пользователи (путем автоматического вызова командыCREATE ROLE … LOGIN IN ROLE ldap_users …
). -
ldap_groups
— роль, в которую добавляются все LDAP-группы (путем автоматического вызова командыCREATE ROLE … NOLOGIN IN ROLE ldap_groups …
). -
ffedorov
,ppetrov
,ssemenov
,zeptest
— конкретные пользователи, полученные со стороны LDAP и добавленные в рольldap_users
. -
ADCM
,ADH
,Adccadmins
,Analysts
,Managers
— конкретные группы пользователей, полученные со стороны LDAP и добавленные в рольldap_groups
. Членство пользователей в этих группах устанавливается путем автоматического вызова командыGRANT
.
rolname ------------- gpadmin gpmon ldap_users ldap_groups ADCM ADH Adccadmins Analysts Managers ffedorov ppetrov ssemenov zeptest (13 rows)
-
Проверка LDAP-аутентификации
Для того чтобы проверить возможность подключения к ADB после настройки LDAP-аутентификации, можно воспользоваться клиентом psql, указав в качестве аргумента -U
имя одного из пользователей, заведенных на стороне LDAP (в нашем примере — ffedorov
).
$ psql adb -h bds-mdw -U "ffedorov"
Если настройка LDAP-аутентификации выполнена успешно, на экране появится приглашение для ввода пароля пользователя. После ввода корректного пароля (назначенного на стороне LDAP-сервера) пользователю открывается доступ к работе с БД.
Password for user ffedorov: psql (9.4.26) Type "help" for help. adb=>