يمكن مصادقة مستخدمي ClickHouse الحاليين والمُهيَّئين بشكل صحيح عبر بروتوكول مصادقة Kerberos.
حاليًا، لا يمكن استخدام Kerberos إلا كمُصادِق خارجي للمستخدمين الحاليين المُعرَّفين في users.xml أو في مسارات التحكم في الوصول المحلية. ولا يمكن لهؤلاء المستخدمين استخدام سوى طلبات HTTP، ويجب أن يكونوا قادرين على المصادقة باستخدام آلية GSS-SPNEGO.
في هذا النهج، يجب تهيئة Kerberos على النظام ويجب تمكينه في إعدادات ClickHouse.
تمكين Kerberos في ClickHouse
لتمكين Kerberos، يجب تضمين قسم kerberos في ملف config.xml. وقد يحتوي هذا القسم على معلمات إضافية.
المعلمات
-
principal- اسم الخدمة الأساسي المعياري الذي سيُكتسب ويُستخدم عند قبول سياقات الأمان.- هذا المعامل اختياري. إذا أُهمِل، فسيُستخدم الاسم الأساسي الافتراضي.
-
realm- قيمةrealmالتي ستُستخدم لقصر الاستيثاق على الطلبات التي تتطابق معها قيمةrealmالخاصة بالمُبادِر فقط.- هذا المعامل اختياري. إذا أُهمِل، فلن يُطبَّق أي ترشيح إضافي حسب
realm.
- هذا المعامل اختياري. إذا أُهمِل، فلن يُطبَّق أي ترشيح إضافي حسب
-
keytab- المسار إلى ملفkeytabالخاص بالخدمة.- هذا المعامل اختياري. إذا أُهمِل، فيجب ضبط المسار إلى ملف
keytabالخاص بالخدمة في متغير البيئةKRB5_KTNAME.
- هذا المعامل اختياري. إذا أُهمِل، فيجب ضبط المسار إلى ملف
مثال (يوضع في config.xml):
<clickhouse>
<!- ... -->
<kerberos />
</clickhouse>مع تحديد الاسم الأساسي:
<clickhouse>
<!- ... -->
<kerberos>
<principal>HTTP/clickhouse.example.com@EXAMPLE.COM</principal>
</kerberos>
</clickhouse>مع التصفية حسب النطاق:
<clickhouse>
<!- ... -->
<kerberos>
<realm>EXAMPLE.COM</realm>
</kerberos>
</clickhouse>Kerberos كمصادِق خارجي للمستخدمين الحاليين
يمكن استخدام Kerberos كوسيلة للتحقق من هوية المستخدمين المعرَّفين محليًا (المعرَّفين في users.xml أو في مسارات التحكم بالوصول المحلية). حاليًا، لا يمكن استخدام Kerberos إلا مع الطلبات الواردة عبر واجهة HTTP (من خلال آلية GSS-SPNEGO).
عادةً ما يتبع تنسيق الاسم الأساسي في Kerberos هذا النمط:
- primary/instance@REALM
قد يظهر الجزء /instance صفر مرة أو أكثر. يُتوقَّع أن يتطابق جزء primary من الاسم المعياري للاسم الأساسي الخاص بالمبادر مع اسم المستخدم المستخدَم مع Kerberos لكي تنجح المصادقة.
تمكين Kerberos في users.xml
لتمكين المصادقة عبر Kerberos للمستخدم، حدِّد القسم kerberos بدلًا من password أو الأقسام المشابهة في تعريف المستخدم.
المعلمات:
realm-realmسيُستخدم لقصر المصادقة على الطلبات التي يتطابق فيهاrealmالخاص بالعقدة البادئة معه فقط.- هذا المعلَم اختياري، وإذا تم حذفه، فلن تُطبَّق أي تصفية إضافية حسب
realm.
- هذا المعلَم اختياري، وإذا تم حذفه، فلن تُطبَّق أي تصفية إضافية حسب
مثال (يوضع في users.xml):
<clickhouse>
<!- ... -->
<users>
<!- ... -->
<my_user>
<!- ... -->
<kerberos>
<realm>EXAMPLE.COM</realm>
</kerberos>
</my_user>
</users>
</clickhouse>تفعيل Kerberos باستخدام SQL
عند تفعيل التحكم في الوصول وإدارة الحسابات المعتمدين على SQL في ClickHouse، يمكن أيضًا إنشاء مستخدمين يحدّدهم Kerberos باستخدام عبارات SQL.
CREATE USER my_user IDENTIFIED WITH kerberos REALM 'EXAMPLE.COM'…أو، بدون التصفية حسب نطاق Kerberos:
CREATE USER my_user IDENTIFIED WITH kerberos