メインコンテンツまでスキップ
メインコンテンツまでスキップ

ClickHouseをLDAPを使った認証とロールマッピングの設定

Not supported in ClickHouse Cloud
注記

このページは ClickHouse Cloud には当てはまりません。ここで文書化されている機能は ClickHouse Cloud サービスでは利用できません。 詳細については ClickHouse の Cloud Compatibility ガイドをご覧ください。

ClickHouseはLDAPを使用してClickHouseデータベースユーザーを認証するように設定できます。このガイドでは、公開ディレクトリに認証されるLDAPシステムとClickHouseを統合する簡単な例を提供します。

1. ClickHouseでのLDAP接続設定の構成

  1. この公開LDAPサーバーへの接続をテストします:

    返信は次のようなものになります:

  2. config.xmlファイルを編集し、LDAPを構成するために次の内容を追加します:

    注記

    <test_ldap_server> タグは特定のLDAPサーバーを識別するための任意のラベルです。

    上記で使用されている基本設定は次のとおりです:

    パラメータ説明
    hostLDAPサーバーのホスト名またはIPldap.forumsys.com
    portLDAPサーバーのディレクトリポート389
    bind_dnユーザーへのテンプレートパスuid={user_name},dc=example,dc=com
    enable_tls安全なLDAPを使用するかどうかno
    tls_require_cert接続のために証明書を必要とするかどうかnever
    注記

    この例では、公開サーバーが389を使用し、安全なポートを使用しないため、デモの目的でTLSを無効にしています。

    注記

    LDAP設定の詳細については、LDAPドキュメントページを参照してください。

  3. <user_directories> セクションに <ldap> セクションを追加して、ユーザーロールマッピングを構成します。このセクションでは、ユーザーが認証されるタイミングと、ユーザーが受け取るロールを定義します。この基本的な例では、LDAPで認証されるすべてのユーザーは、ClickHouseの後のステップで定義される scientists_role を受け取ります。このセクションは次のように見えるはずです:

    上記で使用されている基本設定は次のとおりです:

    パラメータ説明
    server前のldap_serversセクションで定義されたラベルtest_ldap_server
    rolesClickHouseで定義されたロール名、ユーザーがマッピングされるscientists_role
    base_dnユーザーを持つグループの検索を開始するベースパスdc=example,dc=com
    search_filterユーザーをマッピングするためのグループを特定するLDAP検索フィルタ(&(objectClass=groupOfUniqueNames)(uniqueMember={bind_dn}))
    attributeどの属性名の値が返されるべきかcn
  4. 設定を適用するためにClickHouseサーバーを再起動します。

2. ClickHouseデータベースのロールと権限を構成する

注記

このセクションの手順は、ClickHouseでSQLアクセス制御とアカウント管理が有効になっていることを前提としています。有効にするには、SQLユーザーとロールガイドを参照してください。

  1. config.xmlファイルのロールマッピングセクションで使用される同じ名前のロールをClickHouseで作成します。

  2. ロールに必要な権限を付与します。次のステートメントは、LDAPを通じて認証できるユーザーにすべての権限を付与します:

3. LDAP設定をテストする

  1. ClickHouseクライアントを使用してログインします。

    注記

    ステップ1で ldapsearch コマンドを使用してディレクトリ内のすべてのユーザーを表示し、すべてのユーザーのパスワードは password です。

  2. ユーザーが正しくscientists_roleロールにマッピングされていることと、管理者権限を持っているかをテストします。

まとめ

この記事では、ClickHouseがLDAPサーバーに認証し、ロールにマッピングする基本的な設定を示しました。ClickHouseで個々のユーザーを構成するオプションもありますが、ロールの自動マッピングを構成せずにLDAPによってそのユーザーを認証させることができます。また、LDAPモジュールを使用してActive Directoryに接続することもできます。