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

Настройка 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.