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