Exchange Hybrid a Microsoft Teams
Společnost Microsoft nabídla firmám půlroční licenci Teams zdarma i pro ty, kteří dosud nepoužívali jiné služby Microsoft 365. A i díky celkové situaci, kdy bylo ze dne na den třeba celé týmy přesunout do distribuovaného prostředí home office, stalo se nasazení Teams velkým tématem. Pro mnoho firem je toto výzva, a ačkoliv jsou Microsoft Teams skvělý nástroj, pro mnohé není jednoduché nasadit službu v jejich aktuálním prostředí.
V tomto článku se zaměříme na zásadní věc, která z Teams dělá opravdu plnohodnotný nástroj, a to je integrace s Microsoft Exchange. Pokud vaše firma využívá služeb Exchange Online a nynější situace byla jen urychlením adopce cloudových služeb jako Teams, máte vyřešeno. Mnoho firem však provozuje vlastní poštovní služby v on-premises prostředí, a na ty se dnes zaměříme.
Jednou z podstatných funkcí Teams jsou audio/video konference a s nimi spojená práce a jejich plánování. A zde se právě objeví třecí plochy, ovlivňující úspěch nasazení Teams. Věc, na kterou v tomto scénáři narazíte, je nepříliš podrobná dokumentace.
Požadavky na interakci Teams jsou vypsány v následujícím článku. Dokumentace říká, že v případě nasazení on-premises Exchange v Hybridním režimu (synchronizace pomocí Azure AD Connect je vyžadována), je k vytváření a prohlížení schůzek nutný Exchange Server 2016 ve verzi CU3 a vyšší. Co to v praxi znamená již ale článek nespecifikuje. Na obrázku níže je tabulka ze zmíněného článku:
Obrázek 1: tabulka funkcionalit Microsoft Teams
Co není nikde přesně specifikováno, jsou přesné požadavky. Pokud byste se domnívali, že je nutné, aby byl Hybrid Management Server (tedy řídící server mezi Exchange Online a Exchange on-premises) ve verzi 2016 CU3 a vyšší a zbytek serverů by mohl být i ve starších verzích, tak bohužel. Takto jednoduché to bohužel není. Pokud máte schránky uživatelů na Exchange 2013 serverech (nebo DAG), pak jsou Teams plně funkční s jednou výjimkou – v bočním menu chybí aplikace „Kalendář“, kde můžete nahlédnout do svého Exchange kalendáře, plánovat a prohlížet schůzky...
A hned si vysvětlíme proč…
Microsoft Teams používá pro komunikaci s Mailbox serverem dvě nové technologie: REST API a Autodiscover V2 (JSON). Obojí je implementováno až v Exchange 2016 CU3 (Funkcionalita byla ohlášena na Microsoft Ignite 2016 a dá se zkontrolovat přítomnost souboru Microsoft.Exchange.AutodiscoverV2.dll). JSON verze Autodiscoveru je dostupná pod URL:
http[s]://autodiscover.URL.tld/autodiscover.json
Zmíněné protokoly se ovšem používají pro veškerou komunikaci mezi Teams a Exchange on-premises serverem, není zde žádné intra-organization proxy, kdy by Hybrid Management Server překládal a zprostředkovával komunikaci. V průběhu Autodiscover dostane Teams adresu interního serveru, kde leží schránka uživatele, a s tímto serverem potom komunikuje napřímo. A pokud tento server není schopen komunikace přes REST API, pak komunikace neproběhne vůbec.
Vodítka k tomuto lze najít pomocí dvou věcí: logů Microsoft Teams klienta a testu REST API.
Pokud spustíte Teams klienta a aplikace kalendář se neobjeví ani po několika hodinách, pak zkuste magický čtyřhmat CTRL+ALT+SHIFT+1 – tímto se vygenerují logy z aplikace a „stáhnou“ se do složky Stažené soubory. Tam najdete několik textových souborů se jménem MSTeams Diagnostics Log mm_dd_yyyy__hh_mm_ss_XXXX.txt kde jsou ještě na konci další jména služeb. Nás zajímá hned první soubor např. MSTeams Diagnostics Log 06_04_2020__14_27_53.txt. Pokud chybí aplikace Kalendář, pak v tomto souboru najdeme řádek:
UserAppsStore: Skipped calendar app with isFirstParty as true. isMailboxDiscoverable: false
To nám říká, že aplikace Kalendář byla přeskočena, protože nelze najít odpovídající uživatelskou schránku – zkontrolujeme, že je korektně založen „Shadow mailbox“. Shadow mailbox je schránka v Exchange Online, kde se uchovávají konverzace a další náležitosti pro potřeby Microsoft Teams. Tato schránka není uživateli viditelná, nedokáže do ní přistoupit, ale v hybridním scénáři existuje. Lze jí ověřit pomocí příkazu v Exchange Online:
Get-User test.user@cohowinery.com | select MailboxLocations
Tento příkaz, pokud je shadow mailbox správně vytvořen, vrátí jeho Guid a server, kde je schránka uložena:
MailboxLocations : {1;297a3bba-2f75-453c-8d72-0542ebede606;ComponentShared;eurpr d09.prod.outlook.com;4329dd30-8df9-41d5-9572-094099f976cb}
Druhým krokem pro ověření funkce aplikace Kalendář je test REST API. Tohle je ta jednodušší část – prostě se zeptáme přímo Autodiscover služby pomocí REST dotazu. Pokud postavíte dotaz pomocí URL, kde máte publikovanou službu Autodiscover a doplníte e-mailovou adresu a protokol, dostanete velmi přesnou odpověď.
Dotaz může vypadat takto: https://autodiscover.cohowinery.com/autodiscover/autodiscover.json/v1.0/test.user@cohowinery.com?Protocol=Rest
Ve chvíli, kdy se vám vrátí odpověď tohoto tvaru:
{"Protocol":"Rest","Url":"https://outlook.cohowinvery.com/api"}
máte vyhráno, a pokud se aplikace Kalendář přesto nezobrazuje, je problém pouze v nějaké konfiguraci na straně Exchange nebo Office 365 – může se jednat o zpoždění, které se teď u Teams sporadicky objeví, prostupy na firewallu, chybné konfiguraci OAuth atd. Pozor – tato odpověď se vrací i pro neexistující schránku.
Pokud se vám ovšem vrátí odpověď tohoto tvaru:
{"ErrorCode":"MailboxNotEnabledForRESTAPI","ErrorMessage":"REST API is not yet supported for this mailbox."}
pak jste si bohužel právě dokázali, že testovaná uživatelská schránka leží na serveru, který nepodporuje REST API. Pokud je to verze Exchange Server 2016, je to ještě řešitelné prostou instalací novějšího CU (i když samozřejmě doufám, že v dnešní době snad nikdo neprovozuje své Exchange 2016 servery s CU nižším než CU13), nebo zkontrolovat, zda nejsou REST API někde blokována pomocí firewall pravidel. S Exchange Server 2013 bohužel nepochodíte ani v nejnovější verzi – podpora nikdy implementována nebyla a ani není plánována.
Z výše uvedeného vyplývá několik věcí:
- REST API pro Microsoft Teams není možnost, ale podmínka pro plnou funkcionalitu.
- Podle https://docs.microsoft.com/en-us/graph/hybrid-rest-support není možné provozovat smíšené prostředí. Všechny servery musí být Exchange 2016 CU3 a novější. Článek dokonce říká: "Any Exchange 2013 servers coexisting in the same load-balanced array with Exchange 2016 servers must be removed from the array." Tedy, že v balancovaném poli serverů nesmí být žádný server nižší verze než Exchange 2016.
- Při publikaci služby Autodiscover, kdy organizace chtějí mít co nejrestriktivnější pravidla na FW a povolovat jen konkrétní URL, je potřeba pamatovat, že není potřeba pouze
/autodiscover/autodiscover.xml
a/autodiscover/autodiscover.xml/WSSecurity
ale i/autodiscover/autodiscover.json
a informovat bezpečnostní oddělení, že na tuto adresu začnou chodit požadavky, případně přidat adresu do monitorovacího nástroje / SIEM. - Pokud vám Exchange hybrid prostředí již nějakou dobu běží a je nastaveno pomocí starého Hybrid Configuration Wizardu, doporučuji spustit novou verzi 1.7 (ke stažení na https://aka.ms/HybridWizard – obsahuje nové postupy nastavení OAuth pomocí Graph API a řeší spoustu problémů – typicky chybu konfigurace OAuth po dokončení HCW.
- Pokud nastavujete hybridní prostředí teď poprvé, určitě si zkontrolujte, že HCW, který spustíte je verze 1.7. (po spuštění je verze vidět na v pravém horním rohu)
A teď dobré zprávy – situace, kdy máte v prostředí Exchange 2013 servery, má řešení. Dokonce několik. První možností je přesun uživatelů do Exchange Online – pokud je to směr, kterým je firma ochotna vykročit, jedná se určitě o nejefektivnější a dlouhodobé řešení. Ve chvíli, kdy se uživatelská schránka objeví v Exchange Online, Teams fungují zcela optimálně.
Druhou možností je migrační projekt, kdy do prostředí uvedete Exchange Server 2016 servery (nebo lépe Exchange Server 2019) a do databází na nové verzi uživatele přesunete, aplikace kalendář pak fungovat začne. Pamatujte ovšem na to, že server pro Exchange Hybrid musí být pořád ve verzi 2016, pokud chcete použít „hybrid key“, tedy licenci, na kterou vám dávají nárok cloudové předplatné. Exchange 2019 je možné licencovat pouze pomocí Microsoft Volume Licensing – hybrid key vám pro Exchange 2019 Hybrid Configuration Wizard nevygeneruje.
Poslední možností, která může být jak dočasnou pomocí po dobu migračního projektu, tak trvalým řešením pro firmy, které nechtějí provést ani přesun do cloudu, ani řešit migraci na novější verzi Exchange Server je použití online plánovací aplikace, která umožní plánovat schůzky i lidem, kteří nemají Outlook – i tu umíme, stejně jako pomoc s migrací, zařídit a nabídnout.
Obrázek 2: aplikace pro online plánování Teams schůzek
Sdílej v médiích