用于交换/O365 POP3 和 SMTP 的 OAuth 流的 2 方客户端凭据



我的公司分发一个带有后台服务组件的应用程序,该组件使用 SMTP/POP3 从单个电子邮件帐户发送和接收邮件。

该应用程序使用基本身份验证,但由于Microsoft计划回滚 POP3 的基本身份验证(以及将来可能的 SMTP(,我们现在需要实现 OAuth 2.0。我们一直在调查在 Azure AD 中实现此目的所需的帐户设置和 API 权限。

我们目前的理解是,可以通过获取访问令牌,然后将请求发送到图形 API(例如 https://graph.microsoft.com/Mail.ReadWrite(来实现 2 条腿客户端凭据流。但是,我们的应用程序是为使用传统的 SMTP/POP3 协议发送和接收而构建的,更改邮件功能以将 HTTP 请求发送到Microsoft API 端点需要进行部分重新设计。

旧版 SMTP 和 POP 协议似乎仅支持三方流。这些权限仅作为图形 API 上的"委派权限"提供。没有等效的"应用程序权限"允许我们在没有用户在场的情况下从后台服务使用这些协议来进行初始身份验证。

将浏览器重定向集成到应用程序中以进行初始身份验证还需要对应用程序进行重大更新。该应用程序已有 14 年的历史,原始程序员已不在公司。由于这一事实以及有限的资源,我们希望找到一个不涉及实现浏览器集成或对发送和接收功能进行重大更改的解决方案。

是否可以实现两方 OAuth 流来验证通过 SMTP/POP3 发送和接收的帐户?

我们的任何假设可能是不正确的吗?

No.这不可能。

不支持通过OAuth2 客户端凭据授予流对 IMAP、POP、SMTP 身份验证协议进行 OAuth 访问。

目前支持的流包括:

  1. OAuth2 授权代码流
  2. OAuth2 设备授权授权流程

点击此处查看详细信息。

如果您有此要求,可以在 Graph 用户语音Microsoft发布您的想法。

最新更新