Настройка 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.