Hola a todos:
Estoy ejecutando Discourse 2026.2.0-latest (26f3e2aa87) (instalación Docker, plantilla nginx predeterminada, sin Cloudflare). Tengo habilitado OpenID Connect (Microsoft Entra / Azure AD).
Cuando un usuario intenta registrarse/iniciar sesión a través de OIDC, Discourse registra un error:
(oidc) Authentication failure! CSRFTokenVerifier::InvalidCSRFToken
En la entrada del registro puedo ver que la solicitud es:
REQUEST_URI: /auth/oidcREQUEST_METHOD: POST- Referer:
/signup
Actualmente, same_site_cookies está configurado como Lax.
Mi teoría de trabajo es que el IdP (Proveedor de Identidad) está devolviendo la respuesta usando response_mode=form_post (POST entre sitios), por lo que con SameSite=Lax es posible que la cookie de sesión no se incluya en la devolución de llamada, lo que provoca que la verificación CSRF de Discourse falle.
Preguntas:
- ¿Establecer
same_site_cookies = Nonees la solución recomendada/soportada para los proveedores OIDC que utilizan devoluciones de llamadaform_post? - Si no es así, ¿hay una forma recomendada de configurar Discourse OIDC (o el IdP) para que la devolución de llamada sea una GET (consulta) en lugar de
form_post, para evitar la necesidad deSameSite=None? - ¿Existen advertencias de seguridad/compatibilidad con
SameSite=Noneespecíficamente para los registros/inicios de sesión OIDC de Discourse?
¡Gracias!