Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Kerberos

Не поддерживается в ClickHouse Cloud

Существующие и корректно настроенные пользователи ClickHouse могут проходить аутентификацию с помощью протокола Kerberos.

В настоящее время Kerberos можно использовать только как внешний аутентификатор для существующих пользователей, определенных в users.xml или в локальных путях управления доступом. Эти пользователи могут использовать только HTTP-запросы и должны поддерживать аутентификацию с помощью механизма GSS-SPNEGO.

Для такого подхода Kerberos должен быть настроен в системе и включен в конфигурации ClickHouse.

Включение Kerberos в ClickHouse

Чтобы включить Kerberos, добавьте раздел kerberos в файл config.xml. Этот раздел может содержать дополнительные параметры.

Параметры

  • principal — каноническое имя субъекта сервиса, которое будет получено и использовано при приеме контекстов безопасности.

    • Этот параметр необязателен; если он не указан, будет использоваться субъект по умолчанию.
  • realm — realm, который будет использоваться для ограничения аутентификации только теми запросами, realm инициатора которых с ним совпадает.

    • Этот параметр необязателен; если он не указан, дополнительная фильтрация по realm применяться не будет.
  • keytab — путь к файлу keytab сервиса.

    • Этот параметр необязателен; если он не указан, путь к файлу keytab сервиса должен быть задан в переменной окружения KRB5_KTNAME.

Пример (добавляется в config.xml):

<clickhouse>
    <!- ... -->
    <kerberos />
</clickhouse>

С указанием субъекта:

<clickhouse>
    <!- ... -->
    <kerberos>
        <principal>HTTP/clickhouse.example.com@EXAMPLE.COM</principal>
    </kerberos>
</clickhouse>

При фильтрации по realm:

<clickhouse>
    <!- ... -->
    <kerberos>
        <realm>EXAMPLE.COM</realm>
    </kerberos>
</clickhouse>

Kerberos как внешний аутентификатор для существующих пользователей

Kerberos можно использовать как способ проверки подлинности локально определённых пользователей (пользователей, определённых в users.xml или в локальных путях управления доступом). В настоящее время только запросы через HTTP-интерфейс могут быть керберизованы (с использованием механизма GSS-SPNEGO).

Формат имени субъекта Kerberos обычно выглядит так:

  • primary/instance@REALM

Часть /instance может встречаться ноль или более раз. Чтобы аутентификация прошла успешно, ожидается, что часть primary в каноническом имени субъекта инициатора будет совпадать с именем керберизованного пользователя.

Включение Kerberos в users.xml

Чтобы включить аутентификацию Kerberos для пользователя, укажите в определении пользователя секцию kerberos вместо password или аналогичных секций.

Параметры:

  • realm — realm, который используется для ограничения аутентификации только теми запросами, у которых realm инициатора совпадает с ним.
    • Этот параметр необязателен; если его не указать, дополнительная фильтрация по realm применяться не будет.

Пример (добавляется в users.xml):

<clickhouse>
    <!- ... -->
    <users>
        <!- ... -->
        <my_user>
            <!- ... -->
            <kerberos>
                <realm>EXAMPLE.COM</realm>
            </kerberos>
        </my_user>
    </users>
</clickhouse>

Включение Kerberos с помощью SQL

Когда в ClickHouse включена система управления доступом и учётными записями через SQL, пользователей, идентифицируемых с помощью Kerberos, также можно создавать с помощью команд SQL.

CREATE USER my_user IDENTIFIED WITH kerberos REALM 'EXAMPLE.COM'

…или без фильтрации по realm:

CREATE USER my_user IDENTIFIED WITH kerberos
Navigation