Настройка 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 с системой LDAP, которая аутентифицирует пользователей по общедоступному каталогу.
1. Настройка параметров подключения LDAP в ClickHouse
-
Протестируйте подключение к этому публичному серверу LDAP:
Ответ будет примерно таким:
-
Отредактируйте файл
config.xmlи добавьте следующее для настройки LDAP:ПримечаниеТег
<test_ldap_server>— это произвольная метка для идентификации конкретного сервера LDAP.Ниже перечислены основные параметры, используемые выше:
Parameter Description Example host имя хоста или IP сервера LDAP ldap.forumsys.com port порт каталога для сервера LDAP 389 bind_dn шаблон пути к пользователям uid={user_name},dc=example,dc=comenable_tls использовать ли защищённый LDAP no tls_require_cert требовать ли сертификат для подключения never ПримечаниеВ этом примере, поскольку публичный сервер использует порт 389 и не использует защищённый порт, мы отключаем TLS в демонстрационных целях.
ПримечаниеДополнительные сведения о параметрах LDAP см. на странице документации LDAP.
-
Добавьте раздел
<ldap>в раздел<user_directories>для настройки сопоставления ролей пользователей. Этот раздел определяет, когда пользователь аутентифицирован и какую роль он получит. В этом базовом примере любой пользователь, аутентифицирующийся в LDAP, получит рольscientists_role, которая будет определена на следующем шаге в ClickHouse. Раздел должен выглядеть примерно так:Ниже перечислены основные параметры, используемые выше:
Parameter Description Example 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
В этом разделе предполагается, что в ClickHouse включены управление доступом на уровне SQL и управление учётными записями (SQL Access Control and Account Management). Инструкции по включению см. в руководстве SQL Users and Roles.
-
Создайте роль в ClickHouse с тем же именем, которое использовалось в разделе сопоставления ролей в файле
config.xml: -
Назначьте необходимые привилегии этой роли. Следующий оператор назначает административные привилегии любому пользователю, который может пройти аутентификацию через LDAP:
3. Тестирование конфигурации LDAP
-
Войдите в систему с помощью клиента ClickHouse
ПримечаниеИспользуйте команду
ldapsearchна шаге 1, чтобы просмотреть всех пользователей, доступных в каталоге. Для всех этих пользователей пароль —password. -
Проверьте, что пользователь был корректно сопоставлен с ролью
scientists_roleи имеет права администратора
Итоги
В этой статье были продемонстрированы основы настройки ClickHouse для аутентификации через LDAP-сервер, а также для привязки к роли. Также доступны варианты настройки отдельных пользователей в ClickHouse, при этом аутентифицируя этих пользователей через LDAP без настройки автоматического сопоставления ролей. Модуль LDAP также можно использовать для подключения к Active Directory.