Перейти к основному содержимому
Перейти к основному содержимому

Настройка ClickHouse для использования LDAP для аутентификации и сопоставления ролей

Not supported in ClickHouse Cloud
примечание

Эта страница не применяется к ClickHouse Cloud. Функция, описанная здесь, недоступна в сервисах ClickHouse Cloud. Смотрите руководство по Cloud Compatibility для получения дополнительной информации.

ClickHouse может быть настроен для использования LDAP для аутентификации пользователей базы данных ClickHouse. Этот документ предоставляет простой пример интеграции ClickHouse с системами LDAP, аутентифицирующими в общедоступном каталоге.

1. Настройка параметров подключения LDAP в ClickHouse

  1. Проверьте ваше соединение с этим публичным LDAP сервером:

    Ответ будет выглядеть примерно так:

  2. Отредактируйте файл 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использовать ли защищенный ldapno
    tls_require_certтребуется ли сертификат для подключенияnever
    примечание

    В этом примере, так как публичный сервер использует 389 и не использует защищенный порт, мы отключаем TLS для демонстрационных целей.

    примечание

    Посмотрите страницу документации LDAP для получения дополнительных сведений о настройках LDAP.

  3. Добавьте секцию <ldap> в секцию <user_directories>, чтобы настроить сопоставление ролей пользователей. Эта секция определяет, когда пользователь аутентифицирован и какую роль получит пользователь. В этом базовом примере любой пользователь, аутентифицирующийся через LDAP, получит роль scientists_role, которая будет определена на более позднем этапе в ClickHouse. Секция должна выглядеть примерно так:

    Это основные настройки, использованные выше:

    ПараметрОписаниеПример
    serverметка, определенная в предыдущем разделе ldap_serverstest_ldap_server
    rolesимена ролей, определенных в ClickHouse, к которым будут сопоставлены пользователиscientists_role
    base_dnбазовый путь для начала поиска групп с пользователемdc=example,dc=com
    search_filterldap-фильтр поиска для идентификации групп, которые нужно выбрать для сопоставления пользователей(&(objectClass=groupOfUniqueNames)(uniqueMember={bind_dn}))
    attributeкакое имя атрибута должно быть возвращеноcn
  4. Перезапустите ваш сервер ClickHouse, чтобы применить настройки.

2. Настройка ролей и разрешений базы данных ClickHouse

примечание

Процедуры в этом разделе предполагают, что контроль доступа SQL и управление учетными записями в ClickHouse были включены. Чтобы включить, посмотрите руководство по SQL пользователям и ролям.

  1. Создайте роль в ClickHouse с тем же именем, которое используется в разделе сопоставления ролей файла config.xml:

  2. Предоставьте необходимые привилегии роли. Следующее утверждение предоставляет привилегии администратора любому пользователю, способному аутентифицироваться через LDAP:

3. Тестирование конфигурации LDAP

  1. Войдите с помощью клиента ClickHouse:

    примечание

    Используйте команду ldapsearch на шаге 1, чтобы просмотреть всех пользователей, доступных в каталоге, и для всех пользователей пароль - password

  2. Проверьте, что пользователю было сопоставлено правильное значение роли scientists_role и что у него есть административные разрешения:

Резюме

В этой статье были продемонстрированы основы настройки ClickHouse для аутентификации на LDAP сервере и сопоставления с ролью. Также есть варианты настройки отдельных пользователей в ClickHouse, но при этом аутентифицировать этих пользователей по LDAP без конфигурации автоматического сопоставления ролей. Модуль LDAP также может быть использован для подключения к Active Directory.