我正在开发一个ASP.NET Web API应用程序,目的是能够代表我们系统中的用户从Exchange检索电子邮件。每个用户可能属于一个完全不同的域,因此我的应用程序需要能够连接到多个Exchange服务器,其中一些可能是Office 365,而另一些可能是内部部署(他们的前提,而不是我们的)。
使用EWS托管API,我已经掌握了基本功能,但我不确定为每个用户处理身份验证的最佳方法。我一直在阅读有关使用EWS和各种身份验证方案的各种MSDN文章,但其中大部分仍然让我感到困惑。
将与我的应用程序交互的前端应用程序将拥有自己的用户数据存储和身份验证方法。理想情况下,一旦用户登录到该系统,他们就可以从Exchange获取电子邮件,而无需每次都提供他们的Exchange凭据。如果他们必须在用户首次注册时提供他们的凭据就没问题,但显然我不想在我们的系统中保存他们的密码。 OAuth听起来有点前途,但我现在对它的了解还不够,知道这是不是我应该追求的。另外,我读过OAuth仅适用于Office 365,而不适用于内部部署安装。
简而言之:我应该考虑哪种机制,允许应用程序通过我的应用程序代表用户登录到Exchange,而不必每次都提供Exchange密码?