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

Kerberos

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

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

Существующие и правильно настроенные пользователи 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-интерфейс могут быть kerberized (через механизм GSS-SPNEGO).

Формат имени службы Kerberos обычно следует следующему шаблону:

  • primary/instance@REALM

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

Включение 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-заявлений.

...или, без фильтрации по области: