Overview MAPI over HTTP

Mapi (Messaging Application Programming Interface) è un protocollo di trasporto che migliora stabilità e affidabilità delle connessioni tra client Outlook ed Exchange Server, spostando il layer di trasporto su modelli HTTP (Hypertext Transfer Protocol) standard. Il MAPI over HTTP da Exchange 2013 CU4 SP1 ed Outlook 2013 SP1, di fatto ha sostituito quello che veniva definito Outlook Anywhere, RPC (Remote Procedure Call) Over HTTP. Mapi over HTTP rimuove la complessità della dipendenza di Outlook Anywhere dall’ormai obsoleta tecnologia RPC.

Di seguito un confronto tra l’architettura di Outlook Anywhere e di MAPI over HTTP.

Figura 1 – Architettura Outlook Anywhere

Figura 2 – Architettura MAPI over HTTP

MAPI over HTTP sposta la connessione Outlook/Exchange in un vero modello di “request/response” HTTP e non ha più neccessità di avere una connessione attiva di lunga durata per ogni sessione creata tra Outlook ed Exchange. Come vedete dalle immagini soprastanti non esistono più le connessioni gemelle “RPC_DATA_IN” e “RPC_DATA_OUT”, richieste per ogni sessione di Outlook Anywhere. Con MAPI verranno quindi ridotte le connessioni TCP simultanee stabilite tra client e server. MAPI / HTTP genererà un massimo di 2 connessioni simultanee, generando così una così una connessione di lunga durata e una aggiuntiva di breve durata su richiesta . Con Outlook Anywhere il pacchetto veniva essenzialmente incapsulato due volte in tutte le comunicazioni con Exchange, aggiungendo così molta complessità. MAPI/HTTP rimuove l’incapsulamento RPC all’interno dei pacchetti HTTP inviati attraverso la network, rendendo MAPI/HTTP un payload HTTP molto più comprensibile e prevedibile. MAPI introduce un ulteriore cambiamento a livello di network, questo protocollo separa la sessione client/server dalla connessione di rete sottostante. Con Outlook Anywhere, se si perdeva la connessione tra client e server, la session veniva invalidata e doveva essere ristabilita di nuovo, operazione lunga e costosa. Con MAPI, quando la connessione di rete riscontra problematiche, la sessione non viene reimpostata per 15 minuti e il client può semplicemente riconnettersi e continuare da dove era stato interrotto prima che si verificasse l’interruzione a livello di rete. Come potete capire questo è estremamente utile per quegli utenti che potrebbero avere banda di bassa qualità.

Riassunto vantaggi MAPI/HTTP

MAPI/HTTP offre i seguenti vantaggi ai client che lo supportano:

  • Abilita future innovazioni nell’autenticazione utilizzando il protocollo basato su HTTP.
  • Fornisce tempi di riconnessione più rapidi dopo un’interruzione di comunicazione perché devono essere ricompilate solo le connessioni TCP (non le connessioni RPC). Di seguito sono riportati alcuni esempi di un’interruzione di comunicazione:
    • Sospensione del dispositivo
    • Il passaggio da rete cablata a rete senza fili o cellulare
  • Offre un contesto di sessione non dipendente dalla connessione. Il server mantiene il contesto della sessione per un periodo di tempo configurabile, anche se l’utente cambia rete.

MAPI/HTTP per l’aggiornamento di Exchange

In Exchange 2016 o versione successiva, MAPI/HTTP è abilitato per impostazione predefinita a livello di organizzazione, anche se è comunque necessario configurare la virtual directory dedicata a MAPI/HTTP di ogni macchina che ospita Exchange Server. Gli scenari in cui MAPI/HTTP è abilitato o disabilitato per impostazione predefinita a livello di organizzazione sono descritti nella tabella seguente:

Exchange 2019 Exchange 2016
Aggiornamento da un ambiente di Exchange 2016 MAPI/HTTP è abilitato per impostazione predefinita n/d
Aggiornamento da un ambiente che contiene qualsiasi server di Exchange 2013 MAPI/HTTP è disabilitata per impostazione predefinita MAPI/HTTP è disabilitata per impostazione predefinita
Aggiornamento da un ambiente di Exchange 2010 n/d MAPI/HTTP è abilitato per impostazione predefinita

Durante l’aggiornamento da un’organizzazione che contiene i server di Exchange 2013, gli amministratori riceveranno l’avviso MAPI over http non è abilitato [WarnMapiHttpNotEnabled] è altamente consigliato abilitare MAPI/HTTP subito dopo aver installato un nuovo Exchange Server 2016/2019. In qualsiasi organizzazione che contenga Exchange 2013 server, MAPI/HTTP non verrà abilitato per impostazione predefinita e gli amministratori dovranno seguire i passaggi che vedremo in seguito per abilitarlo.

Supporto e prerequisiti

Tenete in considerazione i seguenti requisiti di versione per attivare MAPI/HTTP, la seguente matrice vi mostra tutte le combinazioni di versione di Outlook ed Exchange Server:

Prodotto Exchange 2019 Exchange 2016 Exchange 2013 SP1 Exchange 2013 RTM Exchange 2010 SP3
Outlook 2013 SP1 e tutte le versioni successive di Outlook MAPI/HTTP

Outlook Anywhere

MAPI/HTTP

Outlook Anywhere

MAPI/HTTP

Outlook Anywhere

Outlook Anywhere RPC

Outlook Anywhere

Outlook 2010 SP2 con aggiornamenti

KB2956191 e KB2965295 (14 aprile 2015)

MAPI/HTTP

Outlook Anywhere

MAPI/HTTP

Outlook Anywhere

MAPI/HTTP

Outlook Anywhere

Outlook Anywhere RPC

Outlook Anywhere

Outlook 2013 RTM Outlook Anywhere Outlook Anywhere Outlook Anywhere Outlook Anywhere RPC

Outlook Anywhere

Tutte le versioni precedenti di Outlook Outlook Anywhere Outlook Anywhere Outlook Anywhere Outlook Anywhere RPC

Outlook Anywhere

Prerequisiti

I seguenti prerequisiti sono necessari per i client e i server che supportano MAPI/HTTP con Exchange Server:

  • Client Outlook supportati (vedere la tabella soprastante).
  • .NET Framework 4.5.2 o versione successiva. Si noti che questo non è più un problema per Exchange 2016 CU5 o versione successiva. Per ulteriori informazioni sui requisiti di .NET Framework per Exchange 2016, vedere supported .NET Framework versions for exchange 2016.

Configurare MAPI/HTTP in Exchange Server

  • Configurazione Virtual Directory, per impostazione predefinita, Exchange crea una virtual directory dedicata al MAPI/HTTP. È possibile utilizzare la powershell tramite CMDLET per configurare la virtual directory. È necessario configurare URL interni, esterni o entrambi. Facciamo un esempio di CMDLET per configurare gli URL della virtual directory di MAPI:
Set-MapiVirtualDirectory -Identity "SRVMAIL01\mapi (Default Web Site)" -InternalUrl https://mail.technical365.it/mapi -IISAuthenticationMethods Negotiate
  • Configurazione dei certificati, il certificato bindato sui website delle macchine di Exchange deve ovviamente contenere tra i Subjet Alternative Name l’FQDN presente nell’URL configurata per la virtual directory dedicata al MAPI. È fortemente consigliato utilizzare un certificato emesso da Root CA pubblica di terze parti in modo da non avere problemi di trust della Root CA anche su macchine non a dominio o dispositivi BYOD (Potreste pensare di voler utilizzare certificati emessi da una root ca interna o certificati self-signed dalle stesse macchine di Exchange perché vi “costa meno”, bene non fatelo).
  • Modifica eventuali bilanciatori, in caso ci dovessimo trovare dinnanzi ad una farm con all’interno più CAS e in presenza di un eventuale ADC (Application Delivery Controller) che pubblica in L7 la nostra farm andando a lavorare sugli header HTTP di richiesta dei client, dobbiamo stare attenti che le regole su ADC comprendano la pubblicazione dell’URL facente riferimento alla virtual directory del MAPI.
  • Abilitazione MAPI a livello di Organizzazione di Exchange, È possibile abilitare MAPI/HTTP a livello di Organizzazione di Exchange (si in caso la vostra prima organizzazione di Exchange sia basata su 2016/2019 non dovrete fare assolutamente nulla). Per abilitare MAPI a livello di Organizzazione dovremo eseguire il seguente CMDLET:
Set-OrganizationConfig -MapiHttpEnabled $true
  • Abilitazione MAPI per singola mailbox, questo protocollo oltre a poterlo abilitare a livello di Organizzazione, possiamo abilitarlo anche a livello di singola mailbox, o disabilitarlo per singola mailbox. Questo è possibile farlo tramite la seguente CMDLET:
Set-CasMailbox <user or mailbox ID> -MapiHttpEnabled $true
  • Verificare MAPI su connessioni http, abbiamo la possibilità di testare l’interfaccia MAPI end-to-end tramite il CMDLET “Test-OutlookConnectivity”. Per poter utilizzare questa CMDLET è necessario che il servizio “Microsoft Exchange Health Manager (MSExchangeHM). Vediamo un esempio di CMDLET:
Test-OutlookConnectivity -RunFromServerId SrvMail01 -ProbeIdentity OutlookMapiHttpSelfTestProbe

Figura 3 – Esempio Test Mapi connection da Exchange Management Shell

  • Abilitazione MAPI a connessioni esterne, abbiamo inoltre la possibilità di abilitare o disabilitare il MAPI/HTTP per le connessione esterne con il seguente CMDLET:
Set-CASMailbox -MAPIBlockOutlookExternalConnectivity $true

Figura 4 – Esempio configurazione accesso dall’esterno MAPI

CONCLUSIONI

MAPI è l’acronimo di Messaging Application Programming Interface. Se dovessimo descriverlo in modo sempliciotto, un modo per un programma di chiamare funzioni su un server di messaggistica. Questo protocollo migliora stabilità e affidabilità delle connessioni tra client Outlook ed Exchange Server, spostando il layer di trasporto su modelli HTTP (Hypertext Transfer Protocol) standard. In caso vi troviate in organizzazioni create con Exchange 2013 RTM o inferiori vi consiglio di proseguire con l’abilitazione del MAPI seguendo passo passo gli step descritti in questo articolo e nella documentazione ufficiale Microsoft.

Stay Tuned on Technical365!!

Spread the love

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *