دمج نظام إدارة التعلم Discourse (مصادقة LTI 1.3)

:discourse2: الملخص Discourse LTI يتيح لـ Discourse التكامل مع عدد من أنظمة إدارة التعلم (LMS) عبر معيار LTI 1.3.
:open_book: دليل التثبيت هذا البرنامج المساعد مُضمّن مع نواة Discourse. لا حاجة لتثبيت البرنامج المساعد بشكل منفصل.

ينفذ هذا البرنامج المساعد معيار LTI 1.3 للمصادقة، والذي تدعمه عدد من أنظمة إدارة التعلم. يعمل Discourse كـ “أداة” ضمن معيار LTI. بمجرد التكوين، سيتمكن المستخدمون من النقر على زر/رابط في نظام إدارة التعلم، وسيتم تسجيل الدخول فوراً إلى Discourse.

ستختلف تعليمات التثبيت الدقيقة بناءً على نظام إدارة التعلم الخاص بك. ولكن بشكل عام:

  1. أنشئ إدخالاً جديداً لـ “أداة” في نظام إدارة التعلم الخاص بك
  • إصدار LTI: 1.3
  • عنوان URL للإطلاق: أي عنوان URL على موقعك. سيتم توجيه المستخدمين إلى هنا بعد تسجيل الدخول
  • عنوان URL لطلب المصادقة: https://<your-discourse-site>/auth/lti/initiate
  • عنوان URL لإعادة التوجيه: https://<your-discourse-site>/auth/lti/callback
  • مفتاح العام للأداة - اتركه فارغاً. لا يرسل Discourse أبداً بيانات إلى LMS
  1. في نظام إدارة التعلم الخاص بك، ابحث عن “نقطة نهاية التفويض”، “معرف عميل الأداة”، “معرف إصدار المنصة”، و"المفتاح العام للمنصة"، وأضفها إلى إعدادات الموقع ذات الصلة في Discourse. في Discourse، يمكن العثور على الإعدادات بالبحث عن lti في واجهة إعدادات موقع Discourse.

  2. إذا كان نظام إدارة التعلم الخاص بك يضمن أن رسائل البريد الإلكتروني للمستخدمين قد تم التحقق منها، فعّل إعداد الموقع lti email verified. :warning: تحذير: إذا لم يتحقق نظام إدارة التعلم الخاص بك من رسائل البريد الإلكتروني، فإن تفعيل lti email verified يشكل خطراً على الأمان.

  3. فعّل إعداد الموقع lti enabled

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

ماذا لو كان موقعي يتطلب دعوة؟

إذا كنت تريد أن يمر مستخدموك عبر عملية استرداد دعوة Discourse عند تسجيل الدخول لأول مرة، يمكنك استخدام “الخصائص المخصصة” في LTI لتحديد رابط دعوة Discourse. سيتم توجيه المستخدمين الجدد إلى الدعوة، بينما سيتم إرسال المستخدمين الحاليين إلى عنوان URL للإطلاق العادي. على سبيل المثال:

اسم الخاصية قيمة الخاصية
discourse_invite_link https://discourse.example.com/invites/abcdefg

الأسئلة الشائعة

هل يدعم البرنامج المساعد التكامل مع أنظمة إدارة تعلم متعددة في نفس الوقت؟

  • يدعم البرنامج حالياً نظام إدارة تعلم واحد فقط متصل بموقع. إعداد الموقع LTI client IDs يقبل قيمًا متعددة، ولكن السبب هو أن بعض أنظمة إدارة التعلم تحدد معرف عميل واحد لكل دورة.
23 إعجابًا

هل لديك تعليمات محددة لدمج تكامل LTI مع Canvas LMS؟

إعجاب واحد (1)

ستحتاج إلى المسؤولين لديك للقيام بالتكامل

أنا أحد مسؤولي النظام لدينا وأيضًا مهندس برمجيات. أعتقد أن المشكلة التي أواجهها تتعلق بملفات تعريف الارتباط و"الحالة" بين Discourse و Canvas غير متطابقة.

هذا هو الخطأ الذي أحصل عليه في سجلات Discourse
(lti) فشل المصادقة! state_mismatch: StandardError، معلمة الحالة لم تتطابق مع الجلسة

أعتقد أن هذا الخطأ يتم طرحه من هنا: discourse-lti/lib/discourse_lti/lti_omniauth_strategy.rb at main · discourse/discourse-lti · GitHub

هل لديك أي أفكار أو أشياء يمكنني البحث فيها للمساعدة في تصحيح هذا؟ في هذه الصفحة في وثائق Canvas: Overview of an LTI Launch <a name="launch-overview"></a> - Canvas LMS REST API Documentation

يوجد قسم “الإطلاق بدون ملفات تعريف الارتباط” (Launching without Cookies) أعتقد أنه ذو صلة هنا. لكنني لست متأكدًا بنسبة 100٪. أي مساعدة أو رؤى ستكون محل تقدير كبير.

تمكنت من تشغيل LTI في Canvas مع تحفظ واحد. إليك خطواتي:

  1. إنشاء مفتاح مطور في Canvas. لا يهم ما تضعه في JWK Method و Public JWK

  2. في إعدادات Discourse LTI، قم بتعبئة إعداداتك

  3. بالنسبة للمفتاح العام، يمكنك الانتقال إلى https://\u003cyour_canvas_url\u003e/api/lti/security/jwks و نسخ المفتاح الثاني. ثم يمكنك الذهاب إلى https://8gwifi.org/jwkconvertfunctions.jsp ولصقه هناك وتحويله. ثم انسخ النص بين -----BEGIN/END PUBLIC KEY----- والصقه في Lti platform public key في إعدادات Discourse LTI. ثم احفظ.

هذا هو التحفظ. تتغير مفاتيح JWK التي ينشئها Canvas، على ما يبدو شهريًا. بمجرد تغيير هذا المفتاح الثاني، سيتعطل LTI وستحتاج إلى استبداله بواحد جديد باتباع الخطوة 3.

سيتعين على إضافة Discourse LTI دعم عنوان URL عام لـ JWK لكي تظل محدثة.

إعجابَين (2)

هل يمكنني دمج عدة أنظمة لإدارة التعلم (LMS) مع منصة ديسكورس (Discourse) واحدة؟

:partying_face: هذه الإضافة مضمنة الآن مع نواة Discourse كجزء من Bundling more popular plugins with Discourse core. إذا كنت تستضيف بنفسك وتستخدم الإضافة، فأنت بحاجة إلى إزالتها من app.yml قبل الترقية التالية.

3 إعجابات