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

HTTP

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

Эта страница не применяется к ClickHouse Cloud. Функция, описанная здесь, недоступна в сервисах ClickHouse Cloud. Смотрите руководство по Cloud Compatibility для получения дополнительной информации.

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 попытается разобрать его пары ключ: значение как строковые значения и установить их в качестве настроек сессии для текущей сессии аутентифицированного пользователя. Если разбор не удался, тело ответа от сервера будет проигнорировано.