HTTP
Эта страница не относится к ClickHouse Cloud. Описанная здесь функция недоступна в услугах ClickHouse Cloud. См. руководство ClickHouse Совместимость с ClickHouse Cloud для получения дополнительной информации.
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
Когда в ClickHouse включён SQL-управляемый контроль доступа и управление аккаунтами, пользователи, идентифицируемые с помощью HTTP-аутентификации, также могут быть созданы с использованием SQL-операторов.
...или используется Basic по умолчанию при отсутствии явного указания схемы
Передача настроек сессии
Если тело ответа от HTTP-сервера аутентификации имеет формат JSON и содержит подобъект settings, ClickHouse попытается разобрать его пары ключ–значение как строковые и установить их в качестве настроек текущего сеанса аутентифицированного пользователя. Если разбор не удался, тело ответа сервера будет проигнорировано.