Microsoft прекращает поддержку EWS: переход на Microsoft Graph API и сроки миграции

Microsoft уходит от EWS к Graph API. Разбираем сроки, риски и пошаговый план миграции, чтобы ваш код не сломался в самый неподходящий момент.

Дата актуальности: 06:02:20 ()


Exchange Web Services (EWS) долгие годы являлся основным протоколом для программного доступа к почтовым ящикам‚ календарям и контактам в Exchange Online. Однако Microsoft объявил о планах постепенного вывода EWS из эксплуатации в пользу более современного и безопасного интерфейса – Microsoft Graph API. В этой статье мы разберём‚ что именно меняется‚ когда это произойдёт‚ какие последствия могут возникнуть и как подготовиться к переходу.


Что такое EWS и зачем он использовался?

  • EWS (Exchange Web Services) – SOAP‑based API‚ позволяющий выполнять операции чтения‚ записи и управления элементами Exchange (сообщения‚ встречи‚ задачи‚ контакты).
  • Широко применялся в корпоративных приложениях‚ скриптах PowerShell‚ мобильных клиентах и сторонних решениях для синхронизации.
  • Преимущества: зрелость‚ обширная документация‚ поддержка почти всех функций Exchange.
  • Недостатки: reliance on SOAP‚ сложная аутентификация (Basic‚ NTLM‚ OAuth)‚ ограниченная производительность по сравнению с REST‑подходами.

Почему Microsoft прекращает поддержку EWS?

  1. Стратегия «cloud‑first» – переход к единому‚ масштабируемому Graph API‚ который охватывает не только Exchange‚ но и SharePoint‚ Teams‚ OneDrive и другие сервисы Microsoft 365.
  2. Безопасность – Graph поддерживает современные протоколы аутентификации (OAuth 2.0‚ conditional access‚ MFA) и избавляется от устаревших методов‚ таких как Basic authentication.
  3. Производительность и масштабируемость – REST‑based JSON payloads легче парсятся‚ лучше кэшируются и обеспечивают меньшую задержку.
  4. Упрощение разработки – единая конечная точка‚ единая модель разрешений и богатый набор SDK для различных языков.

Таймлайн вывода EWS из эксплуатации

  • Анонс: Май 2024 г. – Microsoft опубликовал дорожную карту‚ указав‚ что поддержка EWS будет постепенно прекращаться.
  • Фаза 1 (ограничение новых клиентов): С 1 января 2025 г. новые приложения‚ регистрируемые в Azure AD‚ не смогут использовать EWS без явного исключения.
  • Фаза 2 (отключение Basic authentication): С 1 июля 2025 г. Basic authentication для EWS полностью отключён в Exchange Online.
  • Фаза 3 (полное выключение EWS endpoint): С 30 сентября 2026 г. конечная точка https://outlook.office365.com/EWS/Exchange.asmx будет недоступна для всех клиентов.
  • Текущая дата : Мы находимся в периоде‚ когда EWS всё ещё работает‚ но уже близко к окончательному отключению. Рекомендуется завершить миграцию до конца сентября 2026 г.
  • Кто затронет изменение?

    • Корпоративные приложения‚ построенные на .NET‚ Java‚ Python или других платформах‚ использующие EWS Managed API или raw SOAP-запросы.
    • Скрипты администрирования (например‚ PowerShell-модуль ExchangeWebServices или скрипты‚ использующие New-WebServiceProxy).
    • Сторонние решения для резервного копирования‚ миграции‚ архивации и синхронизации с мобильными устройствами.
    • Внутренние инструменты DevOps‚ которые выполняют автоматизированное создание/обновление календарных событий или обработку входящей почты.

    Последствия несвоевременной миграции

    • Потеря доступа к данным: После 30 сентября 2026 г. все запросы к EWS будут возвращать HTTP 410 Gone или 403 Forbidden.
    • Нарушение бизнес‑процессов: Автоматические уведомления‚ синхронизация календарей‚ обработка входящих заявок могут остановиться.
    • Штрафы и SLA: Некоторые контракты с провайдерами облачных услуг могут включать штрафы за простои‚ вызванные устаревшими интеграциями.

    Как подготовиться к переходу?

    Инвентаризация существующих интеграций

    • Соберите список всех приложений‚ скриптов и сервисов‚ которые обращаются к EWS.
    • Определите‚ какие именно операции выполняются (чтение писем‚ создание встреч‚ управление контактами и т.д.).
    • Оцените объём трафика и частоту вызовов.

    Выбор целевого API

    Для большинства сценариев рекомендуется перейти на Microsoft Graph API. В отдельных случаях‚ где требуется низкоуровневый доступ к почтовым ящикам (например‚ экспорт всего содержимого ящика)‚ можно рассмотреть REST API Exchange Online (отдельный endpoint‚ но также основанный на REST/JSON).

    Планирование аутентификации

    • Перейдите с Basic authentication на OAuth 2.0 с использованием Azure AD приложений и delegated или application permissions.
    • Для приложений‚ работающих от имени пользователя‚ используйте delegated permissions (Mail.ReadWrite‚ Calendars.ReadWrite и т.д.).
    • Для фоновых сервисов и daemon‑приложений – application permissions с необходимыми правами (Mail.ReadWrite.All‚ Calendars.ReadWrite.All).
    • Настройте условный доступ и MFA там‚ где это возможно.

    Разработка и тестирование

    • Используйте официальные SDK: Microsoft Graph .NET Client Library‚ Microsoft Graph Java SDK‚ Microsoft Graph Python SDK и др.
    • Замените SOAP‑запросы на соответствующие Graph‑эндпоинты:
      • Получение сообщений: GET /users/{id}/messages
      • Создание встречи: POST /users/{id}/events
      • Управление контактами: GET /users/{id}/contacts и т.д.
    • Выполните нагрузочное тестирование‚ сравнив latency и throughput между EWS и Graph.
    • Обработайте пагинацию и ограничения throttling (Graph использует HTTP 429 с заголовком Retry-After).

    План миграции и отката

    • Разбейте миграцию на этапы по приложениям или по типам операций.
    • Запустите параллельный режим: новое приложение пишет в обе системы (EWS и Graph) на короткий период‚ проверяя согласованность данных.
    • Подготовьте скрипты отката‚ которые позволят быстро вернуться к EWS в случае критической ошибки (доступен до 30 сентября 2026 г.).
    • Обучите службу поддержки и конечных пользователей новым сообщениям об ошибках и процедурам восстановления.

    Мониторинг и оповещения

    • Настройте логирование всех вызовов к Graph (Azure Monitor‚ Application Insights).
    • Создайте оповещения о росте частоты ошибок 4xx/5xx‚ о превышении лимитов throttling и о попытках обращения к устаревшему EWS endpoint.
    • Регулярно проверяйте дату истечения поддержки в центре сообщений Microsoft 365.

    Часто задаваемые вопросы (FAQ)

    Могу ли я продолжать использовать EWS после 30 сентября 2026 г.‚ если получу специальное разрешение от Microsoft?
    Нет. После указанной даты конечная точка EWS будет полностью выключена на уровне инфраструктуры; исключения не предусмотрены.
    Нужно ли мне менять аутентификацию‚ если я уже использую OAuth с EWS?
    Да. Хотя EWS поддерживает OAuth‚ после выключения endpoint все OAuth‑токены станут бесполезными. Необходимо перейти на Graph и получить новые токены с соответствующими scopes.
    Есть ли разница в функциональности между EWS и Graph для календарей?
    Graph покрывает большинство операций календаря (CRUD над событиями‚ просмотр занятости‚ работу с календарными группами). Некоторые редко используемые свойства (например‚ определенные расширенные MAPI‑свойства) могут требовать использования Exchange Web Services через Exchange.asmx в гибридных сценариях. Для таких случаев Microsoft рекомендует использовать Exchange Online PowerShell или REST API с расширенными свойствами.
    Как быстро я могу ожидать ответа от Graph по сравнению с EWS?
    В среднем Graph обеспечивает аналогичную или чуть меньшую задержку благодаря JSON‑payload и HTTP/2. Однако точные показатели зависят от региона‚ нагрузки и сложности запроса.
    Нужно ли мне переоформлять лицензии?
    Нет. Доступ к Graph включён в те же лицензии Microsoft 365‚ что и доступ к Exchange Online и EWS. Изменения касаются только способа доступа.

    Прекращение поддержки EWS в Exchange Online – это логичный шаг в рамках стратегии Microsoft по унификации и модернизации доступа к своим облачным сервисам. Хотя переход требует усилий по инвентаризации кода‚ изменению методов аутентификации и тестированию новых вызовов‚ он открывает путь к более безопасному‚ производительному и легко поддерживаемому решению. Начиная уже сейчас с планирования и постепенной миграции‚ организации смогут избежать простоев и обеспечить бесперебойную работу своих бизнес‑приложений после 30 сентября 2026 г.

    Автор: ваш надежный помощник в мире ИТ. Дата публикации: .