لقد تابعت موضوع SSO الرسمي لكن يبدو أنني لا أستطيع جعل صفحة تسجيل الدخول العالمية تظهر.
عندما قمت فقط بتفعيل oAuth، عمل الأمر. لقد قمت بتسجيل الدخول باستخدام زر “مع Auth0” دون أي مشكلة. أما عند تفعيل SSO، فقد تم إعادة التوجيه إلى صفحة Auth0 لكنها أظهرت صفحة خطأ تحتوي على " invalid_request : معلمة غير صالحة: يجب أن يكون client_id نصًا". أول ما خطر ببالي هو أنني أدخلت “sso_url” خاطئًا. بصراحة، لا أعرف حقًا ما الذي يجب أن يكون موجودًا هناك، لذا وضعت “https://.auth0.com/authorize”.
هذا منطقي. إن نظامي Auth0 و Discourse SSO منفصلان تمامًا. لا يمكنك تفعيلهما معًا على موقعك. يبدو أن كل ما تحتاج إليه هو التأكد من إعداد Auth0 بشكل صحيح على موقعك.
بصفتك مستخدمًا جديدًا في إعداد Discourse، أتفهم حيرتك في فهم ميزة SSO. هناك موضوع مخصص لها، لكنه لم يوضح الفرق بشكل كافٍ، خاصةً أن بعض إعدادات SSO مخصصة لاستخدام Discourse كمزود SSO (شبيهًا بكيفية رغبتك في استخدام Auth0).
لاستخدام مزود هوية خارجي لميزة SSO، تحتاج إلى خدمة وسيطة، مثل discourse-sso-oidc-bridge. لقد نجحت اليوم في تشغيله باستخدام Keycloak بدلاً من Auth0، ويجب أن يكون الأمر مماثلًا تقريبًا.
إذا كنت ترغب فقط في استخدام Auth0 مثل تسجيل الدخول عبر الشبكات الاجتماعية مثل Google/Facebook/Github، فمن المرجح أنك تريد استخدام discourse-openid-connect plugin. ستحتاج إلى تثبيته واستخدام الإعدادات التي يوفرها. لقد جربته سابقًا مع Keycloak قبل ميزة SSO المنفصلة. لا يحتاج إلى جسر وسيط، وقد يمنحك ما تريد (طالما أنك لا تريد تفاصيل في Discourse يتم تحديثها/مزامنتها عند تسجيل دخول المستخدم مرة أخرى، وهو الوقت الوحيد الذي تقوم فيه Discourse بمزامنة تفاصيل الحساب).
سيُطلب من المستخدمين إنشاء حساب، ولكن سيتم ملء جميع حقول النموذج تلقائيًا من مزود المصادقة الخاص بك. تهدف تحديثات مستقبلية للإضافة إلى تخطي هذه الخطوة وإنشاء الحساب مباشرةً (بشرط أن تكون خيار تسجيل الدخول الوحيد) كما تفعل ميزة SSO الحالية.