التفويض من تطبيق سطح المكتب (وموقع النطاق الأساسي)

قمت مؤخرًا بإعداد المصادقة الموحدة (SSO) لتمكين المستخدمين من تسجيل الدخول إلى موقع النطاق الرئيسي (mysite.com) باستخدام حساباتهم على منصة Discourse الموجودة في نطاق فرعي (forum.mysite.com). والآن أواجه مشكلة لأنني أرغب أيضًا في تسجيل الدخول إلى Discourse من خلال تطبيق سطح المكتب.

بعض الخلفية: أدير نسخة تجريبية (Beta) برمجية موجهة بدعوة فقط لهذا التطبيق على سطح المكتب، وأود التأكد من أن المستخدم لديه حق الوصول إلى المنتدى قبل تشغيل التطبيق.

في المثال المثالي، سأقوم بإنشاء نموذج بسيط في تطبيق سطح المكتب وإرسال طلب POST إلى المنتدى للتحقق من هوية المستخدم. كنت أفكر في أن يكون Discourse مزوّدًا لبروتوكول OAuth2 ليعمل هذا السيناريو، لكنني أعتقد أنه ليس كذلك، ولم أستطع العثور على طريقة للقيام بما أريده، ربما أنا أغفل شيئًا ما.

أدرك أن هذا حالة استخدام غير معتادة، وأنا جديد على عالم المستخدمين وSSO وOAuth وما إلى ذلك، لذا إذا كنت أغوص في الاتجاه الخاطئ، فسأقدّر جدًا لو ساعدني أحد :blush:

لا يمكن لـ Discourse أن يكون مزود OAuth2، لا (على الرغم من أنني أود رؤية إضافة تنفذ ذلك يومًا ما - فهذا بالتأكيد قابل للتحقيق).

في الوقت الحالي، يمكنك استخدام بروتوكول SSO الخاص بـ Discourse لتنفيذ ذلك. في الواقع، نفعل ذلك بشكل روتيني لأدواتنا الداخلية على discourse.org:

الخيار الآخر المتاح لك، والذي قد يكون أكثر ملاءمة لسيناريو “تطبيق سطح المكتب”، هو استخدام تدفق “مفتاح API للمستخدم”. هذا هو الأسلوب الذي نستخدمه لمصادقة المستخدمين في تطبيقاتنا على Android و iOS:

يبدو أن “مفتاح واجهة برمجة التطبيقات للمستخدم” مثالي!
سأجربه، شكرًا لك!