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