我正在尝试用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以及如何:
- 在Azure中注册应用 如何创建客户端
- 通过获取用户数据获取用户ID
- 如何发送电子邮件
我能解决这个问题。