メインコンテンツへスキップ
このページは ClickHouse Cloud には適用されません。ここで説明している機能は ClickHouse Cloud サービスではご利用いただけません。 詳しくは、ClickHouse の Cloud Compatibility ガイドを参照してください。
LDAPサーバーは、ClickHouseユーザーの認証に使用できます。これを行う方法は 2 つあります。
  • users.xml またはローカルのアクセス制御パスで定義された既存ユーザーに対して、LDAPを外部認証機構として使用する。
  • LDAPを外部ユーザーディレクトリとして使用し、ローカルで定義されていないユーザーでも、LDAPサーバー上に存在すれば認証を許可する。
どちらの方法でも、設定の他の部分から参照できるよう、ClickHouseの設定内で内部名を持つLDAPサーバーを定義しておく必要があります。

LDAP サーバーの定義

LDAP サーバーを定義するには、config.xmlldap_servers セクションを追加する必要があります。
なお、ldap_servers セクション内では、一意の名前を使って複数の LDAP サーバーを定義できます。 パラメータ user_dn_detection のサブパラメータ バインド済みユーザーの実際のユーザー DN を検出するための LDAP 検索パラメータのセクションです。これは主に、サーバーが Active Directory の場合に、後続のロールマッピングで使用する検索フィルタのために使われます。結果として得られたユーザー DN は、使用が許可されている箇所で {user_dn} 部分文字列を置き換える際に使用されます。デフォルトではユーザー DN はバインド DN と同じ値に設定されますが、検索が実行されると、実際に検出されたユーザー DN の値に更新されます。

LDAP 外部認証

リモート LDAP サーバーは、ローカルで定義されたユーザー (users.xml またはローカルアクセス制御パスで定義されたユーザー) のパスワードを検証する手段として使用できます。これを行うには、ユーザー定義で password や同様のセクションの代わりに、あらかじめ定義した LDAP サーバー名を指定します。 ログインが試行されるたびに、ClickHouse は、指定された資格情報を使用して、LDAP サーバーの定義bind_dn パラメーターで定義された DN への「bind」を試みます。成功した場合、そのユーザーは認証されたものと見なされます。これは一般に「simple bind」方式と呼ばれます。
なお、ユーザー my_usermy_ldap_server を参照しています。この LDAP サーバーは、前述のとおりメインの config.xml ファイルで設定しておく必要があります。 SQL による Access Control and Account Management が有効な場合、LDAP サーバーで認証されるユーザーは、CREATE USER ステートメントを使用して作成することもできます。
Query

LDAP 外部ユーザーディレクトリ

ローカルで定義されたユーザーに加えて、リモート LDAP サーバーをユーザー定義の参照元として使用できます。そのためには、config.xml ファイルの users_directories セクション内の ldap セクションで、事前に定義した LDAP サーバー名 (LDAP サーバーの定義 を参照) を指定します。 ログインが試行されるたびに、ClickHouse はまずローカルでユーザー定義を探し、通常どおり認証を試みます。ユーザーが定義されていない場合、ClickHouse はその定義が外部 LDAP ディレクトリに存在するとみなし、指定された資格情報を使って LDAP サーバー上の指定された DN への “bind” を試みます。成功すると、そのユーザーは存在し、認証されたものと見なされます。ユーザーには、roles セクションで指定された一覧からロールが割り当てられます。さらに、role_mapping セクションも設定されている場合は、LDAP の “search” を実行し、その結果を変換してロール名として扱い、ユーザーに割り当てることもできます。これらはすべて、SQL ベースの Access Control and Account Management が有効になっており、ロールが CREATE ROLE ステートメントを使用して作成されていることを前提としています。 config.xml に記述します。
user_directories セクション内の ldap セクションで参照される my_ldap_server は、config.xml で設定された、事前に定義済みの LDAP サーバーである必要がある点に注意してください (LDAP サーバーの定義 を参照) 。 パラメーター role_mapping サブパラメーター LDAP 検索 のパラメーターとマッピングルールを含むセクションです。ユーザーが認証されると、LDAP にバインドされたまま、search_filter とログインしたユーザー名を使用して LDAP 検索 が実行されます。その検索で見つかった各エントリについて、指定された属性の値が抽出されます。指定されたプレフィックスを持つ各属性値では、そのプレフィックスが取り除かれ、残りの値が ClickHouse で定義されたローカルロール名になります。このロールは、事前に CREATE ROLE ステートメントで作成されている必要があります。同じ ldap セクション内に複数の role_mapping セクションを定義できます。これらはすべて適用されます。
最終更新日 2026年6月10日