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