使用oauth对后端服务器进行身份验证,但服务器位于私有VLAN上



我正在尝试用OAUTH验证后端服务器,以便从该后端服务器发送电子邮件。我不明白的是,如果服务器只在VLAN上本地运行,我怎么能做到这一点呢?

这可能吗?

我正在做的事情:

后端服务器(运行节点)使用基本认证凭证(用户名&密码)进行身份验证,然后通过Office 365帐户使用SMTP向用户发送电子邮件。但基本验证已被弃用,并被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. 在Azure中注册应用
  2. 如何创建客户端
  3. 通过获取用户数据获取用户ID
  4. 如何发送电子邮件

我能解决这个问题。

相关内容

最新更新