需要帮助在不使用电子邮件的情况下设置 SSO

我的网站(基于 MediaWiki 的 wiki)仅使用用户名和密码(邮箱对用户注册是可选的)。我已经成功部署了 Discourse,并在管理设置中启用了 SSO。点击 Discourse 上的“登录”按钮后,会重定向到我网站的登录页面并附带一个 nonce。

我正在查阅 Discourse 官方 SSO 指南,其中提到:

:warning: Discourse 使用邮箱将外部用户映射到 Discourse 用户,并假设外部邮箱是安全的。如果您在将邮箱地址发送给 Discourse 之前未对其进行验证,您的网站将极其脆弱!

关于 SSO,我有以下几个问题:

  1. 澄清一下:一旦 SSO 配置完成,我网站上的所有注册用户是否都可以直接“登录”访问 Discourse,而无需先在 Discourse 中注册?
  2. 我想禁用 Discourse 上所有与邮箱相关的功能(因为我们的网站不强制要求邮箱)。即:Discourse 不发送邮件,也不接收邮件(例如回复等)。
  3. 如果我在网站的 SSO 代码中为每个用户创建一个虚拟邮箱(例如 unique_id@domain.xyz),并将其包含在负载中发送,这样是否可行?
  4. 在我的情况下,如何实现 SSO?还有其他建议或提示吗?

谢谢!

不行。Discourse 在最基本的层面上运行需要有效的电子邮件地址。如果您需要无需电子邮件支持的功能,可以考虑选择其他免费开源软件。

感谢您的回复,Jeff。

我查看了 这个帖子(不验证邮箱的后果) 以及您在其中的评论;我认为我的情况与之非常相似:

  1. 我已成功配置 SSO,并禁用了 Discourse 上的本地注册/登录功能。因此,点击论坛上的“登录”会将用户重定向到我网站的登录页面,验证后,他们会被重定向回论坛(携带有效载荷,其中包括虚拟但唯一的邮箱地址)。
  2. 我已在 Discourse 管理设置中禁用了所有邮件发送功能(因此 Discourse 将不再发送任何邮件)。
  3. 我未将 require_activation 设置为 true。

如果已禁用 Discourse 的所有邮件发送功能,并且我使用的是 SSO,那么虚拟邮箱地址是否仍会引发问题?您能否解释一下为什么有效的邮箱地址至关重要,以及使用唯一的虚拟邮箱地址会出现什么问题?

谢谢!

如果 SSO 正在运行,那可能没问题……我认为你需要将这些虚假邮箱地址设置为特定域名地址,以防止任何邮件发送尝试,但我记不清具体细节了。@gerhard,你还记得吗?

正确配置 disable_emails 站点设置通常就足够了,但建议仍使用 .invalid 域名扩展,以防您以后启用出站邮件。例如 unique_id@something.invalid