CSRFTokenVerifier::InvalidCSRFToken durante l'inizializzazione del login SAML su Discourse 2026.6

CSRFTokenVerifier::InvalidCSRFToken durante l’inizializzazione del login SAML su Discourse 2026.6
Ciao,

Sto cercando di configurare l’autenticazione SAML con ADFS su una nuova installazione di Discourse.

Ambiente

  • Versione Discourse: 2026.6 (Rails 8.0.5)
  • Plugin discourse-saml
  • Commit del plugin:
7d0fe944bf33588e6813bffaef5eb8f34e37d039
  • HTTPS abilitato
  • Proxy inverso / Load Balancer davanti a Discourse
  • force_https = true

Configurazione SAML

L’endpoint dei metadati funziona correttamente:

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

I metadati contengono:

  • EntityID
  • URL ACS
  • URL SLO

Il team ADFS ha importato con successo i metadati.

Problema

Quando si fa clic su Accedi con SAML, Discourse non reindirizza mai ad ADFS.

Invece, restituisce immediatamente:

Spiacenti, l'autorizzazione è scaduta o hai cambiato browser.

Log Rails

Iniziata GET "/session/csrf"
Completato 200 OK

Iniziata POST "/auth/saml"

(saml) Autenticazione fallita!
CSRFTokenVerifier::InvalidCSRFToken

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

Verifiche già effettuate

  • HTTPS funziona
  • Discourse.base_url = https://hostname
  • force_https = true
  • Cookie di sessione (_forum_session) presente
  • authenticity_token incluso in POST /auth/saml
  • Plugin discourse-saml sulla branch main più recente
  • Endpoint dei metadati funzionante
  • Metadati ADFS ricreati dai metadati SP

Richiesta del browser

POST /auth/saml contiene:

  • Cookie _forum_session
  • authenticity_token

Tuttavia, la richiesta fallisce immediatamente con:

CSRFTokenVerifier::InvalidCSRFToken

Non raggiunge mai ADFS.

Informazioni aggiuntive

DevTools del browser mostra:

x-csrf-token: undefined

Potrebbe trattarsi di un problema CSRF di Rails 8 / OmniAuth, o è necessaria un’altra configurazione per discourse-saml nelle versioni recenti di Discourse?

Qualsiasi suggerimento sarebbe apprezzato.


Discourse.base_url

https://testvknowyeni.vakifbank.intra

SiteSetting.force_https

true

SiteSetting.same_site_cookies

Lax