Kerberos 

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

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

Настройка Kerberos в ClickHouse 

Для того, чтобы задействовать Kerberos-аутентификацию в ClickHouse, в первую очередь необходимо добавить одну-единственную секцию kerberos в config.xml.

В секции могут быть указаны дополнительные параметры:

  • principal — задаёт имя принципала (canonical service principal name, SPN), используемое при авторизации ClickHouse на Kerberos-сервере.
  • Это опциональный параметр, при его отсутствии будет использовано стандартное имя.

  • realm — обеспечивает фильтрацию по реалм (realm). Пользователям, чей реалм не совпадает с указанным, будет отказано в аутентификации.

  • Это опциональный параметр, при его отсутствии фильтр по реалм применяться не будет.

Примеры, как должен выглядеть файл config.xml:

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

Или, с указанием принципала:

<clickhouse>
    <!- ... -->
    <kerberos>
        <principal>HTTP/[email protected]</principal>
    </kerberos>
</clickhouse>

Или, с фильтрацией по реалм:

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

Аутентификация пользователей с помощью Kerberos 

Уже существующие пользователи могут воспользоваться аутентификацией с помощью Kerberos. Однако, Kerberos-аутентификация возможна только при использовании HTTP-интерфейса.

Имя принципала (principal name) обычно имеет вид:

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

Настройка Kerberos в users.xml 

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

В секции могут быть указаны дополнительные параметры:

  • realm — обеспечивает фильтрацию по реалм (realm): аутентификация будет возможна только при совпадении реалм клиента с указанным.
  • Этот параметр является опциональным, при его отсутствии фильтрация применяться не будет.

Пример, как выглядит конфигурация Kerberos в users.xml:

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

Настройка Kerberos через SQL 

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

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

Или, без фильтрации по реалм:

CREATE USER my_user IDENTIFIED WITH kerberos

Rating: 5 - 1 votes

Was this content helpful?
★★★★★