为POP3添加更丰富的认证支持

确实如此,TLS 也是 Exchange Online 的要求。但身份验证仍然是通过基本身份验证完成的(如果我正确理解了以下代码,则无法在 OAuth2 等其他身份验证机制之间进行选择)discourse/poll_mailbox.rb at tests-passed · discourse/discourse (github.com)

进一步追溯,似乎 Ruby 中的 Class: Net::POP3 (Ruby 2.7.0) (ruby-doc.org) 库不支持 OAuth2 身份验证,只支持基本身份验证。

供参考:

它只需要用户名和密码,而不是用户名和令牌,而且还需要使用 AUTH XOAUTH2 格式来编码和传输令牌。

如果我的问题不够清楚,我很抱歉,但我更想了解是否可以采用类似以下示例的方法:

这些方法将允许 Discourse 使用 OAuth2 身份验证连接到 POP3(以及 IMAP),从而满足 MS 的要求,并且可能在不久的将来(如果现在还没有的话)满足 Gmail 的要求(OAuth 2.0 Mechanism | Gmail IMAP | Google Developers)。

11 个赞

我认为这是一个非常好的功能请求,我非常支持为 POP3 添加 OAuth2 支持。

虽然我无法承诺何时能构建它,但如果出现 PR,我们一定会优先审查和合并。

10 个赞

太棒了,非常感谢!:clap:
期待看到这个功能上线!

1 个赞

据我所见,Google/Gmail 在 5 月 30 日禁用了 OAuth 以外的 POP3 身份验证。因此,我无法再通过 POP3 检索邮件。如果 Discourse 支持 OAuth2 会很棒。

我找不到除此以外的任何其他主题。我是唯一一个在 Discourse 中使用 Gmail 的人吗?

1 个赞

您仍然可以使用应用密码通过 POP3 身份验证 Gmail。这是一个最近的相关主题:

4 个赞

仅供对此话题感兴趣的人员参考,我们的同事 @acosenza 打开了一个 PR,欢迎提供反馈!

3 个赞

… 并且通过插件提供了一个功能齐全的替代方法,如 Microsoft Graph Mail Poller - plugin - Discourse Meta 中所述。

希望这能引起社区的兴趣 :tada:

4 个赞

Bump,因为 Google 也要放弃 Workspace 账户了。

我看到该 PR 因为一些依赖问题被关闭了。
应用密码仍然有效(目前),但支持 OAuth 会更好。

来自 Google 的邮件:简而言之 - 2024 年 9 月后使用 oauth2

Google Workspace logo

自 2024 年 9 月 30 日起,Google Workspace 账户将只允许使用 OAuth 的应用访问。基于密码的访问(应用密码除外)将不再受支持。POP 和 IMAP 不会消失,仍然可以通过使用 OAuth 连接的应用来启用。

尊敬的管理员:

我们写信通知您,正如我们在此博文中先前分享的,我们将从 2024 年 6 月 15 日起停止支持访问安全性较低的应用(LSA)——即只能通过用户名和密码(基本身份验证)访问 Google 账户的非 Google 应用。

您需要了解什么?

通过基本身份验证进行访问会使账户更容易受到劫持尝试。今后,只有支持称为 OAuth 的更现代、更安全访问方式的应用才能访问 Google Workspace 账户。

对 LSA 的访问将分两个阶段关闭:

  1. 自 2024 年 6 月 15 日起 - LSA 设置将从管理员控制台中移除,并且无法再进行更改。在此日期之后,已启用用户可以继续连接,但已禁用用户将无法再访问 LSA。这包括所有需要通过 CalDAV、CardDAV、IMAP、SMTP 和 POP 等协议进行密码访问才能登录 Gmail、Google 日历、通讯录的第三方应用。IMAP 启用/禁用设置将从用户的 Gmail 设置中移除。如果您在此日期之前一直在使用 LSA,则可以继续使用它们,直到 2024 年 9 月 30 日。
  2. 自 2024 年 9 月 30 日起 - LSA 对所有 Google Workspace 账户的访问将关闭。通过仅使用密码登录将无法再使用 CalDAV、CardDAV、IMAP 和 POP - 您需要使用更安全的访问类型 OAuth 登录

您需要做什么?

为了让您的最终用户能够继续使用这些类型的应用访问其 Google Workspace 账户,他们必须**切换到更安全的访问类型 OAuth**(受影响的用户列表已附上)。这种身份验证方法允许应用使用数字密钥访问账户,而无需用户透露其用户名和密码。我们建议您将用户说明(在此 PDF 文件中)分享给您组织中的个人,以帮助他们进行必要的更改。或者,如果您的组织正在使用自定义工具,您可以要求该工具的开发者更新它以使用 OAuth。开发者说明也在此 PDF 文件中

MDM 配置

如果您的组织使用移动设备管理 (MDM) 提供商来配置 IMAP、CalDAV CardDAV 或 POP 配置文件,这些服务将根据以下时间表逐步淘汰:

  1. 自 2024 年 6 月 15 日起 - 对于首次尝试连接的客户,基于密码的 IMAP、CalDAV、CardDAV 和 POP 的 MDM 推送将不再有效。如果您使用 Google MDM,将无法为 CalDAV 和 CardDAV 启用“自定义推送配置”设置。
  2. 自 2024 年 9 月 30 日起 - 基于密码的 IMAP、CalDAV、CardDAV 和 POP 的 MDM 推送将不再对现有用户有效。管理员需要使用其 MDM 提供商推送一个Google 账户,这将使用 OAuth 重新添加其 Google 账户到 iOS 设备。如果您使用 Google MDM,“自定义推送配置-CalDAV”和“自定义推送配置-CardDAV”(有关设置的更多详细信息在此处)将不再有效。

其他安全性较低的应用

  • 对于任何其他 LSA,请要求您使用的应用的开发者开始支持 OAuth。

扫描仪和其他设备

对于使用简单邮件传输协议 (SMTP) 或 LSA 发送电子邮件的扫描仪或其他设备,请配置为使用 OAuth,使用替代方法,或配置应用密码以供设备使用。如果您更换设备,请寻找使用 OAuth 发送电子邮件的设备。

2 个赞

由于 PR 被上游 net-pop PR 阻止,是否有任何已知的 GSuite 托管帐户的变通方法?

1 个赞

也许 @team 可以给我们提供关于此功能计划的最新信息?

1 个赞

首先,我想感谢 Ismael 和你的同事 Alessio 迄今为止所做的工作,特别是关于 Add OAUTH2 support by AlessioC31 · Pull Request #16 · ruby/net-pop · GitHub

我们确实计划在 Google 提供的截止日期前完成这项工作,我们不想失去 POP3 轮询功能,并且我们正在进行内部跟踪。net-pop PR 被阻止,这确实令人失望。

希望我们能找到一些解决方案,我看到 Meta 的有人在该 PR 中发帖了,我也会发帖,也许我们可以推动该 PR 的进展,否则我们将不得不提出一些替代方案,例如在 Discourse 核心中猴子补丁 Net::POP3

4 个赞

您好,这个有进展吗?因为谷歌的截止日期快到了……

我们发现实际上还没有什么需要做的。Google 仍将支持应用专用密码,具体请参阅以下文章:

因此,如果您正在将 Discourse 和 Google 与 SMPT/POP3 结合使用,唯一需要做的事情就是确保您使用的是 Google 的应用专用密码。

5 个赞