ClickHouseを使用してLDAPによる認証とロールマッピングを構成する
このページは ClickHouse Cloud には適用されません。ここに記載されている機能は ClickHouse Cloud サービスでは利用できません。詳細については ClickHouse の Cloud Compatibility ガイドをご覧ください。
ClickHouseは、ユーザーがClickHouseデータベースに認証するためにLDAPを使用するように構成できます。このガイドでは、公開ディレクトリに対して認証を行うLDAPシステムとの統合の単純な例を提供します。
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 Users and Rolesガイドを参照してください。
config.xml
ファイルのロールマッピングセクションで使用されるのと同じ名前のロールをClickHouseで作成します。
- ロールに必要な権限を付与します。次のステートメントは、LDAPを通じて認証できる任意のユーザーに管理権限を付与します:
3. LDAP設定をテストする
- ClickHouseクライアントを使用してログインします。
ステップ1でldapsearch
コマンドを使用して、ディレクトリ内のすべてのユーザーを表示します。すべてのユーザーのパスワードはpassword
です。
- ユーザーが
scientists_role
ロールに正しくマッピングされており、管理権限を持っていることを確認します。
概要
この記事では、ClickHouseをLDAPサーバーに認証させ、ロールにマッピングする基本について説明しました。また、LDAPで認証される個別ユーザーをClickHouseで構成するオプションもありますが、ロールマッピングを自動化することなしにそれを行うことも可能です。LDAPモジュールは、Active Directoryに接続するためにも使用できます。