Exchange 2010 SP2 中的 OWA 跨站点无提示重定向

原文发布于 2011 年 12 月 13 日(星期二)

现在,你们中的许多人已经阅读了讨论通讯簿策略(该链接可能指向英文页面)托管变化混合配置向导的文章,但我知道,在内心深处你们都希望我们介绍我们决定在 Exchange 2010 SP2 中引入的最受欢迎的功能。

为什么这样说呢?是的,我知道,Tony 在 Windows IT Pro 上的 SP2 公告文章(该链接可能指向英文页面)中说“不用过于关注 SP2 中的新功能”,SP2 中没有那么多新功能(我相信他的原话是“相对较少”)。

在这里我要更正一下。Exchange 2010 SP2 中有一个人们很少提到的出色功能。是的 – 现在是时候讨论适用于 Outlook Web App 的跨站点无提示重定向了!

定义

首先,看一下几个定义以确保我们的理解不会产生分歧。

  • 面向 Internet 的 Active Directory 站点:一个 Active Directory 站点,它所包含的 CAS 为关联服务(如 OWA)定义了 ExternalURL。通常,这是部署 Exchange 2010 的主数据中心/站点。
  • 面向 Internet 的区域性 Active Directory 站点:一个 Active Directory 站点,它所包含的 CAS 为关联服务(如 OWA)定义了 ExternalURL。
  • 非面向 Internet 的 Active Directory 站点:一个 Active Directory 站点,它所包含的 CAS 不为关联服务定义 ExternalURL。
  • 直接连接:CAS 与托管邮箱数据的邮箱服务器建立 RPC 会话的过程。
  • 代理:面向 Internet 的 Active Directory 站点中的 CAS 以代理身份将传入请求发送到非面向 Internet 的 Active Directory 站点中的 CAS(它与要访问的邮箱服务器位于同一站点中)的过程。
  • 重定向:某个 Active Directory 站点中面向 Internet 的 CAS 将最终用户重定向到另一面向 Internet 的 CAS(它与要访问的邮箱服务器位于同一站点中)的过程。
  • 无提示重定向:CAS 将无提示重定向发回用户的浏览器,告知浏览器与指定 URL 建立连接的过程。
  • 单一登录 (SSO) 重定向:CAS 将无提示重定向发回用户的浏览器,告知浏览器将请求和身份验证凭据提交给目标 CAS 以获得最佳登录体验的过程。

OWA 连接过程

要了解各种代理和重定向方案,一定要了解用户通过 CAS 进行身份验证以访问 OWA 时出现的情况(与现在的 Exchange 2010 Pre-SP2 出现的情况相同)背后的机制:

  1. 用户使用 Web 浏览器访问 OWA URL。
  2. 用户输入凭据。
  3. CAS 对用户进行身份验证并通过服务发现请求检索以下信息:
    1. 用户的邮箱版本
    2. 用户的邮箱位置,即 Active Directory 站点(如果知道)
  4. CAS 根据邮箱信息收集其他信息,以便可以执行正确的操作:
    1. 如果邮箱是本地 Exchange 2010,则 CAS 执行直接连接。
    2. 如果邮箱是本地 Exchange 2007,则 CAS 检索 Exchange 2007 CAS 的 ExternalURL(如果未定义,则使用 InternalURL)并执行无提示重定向。
    3. 如果邮箱是 Exchange 2003,则 CAS 检索 Exchange2003URL 并执行无提示重定向。
    4. 如果邮箱不是本地邮箱,则 CAS 检索目标 ExternalURL(如果已定义)并执行重定向,如果未在目标 Active Directory 站点中定义 OWA ExternalURL,则执行代理。

SP1 OWA 重定向类型

在 Exchange 2010 SP1 中,我们稍微做了一些更改,这导致在本地产品中 OWA 可提供三种类型的重定向体验:

  • 手动重定向
  • 临时手动重定向
  • 旧无提示重定向

手动重定向

借助手动重定向,如果有靠近用户邮箱的 CAS,那么客户无需引导和代理来自一个集中位置的所有通信。

手动重定向在 CAS 必须将 OWA 请求重定向到位于其他 Active Directory 站点中的 Exchange 2007 或 Exchange 2010 CAS 基础结构时执行。如前所述,要执行手动重定向,目标 OWA 虚拟目录必须具有 ExternalURL。您的用户会在其他 Active Directory 站点中看到以下手动重定向消息和 CAS 的 ExternalURL:

1 
图 1:邮箱位于另一 Active Directory 站点时进行手动重定向

 

临时手动重定向

在 SP1 中,我们为 OWA 添加了另一重定向类型,称为“临时手动重定向”。临时手动重定向可在两种情形下发挥作用:

  1. 在数据中心激活回切事件期间,有可能用户的 Web 浏览器仍缓存了不正确的 DNS 条目,从而指向不再托管邮箱的 Ative Directory 站点中的 CAS 基础结构。因此,该 CAS 会发出指向正确 Active Directory 站点的手动重定向,但是该重定向指向的是用户当前使用的 URL。为了防止出现这种用户无法访问邮件的乒乓效应,CAS 将检测返回的是否是同一会话 Cookie,如果是,则查看目标 CAS 是否具有 OWA 虚拟目录的 FailbackURL 值。如果指定了 FailbackURL,则 CAS 会发出临时手动重定向页面,以提供 FailbackURL 链接。如果未指定 FailbackURL,则 CAS 会发出错误页面,告诉用户关闭所有浏览器会话并重试。

    3
    图 2:数据中心激活回切时进行临时手动重定向

  2. CAS 发出临时手动重定向页面的第二种情形是这样的:CAS 检测到本地 CAS 的站点与邮箱数据库的 RpcClientAccessServer 值的站点相匹配,但数据库实际装载到了其他 Active Directory 站点,因此 CAS 会使用托管已装载数据库的站点中 CAS 的 ExternalURL 发出临时重定向。

    2
    图 3:邮箱装载到另一 Active Directory 站点时进行临时手动重定向

旧无提示重定向

对于 Outlook Web Access 来说,Exchange 2010 CAS 不支持从旧版 Exchange 呈现邮箱数据。Exchange 2010 CAS 根据目标邮箱的版本和/或位置采用以下四种方案之一:

  • 如果 Exchange 2007 邮箱与 CAS2010 位于同一 Active Directory 站点中,CAS2010 会将会话以无提示的方式重定向到 Exchange 2007 CAS。
  • 如果 Exchange 2007 邮箱位于另一面向 Internet 的 Active Directory 站点中,CAS2010 会将用户手动重定向到 Exchange 2007 CAS。
  • 如果 Exchange 2007 邮箱位于非面向 Internet 的 Active Directory 站点中,CAS2010 将代理与 Exchange 2007 CAS 的连接。
  • 如果邮箱位于 Exchange 2003 服务器上,CAS2010 会将会话以无提示方式重定向到预定义的 URL。

综上所述,旧无提示重定向仅用于 Exchange 2010 CAS 与旧基础结构之间的同一站点内的重定向事件。执行旧无提示重定向时,CAS2010 将无提示重定向发回用户的浏览器,告知浏览器与旧 CAS2007/FE2003 基础结构建立连接。要成功重定向到旧基础结构,必须按如下方式配置:

  • 要重定向到 Exchange 2003 邮箱,Exchange 2010 OWA 虚拟目录必须定义 Exchange2003URL。
  • 要重定向到 Exchange 2007 CAS,目标 Exchange 2007 OWA 虚拟目录必须定义 ExternalURL。

在源和目标 OWA 虚拟目录中使用基于表单的身份验证 (FBA) 时,旧无提示重定向还可通过向 Web 浏览器发回填充了字段的隐藏 FBA 表单来提供单一登录体验。该隐藏表单包含的信息与用户先前提交给 CAS2010 FBA 页面的信息(用户名、密码、公共/专用选择器)相同,另外还包含指向目标 Exchange 特定路径和查询字符串的重定向。加载该表单后,系统会立即将它提交给目标 URL,以便自动对用户进行身份验证,使用户可访问邮箱数据。

手动重定向有哪些弊端?

乍一看,您可能会想,“嗨,手动重定向不错,Microsoft”,这种想法在某种程度上是正确的。这是一项强大的功能,可供 IT 组织控制用户访问其数据的位置(从而强制用户利用正确的网络链接)。但实际上,对最终用户来说,这种体验不是最好的。如果用户使用的 OWA URL 不正确,用户会执行以下操作:

  1. 用户在 Web 浏览器中输入不正确的 URL。
  2. 用户输入凭据并通过 CAS(错误的站点)进行身份验证。
  3. CAS(错误的站点)执行服务发现,并确定它可将用户重定向到正确的 CAS。
  4. CAS(错误的站点)向用户提供一个页面,其中包含指向 CAS(正确的站点)的链接。
  5. 用户单击链接,从正确的站点访问 OWA。
  6. 用户输入凭据并通过 CAS(正确的站点)进行身份验证。

在该体验中,系统告知用户他们使用的 URL 不正确,用户必须输入其凭据两次。这就是手动重定向提供的体验,还不够完美。

Exchange 2010 SP2 中的跨站点无提示重定向

为了消除这种不完美的体验(顺便说一下,Greg 将它称为无价值的体验),我们在 Exchange 2010 SP2 中为 OWA 提供了第四种重定向体验,称为跨站点无提示重定向。顾名思义,跨站点无提示重定向仅针对要发送到另一 Active Directory 站点(在同一 Exchange 组织中)中具有 OWA ExternalURL 的 CAS 的请求执行无提示重定向。

我们创建了一个新参数 CrossSiteRedirectType,以支持跨站点无提示重定向。该参数可在 Set-OWAVirtualDirectory cmdlet 中使用,它支持两个值:Manual 和 Silent。跨站点无提示重定向默认情况下处于禁用状态(默认值是 Manual),这意味着,如果您当前在不同 Active Directory 站点中的 CAS 之间执行手动重定向,则部署 SP2 后将继续执行这种重定向。

如果要启用跨站点无提示重定向,请将面向 Internet 的 CAS OWA 虚拟目录中的 CrossSiteRedirectType 设置为 Silent:

Set-OWAVirtualDirectory -Identity "Contoso\owa (Default Web site)" -CrossSiteRedirectType Silent

我们更新了 OWA 连接过程,以支持跨站点无提示重定向。CAS 在服务发现期间执行以下步骤:

  1. 评估邮箱版本(Exchange 2007 或 Exchange 2010)。
  2. 检查邮箱的位置。
  3. 获取目标 CAS 的 ExternalURL。
  4. 获取源 CAS 上的重定向类型。
    1. 如果 CrossSiteRedirectType=Manual,我们会发出手动重定向。
    2. 如果 CrossSiteRedirectType=Silent,我们会发出无提示重定向。
      1. 如果源和目标 CAS 启用了 FBA,则源 CAS 向浏览器发回隐藏表单,其中包含用户凭据和 FBA 设置以及重定向 URL。
      2. 如果源和目标 CAS 未启用 FBA,则源 CAS 只发出 302 重定向。

没错,源和目标 OWA 虚拟目录利用基于表单的身份验证时,跨站点无提示重定向可以提供 SSO 体验。如果 OWA 虚拟目录身份验证机制是 Windows 集成身份验证并且 OWA 命名空间已添加到“本地 Intranet”安全区域,则仅在内部部署 OWA 的客户也可获得 SSO 体验。

什么情况下无法获得 SSO 体验?

在 Active Directory 站点之间重定向时无法获得 SSO 体验的情形包括:

  1. 在源和目标 OWA 虚拟目录上使用基本身份验证。
  2. 在源和目标 OWA 虚拟目录上使用不同的身份验证设置。
  3. 在源和目标 OWA 虚拟目录上使用双重身份验证解决方案。
  4. 您使用的是预身份验证解决方案(如 Microsoft Threat Management Gateway 2010),该解决方案对源和目标 OWA 命名空间使用不同的 Web 侦听程序。
  5. 本地 CAS 发出指向另一 Active Directory 站点中的另一 CAS 的临时重定向时。

请记住,尽管在这些情形下无法获得 SSO 体验,但是仍会发出 302 重定向(我们称为无提示重定向)。

通过跨站点无提示重定向,最终用户不必单击链接即可连接到正确的 OWA 基础结构,并且实际上可能无需输入凭据两次,从而提高了最终用户的满意度。如果您到目前为止一直使用 OWA 手动重定向,希望您在部署 Exchange 2010 SP2 时启用跨站点无提示重定向!

Ross Smith IV
首席项目经理
Exchange 客户体验团队

这是一篇本地化的博客文章。请访问 OWA Cross-Site Silent Redirection in Exchange 2010 SP2 以查看原文