Office365:无需刷新即可从外部帐户加载电子邮件

Office365: Load email from an external account without the need to refresh

我们想创建与客户的 Office 365 电子邮件帐户(不是我们的帐户)的集成,以便我们可以加载来自特定发件人的电子邮件并将其显示在我们的站点中。一种解决方案基本上是询问客户的用户名和密码,然后使用 EWS 登录,但这是非常不安全的,基本身份验证将在 EWS 中被弃用。

另一个解决方案是使用 oAuth2 和 OIDC,但是访问和刷新令牌将过期,我们将不断要求用户与管理员帐户重新同步。

有没有一种方法可以在不使用基本身份验证的情况下为用户同步邮件,而无需他们在令牌过期时重新同步?

我在想可能会有一个图表 api 订阅,但是我没有看到如何在外部帐户上执行此操作,而且它似乎也需要刷新。另一个解决方案可能是 Office 365 插件,但我还没有找到任何关于如何执行此操作的教程。

您可以在 oAuth https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-client-creds-grant-flow so instead of a username and password you would have a client secret or certificate to use for logon. You can then scope the access down to one mailbox https://docs.microsoft.com/en-us/graph/auth-limit-mailbox-access 中使用客户端凭据流,因此您无权访问租户中的所有邮箱。

如果它是一个新应用程序,那么我建议您使用 Graph 而不是 EWS,因为它现在确实是一个遗留问题 API 并且 Graph 可以很好地满足您的尝试,并且具有以下优势需要更少的权限(例如,您可以只授予电子邮件访问权限,而 EWS 可以访问整个邮箱)和未来更多的支持能力。