メインコンテンツまでスキップ
メインコンテンツまでスキップ

HTTP

Not supported in ClickHouse Cloud
注記

このページは ClickHouse Cloud には適用されません。ここに記載されている機能は ClickHouse Cloud サービスでは利用できません。詳細については ClickHouse の Cloud Compatibility ガイドをご覧ください。

HTTPサーバーはClickHouseユーザーを認証するために使用できます。HTTP認証は、users.xml内で定義されているか、ローカルアクセス制御パスの既存ユーザーに対して外部認証機構としてのみ使用可能です。現在、Basic 認証スキームがGETメソッドを使用してサポートされています。

HTTP認証サーバーの定義

HTTP認証サーバーを定義するには、config.xmlhttp_authentication_serversセクションを追加する必要があります。

<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>

なお、異なる名前を使用して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認証を有効にするには、ユーザー定義内でpasswordや類似のセクションの代わりにhttp_authenticationセクションを指定します。

パラメータ:

  • server - 前述のように、メインのconfig.xmlファイルに設定されたHTTP認証サーバーの名前。
  • scheme - HTTP認証スキーム。現在はBasicのみがサポートされています。デフォルト: Basic

例(users.xmlに記入):

<clickhouse>
    <!- ... -->
    <my_user>
        <!- ... -->
        <http_authentication>
            <server>basic_server</server>
            <scheme>basic</scheme>
        </http_authentication>
    </test_user_2>
</clickhouse>
注記

HTTP認証は、他の認証メカニズムと同時に使用することはできません。http_authenticationとともに他のセクション(passwordなど)が存在する場合、ClickHouseはシャットダウンします。

SQLを使用したHTTP認証の有効化

SQL駆動のアクセス制御とアカウント管理がClickHouseで有効になっている場合、HTTP認証によって識別されたユーザーは、SQLステートメントを使用して作成することもできます。

CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server' SCHEME 'Basic'

...または、Basicは明示的なスキーム定義なしでデフォルトです

CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server'

セッション設定の送信

HTTP認証サーバーからのレスポンスボディがJSON形式で、settingsサブオブジェクトを含む場合、ClickHouseはそのキー:値ペアを文字列値として解析し、認証されたユーザーの現在のセッションのセッション設定として設定を試みます。解析に失敗した場合、サーバーからのレスポンスボディは無視されます。