LDAP を使用した認証とロールマッピングのための ClickHouse の構成
このページは ClickHouse Cloud には該当しません。ここで説明している機能は、ClickHouse Cloud サービスでは利用できません。 詳細については、ClickHouse の Cloud Compatibility ガイドを参照してください。
ClickHouse は、LDAP を使用して ClickHouse データベースユーザーを認証するように構成できます。このガイドでは、一般公開されているディレクトリに対して認証を行う LDAP システムと ClickHouse を統合する、簡単な例を紹介します。
ClickHouse で LDAP 接続設定を構成する
-
この公開 LDAP サーバーへの接続をテストします:
応答は次のようになります:
-
config.xmlファイルを編集し、LDAP を構成するために以下を追加します:注記<test_ldap_server>タグは、特定の LDAP サーバーを識別するための任意のラベルです。上記で使用している基本設定は次のとおりです:
Parameter Description Example host LDAP サーバーのホスト名または IP ldap.forumsys.com port LDAP サーバーのディレクトリポート 389 bind_dn ユーザーへのテンプレートパス uid={user_name},dc=example,dc=comenable_tls セキュアな ldap を使用するかどうか no tls_require_cert 接続に証明書を必須とするかどうか never 注記この例では、公開サーバーが 389 を使用しており、セキュアポートを使用していないため、デモ目的で TLS を無効にしています。
注記LDAP 設定の詳細については、LDAP doc page を参照してください。
-
ユーザーロールのマッピングを構成するために、
<user_directories>セクションに<ldap>セクションを追加します。このセクションでは、ユーザーがいつ認証されるか、およびユーザーがどのロールを受け取るかを定義します。この基本的な例では、LDAP で認証される任意のユーザーが、後の手順で ClickHouse に定義されるscientists_roleを受け取ります。セクションは次のようになります:上記で使用している基本設定は次のとおりです:
Parameter Description Example server 前の ldap_servers セクションで定義されたラベル test_ldap_server roles ClickHouse で定義され、ユーザーのマッピング先となるロール名 scientists_role base_dn ユーザーを含むグループの検索を開始するベースパス dc=example,dc=com search_filter ユーザーのマッピング先として選択するグループを識別する ldap 検索フィルター (&(objectClass=groupOfUniqueNames)(uniqueMember={bind_dn}))attribute 値を返す属性名 cn -
設定を適用するために ClickHouse サーバーを再起動します。
ClickHouse データベースのロールと権限を構成する
このセクションの手順は、ClickHouse で SQL Access Control and Account Management が有効になっていることを前提としています。有効にするには、SQL Users and Roles guide を参照してください。
-
config.xmlファイルのロールマッピングセクションで使用したものと同じ名前のロールを clickhouse に作成します -
必要な権限をそのロールに付与します。次のステートメントは、LDAP を通じて認証できる任意のユーザーに管理者権限を付与します:
LDAP 設定をテストする
-
ClickHouse クライアントを使用してログインします
注記手順 1 の
ldapsearchコマンドを使用すると、ディレクトリで利用可能なすべてのユーザーを確認できます。すべてのユーザーのパスワードはpasswordです -
ユーザーが
scientists_roleロールに正しくマッピングされ、管理者権限を持っていることをテストします
まとめ
この記事では、ClickHouse が LDAP サーバーで認証を行い、ロールにマッピングするための基本的な設定方法を説明しました。ClickHouse 上で個々のユーザーを定義したうえで、それらのユーザーの認証のみを LDAP に任せ、自動的なロールマッピングは設定しない構成も可能です。LDAP モジュールは、Active Directory への接続にも使用できます。