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