Конфигурирование ClickHouse для использования LDAP для аутентификации и сопоставления ролей
Эта страница не применима к ClickHouse Cloud. Функция, описанная здесь, недоступна в сервисах ClickHouse Cloud. Смотрите руководство по совместимости с Cloud для получения дополнительной информации.
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.