MAPI over HTTP

Exchange 2013 Service Pack 1

Jak wiekszosc z Was juz pewnie zauwazyla, kilka dni temu wydany zostal dodatek Service Pack 1 dla Exchange Server 2013. Wprowadza on wiele nowosci, o których mozecie poczytac na blogu grupy produktowej https://blogs.technet.com/b/exchange/archive/2014/02/25/exchange-server-2013-service-pack-1-available.aspx.

Jedna z nowosci, która sie pojawila jest nowy sposób komunikacji pomiedzy programem Outlook i serwerami Exchange – MAPI over HTTP (lub czesto nazywany po prostu MAPI/HTTP).

Co to jest MAPI/HTTP?

Zadaniem MAPI/HTTP jest zastapienie protokolu RCP over HTTP (zwanego takze Outlook Anywhere). Jest to bardzo prosty protokól, zgodny z HTTP/1.1, w którym komendy MAPI wysylane sa do serwerów Exchange, bezposrednio z wykorzystaniem metody POST. W porównaniu do protokolu RPC over HTTP znaczaco upraszcza komunikacje z Exchange. Zeby nie pozostac goloslownym, spróbujmy sobie przeanalizowac, jak wyglada polaczenie RPC over HTTP.

Gdy Outlook chce komunikowac sie z serwerami Exchange, musi otworzyc dwa niezalezne polaczenia.

  • Pierwsze do komunikacji do serwera
  • Drugie, jako kanal zwrotny.

Polaczenia moga przechodzic przez niezalezne serwery CAS, ale zawsze musza ostatecznie trafic do tego samego serwera Mailbox (Back-End). Kazde zapytanie MAPI, opakowywane jest w protokól RPC a nastepnie dodatkowo w protokól HTTP, aby zostac przeslanym do serwera CAS. Tam komponent Proxy weryfikuje gdzie docelowo powinno trafic polaczenie i przekazuje je do wlasciwego serwera Mailbox. Polaczenie trafia docelowo na komponent RPC Proxy, który odczytuje komunikat RPC i nawiazuje lokalne polaczenie RPC. Dopiero na tym etapie komponenty Back-End sa w stanie przeczytac instrukcje MAPI wyslane przez klienta. Odpowiedz na te zadania zostanie odeslana analogicznie kanalem zwrotnym.

Jak widac na powyzszym przykladzie, architektura komunikacji obejmuje duza ilosc protokolów i komponentów, z których kazdy jest kolejnym punktem do analizy, gdy Outlook nie moze nawiazac polaczenia z serwerem Exchange.

Co zmienia protokól MAPI/HTTP.

Najlepiej bedzie znów przesledzic to na przykladzie.

Outlook chcac wyslac instrukcje MAPI, komunikuje sie bezposrednie z serwerem docelowym. Komendy przesylane sa bezposrednio, jako zapytania HTTP, które transparentnie przechodza przez serwer CAS, tak jak wszystkie pozostale protokoly jak OWA czy EWS.

Jakie zalety ma komunikacja MAPI/HTTP?

Z punktu widzenia uzytkownika zmiana jest dosc istotna. Outlook znacznie szybciej nawiazuje polaczenie z serwerem, w szczególnosci, gdy klient przelacza sie miedzy sieciami (np. przechodzi z sieci korporacyjnej na polaczenie GSM). Róznica jest takze odczuwalna przy wybudzaniu komputera ze stanu hibernacji.

Z punktu widzenia administratora, prostsza architektura oznacza mniej komponentów, które moga ulec awarii oraz duzo prostsza analize, gdy Outlook nie moze nawiazac polaczenia.

Jak uruchomic MAPI/HTTP

MAPI/HTTP jest domyslnie wylaczony, ale po wlaczeniu moze pracowac równolegle do protokolu Outlook Anywhere. Zanim zostanie uruchomiony, musimy zweryfikowac:

  • Czy uzytkownicy posiadaja oprogramowanie w wersji, która obsluguje nowy sposób komunikacji. W chwili obecnej wymagany jest Outlook 2013 z zainstalowany dodatkiem Service Pack 1.
  • Czy wszystkie serwery w ramach Database Availability Group oraz wszystkie serwery Client Access zostaly zaktualizowane do wersji Exchange 2013 Service Pack 1.

Jesli powyzsze sa spelnione, mozemy przejsc do konfiguracji:

  • Konfigurujemy adresy oraz protokól, który bedzie uzywany do weryfikacji poswiadczen uzytkowników:

Set-MapiVirtualDirectory -Identity "Contoso\mapi (Default Web Site)" -InternalUrl https://Contoso.com/mapi -IISAuthenticationMethods Negotiate

  • Upewniamy sie, ze certyfikat przypisany na serwerze zawiera FQDN, które skonfigurowalismy w poprzednim kroku. Jesli nie, instalujemy wlasciwy certyfikat.
  • Jesli przed serwerami CAS znajduje sie load/balancer lub srwery proxy, upewnijmy sie, ze ich konfiguracja obejmuje adresy, które skonfigurowalismy w pierwszym kroku.
  • Jesli wszystko jest gotowe, to uruchamiamy funkcjonalnosc MAPI/HTTP

Set-OrganizationConfig -MapiHttpEnabled $true

Jesli wszystko zostalo poprawnie skonfigurowane i korzystamy z programu Outlook we wlasciwej wersji, powinnismy po pewnym czasie dostac komunikat z prosba o wykonanie restartu klienta pocztowego. Po restarcie nawiazane zostanie polaczenie MAPI over HTTP.

Co jesli w swojej organizacji nadal mamy Exchange 2010?

Uzytkownicy laczacy sie do skrzynek przechowywanych na Exchange 2013 beda w pelni wykorzystywali MAPI over HTTP. Jesli jednak beda chcieli uzyskac polaczenie do udostepnionej skrzynki znajdujacej sie na Exchange 2010 lub od folderów publicznych przechowywanych na starszej wersji Exchange, ich program pocztowy otworzy niezalezne polaczenia z wykorzystaniem standardowego RPC over HTTP.

W powyzszym przykladzie:

  • Polaczenie do ksiazki adresowej: Protokól HTTP, typ Exchange Directory
  • Polaczenie do skrzynki na Exchange 2013: Protokól HTTP, typ Exchange Mail
  • Polaczenie do skrzynki na Exchange 2010: Protokól RCP/HTTP, typ Exchange Mail
  • Polaczenie do folderów publicznych na Exchange 2010: Protokól RPC/HTTP, typ Exchange Public Folders

Jesli chcielibyscie dowiedziec sie wiecej na ten temat, zapraszam do lektury i ogladania materialów dostepnych na naszych stronach:

MAPI over HTTP
https://technet.microsoft.com/en-us/library/dn635177(v=exchg.150).aspx

Exchange 2013 and MapiHttp
https://channel9.msdn.com/Events/Open-Specifications-Plugfests/Redmond-Interoperability-Protocols-Plugfest-2013/Exchange-2013-and-MapiHttp

Outlook 2013 Client Protocols
https://channel9.msdn.com/Events/Open-Specifications-Plugfests/Redmond-Interoperability-Protocols-Plugfest-2013/Outlook-2013-Client-Protocols