Dodatek SP1 dla programu Exchange 2013 wprowadza nowy protokół dla połączeń skrzynki pocztowej klienta - MAPI przez HTTP (MAPI / HTTP). Ten protokół ma na celu poprawę stabilności i niezawodności połączenia programu Outlook z serwerem Exchange poprzez przeniesienie transportu do warstwy HTTP. W tym artykule porozmawiamy o architekturze, funkcjach tego protokołu i zapewnimy małą instrukcję, jak go skonfigurować..
W poprzednich wersjach Outlook mógł wchodzić w interakcje z Exchange za pośrednictwem protokołu Rpc. Exchange 2003 wprowadza kolejny protokół łączności - Rpc ponad HTTP (lub Outlook Anywhere). Ten protokół był używany przede wszystkim do bezpiecznego łączenia zewnętrznych klientów z serwerem Exchange. W programie Exchange 2013 program Outlook Anywhere jest domyślnie używany do interakcji zarówno z klientami zewnętrznymi, jak i wewnętrznymi. W rzeczywistości podczas interakcji z tym protokołem MAPI ruch był najpierw zawijany w RPC, a następnie RPC w HTTP, a dopiero potem pakiet HTTP był przesyłany do serwera. Główną wadą RPC w stosunku do protokołu HTTP jest niska stabilność na niestabilnych połączeniach (w publicznych sieciach Wi-Fi lub przez Internet).
MAPI przez HTTP (faktycznie przy użyciu HTTPS) wyklucza protokół RPC ze schematu i jest oparty na HTTP 1.1, tj. klienci używają polecenia POST do interakcji z serwerem. Program Outlook połączony przez MAPI przez HTTP działa tak samo jak EWS, EAS lub OWA. Korzystając z niego, lepiej jest opracować scenariusze przełączania między sieciami, awarii sieci, wyjścia z trybu uśpienia i hibernacji itp..
Korzyści MAPI przez HTTP
- Szybkie ponowne połączenie po rozłączeniu (tylko TCP jest ponownie instalowany, a nie połączenie RPC)
- Niezależność treści sesji od połączenia (użytkownik może zmienić sieć połączeń w ramach sesji)
- Uwierzytelnianie przy użyciu protokołu HTTP
Początkowo MAPI / HTTP po stronie klienta był obsługiwany tylko w programie Outlook 2013 SP1, ale teraz po zainstalowaniu aktualizacji 2899591 (https://support.microsoft.com/en-us/kb/2899591/en-us), będzie działać również w programie Outlook 2010.
To włącz obsługę MAPI przez HTTP, System musi spełniać wymagania:
- Na serwerach CAS musi być zainstalowany program Exchange 2013 SP1
- Aby uzyskać optymalną wydajność MAPI / HTTP, należy zainstalować .NET Framework 4.5.2
- Ponieważ klienci używają programu Outlook 2013 z dodatkiem SP1 lub Outlook 2010 z aktualizacją KB2899591
Po zainstalowaniu programu Exchange 2013 SP1 na serwerze CAS powinien pojawić się katalog wirtualny MAPI. Sam protokół MapiOverHTTP jest wyłączony.
Sprawdź, czy atrybut ExternalUrl jest pusty:
Get-MapiVirtualDirectory | serwer ft, * url *
ExternalUrl, jak widzimy, jest pusty, musimy go wypełnić (w tym przykładzie ustawimy zarówno ExternalUrl, jak i wewnętrzny adres URL, pamiętaj, że certyfikat Exchange musi pasować do adresów określonych w zewnętrznych i wewnętrznych adresach URL).
Get-MapiVirtualDirectory | Set-MapiVirtualDirectory -InternalUrl -ExternalUrl -IISAuthenticationMethods NTLM, Negocjuj
Pozostaje aktywować MAPI przez HTTP na poziomie organizacji Exchange. Upewnij się, że protokół jest wyłączony:
Get-OrganizationConfig | FL * mapi *
Sprawdzimy również, czy w tej chwili program Outlook używa protokołu RPC / HTTP do łączenia się z programem Exchange.
Aktywujemy obsługę serwera dla protokołu MAPI / HTTP:
Set-OrganizationConfig -MapiHttpEnabled $ true
Po uruchomieniu polecenia musisz odczekać około godziny, aby zastosować wszystkie zmiany po stronie Exchange. W razie potrzeby możesz przyspieszyć proces, uruchamiając ponownie usługę MS Exchange Host Service i pulę Autodiscover na serwerze Mailbox.
Podczas wykonywania automatycznego wykrywania (Autodiscover) program Outlook poprosi serwer o obsługę MAPI przez HTTP (X-MapiHttpCapability) Jeśli serwer obsługuje ten protokół, klient otrzyma odpowiedź z danymi HTTP.
Podczas przełączania na nowy protokół program Outlook wyświetla ostrzeżenie:
Administrator Microsoft Exchange dokonał zmiany, która wymaga zamknięcia i ponownego uruchomienia programu Outlook.
Po ponownym uruchomieniu program Outlook powinien połączyć się ze skrzynką pocztową za pomocą interfejsu MAPI przez protokół HTTP. Wskazuje na to linia HTTP w kolumnie protokołu we właściwościach połączenia z programem Outlook..
Możesz sprawdzić łączność za pomocą nowego protokołu, przechodząc do adresu URL. W taki prosty sposób dowiemy się nazwy serwera CAS, na którym jesteśmy autoryzowani, oraz nazwy serwera skrzynki pocztowej.
Dodając wartość? Showdebug = yes do adresu URL, możesz wyświetlić bardziej interesujące informacje. (_https: //mail.contoso.com/mapi/emsmdb/? showdebug = yes)
Możesz również przetestować nowy protokół za pomocą polecenia cmdlet Powershll Test-OutlookConnectivity:
Test-OutlookConnectivity -RunFromServerId serv3 -ProbeIdentity OutlookMapiHttpSelfTestProbe
Rozwiązywanie problemów:
Dzienniki nowego protokołu są przechowywane tutaj:
- CAS:% ExchangeInstallPath% \ Logging \ HttpProxy \ Mapi \
- Serwer skrzynki pocztowej:% ExchangeInstallPath% \ Logging \ MAPI Client Access \
- Serwer skrzynki pocztowej:% ExchangeInstallPath% \ Logging \ MAPI Address Book Service \
Po włączeniu obsługi MAPI przez HTTP w DAG wszystkie serwery muszą ją obsługiwać, w przeciwnym razie klienci nie będą mogli korzystać ze swoich skrzynek pocztowych.
Według szacunków Microsoft użycie MAPI przez HTTP nieznacznie zwiększa obciążenie procesora na serwerach CAS, ale zmniejsza zużycie pamięci dla każdego użytkownika o 50-60%.
Nowa przeszkoda w łączeniu programu Outlook ze skrzynkami pocztowymi Exchange zapewnia korzyści pod względem wydajności i elastyczności sieci. Według twórców Microsoft, możliwe jest, że już w Exchange Server 2016 protokół MAPI przez HTTP stanie się głównym protokołem połączenia, a RPC przez HTTP będzie stopniowo porzucany..