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

Kerberos

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 могут быть аутентифицированы через протокол аутентификации Kerberos.

В настоящее время Kerberos может использоваться только как внешний аутентификатор для существующих пользователей, которые определены в users.xml или в локальных путях контроля доступа. Эти пользователи могут использовать только HTTP-запросы и должны быть в состоянии аутентифицироваться с использованием механизма GSS-SPNEGO.

Для этого подхода Kerberos должен быть настроен в системе и должен быть включен в конфигурации ClickHouse.

Включение Kerberos в ClickHouse

Чтобы включить Kerberos, необходимо добавить раздел kerberos в config.xml. Этот раздел может содержать дополнительные параметры.

Параметры:

  • principal - каноническое имя службы, которое будет получено и использовано при принятии контекстов безопасности.

    • Этот параметр является необязательным, если его опустить, будет использоваться имя по умолчанию.
  • realm - подмир, который будет использован для ограничения аутентификации только для тех запросов, чья подмир инициатора совпадает с ним.

    • Этот параметр является необязательным, если его опустить, дополнительная фильтрация по подмиру применяться не будет.
  • keytab - путь к файлу ключей службы.

    • Этот параметр является необязательным, если его опустить, путь к файлу ключей службы должен быть установлен в переменной окружения KRB5_KTNAME.

Пример (добавляется в config.xml):

С указанием principal:

С фильтрацией по подмиру:

примечание

Вы можете определить только один раздел kerberos. Наличие нескольких разделов kerberos заставит ClickHouse отключить аутентификацию Kerberos.

примечание

Разделы principal и realm не могут быть указаны одновременно. Наличие обоих разделов principal и realm заставит ClickHouse отключить аутентификацию Kerberos.

Kerberos как внешний аутентификатор для существующих пользователей

Kerberos может использоваться как метод проверки личности локально определенных пользователей (пользователей, определенных в users.xml или в локальных путях контроля доступа). В настоящее время только запросы по протоколу HTTP могут быть керберизованы (через механизм GSS-SPNEGO).

Формат имени принципала Kerberos обычно следует этому шаблону:

  • primary/instance@REALM

Часть /instance может встречаться ноль или более раз. Ожидается, что primary часть канонического имени принципала инициатора будет совпадать с керберизованным именем пользователя для успешной аутентификации.

Включение Kerberos в users.xml

Для включения аутентификации Kerberos для пользователя укажите раздел kerberos вместо password или аналогичных разделов в определении пользователя.

Параметры:

  • realm - подмир, который будет использован для ограничения аутентификации только для тех запросов, чья подмир инициатора совпадает с ним.
    • Этот параметр является необязательным, если его опустить, дополнительная фильтрация по подмиру применяться не будет.

Пример (добавляется в users.xml):

примечание

Обратите внимание, что аутентификация Kerberos не может использоваться вместе с каким-либо другим механизмом аутентификации. Наличие любых других разделов, таких как password, совместно с kerberos, заставит ClickHouse завершить работу.

Напоминание

Обратите внимание, что теперь, как только пользователь my_user использует kerberos, Kerberos должен быть включен в основной файл config.xml, как описано выше.

Включение Kerberos с помощью SQL

Когда Управление доступом на основе SQL и управление учетными записями включено в ClickHouse, пользователи, идентифицированные Kerberos, также могут быть созданы с использованием SQL-запросов.

...или без фильтрации по подмиру: