Olá a todos,
Estou executando o Discourse 2026.2.0-latest (26f3e2aa87) (instalação Docker, template nginx padrão, sem Cloudflare). Tenho o OpenID Connect habilitado (Microsoft Entra / Azure AD).
Quando um usuário tenta se registrar/fazer login via OIDC, o Discourse registra um erro:
(oidc) Authentication failure! CSRFTokenVerifier::InvalidCSRFToken
Na entrada do log, posso ver que a requisição é:
REQUEST_URI: /auth/oidcREQUEST_METHOD: POST- Referrer:
/signup
same_site_cookies está atualmente definido como Lax.
Minha teoria de trabalho é que o IdP (Provedor de Identidade) está retornando usando response_mode=form_post (POST entre sites), então com SameSite=Lax o cookie de sessão pode não ser incluído no callback, fazendo com que a verificação CSRF do Discourse falhe.
Perguntas:
- Definir
same_site_cookies = Noneé a correção recomendada/suportada para provedores OIDC que usam callbacksform_post? - Se não, existe uma maneira recomendada de configurar o Discourse OIDC (ou o IdP) para que o callback seja um GET (query) em vez de
form_post, para evitar a necessidade deSameSite=None? - Existem quaisquer ressalvas de segurança/compatibilidade com
SameSite=Noneespecificamente para cadastros/logins OIDC no Discourse?
Obrigado!