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 работает по следующей схеме:
- Установка соединения: Почтовый клиент (Outlook) отправляет HTTP-запрос на сервер Exchange (или на обратный прокси-сервер, например, Microsoft Forefront TMG или Microsoft Entra Application Proxy).
- Аутентификация: Сервер проверяет учётные данные пользователя. Поддерживаются протоколы аутентификации NTLM, Kerberos и современная аутентификация (OAuth 2.0), которая используется в Microsoft 365.
- Обмен данными: После успешной аутентификации клиент и сервер обмениваются серией HTTP-запросов и ответов. Каждый запрос содержит команды MAPI, упакованные в тело HTTP-сообщения. Ответы содержат запрошенные данные (например, содержимое папки «Входящие», календарь, задачи).
- Поддержание сессии: В отличие от 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 сохраняется.
Компоненты серверной части
- Виртуальный каталог MAPI: Создаётся в IIS (Internet Information Services) на сервере Exchange. Он обрабатывает все запросы, поступающие от клиентов.
- Служба MAPI: Отвечает за преобразование HTTP-запросов в команды MAPI и передачу их в базу данных почтовых ящиков.
- Модуль аутентификации: Проверяет учётные данные пользователя (NTLM, Kerberos, OAuth).
Сравнение с другими протоколами
| Характеристика | MAPI over HTTP | MAPI/RPC | Outlook 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 →