Kerberos
Эта страница не относится к ClickHouse Cloud. Описанная здесь функция недоступна в услугах ClickHouse Cloud. См. руководство ClickHouse Совместимость с ClickHouse Cloud для получения дополнительной информации.
Существующие и корректно настроенные пользователи ClickHouse могут аутентифицироваться через протокол Kerberos.
В настоящее время Kerberos может использоваться только как внешний механизм аутентификации для существующих пользователей, которые определены в users.xml или в локальных путях управления доступом. Эти пользователи могут использовать только HTTP-запросы и должны иметь возможность аутентифицироваться с использованием механизма GSS-SPNEGO.
Для этого подхода Kerberos должен быть настроен в системе и включен в конфигурации ClickHouse.
Включение Kerberos в ClickHouse
Чтобы включить Kerberos, необходимо добавить секцию kerberos в config.xml. Эта секция может содержать дополнительные параметры.
Параметры
-
principal- каноническое имя сервисного principal, которое будет использоваться при приёме контекстов безопасности.- Этот параметр является необязательным, если он опущен, будет использован principal по умолчанию.
-
realm- realm, который будет использоваться для ограничения аутентификации только запросами, у которых realm инициатора совпадает с ним.- Этот параметр является необязательным, если он опущен, дополнительная фильтрация по realm применяться не будет.
-
keytab- путь к сервисному keytab-файлу.- Этот параметр является необязательным, если он опущен, путь к сервисному keytab-файлу должен быть задан в переменной окружения
KRB5_KTNAME.
- Этот параметр является необязательным, если он опущен, путь к сервисному keytab-файлу должен быть задан в переменной окружения
Пример (добавляется в config.xml):
С указанием субъекта (principal):
С фильтром по realm:
Можно задать только один раздел kerberos. Наличие нескольких разделов kerberos приведёт к отключению аутентификации Kerberos в ClickHouse.
Разделы principal и realm не могут указываться одновременно. Наличие одновременно и principal, и realm приведёт к отключению аутентификации Kerberos в ClickHouse.
Kerberos в качестве внешнего аутентификатора для существующих пользователей
Kerberos может использоваться как метод проверки подлинности локально определённых пользователей (пользователей, определённых в users.xml или в локальных путях управления доступом). В настоящий момент только запросы через HTTP-интерфейс могут проходить аутентификацию по Kerberos (через механизм GSS-SPNEGO).
Формат имени принципала Kerberos обычно имеет следующий вид:
- primary/instance@REALM
Часть /instance может встречаться ноль или более раз. Ожидается, что primary-часть канонического имени принципала инициатора будет совпадать с именем пользователя для Kerberos-аутентификации, чтобы аутентификация прошла успешно.
Включение Kerberos в users.xml
Чтобы включить аутентификацию Kerberos для пользователя, укажите секцию kerberos вместо password или аналогичных секций в определении пользователя.
Параметры:
realm— область (realm), которая будет использоваться для ограничения аутентификации только запросами, у которых область инициатора совпадает с ней.- Этот параметр является необязательным: если он опущен, дополнительная фильтрация по области применяться не будет.
Пример (помещается в users.xml):
Обратите внимание, что аутентификация Kerberos не может использоваться одновременно с другими механизмами аутентификации. Наличие любых других разделов конфигурации, таких как password вместе с kerberos, приведёт к принудительному завершению работы ClickHouse.
Обратите внимание, что теперь, когда пользователь my_user использует kerberos, Kerberos должен быть включён в основном файле config.xml, как описано ранее.
Включение Kerberos через SQL
Когда в ClickHouse включена SQL-управляемая система контроля доступа и управления учётными записями, пользователей, аутентифицируемых через Kerberos, также можно создавать с помощью SQL-выражений.
...или без фильтрации по реалму: