Hallo,
ich betreibe Discourse (2026.2.0-latest (f7cec86997)) mit OpenID Connect (Azure / Entra ID als IdP).
Mir ist ein gelegentliches Anmeldeversagen aufgefallen, das anscheinend nur auftritt, wenn Benutzer versuchen, sich über die Discourse iOS App anzumelden.
Aus den Serverprotokollen sieht der Ablauf wie folgt aus:
POST /auth/oidc
GET /auth/oidc/callback?...state=...
(oidc) Authentication failure! csrf_detected
Der Callback erreicht Discourse zwar, aber die CSRF-/State-Validierung schlägt fehl, sodass kein Benutzerkonto erstellt wird.
Die umgebenden Protokolle deuten darauf hin, dass dies im App-Handoff-Fluss geschieht:
application_name=Discourse - iPhoneauth_redirect=discourse://auth_redirect
Aus Benutzersicht erscheint nichts Offensichtliches – sie werden einfach zum Anmeldebildschirm zurückgeleitet und erinnern sich oft nicht daran, eine Fehlermeldung gesehen zu haben.
Dies scheint bei der Anmeldung über Safari oder Desktop-Browser nicht aufzutreten.
Ich gehe davon aus, dass dies mit der iOS-Cookie-Partitionierung / dem Kontextwechsel zwischen dem In-App-Browser und dem App-Callback zusammenhängt.
Ich wollte nur kurz überprüfen:
- ob dies das erwartete Verhalten bei OIDC + der iOS App ist
- und ob es empfohlene Abhilfemaßnahmen gibt, abgesehen davon, sicherzustellen, dass eine strikte kanonische HTTPS-Origin verwendet wird.
Danke – ich kann gerne anonymisierte Protokollausschnitte zur Verfügung stellen, falls dies hilfreich ist.