HTTP
このページは 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
- 进行认证请求的最大尝试次数。默认: 3retry_initial_backoff_ms
- 重试的初始退避间隔。默认: 50 msretry_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将尝试将其键:值对解析为字符串值,并将其设置为已认证用户的当前会话的会话设置。如果解析失败,将忽略来自服务器的响应体。