使用 Azure 从本地应用设置电子邮件通知的最佳做法

问题描述

我们有一个本地(自托管)应用程序,它支持通过提供 SMTP 邮件服务器设置向用户发送电子邮件通知。我们的用户都在 Azure AD 中,并且是此本地应用程序的唯一用户。我们的用户希望能够接收来自此应用的电子邮件通知

实现这一目标的推荐/最佳实践方法是什么?理想情况下,该解决方案不需要任何额外的订阅增加的成本。如果可以将发送电子邮件地址标记为与其所来自的应用服务相匹配,那就太好了。

以下是我想出的一些选项:

  1. 在 Azure AD 中创建一个专门用于发送电子邮件新用户
    • 看起来很浪费,我们按用户按月收费
  2. 使用现有用户(即我自己的用户)向 SMTP 服务器提供授权
    • 而不是将我自己的用户凭据与此绑定,如果我更改密码就会破坏
  3. 使用完全不同的电子邮件帐户(例如 gmail?)发送电子邮件
    • 与 Azure AD 租户完全没有关系,其他人更难管理
  4. Azure 中的一些现有方法/服务用于此目的(如果存在)

解决方法

这是我对你的案子的看法。

我看了这个document,发现我们可以使用API​​ Key来初始化'new SendGridClient',并且提到我们可以将这个key存储到azure key Vault中。

因此,如果您只是想使用 azure 广告来实现保护本地应用免受未经授权的用户攻击的目标,您可以尝试我的想法。首先,在 azure 门户中创建 azure 密钥保管库,您可以创建一个新密钥来存储您的 SendGrid Api 密钥。接下来创建一个用于实现身份验证的 azure 广告应用程序,例如“ROPC”流程(使用用户帐户和密码获取访问令牌)。现在我们可以在 azure 密钥保管库中设置访问策略,添加 azure 广告应用程序和您的所有用户帐户,以便每个人都可以通过该 azure 广告应用程序访问 API 密钥。之后,您的应用就可以发送电子邮件了。

enter image description here