Exchange 2013 протокол MAPI over HTTP

В Exchange 2013 SP1 з'явився новий протокол для клієнтських підключень до поштової скриньки - MAPI over HTTP (MAPI / HTTP). Даний протокол призначений для поліпшення стабільності і надійності підключення Outlook до сервера Exchange за рахунок перенесення транспорту на рівень HTTP. У цій статті ми розповімо про архітектуру, особливості роботи цього протоколу і наведемо невелику інструкцію по його настройці.

У попередніх версіях Outlook міг взаємодіяти з Exchange за протоколом RPC. В Exchange 2003 з'явилася ще один протокол підключення - RPC over HTTP (Або Outlook Anywhere). Цей протокол переважно використовувався для безпечного підключення до Exchange сервера зовнішніх клієнтів. В Exchange 2013 Outlook Anywhere за замовчуванням використовується для взаємодії як із зовнішніми, так і з внутрішніми клієнтами. По суті, при взаємодії з цього протоколу MAPI трафік загортався спочатку в RPC, потім RPC в HTTP і тільки потім HTTP пакет передавався сервера. Основним недоліком протоколу RPC over HTTP є погана стабільність роботи на нестійких з'єднаннях (в загальнодоступних Wi-Fi мережах або через Інтернет).

MAPI over HTTP (насправді використовується HTTPS) виключає зі схеми протокол RPC і заснований на HTTP 1.1, тобто клієнти для взаємодії з сервером використовують команду POST. Outlook, підключений через MAPI over HTTP працює так само, як і EWS, EAS або OWA. При його використанні краще відпрацьовують сценарії перемикання між мережами, збої в мережі, вихід із сплячого режиму і режиму глибокого сну і т.д.

переваги MAPI over HTTP

  • Швидке перепідключення при розриві зв'язку (заново тільки TCP, а не RPC з'єднання)
  • Незалежність вмісту сесії від підключення (користувач в рамках сесії може змінити мережу підключення)
  • Аутентифікація за допомогою HTTP протоколу

Спочатку, MAPI / HTTP на стороні клієнта підтримувався тільки в Outlook 2013 SP1, але зараз, після установки оновлення 2899591 (Https://support.microsoft.com/en-us/kb/2899591/en-us), він буде працювати також і в Outlook 2010..

щоб включити підтримку MAPI over HTTP, система повинна відповідати вимогам:

  • На CAS серверах повинен бути встановлений Exchange 2013 SP1
  • Для оптимальної продуктивності MAPI / HTTP повинен бути встановлений .NET framework 4.5.2
  • В якості клієнтів використовується Outlook 2013 SP1 або Outlook 2010 із оновленням KB2899591

Після установки Exchange 2013 SP1 на CAS сервері повинна з'явитися віртуальна директорія MAPI. Сам протокол MapiOverHTTP при цьому відключений.

Перевіримо, що атрибут ExternalUrl порожній:

Get-MapiVirtualDirectory | ft server, * url *

ExternalUrl, як ми бачимо, порожній, нам потрібно його заповнити (в даному прикладі ми задамо і ExternalUrl і Internal Url, врахуйте що сертифікат Exchange повинен відповідати адресами, вказаними в зовнішньому і внутрішнім URL адресах).

Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -InternalUrl -ExternalUrl -IISAuthenticationMethods NTLM, Negotiate

Залишилося активувати MAPI over HTTP на рівні організації Exchange. Переконаємося, що протокол відключений:

Get-OrganizationConfig | FL * mapi *

Перевіримо також, на даний момент Outlook для підключення до Exchange використовує протокол RPC / HTTP.

Активуємо підтримку протоколу MAPI / HTTP з боку сервера:

Set-OrganizationConfig -MapiHttpEnabled $ true

Після виконання команди потрібно почекати близько години для застосування всіх змін на стороні Exchange. Якщо потрібно, прискорити процес можна перезапуском MS Exchange Host Service і пулу Autodiscover на Mailbox сервері.

При виконанні авто виявлення (Autodiscover), Outlook запитає у сервера можливість підтримки MAPI over HTTP (X-MapiHttpCapability). Якщо сервер підтримує цей протокол, то клієнт отримає відповідь з даними НТТР.

При перемиканні на новий протокол Outlook видає попередження:

The Microsoft Exchange administrator has made a change that requires you quit and restart Outlook.

Після перезапуску Outlook повинен підключитися до скриньки по протоколу MAPI over HTTP. Про це буде свідчити рядок HTTP в колонці протоколу у властивостях підключення Outlook.

Перевірити можливість підключення по новому протоколу можна, перейшовши на URL. Таким нехитрим способом ми дізнаємося ім'я CAS сервера, на якому ми авторизувалися і ім'я Mailbox сервера.

Додавши в URL значення? Showdebug = yes можна вивести більш цікаву інформацію. (_Https: //mail.contoso.com/mapi/emsmdb/? Showdebug = yes)

Також перевірити роботу нового протоколу можна за допомогою командлета Powershll Test-OutlookConnectivity:

Test-OutlookConnectivity -RunFromServerId serv3 -ProbeIdentity OutlookMapiHttpSelfTestProbe

Траблшутінг:

Список нового протоколу зберігаються тут:

  • CAS:% ExchangeInstallPath% \ Logging \ HttpProxy \ Mapi \
  • Mailbox Server:% ExchangeInstallPath% \ Logging \ MAPI Client Access \
  • Mailbox Server:% ExchangeInstallPath% \ Logging \ MAPI Address Book Service \

При включенні підтримки MAPI over HTTP в групі DAG все сервера повинні його підтримувати, в іншому випадку клієнти не зможуть користуватися своїми ящиками.

За оцінками Microsoft використання MAPI over HTTP кілька збільшує навантаження на CPU на серверах CAS, але зменшує витрату пам'яті для кожного пользоватлея на 50-60%.

Новий прокол підключення Outlook до ящиків Exchange виграє з точки зору продуктивності і мережевий гнучкості. За словами розробників Microsoft, можливо вже в Exchange Server 2016 протокол MAPI over HTTP стане основним протоколом підключення, а від RPC over HTTP будуть поступово відмовлятися.