Passer au contenu principal
Cette page ne s’applique pas à ClickHouse Cloud. La fonctionnalité décrite ici n’est pas disponible dans les services ClickHouse Cloud. Consultez le guide ClickHouse Compatibilité Cloud pour plus d’informations.
Le serveur HTTP peut être utilisé pour authentifier les utilisateurs de ClickHouse. L’authentification HTTP ne peut être utilisée que comme authentificateur externe pour des utilisateurs existants, définis dans users.xml ou dans les chemins locaux de contrôle d’accès. Actuellement, seul le schéma d’authentification Basic utilisant la méthode GET est pris en charge.

Définition du serveur d’authentification HTTP

Pour définir un serveur d’authentification HTTP, vous devez ajouter la section http_authentication_servers à config.xml. Exemple
<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>

Notez que vous pouvez définir plusieurs serveurs HTTP dans la section http_authentication_servers en leur attribuant des noms distincts. Paramètres
  • uri - URI utilisée pour effectuer la requête d’authentification
Délais d’expiration, en millisecondes, sur le socket utilisé pour communiquer avec le serveur :
  • connection_timeout_ms - Par défaut : 1000 ms.
  • receive_timeout_ms - Par défaut : 1000 ms.
  • send_timeout_ms - Par défaut : 1000 ms.
Paramètres de nouvelle tentative :
  • max_tries - Nombre maximal de tentatives pour effectuer une requête d’authentification. Par défaut : 3
  • retry_initial_backoff_ms - Intervalle initial de backoff lors d’une nouvelle tentative. Par défaut : 50 ms
  • retry_max_backoff_ms - Intervalle maximal de backoff. Par défaut : 1000 ms
En-têtes transférés : Cette partie définit quels en-têtes seront transférés des en-têtes de requête du client vers le service d’authentification HTTP externe. Notez que les en-têtes seront comparés à ceux de la config sans tenir compte de la casse, mais transférés tels quels, c’est-à-dire sans être modifiés.

Activation de l’authentification HTTP dans users.xml

Pour activer l’authentification HTTP pour l’utilisateur, indiquez la section http_authentication au lieu de password ou d’autres sections similaires dans la définition de l’utilisateur. Paramètres :
  • server - Nom du serveur d’authentification HTTP configuré dans le fichier principal config.xml, comme décrit précédemment.
  • scheme - Schéma d’authentification HTTP. Seul Basic est actuellement pris en charge. Par défaut : Basic
Exemple (à placer dans users.xml) :
<clickhouse>
    <!- ... -->
    <my_user>
        <!- ... -->
        <http_authentication>
            <server>basic_server</server>
            <scheme>basic</scheme>
        </http_authentication>
    </test_user_2>
</clickhouse>
Notez que l’authentification HTTP ne peut pas être utilisée avec un autre mécanisme d’authentification. La présence d’une autre section, telle que password, en plus de http_authentication, forcera ClickHouse à s’arrêter.

Activer l’authentification HTTP avec SQL

Lorsque la fonctionnalité de contrôle d’accès et de gestion des comptes pilotés par SQL est activée dans ClickHouse, il est également possible de créer, à l’aide d’instructions SQL, des utilisateurs identifiés par authentification HTTP.
CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server' SCHEME 'Basic'
…ou Basic est utilisé par défaut en l’absence de définition explicite du schéma d’authentification
CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server'

Transmission des paramètres de session

Si le corps de la réponse d’un serveur d’authentification HTTP est au format JSON et contient le sous-objet settings, ClickHouse essaiera d’interpréter ses paires clé-valeur comme des valeurs de type chaîne et de les appliquer comme paramètres de session à la session en cours de l’utilisateur authentifié. Si l’analyse échoue, le corps de la réponse du serveur sera ignoré.
Dernière modification le 25 juin 2026