Открыть сервис

MAPI over HTTP

MAPI over HTTP — это протокол удалённого доступа к почтовым ящикам Microsoft Exchange Server и Microsoft 365, использующийся для взаимодействия почтового клиента (например, Microsoft Outlook) с сервером. В отличие от более ранних методов (MAPI/RPC), MAPI over HTTP передаёт данные через стандартные HTTP-запросы, что упрощает настройку брандмауэров и повышает надёжность соединения. Протокол был представлен компанией Microsoft в Exchange Server 2013 с пакетом обновления 1 (SP1) и стал основным для Outlook в Exchange Server 2016 и более поздних версиях.

История

До появления MAPI over HTTP основным протоколом для удалённой работы Outlook с Exchange был MAPI/RPC (Messaging Application Programming Interface over Remote Procedure Call). Этот протокол использовал динамические порты RPC, что создавало сложности при настройке сетевых экранов и требовало открытия широкого диапазона портов (обычно 1024–65535). Кроме того, MAPI/RPC был чувствителен к задержкам и разрывам соединения, что делало его нестабильным при использовании через ненадёжные каналы связи (например, через интернет).

В Exchange Server 2007 и 2010 Microsoft пыталась решить эти проблемы с помощью Outlook Anywhere (ранее известного как RPC over HTTP). Этот протокол инкапсулировал RPC-трафик в HTTP-пакеты, что позволяло проходить через брандмауэры, но сохранял многие недостатки MAPI/RPC, включая высокую нагрузку на сервер и сложность диагностики.

В 2014 году с выходом Exchange Server 2013 SP1 Microsoft представила MAPI over HTTP как альтернативу Outlook Anywhere. Первоначально протокол был опциональным и требовал ручного включения. Начиная с Exchange Server 2016, MAPI over HTTP стал протоколом по умолчанию для всех новых установок, а Outlook Anywhere был объявлен устаревшим. В Exchange Server 2019 поддержка Outlook Anywhere была полностью прекращена.

Принцип работы

MAPI over HTTP работает по следующей схеме:

  1. Установка соединения: Почтовый клиент (Outlook) отправляет HTTP-запрос на сервер Exchange (или на обратный прокси-сервер, например, Microsoft Forefront TMG или Microsoft Entra Application Proxy).
  2. Аутентификация: Сервер проверяет учётные данные пользователя. Поддерживаются протоколы аутентификации NTLM, Kerberos и современная аутентификация (OAuth 2.0), которая используется в Microsoft 365.
  3. Обмен данными: После успешной аутентификации клиент и сервер обмениваются серией HTTP-запросов и ответов. Каждый запрос содержит команды MAPI, упакованные в тело HTTP-сообщения. Ответы содержат запрошенные данные (например, содержимое папки «Входящие», календарь, задачи).
  4. Поддержание сессии: В отличие от MAPI/RPC, MAPI over HTTP не поддерживает постоянное соединение. Каждый запрос является независимым, что делает протокол более устойчивым к разрывам связи. Для поддержания сессии используется механизм сессионных cookie (например, X-BackEndCookie), которые позволяют серверу идентифицировать клиента при последующих запросах.

Ключевые особенности

  • Использование стандартных портов: Для работы MAPI over HTTP требуется только открытый порт 443 (HTTPS). Это упрощает настройку брандмауэров и прокси-серверов.
  • Отсутствие зависимости от RPC: Протокол не использует RPC-инфраструктуру, что снижает нагрузку на сервер и упрощает диагностику проблем.
  • Поддержка современных методов аутентификации: В Microsoft 365 MAPI over HTTP работает с OAuth 2.0, что повышает безопасность и позволяет использовать многофакторную аутентификацию.
  • Устойчивость к сетевым сбоям: При временной потере соединения Outlook может автоматически восстановить сессию, не требуя от пользователя повторного ввода пароля.

Архитектура

MAPI over HTTP реализован на основе клиент-серверной архитектуры:

  • Клиентская часть: Встроена в почтовый клиент (Microsoft Outlook 2013 и новее, а также в приложения для iOS и Android). Клиент отправляет HTTP-запросы и обрабатывает ответы.
  • Серверная часть: Реализована в роли Client Access Server (CAS) в Exchange Server. В Exchange Server 2013 и 2016 CAS обрабатывает входящие HTTP-запросы, аутентифицирует пользователей и перенаправляет их к соответствующей базе данных почтовых ящиков на сервере Mailbox. В Exchange Server 2019 роли CAS и Mailbox объединены, но логика обработки MAPI over HTTP сохраняется.

Компоненты серверной части

  1. Виртуальный каталог MAPI: Создаётся в IIS (Internet Information Services) на сервере Exchange. Он обрабатывает все запросы, поступающие от клиентов.
  2. Служба MAPI: Отвечает за преобразование HTTP-запросов в команды MAPI и передачу их в базу данных почтовых ящиков.
  3. Модуль аутентификации: Проверяет учётные данные пользователя (NTLM, Kerberos, OAuth).

Сравнение с другими протоколами

ХарактеристикаMAPI over HTTPMAPI/RPCOutlook Anywhere (RPC over HTTP)
Порты443 (HTTPS)Динамические (1024–65535)443 (HTTPS)
Тип соединенияHTTP-запросы (без постоянного соединения)Постоянное RPC-соединениеHTTP-запросы, инкапсулирующие RPC
Устойчивость к сбоямВысокая (автовосстановление сессии)Низкая (разрыв соединения требует переподключения)Средняя
Нагрузка на серверНиже (отсутствие RPC-инфраструктуры)ВысокаяСредняя
Сложность настройкиНизкая (только порт 443)Высокая (требуется настройка RPC-диапазона)Средняя
Поддержка в Exchange 2019Да (основной протокол)НетНет
Поддержка в Microsoft 365Да (основной протокол)НетНет

Применение

MAPI over HTTP используется в следующих сценариях:

  • Удалённая работа: Подключение сотрудников к корпоративной почте из дома, командировок или других мест, где нет прямого доступа к локальной сети организации.
  • Работа через интернет: Использование Outlook для доступа к почтовым ящикам, расположенным в Microsoft 365.
  • Мобильные устройства: Приложения Outlook для iOS и Android используют MAPI over HTTP для синхронизации почты, календаря и контактов.
  • Тонкие клиенты и терминальные серверы: Протокол хорошо работает в средах, где требуется минимизировать сетевую нагрузку.

Критика и ограничения

Несмотря на преимущества, MAPI over HTTP имеет некоторые недостатки:

  • Зависимость от HTTPS: Для работы требуется стабильное HTTPS-соединение. При использовании ненадёжных или медленных каналов связи (например, спутниковый интернет) возможны задержки.
  • Ограниченная поддержка старых клиентов: Outlook 2010 и более ранние версии не поддерживают MAPI over HTTP. Для их работы требуется Outlook Anywhere или MAPI/RPC.
  • Сложность диагностики: Хотя протокол проще в настройке, чем MAPI/RPC, диагностика проблем может быть затруднена из-за большого количества HTTP-запросов и необходимости анализа логов IIS.
  • Необходимость синхронизации времени: Для корректной работы аутентификации Kerberos и OAuth требуется точная синхронизация времени между клиентом и сервером.

Интересные факты

  • Название «MAPI over HTTP» иногда путают с «Outlook Anywhere», но это разные протоколы. Outlook Anywhere — это инкапсуляция RPC в HTTP, а MAPI over HTTP — это нативная передача команд MAPI через HTTP.
  • В Exchange Server 2013 SP1 MAPI over HTTP был доступен только для внутренних клиентов (в локальной сети). Для внешних клиентов требовался Outlook Anywhere. Начиная с Exchange Server 2016, протокол стал доступен и для внешних подключений.
  • Microsoft рекомендует использовать MAPI over HTTP для всех новых развёртываний Exchange, начиная с версии 2016, и для миграции с Exchange 2013.

Источники

  • Microsoft Docs: «MAPI over HTTP in Exchange Server»
  • Microsoft Docs: «Plan for MAPI over HTTP in Exchange Server»
  • TechNet: «Exchange Server 2013 SP1: MAPI over HTTP»
  • Статья: «MAPI over HTTP: The New Default Protocol for Outlook in Exchange 2016»
  • Документация Microsoft 365: «Outlook connectivity with MAPI over HTTP»

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →