【问题标题】:Authentication to Exchange Web Services without username/password and without Admin involvement无需用户名/密码且无需管理员参与即可对 Exchange Web 服务进行身份验证
【发布时间】:2014-08-15 04:48:12
【问题描述】:

这是场景

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

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

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

我的分析正确吗?我错过了什么选项?

【问题讨论】:

    标签: authentication oauth exchange-server token exchangewebservices


    【解决方案1】:

    你基本上是对的。 OAuth 目前仅适用于 Office 365,因此排除了本地部署。但是,使用 OAuth,您不必在 Azure 中托管后端。你需要一个 Azure 租户来注册你的应用程序,但应用程序本身不需要托管在 Azure 中。如果您使用 EWS,那么即使使用 OAuth,您也需要一些管理员参与,因为 EWS 需要一个权限范围,要求应用程序在目标租户中注册,用户无法同意使用来自其他租户的注册。

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

    【讨论】:

    • 即使使用 REST,您指向的链接也有这句话“邮件、日历和联系人 REST API 需要通过 OAuth 进行身份验证。为了使用这些 API 访问用户的邮箱,您的应用程序将需要在 Microsoft Azure Active Directory (AD) 中注册,并且需要具有适当的 Exchange 特定范围的访问令牌。”
    • 好吧,我会接受答案,因为您确实做出了回应,并提供了一些有趣的信息。
    【解决方案2】:

    所以要补充一下 Jason 的这个大部分正确的答案:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-18
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多