لقد تمكنت من جعله يعمل، وتمكنت ليس فقط من تسجيل الدخول إلى مثيلي Discourse باستخدام بيانات اعتماد Keycloak الخاصة بي، ولكن أيضًا ربط حساب Discourse موجود مسبقًا بالحساب من OIDC. لسوء الحظ، ارتكبت خطأ عند إعداد حاوية Keycloak وانتهى بي الأمر بفقدان تكوينها وقاعدة بياناتها.
لقد قمت بإعادة تثبيت Keycloak (بشكل صحيح هذه المرة!) وأعدت تكوين Discourse لاستخدام معرف العميل الجديد، ولكن بينما يبدو أن التكامل يعمل (تمكين السجلات في /logs يظهر أن المصادقة قد نجحت بالفعل)، لا يبدو أنني أستطيع ربط حسابات Discourse بحسابات OIDC بعد الآن.
عندما أحاول تسجيل الدخول إلى Discourse، أستخدم OIDC، ويتم الترحيب بي من خلال واجهة المستخدم للحساب الجديد، ثم أنقر على الرابط للربط بحساب موجود مسبقًا؛ أقوم بتسجيل الدخول، ويتم إعادة توجيهي إلى Discourse، وإذا قمت بتسجيل الخروج وتسجيل الدخول مرة أخرى، أرى نفس واجهة المستخدم للحساب الجديد.
لقد استخدمت Data Explorer للبحث عن الارتباطات، ويظهر المستخدم الخاص بي كـ NULL؛ معرف المزود يطابق معرف المستخدم في Keycloak، مع ذلك.
لدي خيار “السماح بتغيير ارتباط OpenID Connect” قيد التشغيل.
أتخيل أن Discourse لا يزال متعلقًا بما كان موجودًا من تثبيت Keycloak السابق الخاص بي، وأن مجرد تغيير معرف العميل الجديد لا يكفي.
هل هناك شيء آخر يجب أن أبحث فيه قد أكون قد أغفلته؟
لم أكن أستخدم نفس عنوان البريد الإلكتروني بين الحسابين، ولكني قمت بتغييره في Keycloak ليتطابق مع المستخدم في Discourse، ولا يزال الوضع كما هو. الاستجابة في Data Explorer هي نفسها (مستخدم “NULL”).
حاولت إنشاء مستخدم جديد تمامًا، وأحصل على خطأ “اسم مستخدم أو بريد إلكتروني أو كلمة مرور غير صالحة”، على الرغم من أن اسم المستخدم جيد ومتاح، والبريد الإلكتروني صالح، وتم إنشاء كلمة المرور بواسطة مدير كلمات المرور الخاص بي. هذا على الأرجح غير مرتبط ولكنه شيء آخر أحتاج إلى معرفة سبب حدوثه.
لدي نفس المشكلة هنا. لدي Nextcloud كمزود OIDC، لكن هذا على الأرجح لا علاقة له بالمشكلة.
يمكنني تسجيل الدخول باستخدام حساب Nextcloud. ثم يُعرض عليّ، كما هو موصوف أعلاه، خيار إنشاء حساب جديد أو تسجيل الدخول بحساب موجود. لا يتم ربط الحساب الموجود عبر عنوان البريد الإلكتروني.
عند اختيار “تسجيل جديد”، تُعرض لي فورًا الصفحة الرئيسية في حالة عدم تسجيل الدخول، وأضطر إلى تسجيل الدخول مرة أخرى. لا تظهر أي رسالة خطأ.
الأمر غريب بالفعل.
يعمل كل شيء بشكل جيد إذا سجلت الدخول بحساب OIDC لا يوجد له حساب Discourse مطابق. في هذه الحالة، يتم إنشاء حساب جديد مباشرةً، ويتم أيضًا عرض الحساب المرتبط في إعدادات المستخدم.
ربما يكون لدى شخص آخر فكرة حول ما أفعله بشكل خاطئ، أو يتضح أخيرًا أن هناك خللًا تقنيًا هنا.
تمكنت من معرفة سبب عدم عمل التخصيص. إذا كان على أي شخص حل هذه المشكلة أيضًا، فإليك حلي.
عنوان البريد الإلكتروني المُرسَل لا يُشار إليه افتراضيًا على أنه “مُتحقق منه”. ولتحقيق ذلك، قمت في منطقة الإدارة تحت مزوّد OpenID Connect → الإعدادات بتعيين قيمة “تحديد التحقق من عنوان البريد الإلكتروني في الرمز” إلى “ضبط على التحقق دائمًا”.