无法让 yubikey 工作

您好,

我已经安装了 Discourse,总体来说一切正常。但是,当我尝试添加我的 Yubikey 作为安全密钥时,我一直收到此错误:

认证请求的来源与服务器来源不匹配。

我找不到任何特定的配置选项可以解决此问题。我尝试配置 CORS,但没有任何效果。我该如何使其正常工作?

提前感谢 :slight_smile:

1 个赞

您的论坛主机名是否与您访问它的主机名不同?

例如,您的 app.yml 主机名是否与您在浏览器中输入的主机名相同?

主机名匹配。唯一的问题是实例位于 nginx 代理后面,所以问题可能出在这里。但是,代理配置实际上是 SSL 脱离,所以情况是:

Web 浏览器 –\u003e Nginx 代理 (https) –\u003e Discourse (http)

因此,浏览器和 nginx 之间的连接是 HTTPS,但代理和 discourse 之间的连接是在端口 80 上。

我确实在我的实验室机器上启用了 CORS,因为我在这里也遇到了问题,但直到我启用了完整的 HTTPS 和 CORS,我才能注册我的 Yubikey。强制 SSL 也已启用。

我确实将 http 和 https 都放在了代理后面的 discourse 的 COR 配置中,但没有任何区别。所以我认为这可能是 nginx 代理配置的问题,或者我需要将其从代理 443 和端口 80 之间,改为代理到 discourse 上的端口 443。

我们也收到了类似的报告。同样在使用一个 TLS 终止的 nginx 反向代理来处理 discourse。错误消息无助于弄清楚需要更改服务器配置的哪个部分。

代码引用:

https://github.com/discourse/discourse/blob/main/lib/webauthn/security_key_base_validation_service.rb#L21-L24

https://github.com/discourse/discourse/blob/main/lib/webauthn/security_key_base_validation_service.rb#L58-L60

您所说的完全的 HTTPS 是什么意思?

13 篇帖子已拆分为新主题:如何在反向代理后面的 Discourse 中使用 FIDO2?

此主题已在 861 天后自动关闭。不再允许回复。