Перейти к основному содержимому
Перейти к основному содержимому

HTTP

Not supported in ClickHouse Cloud
примечание

This page is not applicable to ClickHouse Cloud. The feature documented here is not available in ClickHouse Cloud services. See the ClickHouse Cloud Compatibility guide for more information.

HTTP сервер может использоваться для аутентификации пользователей ClickHouse. Аутентификация HTTP может использоваться только в качестве внешнего аутентификатора для существующих пользователей, которые определены в users.xml или в местных путях контроля доступа. В настоящее время поддерживается схема аутентификации Basic с использованием метода GET.

Определение сервера аутентификации HTTP

Чтобы определить сервер аутентификации HTTP, необходимо добавить секцию http_authentication_servers в файл config.xml.

Пример

Обратите внимание, что вы можете определить несколько HTTP серверов внутри секции http_authentication_servers, используя разные имена.

Параметры

  • uri - URI для выполнения запроса аутентификации

Таймауты в миллисекундах на сокете, используемом для связи с сервером:

  • connection_timeout_ms - По умолчанию: 1000 мс.
  • receive_timeout_ms - По умолчанию: 1000 мс.
  • send_timeout_ms - По умолчанию: 1000 мс.

Параметры повторных попыток:

  • max_tries - Максимальное количество попыток выполнения запроса аутентификации. По умолчанию: 3
  • retry_initial_backoff_ms - Начальный интервал ожидания при повторной попытке. По умолчанию: 50 мс
  • retry_max_backoff_ms - Максимальный интервал ожидания. По умолчанию: 1000 мс

Пересылаемые заголовки:

Эта часть определяет, какие заголовки будут пересланы с заголовков запроса клиента к внешнему HTTP аутентификатору.

Включение HTTP аутентификации в users.xml

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

Параметры:

  • server - Имя сервера аутентификации HTTP, сконфигурированного в основном файле config.xml, как описано ранее.
  • scheme - Схема аутентификации HTTP. В настоящее время поддерживается только Basic. По умолчанию: Basic

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

примечание

Обратите внимание, что HTTP аутентификация не может использоваться вместе с какой-либо другой механизмом аутентификации. Наличие любых других секций, таких как password, наряду с http_authentication заставит ClickHouse завершить работу.

Включение HTTP аутентификации с использованием SQL

Когда Управление доступом и учетными записями на основе SQL включено в ClickHouse, пользователи, идентифицированные через HTTP аутентификацию, также могут быть созданы с использованием SQL-запросов.

...или, Basic является значением по умолчанию без явного определения схемы

Передача настроек сессии

Если тело ответа от сервера аутентификации HTTP имеет формат JSON и содержит подобъект settings, ClickHouse попытается разобрать его пары ключ: значение как строковые значения и установить их в качестве настроек сессии для текущей сессии аутентифицированного пользователя. Если разбор завершится неудачей, тело ответа от сервера будет проигнорировано.