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