يمكن تهيئة ClickHouse لاستخدام LDAP لمصادقة مستخدمي قاعدة البيانات في ClickHouse. يقدّم هذا الدليل مثالًا بسيطًا على دمج ClickHouse مع نظام LDAP للمصادقة عبر دليل متاح للعامة.
تهيئة إعدادات اتصال LDAP في ClickHouse
-
اختبر اتصالك بخادم 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 ... -
حرّر ملف
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 |
-
أضف القسم
<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>(&(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 -
أعد تشغيل ClickHouse server لتطبيق الإعدادات.
تكوين أدوار قاعدة بيانات ClickHouse وصلاحياتها
-
أنشئ دورًا في ClickHouse بالاسم نفسه المستخدم في قسم تعيين الأدوار في ملف
config.xmlCREATE ROLE scientists_role; -
امنح الدور الامتيازات المطلوبة. تمنح التعليمة التالية امتيازات المسؤول لأي مستخدم يمكنه المصادقة عبر LDAP:
GRANT ALL ON *.* TO scientists_role;
اختبر إعداد LDAP
- سجّل الدخول باستخدام عميل 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 :)
-
اختبر أن المستخدم تم ربطه بشكل صحيح بالدور
scientists_roleوأن لديه أذونات المسؤولSHOW DATABASESQuery 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.