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

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

تطبق هذه الإضافة معيار LTI 1.3 للمصادقة، وهو معيار مدعوم من قبل عدد من أنظمة إدارة التعلم. يعمل Discourse كأداة “Tool” ضمن معيار 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
22 إعجابًا

هل لديك تعليمات محددة لدمج تكامل 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 قبل الترقية التالية.

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