21.1. نظرة عامة على نظام المصادقة¶
شكل 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 (المحفظة/سلسلة المفاتيح) على حاسوبك.
شكل 21.2 إدخال كلمة مرور رئيسية جديدة¶
ملاحظة
يمكن تعيين مسار ملف يحتوي على كلمة المرور الرئيسية باستخدام متغير البيئة QGIS_AUTH_PASSWORD_FILE.
21.1.3.1. إدارة كلمة المرور الرئيسية¶
بعد تعيين كلمة المرور الرئيسية يمكن إعادة تعيينها؛ وستحتاج إلى كلمة المرور الرئيسية الحالية قبل إعادة التعيين. وخلال هذه العملية يتوفر خيار لإنشاء نسخة احتياطية كاملة من قاعدة البيانات الحالية.
شكل 21.3 إعادة تعيين كلمة المرور الرئيسية¶
إذا نسي المستخدم كلمة المرور الرئيسية، فلا توجد طريقة لاستعادتها أو تجاوزها. كما لا توجد وسيلة لاستعادة المعلومات المشفرة دون معرفة كلمة المرور الرئيسية.
إذا أدخل المستخدم كلمة المرور الحالية بشكل خاطئ ثلاث مرات، فستعرض نافذة الحوار مسح قاعدة البيانات.
شكل 21.4 طلب كلمة المرور بعد ثلاث محاولات غير صحيحة¶
21.1.4. إعدادات المصادقة¶
يمكنك إدارة إعدادات المصادقة من Configurations في تبويب Authentication ضمن نافذة حوار خيارات QGIS ().
شكل 21.5 محرر الإعدادات¶
لإنشاء إعداد مصادقة جديد:
أدخل Name (الاسم) وعنوان URL اختياريًا في Resource (المورد)
سيُسند إلى الإعداد ID (معرّف) من سبعة محارف لأغراض التعريف. ويمكن تخصيصه بعد الضغط على الزر
Unlock to edit ID. انتبه إلى أن تحديث هذا المعرّف قد يعطّل بعض الأمور.اختر الطريقة المستهدفة واملأ تفاصيل الاتصال المقابلة
عند الانتهاء، انقر Save لحفظ الإعداد. يظهر الإعداد المحفوظ في قائمة إعدادات المصادقة ويمكن استخدامه مع الاتصالات المدعومة.
يمكن لاحقًا تعديل الإعداد المحفوظ باستخدام
Edit selected configuration أو حذفه باستخدام
Delete selected configuration.
شكل 21.6 إضافة إعداد من داخل محرر الإعدادات¶
يمكن إجراء العمليات نفسها لإدارة إعدادات المصادقة (الإضافة والتعديل والحذف) عند ضبط اتصال بخدمة معينة، مثل ضبط اتصال بخدمة OWS. ولهذا توجد أزرار إجراءات داخل محدد الإعدادات لإدارة الإعدادات الموجودة في قاعدة بيانات المصادقة إدارة كاملة. وفي هذه الحالة لا حاجة إلى الذهاب إلى configurations في تبويب Authentication ضمن خيارات QGIS إلا إذا احتجت إلى إدارة أشمل للإعدادات.
شكل 21.7 نافذة حوار اتصال WMS تعرض عنصر واجهة إعداد المصادقة¶
عند إنشاء إعداد مصادقة أو تعديله، تكون المعلومات المطلوبة هي الاسم وطريقة المصادقة وأي معلومات أخرى تتطلبها طريقة المصادقة (اطّلع على المزيد حول أنواع المصادقة المتاحة في طرق المصادقة).
21.1.5. طرق المصادقة¶
توفّر طرقَ المصادقة المتاحة إضافاتٌ مكتوبة بلغة C++ بالطريقة نفسها التي يدعم بها QGIS إضافات مزوّدي البيانات. وترتبط طريقة المصادقة القابلة للاختيار بنوع الوصول المطلوب للمورد/المزوّد، مثل HTTP(S) أو قاعدة بيانات، وبمدى توفر الدعم في كل من شيفرة QGIS والإضافة. لذلك قد لا تنطبق بعض إضافات طرق المصادقة في كل مكان يظهر فيه محدد إعدادات المصادقة. يمكن الوصول إلى قائمة بإضافات طرق المصادقة المتاحة والموارد/المزوّدين المتوافقين معها بالذهاب إلى ، ثم النقر في تبويب Authentication على الزر
Installed Plugins.
شكل 21.8 قائمة إضافات الطرق المتاحة¶
يمكن إنشاء إضافات لطرق مصادقة جديدة لا تتطلب إعادة ترجمة QGIS. وبما أن دعم الإضافات حاليًا مقتصر على C++، فسيلزم إعادة تشغيل QGIS لتصبح الإضافة الجديدة المضافة متاحة للمستخدم. تأكد من ترجمة إضافتك مقابل إصدار QGIS المستهدف نفسه إذا كنت تنوي إضافتها إلى تثبيت قائم.
21.1.5.1. المصادقة بترويسة API¶
تتيح لك طريقة المصادقة بترويسة API الاتصال بالخدمات التي تتطلب ترويسات HTTP مخصصة، مثل مفاتيح API. فمثلًا، إذا كانت خدمة WMS تتطلب مفتاح API يُرسَل في ترويسة (مثل X-API-KEY)، يمكنك استخدام هذه الطريقة لتوفيره.
يمكنك إضافة ترويسة واحدة أو أكثر بالزر
؛ وأدخل Header Name (اسم الترويسة) و Header Value (قيمة الترويسة) لكل إدخال. استخدم
لحذف الترويسة المحددة، أو الزر Clear لإزالة جميع الإدخالات.
شكل 21.9 إعدادات المصادقة بترويسة API¶
21.1.5.2. المصادقة في AWS S3¶
تتيح لك طريقة المصادقة AWS S3 الاتصال بموارد Amazon S3 عبر إدخال Name (الاسم) و Resource (المورد) و Username (اسم المستخدم) و Password (كلمة المرور) و Region (المنطقة).
شكل 21.10 إعدادات المصادقة AWS S3¶
21.1.5.3. المصادقة الأساسية (Basic)¶
تُستخدم طريقة المصادقة الأساسية (Basic) للخدمات التي تتطلب مصادقة HTTP قياسية باستخدام Username (اسم المستخدم) و Password (كلمة المرور) و Realm (النطاق).
شكل 21.11 إعدادات مصادقة HTTP الأساسية¶
21.1.5.4. المصادقة برمز ESRI المميز (Token)¶
تُستخدم طريقة المصادقة برمز ESRI المميز مع خوادم ArcGIS REST التي تتطلب مصادقة قائمة على الرموز المميزة (token).
شكل 21.12 إعدادات المصادقة برمز ESRI المميز¶
21.1.5.5. المصادقة بشهادة الهوية¶
تتيح لك طريقة المصادقة بشهادة الهوية الاتصال باستخدام شهادة هوية خاصة بالعميل.
شكل 21.13 إعدادات المصادقة بشهادة الهوية¶
21.1.5.6. المصادقة MapTiler HMAC-SHA256¶
تُستخدم طريقة المصادقة MapTiler HMAC-SHA256 للاتصال بخدمات MapTiler التي تتطلب تفويض HMAC-SHA256.
شكل 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).
شكل 21.15 إعدادات المصادقة OAuth2¶
21.1.5.8. المصادقة PKI-Paths¶
تتيح لك طريقة المصادقة PKI-Paths الاتصال باستخدام ملفات منفصلة للشهادة والمفتاح مخزنة على نظامك.
شكل 21.16 إعدادات المصادقة بمسارات PKI¶
21.1.5.9. المصادقة PKI-PKCS#12¶
تتيح لك طريقة المصادقة PKI-PKCS#12 الاتصال باستخدام ملف حزمة واحد يحتوي على الشهادة والمفتاح الخاص معًا، مع عبارة مرور اختيارية للمفتاح.
شكل 21.17 إعدادات المصادقة بمسارات ملفات PKI PKCS#12¶
21.1.6. أدوات كلمة المرور الرئيسية وإعدادات المصادقة¶
في قائمة الخيارات () ضمن تبويب Authentication، توجد عدة إجراءات مساعدة لإدارة قاعدة بيانات المصادقة والإعدادات:
شكل 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 في القائمة المنبثقة إذا لم يُحدَّد شيء، أو لم تتوفر إعدادات للاختيار منها، أو تعذّر العثور في قاعدة البيانات على إعداد أُسند سابقًا. استخدم القائمة المنسدلة لاختيار إعداد مصادقة موجود، أو اضغط
Create a new authentication configuration لإنشاء إعداد يمكنك استخدامه. مزيد من التفاصيل في المصادقة.
شكل 21.19 محدد إعدادات المصادقة مع إعداد محدد¶
21.1.8. روابط Python¶
تمتلك جميع الأصناف والدوال العامة روابط sip، باستثناء QgsAuthCrypto، لأن إدارة تجزئة كلمة المرور الرئيسية وتشفير قاعدة بيانات المصادقة يجب أن يتولاها التطبيق الرئيسي لا Python.
بمجرد إدخال كلمة المرور الرئيسية، تصبح واجهة API مفتوحة للوصول إلى إعدادات المصادقة في قاعدة بيانات المصادقة، على نحو مشابه لطريقة عمل Firefox. ومع ذلك، لم يُعرَّف أي حاجز يمنع وصول PyQGIS. وقد يؤدي ذلك إلى مشكلات إذا نزّل المستخدم أو ثبّت إضافة PyQGIS خبيثة أو تطبيقًا مستقلًا يتمكن من الوصول إلى بيانات اعتماد المصادقة.