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

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

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

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. Этот гайд предоставляет простой пример интеграции 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.