فشل تسجيل الدخول عبر OIDC عبر تطبيق Discourse لنظام iOS أحيانًا مع ظهور csrf_detected عند إعادة التوجيه

مرحباً،

أنا أستخدم Discourse (2026.2.0-latest (f7cec86997)) مع OpenID Connect (Azure / Entra ID كـ IdP).

لقد لاحظت فشلاً عرضياً في تسجيل الدخول يبدو أنه يحدث فقط عندما يحاول المستخدمون تسجيل الدخول عبر تطبيق Discourse لنظام iOS.

من سجلات الخادم، يبدو التدفق كالتالي:

POST /auth/oidc
GET  /auth/oidc/callback?...state=...
(oidc) فشل المصادقة! csrf_detected

يصل رد الاتصال إلى Discourse، لكن تحقق CSRF/state يفشل، لذلك لا يتم إنشاء أي حساب مستخدم.

تشير السجلات المحيطة إلى أن هذا يحدث في تدفق تسليم التطبيق:

  • application_name=Discourse - iPhone
  • auth_redirect=discourse://auth_redirect

من وجهة نظر المستخدم، لا يظهر شيء واضح - تتم إعادته ببساطة إلى شاشة تسجيل الدخول وغالباً لا يتذكر رؤية خطأ.

لا يبدو أن هذا يحدث عند تسجيل الدخول عبر متصفح Safari أو متصفحات سطح المكتب.

افتراضي هو أن هذا يتعلق بتقسيم ملفات تعريف الارتباط في نظام iOS / التبديل السياقي بين المتصفح داخل التطبيق ورد اتصال التطبيق.

أردت فقط التحقق من صحة ما يلي:

  • ما إذا كان هذا هو السلوك المتوقع مع OIDC + تطبيق iOS
  • وما إذا كانت هناك أي تخفيفات موصى بها بخلاف التأكد من أصل HTTPS قياسي صارم

شكراً - يسعدني تقديم مقتطفات سجلات مجهولة المصدر إذا كانت مفيدة.