ClickHouseをLDAPで認証およびロールマッピングに使用するための設定
このページは ClickHouse Cloud には適用されません。ここで文書化されている機能は、ClickHouse Cloud サービスでは利用できません。 詳細については、ClickHouse の Cloud Compatibility ガイドを参照してください。
ClickHouseは、LDAPを使用してClickHouseデータベースユーザーを認証するように構成できます。このガイドでは、公開されているディレクトリに対して認証を行うLDAPシステムとClickHouseを統合する簡単な例を提供します。
1. ClickHouseでのLDAP接続設定の構成
-
この公開LDAPサーバーへの接続をテストします:
応答は次のようになります:
-
config.xml
ファイルを編集し、以下を追加してLDAPを構成します:注記<test_ldap_server>
タグは特定のLDAPサーバーを識別するための任意のラベルです。上記で使用される基本設定は次の通りです:
パラメータ 説明 例 host LDAPサーバーのホスト名またはIP ldap.forumsys.com port LDAPサーバー用のディレクトリポート 389 bind_dn ユーザーへのテンプレートパス uid={user_name},dc=example,dc=com
enable_tls 安全なLDAPを使用するかどうか no tls_require_cert 接続のために証明書が必要かどうか never 注記この例では、公開サーバーが389を使用し安全なポートを使用していないため、デモ目的でTLSを無効にしています。
注記LDAP設定の詳細については、LDAPドキュメントページを参照してください。
-
<user_directories>
セクションに<ldap>
セクションを追加してユーザーロールのマッピングを構成します。このセクションは、ユーザーが認証されたときにどのロールを取得するかを定義します。この基本的な例では、LDAPに対して認証を行ったユーザーはscientists_role
を取得し、これは後のステップでClickHouseで定義されます。このセクションは次のようになります:上記で使用される基本設定は次の通りです:
パラメータ 説明 例 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サーバーを再起動します。
2. ClickHouseデータベースのロールと権限を構成する
このセクションの手順は、ClickHouseでSQLアクセス制御とアカウント管理が有効になっていることを前提としています。有効にするには、SQLユーザーとロールガイドを参照してください。
-
config.xml
ファイルのロールマッピングセクションで使用されたのと同じ名前のロールをClickHouseで作成します。 -
ロールに必要な権限を付与します。次のステートメントは、LDAPを通じて認証できるユーザーに管理者権限を付与します:
3. LDAP設定をテストする
-
ClickHouseクライアントを使用してログインします。
注記ステップ1で
ldapsearch
コマンドを使用してディレクトリに利用可能なすべてのユーザーを表示し、すべてのユーザーのパスワードがpassword
であることを確認してください。 -
ユーザーが
scientists_role
ロールに正しくマッピングされており、管理者権限を持っているかテストします。
要約
この記事では、ClickHouseをLDAPサーバーに対して認証し、ロールにマッピングする基本を示しました。また、ClickHouse内の個々のユーザーを構成するオプションもありますが、これらのユーザーが自動的なロールマッピングを構成せずにLDAPで認証されるようにすることも可能です。LDAPモジュールはActive Directoryへの接続にも使用できます。