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

HTTP

Not supported in ClickHouse Cloud
注記

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

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

HTTP認証サーバーの定義

HTTP認証サーバーを定義するには、config.xmlhttp_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

users.xmlでのHTTP認証の有効化

ユーザーに対してHTTP認証を有効にするには、ユーザー定義内のpasswordまたは類似のセクションの代わりにhttp_authenticationセクションを指定します。

パラメータ:

  • 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はそのキー:バリューペアを文字列値として解析し、認証されたユーザーの現在のセッションのセッション設定として設定しようとします。解析に失敗すると、サーバーからのレスポンスボディは無視されます。