Kerberos
Эта страница не применима к 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):
С указанием принципала:
С фильтрацией по области:
Вы можете определить только одну секцию kerberos. Присутствие нескольких секций kerberos заставит ClickHouse отключить аутентификацию Kerberos.
Секции principal и realm не могут быть указаны одновременно. Присутствие обеих секций principal и realm заставит ClickHouse отключить аутентификацию Kerberos.
Kerberos как внешний аутентификатор для существующих пользователей
Kerberos может быть использован как метод для проверки идентичности локально определенных пользователей (пользователей, определенных в users.xml или в локальных путях контроля доступа). В настоящее время только запросы через HTTP интерфейс могут быть kerberized (через механизм GSS-SPNEGO).
Формат имени принципала Kerberos обычно следует следующему шаблону:
- primary/instance@REALM
Часть /instance может возникать ноль или более раз. Ожидается, что primary часть канонического имени принципала инициатора совпадает с именем пользователя Kerberos для успешной аутентификации.
Включение 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-запросов.
...или без фильтрации по области: