الانتقال إلى المحتوى الرئيسي
هذه الصفحة لا تنطبق على ClickHouse Cloud. الميزة الموثقة هنا غير متاحة في خدمات ClickHouse Cloud. راجع دليل التوافق مع Cloud الخاص بـ ClickHouse لمزيد من المعلومات.
يمكن استخدام خادم HTTP لمصادقة مستخدمي ClickHouse. ولا يمكن استخدام مصادقة HTTP إلا كمُصادِق خارجي للمستخدمين الحاليين، والمُعرَّفين في users.xml أو في مسارات التحكم بالوصول المحلية. حاليًا، لا يتم دعم سوى مخطط مصادقة Basic باستخدام طريقة GET.

تعريف خادم مصادقة HTTP

لتعريف خادم مصادقة HTTP، يجب إضافة القسم http_authentication_servers إلى ملف config.xml. مثال
<clickhouse>
    <!- ... -->
    <http_authentication_servers>
        <basic_auth_server>
          <uri>http://localhost:8000/auth</uri>
          <connection_timeout_ms>1000</connection_timeout_ms>
          <receive_timeout_ms>1000</receive_timeout_ms>
          <send_timeout_ms>1000</send_timeout_ms>
          <max_tries>3</max_tries>
          <retry_initial_backoff_ms>50</retry_initial_backoff_ms>
          <retry_max_backoff_ms>1000</retry_max_backoff_ms>
          <forward_headers>
            <name>Custom-Auth-Header-1</name>
            <name>Custom-Auth-Header-2</name>
          </forward_headers>

        </basic_auth_server>
    </http_authentication_servers>
</clickhouse>

لاحظ أنه يمكنك تعريف عدة خوادم HTTP داخل القسم http_authentication_servers باستخدام أسماء مختلفة. المعلمات
  • uri - عنوان URI لإرسال طلب المصادقة
المهل الزمنية بالمللي ثانية على المقبس المستخدم للتواصل مع الخادم:
  • connection_timeout_ms - القيمة الافتراضية: 1000 مللي ثانية.
  • receive_timeout_ms - القيمة الافتراضية: 1000 مللي ثانية.
  • send_timeout_ms - القيمة الافتراضية: 1000 مللي ثانية.
معلمات إعادة المحاولة:
  • max_tries - الحد الأقصى لعدد المحاولات لإرسال طلب مصادقة. القيمة الافتراضية: 3
  • retry_initial_backoff_ms - الفاصل الزمني الأولي للتراجع عند إعادة المحاولة. القيمة الافتراضية: 50 مللي ثانية
  • retry_max_backoff_ms - الحد الأقصى للفاصل الزمني للتراجع. القيمة الافتراضية: 1000 مللي ثانية
الرؤوس المُمرَّرة: يحدّد هذا الجزء الرؤوس التي سيتم تمريرها من رؤوس طلب العميل إلى خدمة المصادقة الخارجية عبر HTTP. لاحظ أن الرؤوس ستُطابَق مع الرؤوس المعرّفة في الإعدادات بطريقة غير حساسة لحالة الأحرف، لكن سيتم تمريرها كما هي، أي دون تعديل.

تمكين مصادقة HTTP في users.xml

لتمكين مصادقة HTTP لهذا المستخدم، حدِّد قسم http_authentication بدلًا من password أو أي أقسام مشابهة في تعريف المستخدم. المعلمات:
  • server - اسم خادم مصادقة HTTP المُهيّأ في ملف config.xml الرئيسي كما سبق توضيحه.
  • scheme - مخطط مصادقة HTTP. لا يُدعَم حاليًا إلا Basic. القيمة الافتراضية: Basic
مثال (يوضع في users.xml):
<clickhouse>
    <!- ... -->
    <my_user>
        <!- ... -->
        <http_authentication>
            <server>basic_server</server>
            <scheme>basic</scheme>
        </http_authentication>
    </test_user_2>
</clickhouse>
لاحظ أنه لا يمكن استخدام مصادقة HTTP مع أي آلية مصادقة أخرى. وسيؤدي وجود أي أقسام أخرى مثل password إلى جانب http_authentication إلى إيقاف ClickHouse.

تمكين مصادقة HTTP باستخدام SQL

عند تمكين التحكم بالوصول وإدارة الحسابات المعتمدان على SQL في ClickHouse، يمكن أيضًا إنشاء المستخدمين الذين تُحدَّد هويتهم عبر مصادقة HTTP باستخدام عبارات SQL.
CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server' SCHEME 'Basic'
…أو تكون Basic هي القيمة الافتراضية من دون تعريف صريح للمخطط
CREATE USER my_user IDENTIFIED WITH HTTP SERVER 'basic_server'

تمرير إعدادات الجلسة

إذا كان جسم الاستجابة من خادم مصادقة HTTP بتنسيق JSON ويحتوي على كائن فرعي settings، فسيحاول ClickHouse تحليل أزواج key: value فيه باعتبارها قيماً نصية وتعيينها كإعدادات جلسة للجلسة الحالية للمستخدم المُستوثَق منه. وإذا فشل التحليل، فسيتم تجاهل جسم الاستجابة الوارد من الخادم.
آخر تعديل في ٢٥ يونيو ٢٠٢٦