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で認証されるすべてのユーザーは、ClickHouseの後のステップで定義されるscientists_role
を受け取ります。このセクションは次のように見えるはずです:上記で使用されている基本設定は次のとおりです:
パラメータ 説明 例 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に接続することもできます。