Kerberos
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-запросов.
...или без фильтрации по подмиру: