Hallo zusammen,
ich verwende Discourse 2026.2.0-latest (26f3e2aa87) (Docker-Installation, Standard-Nginx-Vorlage, kein Cloudflare). Ich habe OpenID Connect (Microsoft Entra / Azure AD) aktiviert.
Wenn ein Benutzer versucht, sich über OIDC zu registrieren/anzumelden, protokolliert Discourse einen Fehler:
(oidc) Authentication failure! CSRFTokenVerifier::InvalidCSRFToken
Im Log-Eintrag sehe ich, dass die Anfrage lautet:
REQUEST_URI: /auth/oidcREQUEST_METHOD: POST- Referrer:
/signup
same_site_cookies ist derzeit auf Lax eingestellt.
Meine Arbeitshypothese ist, dass der IdP mit response_mode=form_post zurückkehrt (Cross-Site-POST). Daher wird bei SameSite=Lax der Session-Cookie möglicherweise nicht beim Callback mitgesendet, was dazu führt, dass die CSRF-Überprüfung von Discourse fehlschlägt.
Fragen:
- Ist das Setzen von
same_site_cookies = Nonedie empfohlene/unterstützte Lösung für OIDC-Anbieter, dieform_post-Callbacks verwenden? - Wenn nicht, gibt es eine empfohlene Methode, Discourse OIDC (oder den IdP) so zu konfigurieren, dass der Callback ein GET (Abfrage) anstelle von
form_postist, umSameSite=Nonezu vermeiden? - Gibt es spezifische Sicherheits-/Kompatibilitätsbedenken bei
SameSite=Nonefür Discourse OIDC-Anmeldungen/Logins?
Danke!