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

تهيئة إعدادات اتصال 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>
    
الوسوم <test_ldap_server> هي تسمية اعتباطية لتمييز خادم LDAP معيّن.
هذه هي الإعدادات الأساسية المستخدمة أعلاه:
ParameterDescriptionExample
hostاسم المضيف أو عنوان IP لخادم LDAPldap.forumsys.com
portمنفذ الدليل لخادم LDAP389
bind_dnمسار القالب للمستخدمينuid={user_name},dc=example,dc=com
enable_tlsما إذا كان سيتم استخدام LDAP الآمنno
tls_require_certما إذا كان الاتصال يتطلب شهادةnever
في هذا المثال، بما أن الخادم العام يستخدم المنفذ 389 ولا يستخدم منفذًا آمنًا، فإننا نعطّل TLS لأغراض الشرح.
راجع صفحة توثيق LDAP لمزيد من التفاصيل حول إعدادات LDAP.
  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>
    
    هذه هي الإعدادات الأساسية المستخدمة أعلاه:
    ParameterDescriptionExample
    serverالتسمية المعرّفة في قسم ldap_servers السابقtest_ldap_server
    rolesأسماء الأدوار المعرّفة في ClickHouse التي سيُعيَّن المستخدمون إليهاscientists_role
    base_dnالمسار الأساسي لبدء البحث عن مجموعات المستخدمdc=example,dc=com
    search_filterldap search filter لتحديد المجموعات المطلوب اختيارها لتعيين المستخدمين(&(objectClass=groupOfUniqueNames)(uniqueMember={bind_dn}))
    attributeاسم السمة التي يجب إرجاع القيمة منهاcn
  2. أعد تشغيل ClickHouse server لتطبيق الإعدادات.
2

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

تفترض الإجراءات الواردة في هذا القسم أن ميزة SQL للتحكم في الوصول وإدارة الحسابات في ClickHouse قد تم تفعيلها. لتفعيلها، راجع دليل مستخدمي SQL والأدوار.
  1. أنشئ دورًا في ClickHouse بالاسم نفسه المستخدم في قسم تعيين الأدوار في ملف config.xml
    CREATE ROLE scientists_role;
    
  2. امنح الدور الامتيازات المطلوبة. تمنح التعليمة التالية امتيازات المسؤول لأي مستخدم يمكنه المصادقة عبر LDAP:
    GRANT ALL ON *.* TO scientists_role;
    
3

اختبر إعداد 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 :)
    
استخدم الأمر ldapsearch في الخطوة 1 لعرض جميع المستخدمين المتاحين في الدليل، وكلمة المرور لجميع المستخدمين هي password
  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.
آخر تعديل في ٢٩ يونيو ٢٠٢٦