Exchange 2013 MAPI over HTTP

2021年09月15日 阅读数:5
这篇文章主要向大家介绍Exchange 2013 MAPI over HTTP,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。


转自:http://sodaxu.blog.51cto.com/8850288/1674203html

视频地址:http://v.youku.com/v_show/id_XMTI4MTk5MzQ5Ng==.htmlweb


在前面咱们聊Outlook Anywhere的文章里头,我提到了MAPI over HTTP这个Exchange Server 2013 SP1中新增长的功能,此次这篇文章我们就详细说说这个新的传输协议是什么,以及实战如何去配置它。api

什么是MAPI/HTTP,有什么好处?服务器

之前版本中(Exchange 2010),用的是RPC over HTTP(外部网络outlook anywhere)以及RPC Direct(内部网络)链接,Exchange 2013里,全部的链接都经过Outlook Anywhere,也就是RPC over HTTP来传输;到即将到来的Exchange 2016,至少我如今看到的风声是,将全部的RPC over HTTP替换成 MAPI over HTTP了。因此在Ex2013 SP1里,微软先推出了这个特性来试试水,看看收效如何。那么我们也不要背道而驰,照着微软的战略也来学习配置看看。网络

我们仍是来看看这两张图,进行一个初步的分析。上面一张是旧的RPC/HTTP的传输过程,能够发现其实传输的流量封装层次是MAPI/RPC/HTTP这样一个三层封装,每次Outlook客户端进行链接都须要进行RPC_DATA_IN和RPC_DATA_OUT这么个来回2次的过程,再加上HTTPS与MAPI的链接。服务器和客户端之间会生成2个TCP长链接,4个活动链接。架构

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o

下面一张图则是Mapi Over HTTP,能够看到将整个MAPI链接移到了标准的HTTP请求/响应模型上。这样就会减小客户端与服务器之间的链接,它们之间最大会存在2个活动链接,1个长链接和1个按需短链接(下文会提到这个按需)。ide

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_02

从上面两张图里还能够看到,一个是MAPI/RPC/HTTP,另外一个是MAPI/HTTP,取消了整个RPC封装。取消了这一层封装也意味着取消了这一层的请求和回应。这就是为何上面会提到链接数减小的缘由。工具

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_03

减小链接数和下降封装的层数带来的直接好处就是下降客户端与服务器之间的交互时间,或者说,是更为贴近现代化场景(无线网络和远程办公网络)的设计。据微软本身吹牛逼说,当用户第一次配置好帐号打开Outlook的时候停留在LOGO框的时间减小了70%……学习

另一个特色就是,上面提到了的按需链接,它其实能够被理解为一个15分钟内有效的链接窗口,当客户端第一次与服务器创建链接完毕以后,MBX上会留出这么一个链接窗口进行按需链接,按什么需呢?从新链接的需求,也就是说客户端的网络短暂断开了以后,再进行重连,它就直接走这个窗口连进来,无需重复以前的验证过程。微软也吹牛逼说:一样休眠起来的笔记本电脑,用MAPI/HTTP的比用RPC/HTTP的重连时间短10秒……加密

这个时间窗口会在之后的版本中提的更大。

还有另外的一个特色,以前的RPC链接及其不具备可维护性(只能经过一些专门的微软的内部工具来进行debug),如今则是我们的老朋友HTTP封装,不光提供了日志,甚至还有debug信息窗口。要知道RPC进程挂死这种故障只能经过重启来解决……

微软的路线就是慢慢去RPC化。然而这些特性都是从O365里学来的,在以前2016架构前瞻的文章里我也提到,微软不少新概念都被应用到O365上,而后以为成熟了再作成功能特性给on-premises用户。

OK,我们再说一下客户端是如何使用MAPI/HTTP与服务器进行链接的:

一、 Outlook客户端,发现本身是MAPI/HTTP兼容的客户端,就在autodiscover请求里带上一个参数X-MapiHTTPCapability=1

二、 服务器收到了这个autodiscover请求,发现有Mapi/HTTP参数,因而响应MAPI/HTTP的配置信息给客户端。配置信息里包括链接URL验证方法等等,固然前提是你的服务器已经打开了这个功能。

三、 Outlook收到这些信息以后发现它能够跟服务器创建Mapi/HTTP链接,因而告诉用户重启Outlook,若是用户不重启Outlook,则会继续使用RPC over HTTP

配置要求:

讲了这么多理论了,我们开始实际配置一下这玩意儿,首先是MAPI over HTTP的一些前提条件。

对于服务器:Exchange Server 2013 SP1必需,再加个.Net Framework 4.5.2,你可能在有些文档里看到须要KB2908387/KB2908385/KB2908383这几个补丁,这几个hotfix如今只能联系MCS才能下载了…因此打个.Net Framework4.5.2吧

客户端要求:outlook 2013 SP1,outlook 2010 SP2 以及更新 KB2956191 和 KB2965295

配置步骤:

在全部的的CAS服务器上添加系统变量:变量名和值见下图:

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_04

接下来配置Mapi虚拟目录,自己在Exchange 2013 SP1安装的时候,就已经部署好了Mapi的虚拟目录。可是默认的,只配置好了internalURL,因此若是要对外访问,那么就得再配置一下ExternalUrl和外部访问时所用的验证方式。命令为

Set-MapiVirtualDirectory –Identity “EX01\mapi (default web site)” -ExternalUrl 
  -IISAuthenticationMethods Negotiate

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_05

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_06

注意这里为何IIS验证要配置成协商呢?由于MAPI/HTTP是按照HTTP的套路进行验证的,即客户端发送一个anonymous的HTTP请求,而后Exchange就在HTTP的层面告诉他验证方法,而不用autodiscover再去宣告验证方法。因此按照标准给个协商方法就能够了。

最后一步,为整个组织开启MapiOverHTTP功能。命令:

Set-OrganizationConfig –MapiHttpEnabled $True

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_07

OK,到这里MAPI/HTTP功能就正式配置完毕了,为确保生效,最好是按照顺序重启一下组织里的全部Ex服务器,有些人说我只重启CAS或者只重启MBX就生效了嘛,反正我在配置时的场景是多台全角色,我就都给重启了~

如何肯定MAPI/HTTP生效了呢,重启完服务器以后,让客户端再进行一次自动发现,客户端就会蹦个报错出来:

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_08

而后咱按照提示,重启Outlook,再看一下链接状态,就会发现,没有代理服务器了而且后面的协议里只有HTTP,验证方法为协商,SSL加密。服务器名称也是链接到了mapi的虚拟目录上的终结点。

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_09

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_10    
下面来一张RPC/HTTP的链接状态图,你们能够作参考

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_11

客户端上另一个变化是,以下图,outlook anywhere的配置没了~

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_12

这样我们就是配置成功了,接下来再多说一点,关于MAPI/HTTP的debug。首先是Mapi/HTTP的日志的存放路径:

CAS服务器: %ExchangeInstallPath%\Logging\HttpProxy\Mapi\

Mailbox服务器: %ExchangeInstallPath%\Logging\MAPI Client Access\

Mailbox服务器: %ExchangeInstallPath%\Logging\MAPI Address Book Service\

而后,你能够经过https://CAS的FQDN/MAPI/emsmdb/来进行一个链接检测,须要输入凭据

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_13

更详细的信息,则是在上面一个url的后面再接上一个?showdebug=yes,就是https://cas的fqdn/mapi/emsmdb/?showdebug=yes

这个里面的信息更为详细,详细到此次请求交互的每一步都给你列出来。有作HTTP基础的同窗必定不会陌生了。

Exchange 2013 MAPI over HTTP_Exchange 2013 MAPI o_14

若是客户端想临时关掉MAPI/HTTP这个功能,使用RPC/HTTP功能的话,ok没问题,改注册表吧:

HKEY\CURRENT USER\Software\MicrosoftExchange => 建立一个dword值 “MapiHttpDisabled” 值为1

而后从新打开Outlook,执行从新Autodiscover。改回使用MAPI/HTTP就把这个值改为0。

最后再来几点注意事项:

1. 开启了Mapi over HTTP以后,Outlook 2013 SP1没法经过Ex2013SP1去访问早期版本的公共文件夹。

2. CAS服务器上的CPU使用率会上升,可是内存使用率降低,约50%-60%每用户

3. 没法使用MAPI Over HTTP时,Outlook会自动回退到RPC over HTTP

4. UAG 2010 SP4目前不支持MAPI Over HTTP的发布

5. Exchange 2016当中也许会默认使用MAPI over HTTP

本文出自 “ 卡斯特梅的雨季” 博客,请务必保留此出处 http://sodaxu.blog.51cto.com/8850288/1673091