21.2. سير عمل المصادقة للمستخدم

../../../_images/auth-user-usage.png

شكل 21.20 سير العمل العام للمستخدم

21.2.1. المصادقة عبر HTTP(S)

من أكثر اتصالات الموارد شيوعًا الاتصال عبر HTTP(S)، مثل خوادم الخرائط على الويب، وغالبًا ما تعمل إضافات طرق المصادقة مع هذا النوع من الاتصالات. إذ تستطيع إضافات الطرق الوصول إلى كائن طلب HTTP، ويمكنها التعامل مع الطلب وترويساته. وهذا يتيح أشكالًا كثيرة من المصادقة عبر الإنترنت. وعند الاتصال عبر HTTP(S) باستخدام طريقة المصادقة القياسية باسم المستخدم/كلمة المرور، ستُجرَّب مصادقة HTTP BASIC عند الاتصال.

../../../_images/auth-http-basic-wms.png

شكل 21.21 ضبط اتصال WMS لمصادقة HTTP BASIC

21.2.2. مصادقة قواعد البيانات

تُخزَّن الاتصالات بموارد قواعد البيانات عمومًا على شكل أزواج key=value، مما يكشف أسماء المستخدمين و(اختياريًا) كلمات المرور إذا لم يُستخدم إعداد مصادقة. أما عند الضبط باستخدام نظام المصادقة، فسيكون key=value تمثيلًا مجرّدًا لبيانات الاعتماد، مثل authfg=81t21b9.

../../../_images/auth-db-ssl-pki.png

شكل 21.22 ضبط اتصال Postgres عبر SSL مع PKI

21.2.3. المصادقة عبر PKI

عند ضبط مكونات PKI داخل نظام المصادقة، يمكنك اختيار استيراد المكونات إلى قاعدة البيانات أو الإشارة إلى ملفات المكونات المخزنة في نظام ملفاتك. وقد يكون الخيار الثاني مفيدًا إذا كانت هذه المكونات تتغير كثيرًا، أو إذا كان مسؤول النظام سيستبدلها. وفي كلتا الحالتين، ستحتاج إلى تخزين أي عبارة مرور لازمة للوصول إلى المفاتيح الخاصة داخل قاعدة البيانات.

../../../_images/auth-pki-config.png

شكل 21.23 سير عمل ضبط PKI

يمكن إدارة جميع مكونات PKI في محررات منفصلة داخل Certificate Manager (مدير الشهادات)، الذي يمكن الوصول إليه من تبويب Authentication في نافذة حوار Options في QGIS (Settings ► Options) بالنقر على الزر Manage Certificates.

../../../_images/options_authentication.png

شكل 21.24 فتح مدير الشهادات

يحتوي Certificate Manager على محررات لكل من Identities (الهويات) و Servers (الخوادم) و Authorities (الجهات). ولكل منها تبويبه الخاص، وهي موصوفة أدناه بالترتيب الذي تظهر به في مخطط سير العمل أعلاه. أما ترتيب التبويبات فيتبع المحررات الأكثر استخدامًا بعد أن تعتاد على سير العمل.

ملاحظة

بما أن جميع التعديلات في نظام المصادقة تُكتب فورًا في قاعدة بيانات المصادقة، فلا حاجة إلى النقر على الزر OK في نافذة حوار Options لحفظ أي تغييرات. وهذا بخلاف الإعدادات الأخرى في نافذة حوار الخيارات.

21.2.3.1. جهات إصدار الشهادات

يمكنك إدارة جهات إصدار الشهادات (CAs) المتاحة من تبويب Authorities في Certificate manager ضمن تبويب Authentication في نافذة حوار Options في QGIS.

كما يشير مخطط سير العمل أعلاه، فإن الخطوة الأولى هي استيراد ملف لجهات إصدار الشهادات أو الإشارة إليه. هذه الخطوة اختيارية، وقد لا تكون ضرورية إذا كانت سلسلة الثقة في PKI لديك تنبع من جهات إصدار جذرية مثبتة مسبقًا في نظام التشغيل، مثل شهادة صادرة عن مورّد شهادات تجاري. أما إذا لم تكن جهة الإصدار الجذرية التي تستخدمها للمصادقة ضمن جهات الإصدار الجذرية الموثوقة في نظام التشغيل، فيجب استيرادها أو الإشارة إلى مسارها في نظام الملفات. (تواصل مع مسؤول النظام إن لم تكن متأكدًا.)

../../../_images/auth-editor-authorities.png

شكل 21.25 محرر جهات الإصدار

تتوفر افتراضيًا جهات الإصدار الجذرية من نظام التشغيل، لكن إعدادات الثقة الخاصة بها لا تُورَث. لذا عليك مراجعة إعدادات سياسة الثقة بالشهادات، خاصة إذا عُدّلت سياسات جهات الإصدار الجذرية في نظام التشغيل. تُعيَّن أي شهادة منتهية الصلاحية على أنها غير موثوقة ولن تُستخدم في الاتصالات الآمنة بالخوادم، ما لم تتجاوز سياسة الثقة الخاصة بها صراحةً. لعرض سلسلة الثقة التي يكتشفها QGIS لأي شهادة، حدّدها وانقر على metadata Show information for certificate.

../../../_images/auth-authority-imported_cert-info-chain.png

شكل 21.26 نافذة حوار معلومات الشهادة

يمكنك تعديل Trust policy selectString (سياسة الثقة) لأي شهادة محددة داخل السلسلة. ولن يُحفظ أي تغيير في سياسة الثقة لشهادة محددة في قاعدة البيانات ما لم يُنقر الزر fileSave Save certificate trust policy change to database لكل شهادة محددة. إغلاق نافذة الحوار لن يطبّق تغييرات السياسة.

يمكنك مراجعة جهات الإصدار المُرشَّحة، الوسيطة منها والجذرية، التي سيوثق بها في الاتصالات الآمنة، أو تغيير سياسة الثقة الافتراضية بالنقر على الزر transformSettings Options.

تحذير

قد يؤدي تغيير سياسة الثقة الافتراضية إلى مشكلات في الاتصالات الآمنة.

يمكنك استيراد جهات الإصدار أو حفظ مسار في نظام الملفات لملف يحتوي على عدة جهات إصدار، أو استيراد جهات إصدار منفردة. وفي صيغة PEM القياسية للملفات التي تحتوي على سلسلة من شهادات جهات الإصدار، تكون الشهادة الجذرية في أسفل الملف، وتأتي فوقها جميع الشهادات الفرعية الموقَّعة لاحقًا باتجاه بداية الملف.

تعثر نافذة حوار استيراد شهادات جهات الإصدار على جميع شهادات جهات الإصدار داخل الملف بغض النظر عن ترتيبها، كما توفر خيار استيراد الشهادات التي تُعدّ غير صالحة (في حال أردت تجاوز سياسة الثقة الخاصة بها). يمكنك تجاوز سياسة الثقة عند الاستيراد، أو لاحقًا داخل محرر Authorities.

../../../_images/auth-authority-import.png

شكل 21.27 نافذة حوار استيراد الشهادات

ملاحظة

إذا كنت تلصق معلومات الشهادة في الحقل PEM text، فلاحظ أن الشهادات المشفرة غير مدعومة.

21.2.3.2. الهويات

يمكنك إدارة حزم هويات العميل المتاحة من تبويب Identities في Certificate manager ضمن تبويب Authentication في نافذة حوار Options في QGIS. الهوية هي ما يصادق عليك لدى خدمة تدعم PKI، وتتكون عادةً من شهادة عميل ومفتاح خاص، إما في ملفين منفصلين أو مدمجين في ملف "حزمة" واحد. وغالبًا ما تكون الحزمة أو المفتاح الخاص محميًا بعبارة مرور.

بعد استيراد أي جهات إصدار شهادات (CAs)، يمكنك اختياريًا استيراد أي حزم هويات إلى قاعدة بيانات المصادقة. وإذا لم ترغب في تخزين الهويات، يمكنك الإشارة إلى مسارات ملفات مكوناتها داخل إعداد مصادقة منفرد.

../../../_images/auth-editor-identities.png

شكل 21.28 محرر الهويات

عند استيراد حزمة هوية، قد تكون محمية بعبارة مرور أو غير محمية، وقد تحتوي على شهادات جهات إصدار تشكّل سلسلة ثقة. لن تُستورد شهادات سلسلة الثقة هنا؛ ويمكن إضافتها بشكل منفصل من تبويب Authorities.

عند الاستيراد تُخزَّن شهادة الحزمة ومفتاحها الخاص في قاعدة البيانات، ويُشفَّر تخزين المفتاح باستخدام كلمة المرور الرئيسية لـ QGIS. ولن يتطلب الاستخدام اللاحق للحزمة المخزنة في قاعدة البيانات سوى إدخال كلمة المرور الرئيسية.

حزم الهوية الشخصية المكوّنة من مكونات PEM/DER (‎.pem/.der) و PKCS#12 (‎.p12/.pfx) مدعومة. وإذا كان المفتاح أو الحزمة محميًا بعبارة مرور، فستُطلب كلمة المرور للتحقق من المكوّن قبل الاستيراد. وبالمثل، إذا كانت شهادة العميل في الحزمة غير صالحة (مثلًا لم يبدأ تاريخ سريانها بعد أو انقضى)، فلا يمكن استيراد الحزمة.

../../../_images/auth-identity-imports.png

شكل 21.29 استيراد هويات PEM/DER و PKCS#12

21.2.4. التعامل مع الطبقات المعطوبة

أحيانًا لا يعود معرّف إعداد المصادقة المحفوظ مع ملف المشروع صالحًا، ربما لأن قاعدة بيانات المصادقة الحالية تختلف عن تلك التي كانت عند آخر حفظ للمشروع، أو بسبب عدم تطابق بيانات الاعتماد. في هذه الحالات تظهر نافذة الحوار Handle bad layers عند تشغيل QGIS.

../../../_images/auth-handle-bad-layers.png

شكل 21.30 التعامل مع الطبقات المعطوبة باستخدام المصادقة

إذا وُجد أن لمصدر بيانات معرّفَ إعداد مصادقة مرتبطًا به، فستتمكن من تعديله. وسيؤدي ذلك تلقائيًا إلى تعديل نص مصدر البيانات، على نحو يشبه فتح ملف المشروع في محرر نصوص وتعديل النص.

../../../_images/auth-handle-bad-layers-edit.png

شكل 21.31 تعديل معرّف إعداد المصادقة لطبقة معطوبة

21.2.5. تغيير معرّف إعداد المصادقة

ستحتاج أحيانًا إلى تغيير معرّف إعداد المصادقة المرتبط بالوصول إلى مورد ما. وهناك حالات يكون فيها ذلك مفيدًا:

  • لم يعد معرّف إعداد مصادقة المورد صالحًا: قد يحدث هذا عندما تنتقل إلى قاعدة بيانات مصادقة أخرى وتحتاج إلى مواءمة إعداد جديد مع المعرّف المرتبط بالمورد مسبقًا.

  • ملفات المشاريع المشتركة: إذا كنت تنوي مشاركة المشاريع بين المستخدمين، مثلًا عبر خادم ملفات مشترك، يمكنك أن تعرّف مسبقًا معرّفًا من 7 محارف (يحتوي على a-z و/أو 0-9) يرتبط بالمورد. ثم يغيّر كل مستخدم معرّف إعداد المصادقة الخاص ببيانات اعتماده للمورد. وعند فتح المشروع يُعثر على المعرّف في قاعدة بيانات المصادقة، لكن بيانات الاعتماد تختلف من مستخدم لآخر.

../../../_images/auth-change-config-id.png

شكل 21.32 تغيير معرّف إعداد المصادقة لطبقة (حقل النص الأصفر غير المقفل)

تحذير

يُعدّ تغيير معرّف إعداد المصادقة عملية متقدمة، ولا ينبغي القيام به إلا مع إدراك تام لسبب ضرورته. ولهذا يوجد زر قفل يجب النقر عليه لفتح حقل نص المعرّف قبل تعديله.

21.2.6. دعم QGIS Server

عند استخدام ملف مشروع يحتوي على طبقات ذات إعدادات مصادقة أساسًا لخريطة في QGIS Server، تلزم بضع خطوات إعداد إضافية كي يتمكن QGIS من تحميل الموارد:

  • يجب أن تكون قاعدة بيانات المصادقة متاحة

  • يجب أن تكون كلمة المرور الرئيسية لقاعدة بيانات المصادقة متاحة

عند تهيئة نظام المصادقة، سيُنشئ الخادم الملف qgis-auth.db أو يستخدمه في ملف تعريف المستخدم النشط، أو في المجلد المحدد بمتغير البيئة QGIS_AUTH_DB_DIR_PATH. وقد لا يكون لمستخدم الخادم مجلد HOME، وفي هذه الحالة استخدم متغير البيئة لتحديد مجلد يملك فيه مستخدم الخادم صلاحيات القراءة/الكتابة، ولا يقع ضمن المجلدات التي يمكن الوصول إليها عبر الويب.

لتمرير كلمة المرور الرئيسية إلى الخادم، اكتبها في السطر الأول من ملف موجود في مسار على نظام الملفات يمكن لمستخدم عمليات الخادم قراءته، وحدّد هذا المسار باستخدام متغير البيئة QGIS_AUTH_PASSWORD_FILE. واحرص على أن يكون الملف قابلًا للقراءة من قِبل مستخدم عملية الخادم فقط، وألا تخزّنه ضمن المجلدات التي يمكن الوصول إليها عبر الويب.

ملاحظة

سيُزال المتغير QGIS_AUTH_PASSWORD_FILE من بيئة الخادم فور الوصول إليه.

21.2.7. استثناءات خوادم SSL

../../../_images/auth-ssl-config.png

شكل 21.33 استثناء خادم SSL

يمكنك إدارة إعدادات خوادم SSL واستثناءاتها من تبويب Servers في قسم Authentication ضمن نافذة حوار Options في QGIS.

أحيانًا، عند الاتصال بخادم SSL، تقع أخطاء في "المصافحة" (handshake) الخاصة بـ SSL أو في شهادة الخادم. يمكنك تجاهل هذه الأخطاء أو إنشاء إعداد لخادم SSL بوصفه استثناءً. وهذا يشبه سماح متصفحات الويب لك بتجاوز أخطاء SSL، لكن مع تحكم أدق.

تحذير

لا ينبغي لك إنشاء إعداد لخادم SSL ما لم تكن على معرفة تامة بإعداد SSL بالكامل بين الخادم والعميل. وبدلًا من ذلك، أبلغ مسؤول الخادم بالمشكلة.

ملاحظة

تستخدم بعض إعدادات PKI سلسلة ثقة لجهات الإصدار مختلفة تمامًا للتحقق من هويات العملاء عن السلسلة المستخدمة للتحقق من شهادة خادم SSL. وفي هذه الظروف، لن يُصلح أي إعداد تُنشئه للخادم الذي تتصل به بالضرورة مشكلةً في التحقق من هوية العميل الخاصة بك، ولا يستطيع إصلاحها إلا مُصدِر هوية العميل أو مسؤول الخادم.

يمكنك ضبط إعداد خادم SSL مسبقًا بالنقر على الزر symbologyAdd. وبدلًا من ذلك، يمكنك إضافة إعداد عند وقوع خطأ SSL أثناء الاتصال وظهور نافذة الحوار SSL Error (حيث يمكن تجاهل الخطأ مؤقتًا، أو حفظه في قاعدة البيانات وتجاهله):

../../../_images/auth-server-exception.png

شكل 21.34 إضافة الإعداد يدويًا

../../../_images/auth-server-error-add-exception.png

شكل 21.35 إضافة الإعداد أثناء خطأ SSL

بعد حفظ إعداد SSL في قاعدة البيانات، يمكن تعديله أو حذفه.

../../../_images/auth-editor-servers.png

شكل 21.36 إعداد SSL موجود

../../../_images/auth-server-edit.png

شكل 21.37 تعديل إعداد SSL موجود

إذا أردت ضبط إعداد SSL مسبقًا ولم تعمل نافذة حوار الاستيراد مع اتصال خادمك، يمكنك تشغيل اتصال يدويًا عبر Python Console (وحدة تحكم Python) بتنفيذ الشيفرة التالية (استبدل https://bugreports.qt-project.org بعنوان URL لخادمك):

from qgis.PyQt.QtNetwork import QNetworkRequest
from qgis.PyQt.QtCore import QUrl
from qgis.core import QgsNetworkAccessManager

req = QNetworkRequest(QUrl('https://bugreports.qt-project.org'))
reply = QgsNetworkAccessManager.instance().get(req)

سيفتح ذلك نافذة حوار أخطاء SSL إذا وقعت أي أخطاء، ويمكنك فيها اختيار حفظ الإعداد في قاعدة البيانات.