انتقل إلى المحتوى

إعداد مجموعة بيانات موصى بها مع التحكم في الوصول

نتائج التعلم

بنهاية هذه الجلسة العملية، ستكون قادرًا على:

  • إنشاء مجموعة بيانات جديدة بسياسة بيانات 'موصى بها'
  • إضافة رمز وصول إلى مجموعة البيانات
  • التحقق من أنه لا يمكن الوصول إلى مجموعة البيانات بدون رمز الوصول
  • إضافة رمز الوصول إلى رؤوس HTTP للوصول إلى مجموعة البيانات

مقدمة

يمكن تكوين مجموعات البيانات التي لا تعتبر 'أساسية' في WMO اختياريًا مع سياسة التحكم في الوصول. يوفر wis2box آلية لإضافة رمز وصول إلى مجموعة بيانات والتي ستمنع المستخدمين من تنزيل البيانات ما لم يقدموا رمز الوصول في رؤوس HTTP.

التحضير

تأكد من أن لديك وصول SSH إلى VM الطالب الخاص بك وأن نموذج wis2box الخاص بك قيد التشغيل.

تأكد من أنك متصل بوسيط MQTT لنموذج wis2box الخاص بك باستخدام MQTT Explorer. يمكنك استخدام بيانات الاعتماد العامة everyone/everyone للاتصال بالوسيط.

تأكد من أن لديك متصفح ويب مفتوح مع wis2box-webapp لنموذجك بالانتقال إلى http://YOUR-HOST/wis2box-webapp.

إنشاء مجموعة بيانات جديدة بسياسة بيانات 'موصى بها'

انتقل إلى صفحة 'محرر مجموعة البيانات' في wis2box-webapp وأنشئ مجموعة بيانات جديدة. حدد نوع البيانات = 'weather/surface-weather-observations/synop'.

create-dataset-recommended

لـ "Centre ID"، استخدم نفس الذي استخدمته في الجلسات العملية السابقة.

انقر على 'CONTINUE To FORM' للمتابعة.

في محرر مجموعة البيانات، حدد سياسة البيانات على 'موصى بها' (لاحظ أن تغيير سياسة البيانات سيحدث تحديثًا لـ 'التسلسل الهرمي للموضوع'). استبدل 'Local ID' المولد تلقائيًا بالاسم الوصفي لمجموعة البيانات، على سبيل المثال، 'recommended-data-with-access-control':

create-dataset-recommended

واصل تعبئة الحقول المطلوبة للخصائص المكانية ومعلومات الاتصال، و'تحقق من النموذج' للبحث عن أي أخطاء.

أخيرًا، قدم مجموعة البيانات، باستخدام رمز المصادقة المُنشأ مسبقًا، وتحقق من أن مجموعة البيانات الجديدة قد تم إنشاؤها في wis2box-webapp.

تحقق من MQTT-explorer لمعرفة أنك تتلقى رسالة إشعار WIS2 تعلن عن سجل بيانات الاكتشاف الجديد على الموضوع origin/a/wis2/<your-centre-id>/metadata.

إضافة رمز وصول إلى مجموعة البيانات

قم بتسجيل الدخول إلى حاوية wis2box-management،

cd ~/wis2box
python3 wis2box-ctl.py login

من سطر الأوامر داخل الحاوية، يمكنك تأمين مجموعة بيانات باستخدام الأمر wis2box auth add-token، باستخدام العلم --metadata-id لتحديد معرف البيانات الوصفية لمجموعة البيانات ورمز الوصول كوسيط.

على سبيل المثال، لإضافة رمز الوصول S3cr3tT0k3n إلى مجموعة البيانات بمعرف البيانات الوصفية urn:wmo:md:not-my-centre:core.surface-based-observations.synop:

wis2box auth add-token --metadata-id urn:wmo:md:not-my-centre:reco.surface-based-observations.synop S3cr3tT0k3n

اخرج من حاوية wis2box-management:

exit

نشر بعض البيانات إلى مجموعة البيانات

انسخ الملف exercise-materials/access-control-exercises/aws-example.csv إلى الدليل المحدد بواسطة WIS2BOX_HOST_DATADIR في wis2box.env:

cp ~/exercise-materials/access-control-exercises/aws-example.csv ~/wis2box-data

ثم استخدم WinSCP أو محرر سطر الأوامر لتعديل الملف aws-example.csv وتحديث معرفات محطات WIGOS في البيانات المدخلة لتتطابق مع المحطات التي لديك في نموذج wis2box الخاص بك.

بعد ذلك، انتقل إلى محرر المحطات في wis2box-webapp. لكل محطة استخدمتها في aws-example.csv، قم بتحديث حقل 'الموضوع' ليتطابق مع 'الموضوع' لمجموعة البيانات التي أنشأتها في التمرين السابق.

سترتبط هذه المحطة الآن بموضوعين، واحد لمجموعة البيانات 'الأساسية' وواحد لمجموعة البيانات 'الموصى بها':

edit-stations-add-topics

ستحتاج إلى استخدام رمزك لـ collections/stations لحفظ بيانات المحطة المحدثة.

بعد ذلك، قم بتسجيل الدخول إلى حاوية wis2box-management:

cd ~/wis2box
python3 wis2box-ctl.py login

من سطر أوامر wis2box يمكننا استيعاب ملف البيانات النموذجي aws-example.csv في مجموعة بيانات محددة على النحو التالي:

wis2box data ingest -p /data/wis2box/aws-example.csv --metadata-id urn:wmo:md:not-my-centre:reco.surface-based-observations.synop

تأكد من تقديم معرف البيانات الوصفية الصحيح لمجموعة البيانات الخاصة بك وتحقق من أنك تتلقى إشعارات بيانات WIS2 في MQTT Explorer، على الموضوع origin/a/wis2/<your-centre-id>/data/recommended/surface-based-observations/synop.

تحقق من الرابط القياسي في رسالة إشعار WIS2 وانسخ/الصق الرابط في المتصفح لمحاولة تنزيل البيانات.

يجب أن ترى خطأ 403 Forbidden.

إضافة رمز الوصول إلى رؤوس HTTP للوصول إلى مجموعة البيانات

لإثبات أن رمز الوصول مطلوب للوصول إلى مجموعة البيانات، سنعيد إنتاج الخطأ الذي رأيته في المتصفح باستخدام وظيفة سطر الأوامر wget.

من سطر الأوامر في VM الطالب الخاص بك، استخدم أمر wget مع الرابط القياسي الذي نسخته من رسالة إشعار WIS2.

wget <canonical-link>

يجب أن ترى أن طلب HTTP يعود بـ 401 Unauthorized وأن البيانات لم يتم تنزيلها.

الآن أضف رمز الوصول إلى رؤوس HTTP للوصول إلى مجموعة البيانات.

wget --header="Authorization: Bearer S3cr3tT0k3n" <canonical-link>

الآن يجب أن يتم تنزيل البيانات بنجاح.

الختام

تهانينا!

في هذه الجلسة العملية، تعلمت كيفية:

  • إنشاء مجموعة بيانات جديدة بسياسة بيانات 'موصى بها'
  • إضافة رمز وصول إلى مجموعة البيانات
  • التحقق من أنه لا يمكن الوصول إلى مجموعة البيانات بدون رمز الوصول
  • إضافة رمز الوصول إلى رؤوس HTTP للوصول إلى مجموعة البيانات