Настройка ClickHouse для использования LDAP для аутентификации и сопоставления ролей
Эта страница не применяется к ClickHouse Cloud. Функция, описанная здесь, недоступна в сервисах ClickHouse Cloud. Смотрите руководство по Cloud Compatibility для получения дополнительной информации.
ClickHouse может быть настроен для использования LDAP для аутентификации пользователей базы данных ClickHouse. Этот документ предоставляет простой пример интеграции ClickHouse с системами LDAP, аутентифицирующими в общедоступном каталоге.
1. Настройка параметров подключения LDAP в ClickHouse
-
Проверьте ваше соединение с этим публичным LDAP сервером:
Ответ будет выглядеть примерно так:
-
Отредактируйте файл
config.xml
и добавьте следующее для настройки LDAP:примечаниеТеги
<test_ldap_server>
являются произвольной меткой для идентификации конкретного LDAP сервера.Это основные настройки, использованные выше:
Параметр Описание Пример host имя хоста или IP-адрес LDAP сервера ldap.forumsys.com port порт каталога для LDAP сервера 389 bind_dn шаблонный путь к пользователям uid={user_name},dc=example,dc=com
enable_tls использовать ли защищенный ldap no tls_require_cert требуется ли сертификат для подключения never примечаниеВ этом примере, так как публичный сервер использует 389 и не использует защищенный порт, мы отключаем TLS для демонстрационных целей.
примечаниеПосмотрите страницу документации LDAP для получения дополнительных сведений о настройках LDAP.
-
Добавьте секцию
<ldap>
в секцию<user_directories>
, чтобы настроить сопоставление ролей пользователей. Эта секция определяет, когда пользователь аутентифицирован и какую роль получит пользователь. В этом базовом примере любой пользователь, аутентифицирующийся через LDAP, получит рольscientists_role
, которая будет определена на более позднем этапе в ClickHouse. Секция должна выглядеть примерно так:Это основные настройки, использованные выше:
Параметр Описание Пример server метка, определенная в предыдущем разделе ldap_servers test_ldap_server roles имена ролей, определенных в ClickHouse, к которым будут сопоставлены пользователи scientists_role base_dn базовый путь для начала поиска групп с пользователем dc=example,dc=com search_filter ldap-фильтр поиска для идентификации групп, которые нужно выбрать для сопоставления пользователей (&(objectClass=groupOfUniqueNames)(uniqueMember={bind_dn}))
attribute какое имя атрибута должно быть возвращено cn -
Перезапустите ваш сервер ClickHouse, чтобы применить настройки.
2. Настройка ролей и разрешений базы данных ClickHouse
Процедуры в этом разделе предполагают, что контроль доступа SQL и управление учетными записями в ClickHouse были включены. Чтобы включить, посмотрите руководство по SQL пользователям и ролям.
-
Создайте роль в ClickHouse с тем же именем, которое используется в разделе сопоставления ролей файла
config.xml
: -
Предоставьте необходимые привилегии роли. Следующее утверждение предоставляет привилегии администратора любому пользователю, способному аутентифицироваться через LDAP:
3. Тестирование конфигурации LDAP
-
Войдите с помощью клиента ClickHouse:
примечаниеИспользуйте команду
ldapsearch
на шаге 1, чтобы просмотреть всех пользователей, доступных в каталоге, и для всех пользователей пароль -password
-
Проверьте, что пользователю было сопоставлено правильное значение роли
scientists_role
и что у него есть административные разрешения:
Резюме
В этой статье были продемонстрированы основы настройки ClickHouse для аутентификации на LDAP сервере и сопоставления с ролью. Также есть варианты настройки отдельных пользователей в ClickHouse, но при этом аутентифицировать этих пользователей по LDAP без конфигурации автоматического сопоставления ролей. Модуль LDAP также может быть использован для подключения к Active Directory.