跳到主要内容
跳到主要内容

HTTP

Not supported in ClickHouse Cloud
备注

このページは ClickHouse Cloud には適用されません。ここで文書化されている機能は、ClickHouse Cloud サービスでは利用できません。 詳細については、ClickHouse の Cloud Compatibility ガイドを参照してください。

HTTP服务器可以用来验证ClickHouse用户。HTTP认证只能被用作对在 users.xml 或本地访问控制路径中定义的现有用户的外部认证器。目前,仅支持使用GET方法的基本认证方案。

HTTP认证服务器定义

要定义HTTP认证服务器,必须在 config.xml 中添加 http_authentication_servers 部分。

示例

请注意,您可以在 http_authentication_servers 部分内定义多个HTTP服务器,使用不同的名称。

参数

  • uri - 用于进行认证请求的URI

在与服务器通信所使用的套接字上的超时(以毫秒为单位):

  • connection_timeout_ms - 默认: 1000 ms。
  • receive_timeout_ms - 默认: 1000 ms。
  • send_timeout_ms - 默认: 1000 ms。

重试参数:

  • max_tries - 进行认证请求的最大尝试次数。默认: 3
  • retry_initial_backoff_ms - 重试的初始退避间隔。默认: 50 ms
  • retry_max_backoff_ms - 最大退避间隔。默认: 1000 ms

转发头:

该部分定义了哪些头将从客户端请求头转发到外部HTTP认证器。

users.xml 中启用HTTP认证

为了启用用户的HTTP认证,指定 http_authentication 部分,而不是用户定义中的 password 或类似部分。

参数:

  • server - 在主 config.xml 文件中配置的HTTP认证服务器的名称,如前所述。
  • scheme - HTTP认证方案。目前仅支持 Basic。默认: Basic

示例(放入 users.xml 中):

备注

请注意,HTTP认证不能与任何其他认证机制一起使用。与 http_authentication 共同存在的任何其他部分,例如 password,将迫使ClickHouse关闭。

使用SQL启用HTTP认证

当ClickHouse中启用SQL驱动的访问控制和账户管理时,通过HTTP认证识别的用户也可以使用SQL语句创建。

...或者,不显式定义方案时,Basic 为默认值

传递会话设置

如果来自HTTP认证服务器的响应体具有JSON格式并包含 settings 子对象,ClickHouse将尝试将其键:值对解析为字符串值,并将其设置为已认证用户的当前会话的会话设置。如果解析失败,将忽略来自服务器的响应体。