无需用户名/密码且无管理员参与的Exchange Web服务身份验证

时间:2014-06-24 19:34:31

标签: authentication oauth exchange-server token exchangewebservices

这是方案

  • 第三方应用程序,后端。客户使用该应用程序。
  • 后端需要访问用户的交换信息,假设是通过EWS
  • 后端正在我们的数据中心/云中运行,而非客户。
  • 不能要求本地管理员参与
  • 希望避免在我们的后端存储用户名/密码。
  • 希望同时支持Office365和内部部署。

我认为目前这是不可能的,但想验证:

  • 假冒是一种很好的方式,但需要管理员
  • 基于令牌的身份验证不用于此。邮件应用程序用于后端的SSO,而不是后端访问Exchange。
  • OAUTH是理想的,但是a)仅适用于Office365目前b)要求后端的一部分由Azure托管c)Azure安装必须链接到Office365安装,仅适用于本地管理员

我的分析是否正确?我错过了什么选择?

2 个答案:

答案 0 :(得分:3)

你大多是正确的。 OAuth目前仅适用于Office 365,因此将排除内部部署。但是,使用OAuth,您无需在Azure中托管后端。您需要Azure租户才能注册您的应用程序,但该应用程序本身不需要在Azure中托管。如果您使用EWS,那么即使使用OAuth,您也需要一些管理员参与,因为EWS需要一个权限范围,要求应用程序在目标租户中注册,用户不能同意使用其他租户的注册。

如果您使用预览中的REST APIs,则无需管理员参与,用户可以自行同意。这将使您几乎达到您想要的位置(假设REST API提供您所追求的数据),但不支持内部部署。

答案 1 :(得分:0)

所以加入Jason的这个大致正确的答案:

  1. 使用纯休息,您只需要创建一个“多租户”应用程序,用户可以自行同意。
  2. 您还可以使用OAuth令牌向EWS进行身份验证 - 但前提是选择了委托完全访问邮箱。这也不需要管理员同意,但是范围很广(但是必要,因为EWS不了解范围)