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