لقد كنت أحاول حل هذه المشكلة منذ فترة ولم أتمكن من حلها. أحاول دمج discourse مع إعداد Keycloak للمصادقة باستخدام المكون الإضافي discourse-openid-connect. أقوم بتشغيل discourse-docker الإصدار 3.0.1. حاليًا، عند النقر فوق زر تسجيل الدخول OpenID connect، تظهر هذه الرسالة في discourse: “تعذر جلب التكوين من موفر الهوية. يرجى المحاولة مرة أخرى”.
أقوم بالترحيل إلى إعداد discourse جديد، والشيء المضحك هو أن discourse قادر على الوصول إلى شاشة تسجيل الدخول Keycloak باستخدام مثيل Keycloak القديم الخاص بي بشكل جيد، ولكنه لا يستطيع ذلك مع مثيلي الجديد. هذا يعني أن ما يلي يجب أن يكون صحيحًا:
- إعدادات المكون الإضافي openid-connect صحيحة بالتأكيد (منسوخة من discourse القديم)
- إعدادات Keycloak لعميل discourse صحيحة بالتأكيد (منسوخة من discourse القديم)
- لا توجد مشكلة في الشبكة
- لا يوجد جدار حماية أو أي شيء يحظر حركة المرور
لقد وجدت أيضًا أنه يمكنني بنجاح إجراء curl لعنوان URL لوثيقة الاكتشاف لـ Keycloak من مثيل discourse بشكل جيد. إصدار Keycloak هو نفسه الإصدار القديم، وتعمل مصادقة Keycloak بشكل جيد للأدوات الأخرى الموجودة في نفس منطقة AWS ونفس المنطقة المتوفرة مثل discourse. فيما يلي الخطأ من السجلات عندما أحاول تسجيل الدخول باستخدام openid-connect.
لقد أجريت بحثًا واختبرت الكثير ولم ينجح أي شيء. يبدو الخطأ المتعلق بعناوين IP المحظورة عامًا جدًا، وأنا متأكد تمامًا من عدم وجود جدار حماية يحظر أي شيء، خاصة وأنني أستطيع إجراء curl لوثيقة الاكتشاف بشكل جيد. لا يمكنني التفكير إلا في أن discourse قد يحاول سحب المستند من ذاكرة التخزين المؤقت في مكان ما أو لا يصل إلى عنوان URL الصحيح للرمز المميز، ولكنني لا أعرف ذلك. أي مساعدة ستكون موضع تقدير.
بدأ GET "/session/csrf" من <my_ip> في 2023-02-01 18:02:24 +0000
معالجة بواسطة SessionController#csrf بصيغة JSON
اكتمل 200 OK في 2ms (Views: 0.2ms | ActiveRecord: 0.0ms | Allocations: 406)
بدأ POST "/auth/oidc" من 10.158.133.85 في 2023-02-01 18:02:24 +0000
(oidc) تم اكتشاف نقطة نهاية الإعداد، ويتم تشغيلها الآن.
سجل OIDC: جلب وثيقة الاكتشاف من https://<keycloak_URL>.com/auth/realms/<my_realm>/.well-known/openid-configuration
سجل OIDC: جلب وثيقة الاكتشاف أثار خطأ Faraday::ConnectionFailed FinalDestination: تم حظر جميع عناوين IP التي تم حلها
سجل OIDC: وثيقة الاكتشاف هي
---
(oidc) بدأت مرحلة الطلب.
(oidc) فشل المصادقة! openid_connect_discovery_error: OmniAuth::OpenIDConnect::DiscoveryError, وثيقة الاكتشاف مفقودة
بدأ GET "/auth/failure?message=openid_connect_discovery_error&strategy=oidc" من <my_ip> في 2023-02-01 18:02:24 +0000
معالجة بواسطة Users::OmniauthCallbacksController#failure بصيغة HTML
المعلمات: {"message"=>"openid_connect_discovery_error", "strategy"=>"oidc"}
تم عرض users/omniauth_callbacks/failure.html.erb ضمن layouts/no_ember (المدة: 0.1ms | التخصيصات: 17)
تم عرض التخطيط layouts/no_ember.html.erb (المدة: 17.3ms | التخصيصات: 5113)
اكتمل 200 OK في 24ms (Views: 19.7ms | ActiveRecord: 0.0ms | Allocations: 6610)