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

:discourse2: ملخص يسمح Discourse LTI لـ Discourse بالاندماج مع عدد من أنظمة إدارة التعلم عبر معيار 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 أبدًا بيانات إلى نظام إدارة التعلم
  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

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

هل تدعم الإضافة التكامل مع أنظمة LMS متعددة في نفس الوقت؟

  • تدعم الإضافة نظام LMS واحد فقط للاتصال بموقع في الوقت الحالي. يقبل إعداد موقع LTI client IDs قيمًا متعددة، ولكن السبب هو أن بعض أنظمة LMS تضع معرف عميل واحد لكل دورة.
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 قبل الترقية التالية.

إعجابَين (2)