Discourse ID 与双因素认证

实现这一点的标准方式是通过 OIDC。Discourse ID 目前仅基于 OAuth2 构建。若要支持 MFA 标志,我们需要在提供商层实现 OIDC,并在需要该功能的客户端之间传递 MFA 值。

这存在若干复杂情况:

  • 在 Discourse 核心中,我们拥有仅针对特定用户类型(如工作人员或所有用户)强制要求 2FA 的选项;我们很可能需要通过身份提供商(ID)支持类似的功能。
  • ID 支持通过 Google、Apple、Facebook 和 Github 登录,但这些平台无法可靠地告知用户登录时是否完成了 2FA……我们可能需要在 ID 层实施 2FA,并且很可能导致部分用户面临双重 2FA 验证,这并非理想方案。
  • 在身份提供商层(即不在本地实例上)实施 2FA 是否足以满足所有使用者的需求?总体而言,我认为可以,但在做出承诺之前,我们需要进行更多调研。