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