안녕하세요,
현재 Discourse 2026.2.0-latest(26f3e2aa87) 버전을 사용 중입니다 (Docker 설치, 기본 nginx 템플릿, Cloudflare 미사용). OpenID Connect(Microsoft Entra / Azure AD)를 활성화해 두었습니다.
사용자가 OIDC를 통해 가입/로그인을 시도할 때 Discourse에 다음과 같은 오류가 기록됩니다:
(oidc) Authentication failure! CSRFTokenVerifier::InvalidCSRFToken
로그 항목에서 요청 정보가 다음과 같음을 확인할 수 있습니다:
REQUEST_URI: /auth/oidcREQUEST_METHOD: POST- Referrer:
/signup
same_site_cookies 값은 현재 Lax로 설정되어 있습니다.
제 가설은 IdP가 response_mode=form_post(크로스 사이트 POST)를 사용하여 응답을 반환하고, 이로 인해 SameSite=Lax 설정에서 콜백 시 세션 쿠키가 포함되지 않아 Discourse의 CSRF 검증이 실패한다는 것입니다.
질문:
form_post콜백을 사용하는 OIDC 제공자의 경우,same_site_cookies = None으로 설정하는 것이 권장되거나 지원되는 해결책인가요?- 아니라면,
SameSite=None이 필요하지 않도록 Discourse OIDC(또는 IdP)를 구성하여 콜백이form_post가 아닌 GET(쿼리) 방식으로 이루어지도록 하는 권장 방법이 있을까요? - Discourse OIDC 가입/로그인에서
SameSite=None사용 시 보안 또는 호환성과 관련하여 주의해야 할 점이 있나요?
감사합니다!