使用 oauth 验证后端服务器,但该服务器位于专用 VLAN 上

authenticating a backend server with oauth but the server is on a private VLAN

我正在尝试使用 OAUTH 对后端服务器进行身份验证,以便从该后端服务器发送电子邮件。我不明白的是,如果服务器仅在 VLAN 上本地 运行,我该如何执行此操作。

这可能吗?

我现在在做什么:

后端服务器(运行 节点)使用基本身份验证凭据(用户名和密码)进行身份验证,然后使用 SMTP 通过 Office 365 帐户向用户发送电子邮件。基本身份验证已被弃用,并被 OAUTH 取代。

我想做的事情:

将基本身份验证替换为 OAUTH,以通过 office 365 帐户从后端服务器验证和发送电子邮件。

如有任何帮助,我们将不胜感激。

这里通常的迁移路径是 Client Credentials Flow,它应该像这样工作:

  • 专用 VLAN 上的后端必须能够向授权服务器(在您的情况下为 Azure AD)发出出站调用。

  • 优点应该是每次发送邮件时不会泄露凭据,而是使用OAuth访问令牌。

这应该适用于出站呼叫受限的锁定环境。通常在防火墙中配置白名单 - 例如,除了 Azure AD 之外的所有 URL 都被阻止。

这是专门针对如何使用 Azure Active Directory 和 Office365 作为电子邮件发件人来实现的,但是如何实现它的主要思想应该适用于其他服务。唯一需要注意的是,某些其他服务会要求您先获取 accessToken,然后将其与 API.

结合使用

使用@Gary Archer 提供的有关客户端凭证流的信息 结合
Microsoft Graph SDK 以及如何执行以下操作的示例:

  1. Register an app in Azure
  2. How to Create a Client
  3. Get ID of User by fetching user data
  4. How to send Emails

我想通了。