الانتقال إلى المحتوى الرئيسي
هذه الصفحة لا تنطبق على ClickHouse Cloud. الميزة الموثقة هنا غير متاحة في خدمات ClickHouse Cloud. راجع دليل التوافق مع Cloud الخاص بـ ClickHouse لمزيد من المعلومات.
يمكن استخدام خادم LDAP لمصادقة مستخدمي ClickHouse. هناك طريقتان مختلفتان للقيام بذلك:
  • استخدام LDAP كمُصادِق خارجي للمستخدمين الحاليين المعرَّفين في users.xml أو في local access control paths.
  • استخدام LDAP كدليل مستخدمين خارجي والسماح بمصادقة المستخدمين غير المعرَّفين محليًا إذا كانوا موجودين على خادم LDAP.
في كلتا الحالتين، يجب تعريف خادم LDAP باسم داخلي في config الخاص بـ ClickHouse لكي تتمكن الأجزاء الأخرى من config من الرجوع إليه.

تعريف خادم LDAP

لتعريف خادم LDAP، يجب إضافة القسم ldap_servers إلى ملف config.xml. مثال
لاحظ أنه يمكنك تعريف عدة خوادم LDAP ضمن قسم ldap_servers باستخدام أسماء مختلفة. المعلمات المعلمات الفرعية user_dn_detection قسم يحتوي على معلمات بحث LDAP لاكتشاف user DN الفعلي للمستخدم الذي تم تنفيذ bind له. يُستخدم هذا بشكل أساسي في search filters لمزيد من تعيين الأدوار عندما يكون الخادم هو Active Directory. سيُستخدم user DN الناتج عند استبدال المقاطع الفرعية {user_dn} حيثما كان استخدامها مسموحًا. افتراضيًا، يُضبط user DN ليكون مساويًا لـ bind DN، ولكن بمجرد تنفيذ بحث LDAP، سيتم تحديثه إلى قيمة user DN الفعلية المكتشفة.

المُصادِق الخارجي LDAP

يمكن استخدام خادم LDAP بعيد كوسيلة للتحقق من كلمات مرور المستخدمين المعرَّفين محليًا (أي المستخدمين المعرَّفين في users.xml أو في مسارات التحكّم بالوصول المحلية). ولتحقيق ذلك، حدِّد اسم خادم LDAP المعرَّف مسبقًا بدلًا من password أو الأقسام المشابهة في تعريف المستخدم. عند كل محاولة تسجيل دخول، يحاول ClickHouse تنفيذ عملية “bind” إلى الـ DN المحدد في المعلمة bind_dn ضمن تعريف خادم LDAP باستخدام بيانات الاعتماد المقدَّمة، وإذا نجحت العملية، يُعَدّ المستخدم موثَّقًا. ويُسمّى هذا غالبًا أسلوب “simple bind”. مثال
لاحظ أن المستخدم my_user يرتبط بـ my_ldap_server. يجب تهيئة خادم LDAP هذا في ملف config.xml الرئيسي كما وُضح سابقًا. عند تمكين التحكم في الوصول وإدارة الحسابات المعتمد على SQL، يمكن أيضًا إنشاء المستخدمين الذين تجري مصادقتهم عبر خوادم LDAP باستخدام تعليمة CREATE USER.
Query

دليل المستخدمين الخارجي عبر LDAP

بالإضافة إلى المستخدمين المعرّفين محليًا، يمكن استخدام خادم LDAP بعيد كمصدر لتعريفات المستخدمين. لتحقيق ذلك، حدِّد اسم خادم LDAP المعرّف مسبقًا (راجع تعريف خادم LDAP) في قسم ldap داخل قسم users_directories في ملف config.xml. عند كل محاولة تسجيل دخول، يحاول ClickHouse العثور على تعريف المستخدم محليًا ومصادقته كالمعتاد. وإذا لم يكن المستخدم معرّفًا، فسيفترض ClickHouse أن تعريفه موجود في دليل LDAP الخارجي، وسيحاول تنفيذ عملية “bind” إلى الـ DN المحدد على خادم LDAP باستخدام بيانات الاعتماد المقدَّمة. وإذا نجحت العملية، فسيُعتبر المستخدم موجودًا ومصادقًا عليه. وسيُسنَد إلى المستخدم ما يرد في قسم roles من أدوار. بالإضافة إلى ذلك، يمكن تنفيذ عملية “search” في LDAP، ويمكن تحويل النتائج لتُعامل على أنها أسماء أدوار ثم تُسنَد إلى المستخدم إذا كان قسم role_mapping مهيأً أيضًا. ويعني هذا كله أن التحكم في الوصول وإدارة الحسابات المعتمد على SQL مفعّل، وأن الأدوار أُنشئت باستخدام عبارة CREATE ROLE. مثال يوضع في config.xml.
لاحظ أن my_ldap_server المشار إليه في قسم ldap داخل قسم user_directories يجب أن يكون خادم LDAP مُعرَّفًا مسبقًا ومُهيّأً في config.xml (راجع تعريف خادم LDAP). المعلمات المعلمات الفرعية لـ role_mapping قسم يتضمن معلمات بحث LDAP وقواعد تعيين الأدوار. عند مصادقة المستخدم، وأثناء استمرار الارتباط بـ LDAP، يُجرى بحث LDAP باستخدام search_filter واسم المستخدم الذي سجّل الدخول. ولكل entry يُعثر عليه أثناء هذا البحث، تُستخرج قيمة الـ attribute المحدد. ولكل قيمة attribute تحمل الـ prefix المحدد، يُزال الـ prefix، ويصبح الجزء المتبقي من القيمة اسم role محلي معرَّف في ClickHouse، ويُفترض أن يكون قد أُنشئ مسبقًا باستخدام عبارة CREATE ROLE. يمكن تعريف عدة أقسام role_mapping داخل قسم ldap نفسه، وستُطبَّق جميعها.
آخر تعديل في ١ يوليو ٢٠٢٦