Discourse 2026.6에서 SAML 로그인 시작 시 CSRFTokenVerifier::InvalidCSRFToken 오류

Discourse 2026.6에서 SAML 로그인을 시작할 때 CSRFTokenVerifier::InvalidCSRFToken 오류 발생
안녕하세요,

새로운 Discourse 설치 환경에서 ADFS와 SAML 인증을 구성하려고 하고 있습니다.

환경

  • Discourse 버전: 2026.6 (Rails 8.0.5)
  • discourse-saml 플러그인
  • 플러그인 커밋:
7d0fe944bf33588e6813bffaef5eb8f34e37d039
  • HTTPS 활성화
  • Discourse 앞에 리버스 프록시 / 로드 밸런서 구성
  • force_https = true

SAML 구성

메타데이터 엔드포인트가 올바르게 작동합니다:

https://<hostname>/auth/saml/metadata

메타데이터에는 다음이 포함되어 있습니다:

  • EntityID
  • ACS URL
  • SLO URL

ADFS 팀이 메타데이터를 성공적으로 가져왔습니다.

문제

SAML로 로그인 버튼을 클릭하면 Discourse가 ADFS로 리디렉션되지 않습니다.

대신 즉시 다음 오류가 반환됩니다:

Sorry, the authorization timed out, or you have switched browsers.

Rails 로그

Started GET "/session/csrf"
Completed 200 OK

Started POST "/auth/saml"

(saml) Authentication failure!
CSRFTokenVerifier::InvalidCSRFToken

Started GET "/auth/failure?message=csrf_detected&strategy=saml"

이미 확인한 사항

  • HTTPS 작동 여부
  • Discourse.base_url = https://hostname
  • force_https = true
  • 세션 쿠키(_forum_session) 존재 여부
  • POST /auth/saml에 authenticity_token 포함 여부
  • discourse-saml 플러그인이 최신 main 브랜치인지 여부
  • 메타데이터 엔드포인트 작동 여부
  • SP 메타데이터에서 ADFS 메타데이터가 재생성되었는지 여부

브라우저 요청

POST /auth/saml에는 다음이 포함되어 있습니다:

  • _forum_session 쿠키
  • authenticity_token

그러나 요청은 즉시 실패하며:

CSRFTokenVerifier::InvalidCSRFToken

오류를 반환합니다.

ADFS에 도달하지조차 않습니다.

추가 정보

브라우저 DevTools에서 다음이 표시됩니다:

x-csrf-token: undefined

이것이 Rails 8 / OmniAuth CSRF 문제일 수 있으며, 최신 Discourse 버전에서 discourse-saml에 대한 추가 구성이 필요한 것일까요?

제안이 있으시면 감사하겠습니다.


Discourse.base_url

https://testvknowyeni.vakifbank.intra

SiteSetting.force_https

true

SiteSetting.same_site_cookies

Lax
1개의 좋아요