Pular para o conteúdo principal
Esta página não se aplica ao ClickHouse Cloud. O recurso documentado aqui não está disponível nos serviços do ClickHouse Cloud. Consulte o guia Compatibilidade com Cloud do ClickHouse para mais informações.
O servidor HTTP pode ser usado para autenticar usuários do ClickHouse. A autenticação HTTP só pode ser usada como autenticador externo para usuários existentes, definidos em users.xml ou em caminhos locais de controle de acesso. Atualmente, há suporte ao esquema de autenticação Basic usando o método GET.

Definição de servidor de autenticação HTTP

Para definir o servidor de autenticação HTTP, você deve adicionar a seção http_authentication_servers ao config.xml. Exemplo
<clickhouse>
    <!- ... -->
    <http_authentication_servers>
        <basic_auth_server>
          <uri>http://localhost:8000/auth</uri>
          <connection_timeout_ms>1000</connection_timeout_ms>
          <receive_timeout_ms>1000</receive_timeout_ms>
          <send_timeout_ms>1000</send_timeout_ms>
          <max_tries>3</max_tries>
          <retry_initial_backoff_ms>50</retry_initial_backoff_ms>
          <retry_max_backoff_ms>1000</retry_max_backoff_ms>
          <forward_headers>
            <name>Custom-Auth-Header-1</name>
            <name>Custom-Auth-Header-2</name>
          </forward_headers>

        </basic_auth_server>
    </http_authentication_servers>
</clickhouse>

Observe que é possível definir vários servidores HTTP dentro da seção http_authentication_servers usando nomes distintos. Parâmetros
  • uri - URI para fazer a solicitação de autenticação
Timeouts, em milissegundos, no socket usado para se comunicar com o servidor:
  • connection_timeout_ms - Padrão: 1000 ms.
  • receive_timeout_ms - Padrão: 1000 ms.
  • send_timeout_ms - Padrão: 1000 ms.
Parâmetros de retry:
  • max_tries - O número máximo de tentativas para fazer uma solicitação de autenticação. Padrão: 3
  • retry_initial_backoff_ms - O intervalo inicial de backoff em caso de retry. Padrão: 50 ms
  • retry_max_backoff_ms - O intervalo máximo de backoff. Padrão: 1000 ms
Encaminhamento de cabeçalhos: Esta parte define quais cabeçalhos serão encaminhados dos cabeçalhos de solicitação do cliente para o autenticador HTTP externo. Observe que os cabeçalhos serão comparados com os definidos na configuração sem diferenciar maiúsculas de minúsculas, mas serão encaminhados como estão, isto é, sem modificação.

Habilitando a autenticação HTTP em users.xml

Para habilitar a autenticação HTTP para o usuário, especifique a seção http_authentication em vez de password ou de seções semelhantes na definição do usuário. Parâmetros:
  • server - Nome do servidor de autenticação HTTP configurado no arquivo principal config.xml, conforme descrito anteriormente.
  • scheme - Esquema de autenticação HTTP. No momento, há suporte apenas a Basic. Padrão: Basic
Exemplo (adicione em users.xml):
<clickhouse>
    <!- ... -->
    <my_user>
        <!- ... -->
        <http_authentication>
            <server>basic_server</server>
            <scheme>basic</scheme>
        </http_authentication>
    </test_user_2>
</clickhouse>
Observe que a autenticação HTTP não pode ser usada em conjunto com nenhum outro mecanismo de autenticação. A presença de qualquer outra seção, como password, junto com http_authentication, fará com que o ClickHouse seja encerrado.

Habilitando a autenticação HTTP com SQL

Quando o Controle de Acesso e Gerenciamento de Contas via SQL está habilitado no ClickHouse, usuários identificados por autenticação HTTP também podem ser criados com instruções SQL.
CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server' SCHEME 'Basic'
…ou Basic é o padrão, sem definição explícita do esquema
CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server'

Passando configurações de sessão

Se o corpo da resposta do servidor de autenticação HTTP estiver em formato JSON e contiver o subobjeto settings, o ClickHouse tentará interpretar seus pares chave-valor como valores do tipo string e defini-los como configurações de sessão da sessão atual do usuário autenticado. Se a análise falhar, o corpo da resposta do servidor será ignorado.
Última modificação em 10 de junho de 2026