Pozn.: Popis v článku vychází z Exchange Server SE RTM December 2025 Security Update (SU).
Úvod
Toto je první část, kde se věnujeme zapnutí a povolení HMA pro Outlook a ActiveSync. V Outlooku funguje docela dobře a automaticky. Ale připojení z mobilních zařízení (ActiveSync) je dost problematické. Primárně je funkční Outlook for iOS and Android.
Další krok je nastavení HMA pro OWA a zakázání Legacy Authentication. O tom by měla být druhá část.

Co je Hybrid Modern Authentication
Hybrid Modern Authentication (HMA) umožňuje provést ověření uživatele v Microsoft Entra ID, když přistupuje ke klientským službám (své poštovní schránce) na On-Premises Exchange Server. To umožní použít moderní autentizační metody včetně vícefaktorové autentizace (MFA - Multi-Factor Authentication) a podmíněného přístupu (Conditional Access).

Legacy vs. Modern Authentication
Pro moderní přihlášení se využívá OAuth 2.0 a autorizační token (přístupový a obnovovací OAuth token) získaný z cloudu. On-Premises Exchange přijme tento token a umožní přístup k poštovní schránce. Podmínkou využití je, že máme funkční Exchange Hybrid a identita uživatele musí existovat v Entra ID.
Jako Legacy Authentication se označují současné možnosti ověření na Exchange Serveru, tedy Basic Authentication a Windows Authentication (kam patří NTLM a Kerberos). Do Modern Authentication spadá OAuth 2.0.
Exchange služby a virtuální adresáře
HMA je podporováno pro připojení z Outlooku (MAPI over HTTP), přes web (Outlook on the Web - OWA, Exchange Web Services - EWS, Exchange Admin Center - ECP) či z mobilních zařízení (Exchange ActiveSync). Také pro související Autodiscover a Offline Address Book (OAB).
Není podporováno na starých protokolech Outlook Anywhere (RPC over HTTP), IMAP4 nebo POP3. Týká se klientských přístupů ke schránce, takže ne odesílání pošty pomocí SMTP.
Jde o služby, které využívají IIS Virtual Directories, tedy komunikace přes HTTP protokol. Určité informace o virtuálních adresářích jsem psal v článku Migrace Exchange Server 2016 na Subscription Edition (SE) část 2 Client Access.
Stručný průběh připojení ke schránce
- klient (třeba Outlook) podle emailové adresy získá informace z AutoDiscover
- připojuje se k požadované službě na On-Premises Exchange
- pro autentizaci je přesměrován na Entra ID (podle evoSTS URL)
- pokud se úspěšně autentizuje, tak získá OAuth 2.0 Access Token
- klient přistupuje k On-Premises Exchange a v HTTP hlavičce předá Access Token
- Exchange server ověří OAuth token (podpis, zda je určen jemu, platnost)
- identitu z tokenu namapuje na lokální AD účet
Entra ID Access Token vyhovuje standardu OAuth 2.0 bearer token (RFC6750) je strukturován jako JSON Web Token (JWT). Obsahuje identitu uživatele, Audience (cílová aplikace), Tenant ID, oprávnění, platnost, informace o způsobu ověření apod.
Do HTTP hlavičky se vkládá jako
Authorization: Bearer <token>
Předpoklady pro povolení HMA
Abychom mohli zprovoznit HMA, tak musíme splňovat různé předpoklady. Když budeme uvažovat pouze aktuálně podporované verze Exchange Server a Outlook, tak ty HMA podporují. Pokud jsme Hybrid Configuration Wizard použili naposled před lety, tak je vhodné použít (přejít na) aktuální verzi.
Předpoklady (Prerequisites)
- Exchange Server Subscription Edition s posledním Cumulative Update
- Exchange Hybrid vytvořený pomocí Hybrid Configuration Wizard (HCW) s topologií Classic Hybrid Deployment (Modern Hybrid nepodporuje HMA)

- servery musí mít povolenu komunikaci do internetu
- nesmíme používat SSL Offloading (ukončení SSL na zařízení (LB/FW) před Exchange a následné použití nešifrovaného spojení), můžeme používat SSL Bridging (zařízení před Exchange dešifruje SSL provoz a poté jej znovu zašifruje)
- Hybrid Modern Authentication musíme nastavit na všech serverech v organizaci (hlavní konfigurace se týká celé organizace)
- aktuální verze Microsoft Outlook
- povolená Modern authentication v Entra ID (Settings - Org settings - Services - Modern authentication), to velmi pravděpodobně povolené máme
Kontrola a příprava konfigurace
Tyto kroky jsou podrobně popsány v oficiální dokumentaci, takže zde jsou uvedeny pouze stručně. Hodí se uložit si výstupy následujících cmdletů.
On-Premises URL nastavená jako Entra SPN
URL, která používáme pro webové služby (virtuální adresáře) Exchange, musí být přidána do Entra ID jako Service Principal Names (SPN). V mnoha případech využíváme pouze dvě adresy mail.firma.cz a autodiscover.firma.cz.
Pomocí Exchange Management Shell (EMS) ověříme hodnoty pro jednotlivé virtuální adresáře
Get-MapiVirtualDirectory -ADPropertiesOnly | fl server,*url* Get-WebServicesVirtualDirectory -ADPropertiesOnly | fl server,*url* Get-ClientAccessService | fl Name, AutodiscoverServiceInternalUri Get-OABVirtualDirectory -ADPropertiesOnly | fl server,*url* Get-AutodiscoverVirtualDirectory -ADPropertiesOnly | fl server,*url* Get-ActiveSyncVirtualDirectory -ADPropertiesOnly | fl server,*url*
Pomocí Microsoft Graph PowerShell ověříme aktuální hodnoty (URL) v Entra ID
Connect-MgGraph -Scopes "Application.Read.All", "Application.ReadWrite.All" Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'" | select -ExpandProperty ServicePrincipalNames
Pokud některé naše URL (začínající https://) chybí, tak musíme přidat. V mém případě chyběla hodnota autodiscover.
$x = Get-MgServicePrincipal -Filter "AppId eq '00000002-0000-0ff1-ce00-000000000000'" $x.ServicePrincipalNames += https://autodiscover.oksystem.cz/ Update-MgServicePrincipal -ServicePrincipalId $x.Id -ServicePrincipalNames $x.ServicePrincipalNames
Zapnutý OAuth na virtuálních adresářích
Zkontrolujeme, že je OAuth povolen na všech virtuálních adresářích. Případně můžeme řídit, kde nechceme, aby šlo HMA použít.
Get-MapiVirtualDirectory | fl server,*url*,*auth* Get-WebServicesVirtualDirectory | fl server,*url*,*oauth* Get-OABVirtualDirectory | fl server,*url*,*oauth* Get-AutoDiscoverVirtualDirectory | fl server,*oauth* Get-ActiveSyncVirtualDirectory | fl server,*url*,*auth*
Pozn.: ActiveSyncVirtualDirectory je specifický, pomocí parametrů ExternalAuthenticationMethods a InternalAuthenticationMethods můžeme omezit povolené metody. Prázdná hodnota povoluje vše. Basic a Windows Auth ještě povolujeme speciálním parametrem.
Existence EvoSTS Auth Server
Zkontrolujeme, že existuje objekt EvoSTS Auth Server.
Get-AuthServer | where {$_.Name -like "EvoSts*"} | FT name,enabled
Pokud máme nasazenou Dedicated Exchange hybrid application pro bohatou hybridní koexistenci, což bychom nyní již měli mít, tak ta také využívá EvoSTS. Při nasazení se nastavili parametry ApplicationIdentifier a DomainName. Na konci článku Deploy dedicated Exchange hybrid app ve FAQ je uvedeno, že se vzájemně neovlivňuje.
Doporučuji si uložit aktuální nastavení.
Get-AuthServer | where {$_.Name -like "EvoSts*"} | FL *
Platný Exchange Server OAuth certifikát
Základem bezpečné komunikace je autentizační certifikát pro OAuth, který se generuje na Exchange Serveru a nahrává do Entra ID. Microsoft Exchange Server Auth Certificate má platnost 5 let, je důležité kontrolovat jeho platnost. Můžeme využít skript MonitorExchangeAuthCertificate. Používá se také pro Dedicated Exchange hybrid application.
Řízení ověřovacích metod pro uživatele pomocí Authentication Policy
- New-AuthenticationPolicy , Get-AuthenticationPolicy , Set-AuthenticationPolicy
- Disable Basic authentication in Exchange Online
Na IIS virtuálních adresářích Exchange povolujeme, které autentizační metody jsou pro danou službu povolené. Dále můžeme použít Autentizační politiky (Authentication Policy), kde můžeme blokovat Legacy nebo Modern autentizaci pro jednotlivé služby. Výchozí politika je přiřazena na konfiguraci organizace. Určitou politiku můžeme přiřadit přímo uživateli, ta pak přepisuje výchozí nastavení.
Pozn.: Politiky jsou dostupné také pro Exchange Online, kde mají cmdlety k dispozici parametry Allow na rozdíl od Block pro On-Prem.
Zobrazení existujících politik
Autentizační politiky se konfigurují pouze pomocí Exchange Management Shell (EMS).
Get-AuthenticationPolicy Get-AuthenticationPolicy | FT Name [PS] C:\>Get-AuthenticationPolicy OrgWideDefault | FL Block* BlockLegacyAuthActiveSync : False BlockLegacyAuthAutodiscover : False BlockLegacyAuthImap : False BlockLegacyAuthMapi : False BlockLegacyAuthOfflineAddressBook : False BlockLegacyAuthPop : False BlockLegacyAuthRpc : False BlockLegacyAuthWebServices : False BlockModernAuthActiveSync : False BlockModernAuthAutodiscover : False BlockModernAuthImap : False BlockModernAuthMapi : False BlockModernAuthOfflineAddressBook : False BlockModernAuthPop : False BlockModernAuthRpc : False BlockModernAuthWebServices : False
Pozn.: Zajímavé, že se zde uvádí i IMAP a POP protokoly, které HMA nepodporují. Nachází se zde Exchange Web Services (EWS), ale nikoliv Outlook on the web (OWA) a Exchange Admin Center (ECP).
Výchozí politika
Zobrazení výchozí politiky nastavené v konfiguraci organizace.
[PS] C:\>Get-OrganizationConfig | FL DefaultAuthenticationPolicy DefaultAuthenticationPolicy : OrgWideDefault
Úprava výchozí politiky
Pokud chceme HMA nejprve testovat na omezené skupině uživatelů. Tak můžeme upravit defaultní politiku (nebo vytvořit novou a přiřadit), aby blokovala moderní ověřování. Pak vytvořit novou politiku, která moderní ověřování povoluje, a přiřadit vybraným uživatelům.
Set-AuthenticationPolicy -Identity OrgWideDefault -BlockModernAuthActiveSync -BlockModernAuthAutodiscover -BlockModernAuthImap ` -BlockModernAuthMapi -BlockModernAuthOfflineAddressBook -BlockModernAuthPop -BlockModernAuthRpc -BlockModernAuthWebServices
Vytvoření nové politiky
Můžeme vytvořit novou politiku, která má povoleny všechny metody (nic neblokuje).
New-AuthenticationPolicy -Name "Allow All Authentications"
Další, která povoluje Legacy ověřování a blokuje moderní.
New-AuthenticationPolicy -Name "Allow Legacy Authentication" -BlockModernAuthActiveSync -BlockModernAuthAutodiscover ` -BlockModernAuthImap -BlockModernAuthMapi -BlockModernAuthOfflineAddressBook -BlockModernAuthPop -BlockModernAuthRpc ` -BlockModernAuthWebServices
A poslední, která povoluje moderní ověřování a blokuje Legacy.
New-AuthenticationPolicy -Name "Allow Modern Authentication" -BlockLegacyAuthActiveSync -BlockLegacyAuthAutodiscover ` -BlockLegacyAuthImap -BlockLegacyAuthMapi -BlockLegacyAuthOfflineAddressBook -BlockLegacyAuthPop -BlockLegacyAuthRpc ` -BlockLegacyAuthWebServices
Zrušení blokování na existující politice
Pokud bychom chtěli na existující politice blokování zrušit, tak musíme použít zápis s $false. Zrušení blokování Legacy auth.
Set-AuthenticationPolicy -Identity OrgWideDefault -BlockLegacyAuthActiveSync:$false -BlockLegacyAuthAutodiscover:$false ` -BlockLegacyAuthImap:$false -BlockLegacyAuthMapi:$false -BlockLegacyAuthOfflineAddressBook:$false -BlockLegacyAuthPop:$false ` -BlockLegacyAuthRpc:$false -BlockLegacyAuthWebServices:$false
Zrušení blokování moderního ověřování.
Set-AuthenticationPolicy -Identity OrgWideDefault -BlockModernAuthActiveSync:$false -BlockModernAuthAutodiscover:$false ` -BlockModernAuthImap:$false -BlockModernAuthMapi:$false -BlockModernAuthOfflineAddressBook:$false -BlockModernAuthPop:$false ` -BlockModernAuthRpc:$false -BlockModernAuthWebServices:$false
Nastavení politiky na uživatele
Přiřazení politiky konkrétnímu uživateli
Set-User -Identity bouska -AuthenticationPolicy "Allow Modern Authentication"
Odebrání politiky (použije se výchozí)
Set-User -Identity bouska -AuthenticationPolicy $null
Nastavení na všechny členy určité skupiny
Get-ADGroupMember -Identity "G Správa" | Foreach-Object {
Set-User -Identity $_.SamAccountName -AuthenticationPolicy "Allow Modern Authentication" }
Informace o politikách u uživatelů
Výpis nastavené politiky u uživatele
Get-User -Identity bouska | FL AuthenticationPolicy
Výpis uživatelů, kteří mají nastavenu politiku (jinou než defaultní)
Get-User -Filter 'AuthenticationPolicy -like "*"' | FT Name, AuthenticationPolicy, RecipientType
Výpis uživatelů, kteří mají nastavenu určitou politiku
Get-User -ResultSize Unlimited | Where-Object { $_.AuthenticationPolicy -eq 'Allow Modern Authentication' } |
FT Name, AuthenticationPolicy, RecipientType
Smazání politiky
Remove-AuthenticationPolicy -Identity "Allow Modern Authentication"
Povolení Hybrid Modern Authentication
Ověření stavu
Kontrola, že je zatím HMA (OAuth2) vypnuté.
[PS] C:\>Get-OrganizationConfig | FL OAuth* OAuth2ClientProfileEnabled : False
Nastavení EvoSTS Auth Server
Pokud máme vše připravené, tak je povolení HMA jednoduché. Upravíme nastavení EvoSts AuthServer, dle oficiální dokumentace:
Set-AuthServer -Identity "EvoSTS - <GUID>" -DomainName "Tenant Domain" -IsDefaultAuthorizationEndpoint $true
Pokud máme nasazenou Dedicated Exchange hybrid application, tak máme v parametru DomainName nastavené SMTP domény (Remote Routing). Nenašel jsem nikde oficiální informaci, ale asi není dobré tento údaj přepsat a měli bychom pouze doplnit.
Můžeme si vypsat aktuální hodnoty a použit je pro nastavení.
Get-AuthServer | where {$_.Name -like "EvoSts*"} | FT name,enabled,IsDefaultAuthorizationEndpoint,DomainName
Konfigurace může vypadat například následně.
Set-AuthServer -Identity "EvoSts - 76c64dd0-fb97-4500-ad00-b85ff2920000" -DomainName oksystem.cz, oksystem.mail.onmicrosoft.com, oksystem.onmicrosoft.com -IsDefaultAuthorizationEndpoint $true
Konfigurace organizace
Druhý krok je povolení OAuth2 v rámci Exchange organizace.
Set-OrganizationConfig -OAuth2ClientProfileEnabled $true
Ověření a testování
Ověřit funkčnost můžeme samozřejmě pomocí klienta, kterému se věnujeme v další kapitole. Od Microsoftu máme k dispozici nějaké nástroje a cmdlety, které otestují dílčí funkčnost.
Kontrola OAuth autentizace mezi Exchange a Exchange Online (EXO)
Pomocí Exchange Management Shell na On-Premises Exchange můžeme ověřit připojení na EXO. Zadáváme URI pro EXO a schránku v On-Premises.
Test-OAuthConnectivity -Service EWS -TargetUri https://outlook.office365.com/ews/exchange.asmx -Mailbox test.onprem@oksystem.cz ` -Verbose | FL
Pomocí Exchange Online PowerShell na Exchange Online můžeme ověřit připojení na On-Premises Exchange. Zadáváme URI pro On-Premises a schránku v EXO.
Test-OAuthConnectivity -Service EWS -TargetUri https://mail.oksystem.cz/metadata/json/1 -Mailbox test.o365@oksystem.cz ` -Verbose | FL
Test ukazuje podrobně získání a použití OAuth Token. Důležitý je výsledek, který musí být Success.
ResultType : Success Identity : Microsoft.Exchange.Security.OAuth.ValidationResultNodeId IsValid : True ObjectState : New
Microsoft Remote Connectivity Analyzer
Pro různé testy můžeme využít online nástroj Microsoft Remote Connectivity Analyzer.
Nachází se zde například test Outlook Mobile Hybrid Modern Authentication Test, který testuje Hybrid Modern Authentication (HMA) pro Outlook for iOS and Android. Mezi testy pro Exchange Server se nachází řada testů různých funkcí. V některých případech, jako Exchange ActiveSync a Synchronization, Notification, Availability, and Automatic Replies, je možno vybírat mezi Basic a Modern Authentication.
Přihlašovací logy v Entra ID
Opakované přihlášení uživatele v Outlooku, při použití HMA, lze sledovat v Entra ID mezi Non-interactive Sign-in logs, aplikace Microsoft Office. Pro Outlook for iOS and Android je aplikace Outlook Mobile.
Použití HMA z pohledu Outlook klienta
Jakmile povolíme HMA (pro všechny nebo vybrané uživatele), tak se při příštím přihlášení v Outlooku použije nová autentizace. Uživatel nemusí nic měnit ani nastavovat. Ale pokud pro uživatele existuje session, tak hned neproběhne reautentizace a může nějakou dobu trvat, než se projeví nové nastavení.
Při testování se uvádí rada, jak proces urychlit, provést restart Internet Information Services (IIS) na Exchange Serverech.
iisreset
Ověření použitého protokolu v Outlooku
V běžícím Outlooku můžeme zjistit, jaký protokol byl použit pro přihlášení.
- spustíme Outlook
- klikneme pomocí Ctrl + pravé tlačítko myši na ikonu Outlook v oznamovací oblasti (vedle hodin)
- klikneme na Connection Status

Ve sloupci AuthN je způsob autentizace
BEARER- OAuth bearer token (Modern authentication)NEGO,NTLM,KERBEROS- Negotiate, NTLM, Kerberos (Windows authentication)CLEAR- Basic authentication

Outlook registry AlwaysUseMSOAuthForAutodiscover
Na různých místech na internetu se uvádí, že je na klientech potřeba přidat klíč do registrů, který Outlook donutí zkusit OAuth. Jde o DWORD hodnotu AlwaysUseMSOAuthForAutoDiscover, kterou nastavíme na 1. Vytváří se v cestě HKEY_CURRENT_USER\Software\Microsoft\Exchange\.
Podle mého testování je toto nastavení zbytečné. Alespoň v případě Outlooku z balíku Microsoft 365 Apps for Enterprise. Možná má řešit situaci, kdy je povolené Legacy i Modern Auth, aby se upřednostnilo HMA. Ale i v tomto případě se uživatelé z Outlooku připojili k MAPI over HTTP pomocí OAuth 2.0 (během několika hodin po zapnutí).
Přidání nového účtu do Outlooku
Pokud máme (například) nově instalovaný Outlook a přidáváme účet (se zapnutým HMA), tak vše funguje jednoduše.
- zadáme emailovou adresu
- zvolíme typ Exchange
- dojde k přesměrování na Entra ID a zobrazí se přihlašovací dialog (s MFA)
- po ověření se přidá účet do Outlooku

Poznámky z testování
Pro testování jsem Modern Authentication povolil pomocí Authentication Policy pouze na malou skupinu uživatelů. Pro první testy byly povoleny všechny metody. Hned po povolení HMA jsem zkusil do Outlooku přidat testovací účet. Zadal jsem emailovou adresu, typ Exchange a hned poté se zobrazil přihlašovací dialog Entra ID s MFA. Přidání účtu proběhlo v pořádku, autentizace připojení ukazovala BEARER.
Druhý pokus byl s existujícím účtem v Outlooku. Připojení ukazovalo NEGO. Zkusil jsem restart Outlooku, restart IIS na Exchange, stále se ukazovalo NEGO (asi jsem moc pospíchal). Zadal jsem do registrů AlwaysUseMSOAuthForAutoDiscover a po spuštění Outlook ukazoval BEARER (muselo proběhnout SSO, protože nevyskočil žádný dialog). Následně jsem nastavil na testovací skupinu. Většina lidí zkusila až druhý den a připojení rovnou ukazovalo BEARER. Klíč do registrů nikdo nezadával.
Provedl jsem pár pokusů s úpravou Authentication Policy. Nastavil jsem blokování Modern Auth a po restartu Outlook ukazoval NEGO. Když jsem opět povolil vše, tak se hned nic nedělo, po restartu IIS na Exchange se ukázalo BEARER.
Problémy v Outlooku
Narazil jsem pouze na pár problémů. Na dvou místech se nacházel starý (zapomenutý) Outlook z Office 2021 Standard a přihlašování zlobilo. Po upgradu na nové Microsoft 365 Apps bylo vše OK.
Pokud používáme nějaké sdílené či servisní účty, které si uživatelé přidávají do Outlooku, tak je potřeba používat nastavení práv přes Full Mailbox Access (Delegation, kdy se schránka automaticky připojí, protože na ni má uživatel oprávnění). Pokud si uživatelé ručně přidají schránku jako další účet, tak bude potřeba ověření v Entra ID (a patrně MFA).
Použití HMA z pohledu mobilního zařízení
Když povolíme HMA pro Exchange ActiveSync, a zůstane povolená Basic Authentication, tak většina (možná všichni) klientů bude stále používat základní ověřování. Musíme účet nově přidat nebo upravit nastavení autentizace.
Pozn.: Outlook for iOS and Android při přístupu na Exchange Online nepoužívá Exchange ActiveSync, ale Microsoft Graph API.
Přidání nového účtu do Outlook for Android
Na mobilním zařízené můžeme využít aplikaci Outlook for Android, kterou Microsoft doporučuje. Přidání účtu (Add account), který má povolené HMA, automaticky provede autentizaci v Entra ID a využije službu AutoDetect.
- zadáme emailovou adresu
- dojde k přesměrování na Entra ID a zobrazí se přihlašovací dialog (s MFA)
- provede se synchronizace nastavení a účet se přidá

Problémy na mobilním zařízení (ActiveSync)
Na nejvíce problémů jsem narazil při použití ActiveSync z mobilních zařízení. Primárně je funkční Outlook for iOS and Android, ale zprvu mi nefungoval ani ten. Když jsem prováděl další pokusy, tak se najednou povedlo připojit testovací účet. Ale můj provozní účet zobrazoval chybu. Po pár dnech jsem udělal další pokus a najednou se účet připojit. Od té doby fungovalo na všech účtech, které jsem zkusil.
Já používám koupenou aplikaci Nine. Po povolení moderní autentizaci běželo vše stále přes Basic Authentication. Po zablokování Legacy Auth uběhla nějaká doba a začal být problém s připojením. Autentizaci proti Entra ID se mi nepovedlo zprovoznit, i když má Nine HMA oficiálně podporovat. Při přidání účtu proběhla autentizace v Entra ID, ale následně se zobrazila chyba, že se nemůže připojit k serveru.
Zatím zde nejsou žádné komentáře.