# 在 Discourse 2026.6 上启动 SAML 登录时出现 CSRFTokenVerifier::InvalidCSRFToken

**URL:** <https://meta.discourse.org/t/csrftokenverifier-invalidcsrftoken-when-initiating-saml-login-on-discourse-2026-6/406986>\
**Category:** SSO\
**Tags:** saml\
**Created:** [2026年七月7日 14:57 UTC](https://meta.discourse.org/t/csrftokenverifier-invalidcsrftoken-when-initiating-saml-login-on-discourse-2026-6/406986 "2026-07-07T14:57:12Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![Osman\_Nuri\_Mermer](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/osman_nuri_mermer/32/569838_2.png) [@Osman\_Nuri\_Mermer](https://meta.discourse.org/u/Osman_Nuri_Mermer)\
**Post date:** [2026年七月7日 14:57 UTC](https://meta.discourse.org/t/csrftokenverifier-invalidcsrftoken-when-initiating-saml-login-on-discourse-2026-6/406986/1 "2026-07-07T14:57:12Z")

</div>

Discourse 2026.6 中启动 SAML 登录时出现 CSRFTokenVerifier::InvalidCSRFToken

你好，

我试图在一台全新的 Discourse 安装中配置使用 ADFS 的 SAML 身份验证。

### 环境

- Discourse 版本：2026.6 (Rails 8.0.5)
- discourse-saml 插件
- 插件提交记录：

```plaintext
7d0fe944bf33588e6813bffaef5eb8f34e37d039

```

- 已启用 HTTPS
- Discourse 前端部署了反向代理/负载均衡器
- force\_https = true

### SAML 配置

元数据端点工作正常：

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

```

元数据包含：

- EntityID
- ACS URL
- SLO URL

ADFS 团队已成功导入元数据。

### 问题

点击 **使用 SAML 登录** 时，Discourse 不会重定向到 ADFS。

而是立即返回：

```plaintext
抱歉，授权已超时，或您已切换浏览器。

```

### Rails 日志

```plaintext
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](https://hostname)
- force\_https = true
- 会话 Cookie（\_forum\_session）存在
- POST /auth/saml 请求中包含了 authenticity\_token
- discourse-saml 插件为最新的 main 分支
- 元数据端点工作正常
- ADFS 元数据已根据 SP 元数据重新生成

### 浏览器请求

POST /auth/saml 包含：

- \_forum\_session Cookie
- authenticity\_token

然而请求立即失败，并返回：

```plaintext
CSRFTokenVerifier::InvalidCSRFToken

```

它从未到达 ADFS。

### 其他信息

浏览器 DevTools 显示：

```plaintext
x-csrf-token: undefined

```

这是否是 Rails 8 / OmniAuth 的 CSRF 问题，还是 discourse-saml 在近期的 Discourse 版本中需要其他配置？

任何建议都将不胜感激。

```plaintext

```

```plaintext
Discourse.base_url

https://testvknowyeni.vakifbank.intra

```

```plaintext

```

```plaintext
SiteSetting.force_https

true

```

```plaintext

```

```plaintext
SiteSetting.same_site_cookies

Lax

```

---

_[View the full topic](https://meta.discourse.org/t/csrftokenverifier-invalidcsrftoken-when-initiating-saml-login-on-discourse-2026-6/406986)._
