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

Kerberos

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

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

Существующие и правильно настроенные пользователи 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-запросов.

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