CSRFTokenVerifier::InvalidCSRFToken beim Starten der SAML-Anmeldung auf Discourse 2026.6

CSRFTokenVerifier::InvalidCSRFToken beim Starten der SAML-Anmeldung in Discourse 2026.6

Hallo,

ich versuche, die SAML-Authentifizierung mit ADFS auf einer frischen Discourse-Installation einzurichten.

Umgebung

  • Discourse-Version: 2026.6 (Rails 8.0.5)
  • discourse-saml-Plugin
  • Plugin-Commit:
7d0fe944bf33588e6813bffaef5eb8f34e37d039
  • HTTPS aktiviert
  • Reverse-Proxy / Load Balancer vor Discourse
  • force_https = true

SAML-Konfiguration

Der Metadata-Endpunkt funktioniert korrekt:

https://<hostname>/auth/saml/metadata

Die Metadaten enthalten:

  • EntityID
  • ACS-URL
  • SLO-URL

Das ADFS-Team hat die Metadaten erfolgreich importiert.

Problem

Wenn ich auf Mit SAML anmelden klicke, leitet Discourse nie zu ADFS weiter.

Stattdessen wird sofort folgende Meldung zurückgegeben:

Leider ist die Autorisierung abgelaufen oder Sie haben den Browser gewechselt.

Rails-Protokoll

GET "/session/csrf" gestartet
200 OK abgeschlossen

POST "/auth/saml" gestartet

(saml) Authentifizierungsfehler!
CSRFTokenVerifier::InvalidCSRFToken

GET "/auth/failure?message=csrf_detected&strategy=saml" gestartet

Bereits überprüfte Punkte

  • HTTPS funktioniert
  • Discourse.base_url = https://hostname
  • force_https = true
  • Sitzungs-Cookie (_forum_session) existiert
  • authenticity_token ist im POST /auth/saml enthalten
  • discourse-saml-Plugin ist der neueste Main-Branch
  • Metadata-Endpunkt funktioniert
  • ADFS-Metadaten wurden aus den SP-Metadaten neu erstellt

Browseranfrage

Die POST-Anfrage an /auth/saml enthält:

  • _forum_session-Cookie
  • authenticity_token

Allerdings schlägt die Anfrage sofort mit folgendem Fehler fehl:

CSRFTokenVerifier::InvalidCSRFToken

Es wird nie eine Verbindung zu ADFS hergestellt.

Zusätzliche Informationen

Die Browser-Entwicklertools zeigen:

x-csrf-token: undefined

Könnte dies ein Problem mit Rails 8 / OmniAuth CSRF sein oder ist eine weitere Konfiguration für discourse-saml in aktuellen Discourse-Versionen erforderlich?

Jede Hilfe wäre dankbar.


Discourse.base_url

https://testvknowyeni.vakifbank.intra

SiteSetting.force_https

true

SiteSetting.same_site_cookies

Lax