Конфигурирование ClickHouse для использования LDAP для аутентификации и сопоставления ролей
This page is not applicable to ClickHouse Cloud. The feature documented here is not available in ClickHouse Cloud services. See the ClickHouse Cloud Compatibility guide for more information.
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.