Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

تهيئة ClickHouse لاستخدام LDAP للمصادقة وتعيين الأدوار

غير مدعوم في ClickHouse Cloud

يمكن تهيئة ClickHouse لاستخدام LDAP لمصادقة مستخدمي قاعدة البيانات في ClickHouse. يقدّم هذا الدليل مثالًا بسيطًا على دمج ClickHouse مع نظام LDAP للمصادقة عبر دليل متاح للعامة.

تهيئة إعدادات اتصال LDAP في ClickHouse

  1. اختبر اتصالك بخادم LDAP العام هذا:

    $ ldapsearch -x -b dc=example,dc=com -H ldap://ldap.forumsys.com

    ستكون الاستجابة على نحوٍ مشابه لما يلي:

    # LDIF موسّع
    #
    # LDAPv3
    # الأساس <dc=example,dc=com> مع النطاق subtree
    # عامل التصفية: (objectclass=*)
    # المطلوب: ALL
    #
    
    # example.com
    dn: dc=example,dc=com
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: example.com
    dc: example
    ...
  2. حرّر ملف config.xml وأضف ما يلي لتهيئة LDAP:

    <ldap_servers>
        <test_ldap_server>
        <host>ldap.forumsys.com</host>
        <port>389</port>
        <bind_dn>uid={user_name},dc=example,dc=com</bind_dn>
        <enable_tls>no</enable_tls>
        <tls_require_cert>never</tls_require_cert>
        </test_ldap_server>
    </ldap_servers>

هذه هي الإعدادات الأساسية المستخدمة أعلاه:

Parameter Description Example
host اسم المضيف أو عنوان IP لخادم LDAP ldap.forumsys.com
port منفذ الدليل لخادم LDAP 389
bind_dn مسار القالب للمستخدمين uid={user_name},dc=example,dc=com
enable_tls ما إذا كان سيتم استخدام LDAP الآمن no
tls_require_cert ما إذا كان الاتصال يتطلب شهادة never
  1. أضف القسم <ldap> إلى القسم <user_directories> لتهيئة تعيين الأدوار للمستخدمين. يحدّد هذا القسم كيفية مصادقة المستخدم والدور الذي سيحصل عليه. في هذا المثال الأساسي، سيحصل أي مستخدم تتم مصادقته عبر LDAP على scientists_role، والذي سيُعرَّف في خطوة لاحقة في ClickHouse. يجب أن يبدو القسم مشابهًا لما يلي:

    <user_directories>
        <users_xml>
            <path>users.xml</path>
        </users_xml>
        <local_directory>
            <path>/var/lib/clickhouse/access/</path>
        </local_directory>
        <ldap>
              <server>test_ldap_server</server>
              <roles>
                 <scientists_role />
              </roles>
              <role_mapping>
                 <base_dn>dc=example,dc=com</base_dn>
                 <search_filter>(&amp;(objectClass=groupOfUniqueNames)(uniqueMember={bind_dn}))</search_filter>
                 <attribute>cn</attribute>
              </role_mapping>
        </ldap>
    </user_directories>

    هذه هي الإعدادات الأساسية المستخدمة أعلاه:

    Parameter Description Example
    server التسمية المعرّفة في قسم ldap_servers السابق test_ldap_server
    roles أسماء الأدوار المعرّفة في ClickHouse التي سيُعيَّن المستخدمون إليها scientists_role
    base_dn المسار الأساسي لبدء البحث عن مجموعات المستخدم dc=example,dc=com
    search_filter ldap search filter لتحديد المجموعات المطلوب اختيارها لتعيين المستخدمين (&(objectClass=groupOfUniqueNames)(uniqueMember={bind_dn}))
    attribute اسم السمة التي يجب إرجاع القيمة منها cn
  2. أعد تشغيل ClickHouse server لتطبيق الإعدادات.

تكوين أدوار قاعدة بيانات ClickHouse وصلاحياتها

  1. أنشئ دورًا في ClickHouse بالاسم نفسه المستخدم في قسم تعيين الأدوار في ملف config.xml

    CREATE ROLE scientists_role;
  2. امنح الدور الامتيازات المطلوبة. تمنح التعليمة التالية امتيازات المسؤول لأي مستخدم يمكنه المصادقة عبر LDAP:

    GRANT ALL ON *.* TO scientists_role;

اختبر إعداد LDAP

  1. سجّل الدخول باستخدام عميل ClickHouse
    $ clickhouse-client --user einstein --password password
    ClickHouse client version 22.2.2.1.
    Connecting to localhost:9000 as user einstein.
    Connected to ClickHouse server version 22.2.2 revision 54455.
    
    chnode1 :)
  1. اختبر أن المستخدم تم ربطه بشكل صحيح بالدور scientists_role وأن لديه أذونات المسؤول

    SHOW DATABASES
    Query id: 93b785ff-1482-4eda-95b0-b2d68b2c5e0f
    
    ┌─name───────────────┐
    │ INFORMATION_SCHEMA │
    │ db1_mysql          │
    │ db2                │
    │ db3                │
    │ db4_mysql          │
    │ db5_merge          │
    │ default            │
    │ information_schema │
    │ system             │
    └────────────────────┘
    
    9 rows in set. Elapsed: 0.004 sec.

الملخص

استعرضت هذه المقالة أساسيات تهيئة ClickHouse للمصادقة عبر خادم LDAP، وكذلك إسناد دور. كما تتوفر أيضًا خيارات لتهيئة مستخدمين فرديين في ClickHouse بحيث تجري مصادقتهم عبر LDAP من دون تهيئة تعيين الأدوار تلقائيًا. ويمكن أيضًا استخدام وحدة LDAP للاتصال بـ Active Directory.

Navigation