Exchange/O365 POP3 和 SMTP 的双足客户端凭据 OAuth 流程

2-Legged Client Credentials OAuth Flow for Exchange/O365 POP3 and SMTP

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

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

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

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

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

是否可以实施双足 OAuth 流程来验证通过 SMTP/POP3 发送和接收的帐户?

我们的假设是否有误?

没有。不可能的。

不支持通过 OAuth2 客户端凭据授权流程 对 IMAP、POP、SMTP AUTH 协议的 OAuth 访问。

目前支持的流程有:

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

查看详情here

如果你有这个需求,你可以post你的想法Microsoft Graph user voice