Accesso OIDC tramite app iOS di Discourse fallisce occasionalmente con csrf_detected al callback

Ciao,

Sto eseguendo Discourse (2026.2.0-latest (f7cec86997)) con OpenID Connect (Azure / Entra ID come IdP).

Ho notato un fallimento occasionale nell’accesso che sembra verificarsi solo quando gli utenti tentano di accedere tramite l’app Discourse per iOS.

Dai log del server, il flusso appare così:

POST /auth/oidc
GET  /auth/oidc/callback?...state=...
(oidc) Authentication failure! csrf_detected

Il callback raggiunge Discourse, ma la validazione CSRF/state fallisce, quindi nessun account utente viene creato.

I log circostanti suggeriscono che ciò stia accadendo nel flusso di passaggio dell’applicazione:

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

Dal punto di vista dell’utente, non appare nulla di ovvio: vengono semplicemente reindirizzati alla schermata di accesso e spesso non ricordano di aver visto un errore.

Questo non sembra verificarsi durante l’accesso tramite Safari o browser desktop.

La mia ipotesi è che ciò sia correlato al partizionamento dei cookie di iOS / al cambio di contesto tra il browser in-app e il callback dell’app.

Volevo solo verificare:

  • se questo è un comportamento previsto con OIDC + l’app iOS
  • e se ci sono mitigazioni consigliate oltre ad assicurare un’origine HTTPS canonica rigorosa

Grazie - sono lieto di fornire frammenti di log anonimizzati se utili.