Pozn.: Prakticky jsem instaloval Exchange Server SE roli Mailbox server na Windows Server 2025. V prostředí s jinou interní a veřejnou DNS doménou a Split DNS (Split-Brain DNS). Do existující organizace Exchange 2016 s využitím DAG (Database Availability Group).
Nastavení přístupu klientů (Client Access)
- Exchange Server 2016 Client Access - přístup klientů - můj starší článek
- Configure external URLs
- Configure MAPI over HTTP in Exchange Server
Musíme nastavit adresy (URL) pro interní a externí přístup klientů. A také požadovaný způsob autentizace. Klient se může připojit k libovolnému Mailbox serveru a je zajištěn prostup požadavku (proxy) na server, kde je aktivní databáze pro jeho schránku.
Typy klientů
Klientem může být
- desktopová aplikace jako Outlook
- webový prohlížeč pro Outlook on the web
- mobilní zařízení
Podporované protokoly a metody přístupu klientů
Pro přístup klientů jsou k dispozici různé protokoly, většinou je komunikace skrze HTTPS.
MAPI over HTTP- primární protokol pro přístup z aplikace Outlook (podporován od Outlook 2013 SP1), Messaging Application Programming Interface (MAPI) zapouzdřený do HTTPSOutlook on the web(OWA, dříve Outlook Web App) - přístup k poštovní schránce prostřednictvím webového prohlížečeExchange ActiveSync- protokol (založený na HTTP a XML) pro připojení ke schránce z mobilních zařízeníOutlook Anywhere- MAPI over RPC over HTTP, starší možnost pro připojení klientů, kteří nepodporují MAPI over HTTP (nechápu o které klienty by mělo jít, Exchange SE podporuje Outlook od verze 2016, který podporuje MAPI over HTTP)POP3 a IMAP4- volitelná možnost přístupu ke schránce pomocí programů, které používají protokol POP3 nebo IMAP4
Konfigurace interních a externích adres (URL) a autentizace
Služby, které budeme konfigurovat, běží na Exchange Mailbox serveru jako IIS virtuální adresáře (Virtual Directories). Konfiguraci můžeme provádět pomocí Exchange Admin Center (EAC) nebo Exchange Management Shell (EMS). Pro většinu situací se můžeme podívat na nastavení na stávajícím serveru a stejně nastavit službu na novém Exchange SE.
Po instalaci Exchange Serveru se na jeho jednotlivé klientské služby nastaví adresa daného serveru pro interní přístup (Internal URL). Externí přístup (External URL) je nenastavený. Naším cílem je tedy změnit interní URL a přidat externí URL. Použité adresy služeb jsme popisovali v minulém díle, jde o mail.firma.local a mail.firma.cz. Interně je adresa DNS A záznam, který obsahuje IP adresy všech Exchange serverů (zatím bez nového Exchange SE).
Outlook Anywhere
Myslím, že Outlook Anywhere se již nevyužívá a nejlepší by bylo jej vypnout, to ale nijak jednoduše nelze.
Pozn.: V praxi jsem zjistil, že se Outlook občas pokusí k Outlook Anywhere připojit. Interní adresu musíme v konfiguraci zadat a pak záleží na host name a použitém certifikátu (při chybě vyskakuje varování, i když Outlook zůstává připojen).
Exchange Admin Center
Konfigurace pomocí EAC se nachází na jiném místě než všech ostatních služeb (až na POP3 a IMAP4, které zde neřešíme).
- EAC - Exchange Admin Center
- Servers - Servers
- zvolíme server a klikneme na tužku (Edit)
- přepneme se na Outlook Anywhere
- nastavujeme Specify the external host name, Specify the internal host name, Specify the authentication method for external clients
Exchange Management Shell
Pomocí EMS si můžeme vypsat důležitá nastavení všech serverů.
[PS] C:\>Get-OutlookAnywhere | fl servername,external*,internal*,iis*,ssl*
ServerName : MAIL0
ExternalHostname : mail.firma.cz
ExternalClientAuthenticationMethod : Negotiate
ExternalClientsRequireSsl : True
InternalHostname : mail.firma.local
InternalClientAuthenticationMethod : Ntlm
InternalClientsRequireSsl : True
IISAuthenticationMethods : {Basic, Ntlm, Negotiate}
SSLOffloading : True
A provést potřebná nastavení na novém server (některé parametry se musí zadat společně).
Set-OutlookAnywhere -Identity "MAIL1\Rpc (Default Web Site)" -ExternalHostname "mail.firma.cz" -ExternalClientsRequireSsl $true ` -ExternalClientAuthenticationMethod Negotiate -InternalHostname "mail.firma.local" -InternalClientsRequireSsl $true ` -InternalClientAuthenticationMethod Negotiate
Ostatní služby - Virtual Directories
Exchange Admin Center
Konfigurace ostatní služeb pro přístup klientů se v EAC nachází na společném místě.
- EAC - Exchange Admin Center
- Servers - Virtual directories
Jsou zde virtuální adresáře pro jednotlivé služby. Nejen ty, které jsme uvedli na začátku.
mapi (Default Web Site)- MAPI over HTTPowa (Default Web Site)- Outlook on the web (OWA)Microsoft-Server-ActiveSync (Default Web Site)- Exchange ActiveSync (EAS)AutoDiscover (Default Web Site)- AutoDiscoverecp (Default Web Site)- Exchange Admin Center, dříve Exchange Control Panel (ECP)EWS (Default Web Site)- Exchange Web Services (EWS)OAB (Default Web Site)- Offline Address Book (OAB)PowerShell (Default Web Site)- PowerShell vzdálený přístup
Adresu pro externí přístup můžeme nastavit hromadně, když klikneme na ikonu klíče (Configure external access domain). Ostatní nastavujeme pro jednotlivé servery a služby.
- nahoře můžeme filtrovat určitý server nebo typ služby
- v seznamu vybereme službu (adresář) a klikneme na ikonu tužky (Edit)
- pro většinu služeb můžeme nastavit interní a externí URL a autentizaci

Exchange Management Shell
Pomocí EMS si můžeme vypsat důležitá nastavení jednotlivých služeb (adresářů) na všech serverech.
Hlavní služby
Get-MapiVirtualDirectory | FL Server,external*,internal*,iis* Get-OwaVirtualDirectory | FL ServerName,externalurl,internalurl,*auth*,LogonFormat Get-ActiveSyncVirtualDirectory | FL Server,external*,internal*,*authenabled*,*certauth,*ssl*
Další služby
Get-WebServicesVirtualDirectory | FL Server,external*,internal*,*Authentication Get-OABVirtualDirectory | FL Server, external*,internal*,*Authentication,*SSL Get-EcpVirtualDirectory | FL Server, external*,internal*,*Authentication Get-PowerShellVirtualDirectory | FL Server, external*,internal*,*Authentication,*SSL
Autodiscover Na virtual directory nenastavujeme URL, ale pouze autentizaci. Klienti v doméně používají pro nalezení adresy také SCP (Service Connection Point) objekt v AD.
Get-AutodiscoverVirtualDirectory | FL Server,*Auth* Get-ClientAccessService | FL Name,*Enabled,*Uri,*Site*
Nastavení interní a externí adresy pomocí EMS
Interní a externí adresu můžeme pomocí EMS jednoduše nastavit.
$s = "mail1" $urlI = "mail.firma.local" $urlE = "mail.firma.cz" Get-MapiVirtualDirectory -Server $s | Set-MapiVirtualDirectory -InternalUrl https://$urlI/mapi -ExternalUrl https://$urlE/mapi Get-OwaVirtualDirectory -Server $s | Set-OwaVirtualDirectory -InternalUrl https://$urlI/owa -ExternalUrl https://$urlE/owa Get-ActiveSyncVirtualDirectory -Server $s | Set-ActiveSyncVirtualDirectory -InternalUrl https://$urlI/Microsoft-Server-ActiveSync ` -ExternalUrl https://$urlE/Microsoft-Server-ActiveSync Get-EcpVirtualDirectory -Server $s | Set-EcpVirtualDirectory -InternalUrl https://$urlI/ecp -ExternalUrl https://$urlE/ecp Get-WebServicesVirtualDirectory -Server $s | Set-WebServicesVirtualDirectory -InternalUrl https://$urlI/EWS/Exchange.asmx ` -ExternalUrl https://$urlE/EWS/Exchange.asmx Get-OabVirtualDirectory -Server $s | Set-OabVirtualDirectory -InternalUrl https://$urlI/OAB -ExternalUrl https://$urlE/OAB Get-PowerShellVirtualDirectory -Server $s | Set-PowerShellVirtualDirectory -InternalUrl https://$urlI/powershell ` -ExternalUrl https://$urlE/powershell Get-ClientAccessService -Identity $i | Set-ClientAccessService -AutoDiscoverServiceInternalUri https://$urlI/Autodiscover/Autodiscover.xml
Autentizační metody
Zvolit vhodnou formu autentizace s ohledem na typ služby a konkrétní podmínky je významný, a zároveň poměrně složitý úkol. Řešil jsem již u přechodu na Exchange 2016 a ani tehdy ani nyní jsem nenalezl žádnou rozumnou dokumentaci. Pokud máme aktuálně dobře nastavené, tak jen provedeme stejnou konfiguraci na novém serveru. Ale může být vhodné vše znovu vyhodnotit.
Měli bychom využít co nejbezpečnější způsob autentizace. Může to být Kerberos, který ovšem můžeme použít pouze interně v doméně. Ještě lepší by byla Modern Auth, tedy OAuth 2.0, ale to vyžaduje ADFS nebo Hybrid Modern Authentication (HMA). Pro některé služby (třeba ActiveSync) musíme standardně zůstat u Basic authentication.
Windows Extended Protection
- Configure Windows Extended Protection in Exchange Server
- Exchange Server Support for Windows Extended Protection
Důležité je, že po instalaci je automaticky zapnutá Windows Extended Protection. Pokud nesplňujeme podmínky, tak mohou mít problém uživatelé, kteří se připojují Outlookem z internetu. Projevuje se to tak, že dokola vyskakuje dialog na přihlášení.
Ve Windows Security Event Logu nalezneme události Event ID 4625, Audit Failure, An account failed to log on.
Failure Reason: An Error occured during Logon. Status: 0xC000035B
Problém může být, když používáme SSL Bridging. Firewall či Load Balancer dešifruje SSL spojení od klientů a navazuje nové šifrované spojení na Exchange. To může být použito proto, že se externí klienti připojují na veřejnou doménu a používáme komerční certifikát. Ale v interní síti máme doménu neveřejnou a certifikáty od interní CA. A to je právě situace, která není podporovaná s Windows Extended Protection.
SSL Bridging můžeme použít pouze v případě, kdy máme stejný certifikát na Exchange serveru i na Firewallu. Řešení je používat v interní síti veřejná DNS jména pro Exchange webové služby (většinou jde o jednu sdílenou/virtuální adresu) a všude nastavit komerční certifikát.
Kerberos autentizace pro load-balanced Client Access
Protože pro služby využíváme virtuální adresu, společné doménové jméno (stejný namespace a URL), pro všechny Exchange servery. Tak máme rozvažované (Load-balanced) Mailbox servery, kde běží služby pro přístup klientů. Když chceme využít Kerberos autentizaci pro některou službu (třeba MAPI over HTTP), tak musíme v doméně vytvořit speciální účet a nastavit mu Service Principal Names (SPN). Všechny servery musí využívat stejné Alternate Service Account (ASA) credential.
Podrobně je popsáno v oficiální dokumentaci nebo ve starším článku Exchange Server 2016 Client Access - přístup klientů. Na účtu bychom již neměli využívat RC4, takže atribut msDS-SupportedEncryptionTypes má hodnotu například 24. Zde vycházíme z toho, že účet máme vytvořený a pouze nastavíme na nových Exchange serverech.
Kontrola aktuálního nastavení
[PS] C:\>Get-ClientAccessService -IncludeAlternateServiceAccountCredentialStatus | FL Name, AlternateServiceAccountConfiguration Name : MAIL0 AlternateServiceAccountConfiguration : Latest: 25.03.2019 7:49:00, firma\EXCH2016ASA$ Previous: <Not set> Name : MAIL1 AlternateServiceAccountConfiguration : Latest: <Not set> Previous: <Not set>
Nastavení ASA Credential na další Exchange server
cd $ExScripts .\RollAlternateServiceAccountPassword.ps1 -ToSpecificServer mail1.firma.local -CopyFrom mail0.firma.local
MAPI over HTTP
Při výpisu nastavení se zobrazuje InternalAuthenticationMethods, ExternalAuthenticationMethods a IISAuthenticationMethods, ale v EAC i EMS můžeme nastavit pouze společnou hodnotu (tedy nelze mít jinou interní a externí metodu). Pomocí cmdletu Set-MapiVirtualDirectory používáme parametr IISAuthenticationMethods. Výchozí nastavení je NTLM, OAuth a Negotiate. Microsoft doporučuje mít vždy nastaveno oAuth.
Set-MapiVirtualDirectory -Identity "MAIL1\mapi (Default Web Site)" -IISAuthenticationMethods OAuth, Negotiate

Outlook on the Web (OWA) and Exchange Admin Center (EAC)
Autentizační metody pro OWA a EAC musíme nastavit stejně. Často se využívá Forms Based Authentication (FBA), která na pozadí využívá Basic authentication. Autentizaci nastavujeme opět společně pro interní i externí připojení.
Konfiguraci provedeme jednoduše pomocí EAC. Pro FBA nastavujeme také formát jména. Ale pouze pro OWA, pro ECP se musíme vždy přihlašovat pomocí Domain\user name. Pro OWA dále nastavujeme povolené OWA vlastnosti a přístup k souborům. Po některých změnách je potřeba restartovat IIS.
Exchange ActiveSync
Standardně se používá Basic authentication, další možnosti jsou Certificate Based Authentication (CBA) nebo Hybrid Modern Authentication (HMA).
Exchange Web Services (EWS)
Standardně se používá Windows authentication. Pro některé případy se používala Basic authentication, což již není doporučeno.
Pokud máme Exchange Hybrid, tak bychom měli na EWS zapnout MRS Proxy (Enable MRS Proxy endpoint).
Outlook Anywhere (RPC over HTTP)
Jak jsme si uvedli, Outlook Anywhere by již neměl být potřeba, přesto si uvedeme hlavní informace. Různé rady nalezneme v článku Disable Basic authentication on the RPC (Outlook Anywhere) virtual directory.
Uvádí se zde, že bychom autentizaci měli nastavovat pomocí EMS, protože EAC nastavuje pouze externí. Doporučuje se nastavit stejné metody pro interní i externí přístup. Cmdlet Set-OutlookAnywhere má parametry InternalClientAuthenticationMethod, ExternalClientAuthenticationMethod a IISAuthenticationMethods, které nastavují jednotlivé hodnoty. Nebo můžeme využít společný DefaultAuthenticationMethod.
Get-OutlookAnywhere -Server MAIL1 | Set-OutlookAnywhere -DefaultAuthenticationMethod Negotiate
V jiných příkladech se často uvádí nastavení.
Get-OutlookAnywhere -Server MAIL1 | Set-OutlookAnywhere -ExternalClientAuthenticationMethod Negotiate ` -InternalClientAuthenticationMethod Negotiate -IISAuthenticationMethods Basic,NTLM,Negotiate
Nastavení Download Domains
Abychom v rámci OWA zabezpečili stahování příloh proti útokům typu CSRF (cross-site request forgery), tak se doporučuje nastavit jinou doménu.
Kontrola aktuálního nastavení
Get-OwaVirtualDirectory | FL ServerName,*Download*
Konfigurace nového serveru
Get-OwaVirtualDirectory -Server MAIL1 | Set-OwaVirtualDirectory -ExternalDownloadHostName "maildownload.firma.cz" ` -InternalDownloadHostName "maildownload.firma.cz"
Outlook AutoDiscover test a informace o připojení
Přímo v aplikaci Outlook můžeme provést jednoduché kontroly.
- spustíme Outlook
- klikneme pomocí Ctrl + pravé tlačítko myši na ikonu Outlook v oznamovací oblasti (vedle hodin)

Connection Status
Zjistíme, k jakým Exchange serverům se připojujeme, pomocí jakého protokolu a autentizace.
- klikneme na Connection Status
- vidíme jednotlivá spojení na určité servery nebo virtuální adresy, jsou zde uvedeny protokol (
HTTPpro MAPI over HTTP,RPC/HTTPpro Outlook Anywhere), URL, autentizace (NEGO,NTLM,KERBEROS,CLEAR- Basic,BEARER- OAuth bearer token), šifrování a další

Test E-mail AutoConfiguration
Můžeme se podívat na informace, které nám vrací AutoDiscover.
- klikneme na Test E-mail AutoConfiguration
- můžeme otestovat službu Autodiscover, log nám ukáže průběh nalezení URL a stažení XML, mezi výsledky je obsah konfiguračních dat

Zatím zde nejsou žádné komentáře.