Настройка 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 | нет |
tls_require_cert | требовать ли сертификат для соединения | никогда |
В этом примере, поскольку публичный сервер использует 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.