Login OIDC via app Discourse iOS falha ocasionalmente com csrf_detected no callback

Olá,

Estou executando o Discourse (2026.2.0-latest (f7cec86997)) com OpenID Connect (Azure / Entra ID como IdP).

Notei uma falha ocasional no login que parece ocorrer apenas quando os usuários tentam entrar pelo aplicativo Discourse para iOS.

Nos logs do servidor, o fluxo se parece com:

POST /auth/oidc
GET  /auth/oidc/callback?...state=...
(oidc) Falha de autenticação! csrf_detected

O callback chega ao Discourse, mas a validação CSRF/state falha, então nenhuma conta de usuário é criada.

Os logs ao redor sugerem que isso está acontecendo no fluxo de transferência do aplicativo:

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

Do ponto de vista do usuário, nada óbvio aparece - eles são simplesmente retornados para a tela de login e muitas vezes não se lembram de ter visto um erro.

Isso não parece ocorrer ao fazer login via Safari ou navegadores de desktop.

Minha suposição é que isso está relacionado ao particionamento de cookies do iOS / troca de contexto entre o navegador no aplicativo e o callback do aplicativo.

Eu só queria verificar:

  • se este é o comportamento esperado com OIDC + o aplicativo iOS
  • e se há alguma mitigação recomendada além de garantir uma origem HTTPS canônica estrita

Obrigado - fico feliz em fornecer trechos de log anonimizados, se for útil.