21.1. نظرة عامة على نظام المصادقة

../../../_images/auth-system-overview.png

شكل 21.1 بنية نظام المصادقة

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

يخزّن نظام المصادقة إعدادات المصادقة في ملف قاعدة بيانات SQLite موجود افتراضيًا في <profile directory>/qgis-auth.db.

يمكن نقل قاعدة بيانات المصادقة هذه بين تثبيتات QGIS المختلفة دون التأثير في تفضيلات المستخدم الحالية الأخرى في QGIS، لأنها منفصلة تمامًا عن إعدادات QGIS العادية. يُولَّد مُعرّف إعداد (configuration ID، وهو سلسلة عشوائية من 7 محارف أبجدية رقمية) عند تخزين الإعداد في قاعدة البيانات أول مرة. يمثّل هذا المعرّف الإعداد، مما يسمح بتخزينه نصًا صريحًا في مكونات التطبيق (مثل ملفات المشروع أو الإضافات أو الإعدادات) دون كشف بيانات الاعتماد المرتبطة به.

ملاحظة

يمكن تعيين المجلد الأب للملف qgis-auth.db باستخدام متغير البيئة QGIS_AUTH_DB_DIR_PATH، أو من سطر الأوامر عند التشغيل بالخيار --authdbdirectory.

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

يمكن ضبط QGIS لاستخدام قاعدة بيانات مصادقة مخصصة بدلًا من قاعدة SQLite الافتراضية المذكورة أعلاه: إذ يمكن استخدام أي قاعدة بيانات تدعمها وحدة Qt SQL (مثل PostgreSQL وMySQL وغيرهما)، بشرط توفر مشغّل Qt SQL المناسب في النظام.

قد يكون ذلك مفيدًا عندما يريد المستخدم مشاركة قاعدة بيانات المصادقة نفسها بين عدة تثبيتات لـ QGIS، أو عندما يريد استخدام قاعدة بيانات مصادقة غير قاعدة SQLite الافتراضية، أو عندما يستخدم خادم QGIS قاعدة بيانات مصادقة مركزية.

الطريقة الوحيدة لضبط قاعدة بيانات مصادقة مخصصة هي تعيين متغير البيئة QGIS_AUTH_DB_URI إلى عنوان URI للاتصال، ويكون URI بالشكل driver://username:password@hostname:port/database?options.

حيث:
  • driver هو اسم مشغّل Qt SQL المراد استخدامه، مثل QPSQL لـ PostgreSQL، و QMYSQL لـ MySQL، وغيرها.

  • username هو اسم المستخدم المستخدَم للاتصال بقاعدة البيانات

  • password هي كلمة المرور المستخدَمة للاتصال بقاعدة البيانات

  • hostname هو اسم مضيف خادم قاعدة البيانات

  • port هو منفذ خادم قاعدة البيانات

  • database هو اسم قاعدة البيانات المراد استخدامها

  • options هي الخيارات التي تُمرَّر إلى المشغّل، مثل sslmode=require لـ PostgreSQL

ملاحظة

يمكن تحديد المخطط schema في خيارات URI، مثل QPSQL://username:password@hostname:port/database?schema=schema_name

يجب أن تكون قاعدة البيانات موجودة قبل تشغيل QGIS، ويجب أن يمتلك المستخدم الصلاحيات اللازمة للاتصال بها وإنشاء الجداول المطلوبة إن لم تكن موجودة.

تحذير

تُخزَّن كلمة المرور الواردة في URI نصًا صريحًا في متغير البيئة، لذا يُنصح باستخدام مستخدم بلا كلمة مرور أو مستخدم بصلاحيات محدودة للاتصال بقاعدة البيانات.

تحذير

تُعدّ أي قاعدة بيانات غير مبنية على SQLite للقراءة فقط (ويمكن تغيير ذلك عبر إضافات Python عند الحاجة).

هذه ميزة متقدمة صُممت لتسمح لـ QGIS باستخدام قاعدة بيانات مصادقة مخصصة واحدة أو أكثر، بل وحتى تطبيقات Python مخصصة لمخازن بيانات الاعتماد.

صُمم النظام أيضًا ليسمح باستخدام عدة قواعد بيانات للمصادقة، لكن لا توجد حاليًا واجهة للمستخدم لإدارة عدة مخازن لبيانات الاعتماد، لذا يتطلب استخدامها ضبطًا وإدارة يدويين، عادةً من خلال إضافة Python.

21.1.3. كلمة المرور الرئيسية

لتخزين المعلومات الحساسة في قاعدة البيانات أو الوصول إليها، يجب على المستخدم تعريف كلمة مرور رئيسية (master password). تُطلب كلمة مرور رئيسية جديدة ويُتحقق منها عند تخزين أي بيانات مشفرة في قاعدة البيانات أول مرة. وعند الوصول إلى معلومات حساسة، يُطلب من المستخدم إدخال كلمة المرور الرئيسية. ثم تُخزَّن كلمة المرور مؤقتًا لبقية الجلسة (حتى إغلاق التطبيق)، ما لم يختر المستخدم يدويًا إجراءً لمسح قيمتها المخزنة مؤقتًا. وبعض حالات استخدام نظام المصادقة لا تتطلب إدخال كلمة المرور الرئيسية، مثل اختيار إعداد مصادقة موجود، أو تطبيق إعداد على إعداد خادم (كما عند إضافة طبقة WMS).

يمكنك اختيار حفظ كلمة المرور في Wallet/Keyring (المحفظة/سلسلة المفاتيح) على حاسوبك.

../../../_images/auth-password-new_enter.png

شكل 21.2 إدخال كلمة مرور رئيسية جديدة

ملاحظة

يمكن تعيين مسار ملف يحتوي على كلمة المرور الرئيسية باستخدام متغير البيئة QGIS_AUTH_PASSWORD_FILE.

21.1.3.1. إدارة كلمة المرور الرئيسية

بعد تعيين كلمة المرور الرئيسية يمكن إعادة تعيينها؛ وستحتاج إلى كلمة المرور الرئيسية الحالية قبل إعادة التعيين. وخلال هذه العملية يتوفر خيار لإنشاء نسخة احتياطية كاملة من قاعدة البيانات الحالية.

../../../_images/auth-password-reset.png

شكل 21.3 إعادة تعيين كلمة المرور الرئيسية

إذا نسي المستخدم كلمة المرور الرئيسية، فلا توجد طريقة لاستعادتها أو تجاوزها. كما لا توجد وسيلة لاستعادة المعلومات المشفرة دون معرفة كلمة المرور الرئيسية.

إذا أدخل المستخدم كلمة المرور الحالية بشكل خاطئ ثلاث مرات، فستعرض نافذة الحوار مسح قاعدة البيانات.

../../../_images/auth-password-invalid-3times.png

شكل 21.4 طلب كلمة المرور بعد ثلاث محاولات غير صحيحة

21.1.4. إعدادات المصادقة

يمكنك إدارة إعدادات المصادقة من Configurations في تبويب Authentication ضمن نافذة حوار خيارات QGIS (Settings ► Options).

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

شكل 21.5 محرر الإعدادات

لإنشاء إعداد مصادقة جديد:

  1. اضغط symbologyAdd Add a new authentication configuration

  2. أدخل Name (الاسم) وعنوان URL اختياريًا في Resource (المورد)

  3. سيُسند إلى الإعداد ID (معرّف) من سبعة محارف لأغراض التعريف. ويمكن تخصيصه بعد الضغط على الزر locked Unlock to edit ID. انتبه إلى أن تحديث هذا المعرّف قد يعطّل بعض الأمور.

  4. اختر الطريقة المستهدفة واملأ تفاصيل الاتصال المقابلة

  5. عند الانتهاء، انقر Save لحفظ الإعداد. يظهر الإعداد المحفوظ في قائمة إعدادات المصادقة ويمكن استخدامه مع الاتصالات المدعومة.

يمكن لاحقًا تعديل الإعداد المحفوظ باستخدام symbologyEdit Edit selected configuration أو حذفه باستخدام symbologyRemove Delete selected configuration.

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

شكل 21.6 إضافة إعداد من داخل محرر الإعدادات

يمكن إجراء العمليات نفسها لإدارة إعدادات المصادقة (الإضافة والتعديل والحذف) عند ضبط اتصال بخدمة معينة، مثل ضبط اتصال بخدمة OWS. ولهذا توجد أزرار إجراءات داخل محدد الإعدادات لإدارة الإعدادات الموجودة في قاعدة بيانات المصادقة إدارة كاملة. وفي هذه الحالة لا حاجة إلى الذهاب إلى configurations في تبويب Authentication ضمن خيارات QGIS إلا إذا احتجت إلى إدارة أشمل للإعدادات.

../../../_images/add_connection_wms.png

شكل 21.7 نافذة حوار اتصال WMS تعرض عنصر واجهة إعداد المصادقة

عند إنشاء إعداد مصادقة أو تعديله، تكون المعلومات المطلوبة هي الاسم وطريقة المصادقة وأي معلومات أخرى تتطلبها طريقة المصادقة (اطّلع على المزيد حول أنواع المصادقة المتاحة في طرق المصادقة).

21.1.5. طرق المصادقة

توفّر طرقَ المصادقة المتاحة إضافاتٌ مكتوبة بلغة C++ بالطريقة نفسها التي يدعم بها QGIS إضافات مزوّدي البيانات. وترتبط طريقة المصادقة القابلة للاختيار بنوع الوصول المطلوب للمورد/المزوّد، مثل HTTP(S) أو قاعدة بيانات، وبمدى توفر الدعم في كل من شيفرة QGIS والإضافة. لذلك قد لا تنطبق بعض إضافات طرق المصادقة في كل مكان يظهر فيه محدد إعدادات المصادقة. يمكن الوصول إلى قائمة بإضافات طرق المصادقة المتاحة والموارد/المزوّدين المتوافقين معها بالذهاب إلى Settings ► Options، ثم النقر في تبويب Authentication على الزر options Installed Plugins.

../../../_images/auth-method-listing.png

شكل 21.8 قائمة إضافات الطرق المتاحة

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

21.1.5.1. المصادقة بترويسة API

تتيح لك طريقة المصادقة بترويسة API الاتصال بالخدمات التي تتطلب ترويسات HTTP مخصصة، مثل مفاتيح API. فمثلًا، إذا كانت خدمة WMS تتطلب مفتاح API يُرسَل في ترويسة (مثل X-API-KEY)، يمكنك استخدام هذه الطريقة لتوفيره.

يمكنك إضافة ترويسة واحدة أو أكثر بالزر symbologyAdd؛ وأدخل Header Name (اسم الترويسة) و Header Value (قيمة الترويسة) لكل إدخال. استخدم symbologyRemove لحذف الترويسة المحددة، أو الزر Clear لإزالة جميع الإدخالات.

../../../_images/auth-method-api-header.png

شكل 21.9 إعدادات المصادقة بترويسة API

21.1.5.2. المصادقة في AWS S3

تتيح لك طريقة المصادقة AWS S3 الاتصال بموارد Amazon S3 عبر إدخال Name (الاسم) و Resource (المورد) و Username (اسم المستخدم) و Password (كلمة المرور) و Region (المنطقة).

../../../_images/auth-method-awss3.png

شكل 21.10 إعدادات المصادقة AWS S3

21.1.5.3. المصادقة الأساسية (Basic)

تُستخدم طريقة المصادقة الأساسية (Basic) للخدمات التي تتطلب مصادقة HTTP قياسية باستخدام Username (اسم المستخدم) و Password (كلمة المرور) و Realm (النطاق).

../../../_images/auth-method-basic-auth.png

شكل 21.11 إعدادات مصادقة HTTP الأساسية

21.1.5.4. المصادقة برمز ESRI المميز (Token)

تُستخدم طريقة المصادقة برمز ESRI المميز مع خوادم ArcGIS REST التي تتطلب مصادقة قائمة على الرموز المميزة (token).

../../../_images/auth-method-esritoken.png

شكل 21.12 إعدادات المصادقة برمز ESRI المميز

21.1.5.5. المصادقة بشهادة الهوية

تتيح لك طريقة المصادقة بشهادة الهوية الاتصال باستخدام شهادة هوية خاصة بالعميل.

../../../_images/auth-method-identity-cert.png

شكل 21.13 إعدادات المصادقة بشهادة الهوية

21.1.5.6. المصادقة MapTiler HMAC-SHA256

تُستخدم طريقة المصادقة MapTiler HMAC-SHA256 للاتصال بخدمات MapTiler التي تتطلب تفويض HMAC-SHA256.

../../../_images/auth-method-maptiler.png

شكل 21.14 إعدادات المصادقة MapTiler HmacSha256

21.1.5.7. المصادقة OAuth2

تُستخدم طريقة المصادقة OAuth2 للاتصال بالخدمات التي تتطلب تفويض OAuth2 2.0، مما يتيح وصولًا آمنًا باستخدام بيانات اعتماد العميل والمصادقة القائمة على الرموز المميزة (token).

وهي تدعم استخدام localhost مضيفًا لإعادة التوجيه، مما يوفر التوافق مع الخدمات التي لا تقبل إعادة التوجيه إلى http://127.0.0.1 (مثل Microsoft SharePoint).

يتيح خيار متقدم في إعدادات OAuth2، وهو Extra token header(s)، إرفاق رموز مميزة إضافية تُعيدها نقطة نهاية الرموز في OAuth2 على شكل ترويسات لطلبات HTTP(S).

../../../_images/auth-method-oauth2.png

شكل 21.15 إعدادات المصادقة OAuth2

21.1.5.8. المصادقة PKI-Paths

تتيح لك طريقة المصادقة PKI-Paths الاتصال باستخدام ملفات منفصلة للشهادة والمفتاح مخزنة على نظامك.

../../../_images/auth-method-pem-der-paths.png

شكل 21.16 إعدادات المصادقة بمسارات PKI

21.1.5.9. المصادقة PKI-PKCS#12

تتيح لك طريقة المصادقة PKI-PKCS#12 الاتصال باستخدام ملف حزمة واحد يحتوي على الشهادة والمفتاح الخاص معًا، مع عبارة مرور اختيارية للمفتاح.

../../../_images/auth-method-pkcs12-paths.png

شكل 21.17 إعدادات المصادقة بمسارات ملفات PKI PKCS#12

21.1.6. أدوات كلمة المرور الرئيسية وإعدادات المصادقة

في قائمة الخيارات (Settings ► Options) ضمن تبويب Authentication، توجد عدة إجراءات مساعدة لإدارة قاعدة بيانات المصادقة والإعدادات:

../../../_images/auth-editor-configs_utilities-menu.png

شكل 21.18 قائمة الأدوات المساعدة

  • Input master password…: يفتح نافذة حوار إدخال كلمة المرور الرئيسية، بمعزل عن تنفيذ أي أمر على قاعدة بيانات المصادقة

  • Clear cached master password: يلغي تعيين كلمة المرور الرئيسية إذا كانت قد عُيِّنت

  • Reset master password…: يفتح نافذة حوار لتغيير كلمة المرور الرئيسية (يجب معرفة كلمة المرور الحالية) ولأخذ نسخة احتياطية اختيارية من قاعدة البيانات الحالية

  • Clear network authentication access cache: يمسح ذاكرة المصادقة المؤقتة لجميع الاتصالات

  • Automatically clear network authentication access cache on SSL errors: تخزّن ذاكرة الاتصال المؤقتة جميع بيانات المصادقة الخاصة بالاتصالات، حتى عند فشل الاتصال. فإذا غيّرت إعدادات المصادقة أو جهات إصدار الشهادات، فعليك مسح ذاكرة المصادقة المؤقتة أو إعادة تشغيل QGIS. وعند تفعيل هذا الخيار، تُمسح ذاكرة المصادقة المؤقتة تلقائيًا في كل مرة يقع فيها خطأ SSL وتختار فيها إلغاء الاتصال

  • Integrate master password with the Wallet: يضيف كلمة المرور الرئيسية إلى المحفظة/سلسلة المفاتيح (Wallet/Keyring) الشخصية الخاصة بك

  • Clear the master password from the Wallet…: يحذف كلمة المرور الرئيسية من المحفظة/سلسلة المفاتيح (Wallet/Keyring)

  • Enable password helper debug log: يفعّل أداة تصحيح أخطاء تحتوي على جميع معلومات السجل الخاصة بطرق المصادقة

  • Clear cached authentication configurations: يمسح ذاكرة البحث المؤقتة الداخلية للإعدادات، المستخدمة لتسريع اتصالات الشبكة. ولا يمسح ذلك الذاكرة المؤقتة لمدير الوصول إلى الشبكة الأساسي في QGIS، والتي يتطلب مسحها إعادة تشغيل QGIS.

  • Remove all authentication configurations…: يمسح جميع سجلات الإعدادات من قاعدة البيانات، دون إزالة السجلات المخزنة الأخرى.

  • Import authentication configurations from file…: يستورد من ملف .XML تفاصيل إنشاء إعدادات مصادقة مخصصة.

  • Export selected authentication configurations to file…: يصدّر العناصر المحددة إلى ملف .XML يمكن أن يكون مشفرًا.

  • Erase authentication database…: يجدول نسخًا احتياطيًا لقاعدة البيانات الحالية وإعادة بناء كاملة لبنية جداولها. تُجدوَل هذه الإجراءات لوقت لاحق لضمان ألا تقاطع العمليات الأخرى، مثل تحميل المشروع، هذه العملية أو تسبب أخطاء بسبب غياب قاعدة البيانات مؤقتًا.

21.1.7. استخدام إعدادات المصادقة

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

عند استخدام المحدد، تُعرض العبارة No authentication في القائمة المنبثقة إذا لم يُحدَّد شيء، أو لم تتوفر إعدادات للاختيار منها، أو تعذّر العثور في قاعدة البيانات على إعداد أُسند سابقًا. استخدم القائمة المنسدلة لاختيار إعداد مصادقة موجود، أو اضغط symbologyAdd Create a new authentication configuration لإنشاء إعداد يمكنك استخدامه. مزيد من التفاصيل في المصادقة.

../../../_images/authentication-selector-set.png

شكل 21.19 محدد إعدادات المصادقة مع إعداد محدد

21.1.8. روابط Python

تمتلك جميع الأصناف والدوال العامة روابط sip، باستثناء QgsAuthCrypto، لأن إدارة تجزئة كلمة المرور الرئيسية وتشفير قاعدة بيانات المصادقة يجب أن يتولاها التطبيق الرئيسي لا Python.

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