Sdílet prostřednictvím


Aspekty názvu domény ve víceklientských řešeních

V mnoha víceklientských webových aplikacích můžete pomocí názvu domény poskytnout následující možnosti:

  • Rozlišení jednoho tenanta od druhého

  • Pomoc se směrováním požadavků na správnou infrastrukturu

  • Poskytnout zákazníkům značkovou zkušenost

Můžete použít subdomény nebo vlastní názvy domén. Tento článek obsahuje pokyny pro pracovníky s rozhodovací pravomocí ohledně přístupů k názvům domén a jejich kompromisů.

Subdomény

Každému tenantovi můžete přiřadit jedinečnou subdoménu pod společným názvem sdílené domény pomocí formátu, jako je tenant.provider.com.

Představte si příklad víceklientských řešení vytvořených společností Contoso. Zákazníci si kupují produkt společnosti Contoso, který pomáhá spravovat generování faktur. Společnost Contoso přiřadí všem tenantům vlastní subdoménu pod názvem domény contoso.com. Pokud Contoso používá regionální nasazení, může přiřadit subdomény pod doménami us.contoso.com a eu.contoso.com.

Tento článek odkazuje na tyto regionální domény jako kmenové domény. Každý zákazník získá svou vlastní subdoménu v rámci vaší kmenové domény. Například Tailwind Toys může obdržet tailwind.contoso.com. Pokud používáte model regionálního nasazení, aplikace Adventure Works může obdržet adventureworks.us.contoso.com.

Poznámka:

Tento přístup používá mnoho služeb Azure. Když například vytvoříte účet úložiště Azure, Azure přiřadí sadu subdomén, například <your account name>.blob.core.windows.net.

Správa oboru názvů domény

Když vytváříte subdomény pod vlastním názvem domény, můžete mít více zákazníků s podobnými názvy. Sdílejí jednu kmenovou doménu, takže první zákazník, který si může vyžádat konkrétní doménu, obdrží preferovaný název. Další zákazníci musí používat alternativní názvy subdomén, protože úplné názvy domén musí zůstat globálně jedinečné.

DNS se zástupným znakem

Pomocí položek DNS (Domain Name System) se zástupným znakem zjednodušte správu subdomén. Místo vytváření záznamů DNS pro tailwind.contoso.com nebo adventureworks.contoso.commůžete vytvořit zástupný znak pro *.contoso.com. Nasměrujte všechny subdomény na jednu IP adresu pomocí A záznamu nebo na kanonický název pomocí CNAME záznamu. Pokud používáte regionální kmenové domény, možná budete potřebovat více zástupných znaků, například *.us.contoso.com a *.eu.contoso.com.

Poznámka:

Pokud plánujete tuto funkci používat, ujistěte se, že vaše webové služby této vrstvy podporují DNS se zástupnými znaky. Mnoho služeb Azure, včetně služeb Azure Front Door a Azure App Service, podporuje položky DNS se zástupnými cardy.

Subdomény založené na vícedílných stem doménách

Mnoho víceklientských řešení zahrnuje několik fyzických nasazení. Tento přístup je běžný v případě, že potřebujete splnit požadavky na rezidenci dat nebo zlepšit výkon nasazením prostředků geograficky blíže k uživatelům.

I v rámci jedné oblasti můžete tenanty rozložit mezi nezávislá nasazení, aby podpořili vaši strategii škálování. Pokud plánujete používat subdomény pro každého tenanta, zvažte strukturu subdomény s více částmi.

Společnost Contoso například publikuje víceklientní aplikaci pro své čtyři zákazníky. Adventure Works a Tailwind Traders jsou ve Spojených státech a jejich data se ukládají na sdílené instanci platformy Contoso v USA. Společnost Fabrikam a Worldwide Importers jsou v Evropě a jejich údaje jsou uloženy v evropské instanci.

Následující diagram znázorňuje příklad společnosti Contoso, která používá jednodoménovou doménu contoso.com pro všechny zákazníky.

Diagram znázorňující nasazení webové aplikace v USA a Evropě s jedinou kmenovou doménou pro subdoménu každého zákazníka

Společnost Contoso může k podpoře této konfigurace použít následující položky DNS.

Subdoména CNAME to
adventureworks.contoso.com us.contoso.com
tailwind.contoso.com us.contoso.com
fabrikam.contoso.com eu.contoso.com
worldwideimporters.contoso.com eu.contoso.com

Každý nový nasazený zákazník vyžaduje novou subdoménu. Počet subdomén se s každým zákazníkem zvyšuje.

Případně může společnost Contoso použít kmenové domény specifické pro konkrétní nasazení nebo oblast.

Diagram znázorňující nasazení webové aplikace v USA a EU s několika stem doménami

DNS záznamy pro toto nasazení mohou při použití zástupných znaků vypadat jako následující položky.

Subdoména CNAME to
*.us.contoso.com us.contoso.com
*.eu.contoso.com eu.contoso.com

Společnost Contoso nemusí vytvářet záznamy subdomény pro každého zákazníka. Místo toho jeden zástupný záznam DNS pro nasazení v jednotlivých geografických oblastech umožňuje novým zákazníkům v rámci této oblasti automaticky zdědit záznam CNAME.

Každý přístup má výhody a nevýhody. Pokud používáte doménu s jedním kmenem, musíte vytvořit záznam DNS pro každého tenanta, kterého nasadíte, což zvyšuje provozní režii. Máte ale větší flexibilitu při přesouvání tenantů mezi jednotlivými implementacemi. Záznam CNAME můžete změnit tak, aby nasměroval provoz do jiného nasazení. Tato změna nemá vliv na žádné jiné tenanty.

Víceúrovňové domény mají nižší režii na správu. Můžete znovu použít názvy zákazníků napříč několika oblastmi kmenových domén, protože každá kmenová doména efektivně představuje vlastní obor názvů.

Vlastní doménová jména

Možná budete chtít zákazníkům umožnit používání vlastních názvů domén. Někteří zákazníci tuto funkci vidí jako důležitý aspekt brandingu. Zákazníci můžou také vyžadovat vlastní názvy domén, aby splňovaly požadavky na zabezpečení, zejména pokud potřebují zadat vlastní certifikáty TLS (Transport Layer Security). Tento přístup se může zdát jednoduchý, ale některé skryté složitosti vyžadují promyšlené zvážení.

Řešení jmen

Nakonec se každý název domény musí přeložit na IP adresu. Jak bylo dříve naznačeno, proces překladu jmen závisí na tom, zda nasadíte jednu instanci nebo více instancí vašeho řešení.

Pokud se chcete vrátit k příkladu, jeden ze zákazníků společnosti Contoso Fabrikam, požádá o použití invoices.fabrikam.com jako vlastní název domény pro přístup ke službě společnosti Contoso. Společnost Contoso má několik nasazení své víceklientské platformy, a proto se rozhodne použít subdomény a záznamy CNAME k plnění požadavků na směrování. Contoso a Fabrikam nakonfigurují následující záznamy DNS.

Název Typ záznamu Hodnota Nakonfigurováno kým
invoices.fabrikam.com CNAME fabrikam.eu.contoso.com Fabrikam
*.eu.contoso.com CNAME eu.contoso.com Contoso
eu.contoso.com A (IP adresa společnosti Contoso) Contoso

Z hlediska překladu ip adres tento řetězec záznamů přesně překládá požadavky invoices.fabrikam.com na IP adresu evropského nasazení společnosti Contoso.

Překlad hlaviček hostitele

Překlad názvů je pouze součástí problému. Všechny webové komponenty v rámci evropského nasazení společnosti Contoso musí vědět, jak zpracovávat požadavky, které obsahují název domény společnosti Fabrikam v Host hlavičce žádosti. V závislosti na konkrétních webových technologiích, které Společnost Contoso používá, může název domény každého tenanta vyžadovat další konfiguraci, která zvyšuje provozní režii při onboardingu tenanta.

Můžete také přepsat hlavičky hostitele tak, aby bez ohledu na hlavičku příchozího Host požadavku webový server viděl konzistentní hodnotu hlavičky. Azure Front Door například umožňuje přepisovat Host hlavičky tak, aby bez ohledu na požadavek přijal aplikační server jednu Host hlavičku. Azure Front Door přenáší původní hlavičku hostitele v hlavičce X-Forwarded-Host, aby ji vaše aplikace mohla zkontrolovat a pak vyhledat klienta. Přepsání hlavičky Host ale může způsobit jiné problémy. Další informace naleznete v tématu Zachování názvu hostitele.

Ověření domény

Před onboardingem je nutné ověřit vlastnictví vlastních domén. Jinak by mohl zákazník omylem nebo úmyslně získat doménové jméno, což se někdy označuje jako parkování doménového jména.

Zvažte proces onboardingu společnosti Contoso pro Adventure Works, který požádal o použití invoices.adventureworks.com jako vlastní název domény. Někdo bohužel udělal překlep, když se pokusil připojit vlastní název domény a zmeškali s. Tak to nastavili jako invoices.adventurework.com. V důsledku toho provoz pro Adventure Works nefunguje správně. Když se ale jiná společnost s názvem Adventure Work pokusí přidat vlastní doménu do platformy Společnosti Contoso, říká se jim, že název domény se už používá.

Pokud chcete tomuto problému zabránit, zejména v rámci samoobslužného nebo automatizovaného procesu, můžete vyžadovat krok ověření domény. Před přidáním domény můžete vyžadovat, aby zákazník vytvořil záznam CNAME. Případně můžete vygenerovat náhodný řetězec a požádat zákazníka, aby přidal záznam DNS TXT, který obsahuje hodnotu řetězce. Název domény nelze přidat, dokud ověření nebude úspěšné.

Útoky na převzetí DNS a subdomény

Když pracujete s vlastními názvy domén, vaše platforma je vystavena třídě útoků zvaných visící DNS nebo převzetí subdomény. K těmto útokům dochází, když zákazníci oddělí vlastní název domény od vaší služby, ale neodstraní záznam ze svého serveru DNS. Tato položka DNS pak odkazuje na neexistující prostředek a je zranitelná vůči převzetí.

Pokud dojde k následujícímu scénáři, zvažte, jak se vztah společnosti Fabrikam se společností Contoso může změnit:

  1. Společnost Fabrikam se rozhodne, že už nebude pracovat se společností Contoso, takže ukončí svůj obchodní vztah.

  2. Společnost Contoso odpojí tenanta Fabrikam a zakáže fabrikam.contoso.com.

  3. Fabrikam zapomene odstranit záznam CNAME pro invoices.fabrikam.com.

  4. Zlomyslný aktér vytvoří nový účet Contoso a pojmenuje fabrikamho .

  5. Útočník nasadí vlastní název invoices.fabrikam.com domény do nového tenanta.

  6. Společnost Contoso během ověřování domény založeného na CNAME kontroluje server DNS společnosti Fabrikam. Vidí, že server DNS vrací záznam CNAME , který invoices.fabrikam.comodkazuje na fabrikam.contoso.com. Společnost Contoso považuje ověření vlastní domény za úspěšné.

  7. Pokud se zaměstnanci společnosti Fabrikam pokusí získat přístup k webu, budou žádosti vypadat jako funkční. Pokud útočník nastaví tenanta Contoso s brandingem společnosti Fabrikam, mohou být zaměstnanci zklameni přístupem k webu a poskytnutím citlivých dat, ke kterým může útočník získat přístup.

Použijte následující strategie k ochraně proti závěsným DNS útokům:

  • Před odebráním názvu domény z účtu tenanta je nutné odstranit záznam CNAME.

  • Zakázat opakované použití identifikátorů tenanta. A vyžadovat, aby každý tenant vytvořil záznam TXT s názvem, který odpovídá názvu domény, a náhodně vygenerovanou hodnotou, která se změní při každém pokusu o připojení do systému.

Certifikáty TLS

TLS je základní součástí moderních aplikací. Poskytuje důvěryhodnost a zabezpečení webových aplikací. Pečlivě zvažte vlastnictví a správu certifikátů TLS pro víceklientských aplikací.

Vlastník názvu domény obvykle vydává a obnovuje jeho certifikáty. Společnost Contoso například vydává a obnovuje certifikáty TLS pro us.contoso.com certifikáty se zástupným znakem pro *.contoso.com. Podobně společnost Fabrikam spravuje záznamy pro fabrikam.com doménu, včetně invoices.fabrikam.com.

Vlastník domény může použít typ záznamu DNS certifikační autority (CAA). Záznamy CAA zajišťují, aby pro doménu mohly vytvářet certifikáty pouze konkrétní autority.

Pokud zákazníkům povolíte používání vlastních domén, zvažte, jestli máte v úmyslu vydávat certifikáty jejich jménem, nebo vyžadovat, aby si přinesli vlastní. Každá možnost má výhody a nevýhody:

  • Pokud vydáte certifikát pro zákazníka, můžete o obnovení certifikátu požádat, aby ho zákazník nemusel udržovat. Pokud ale zákazníci mají záznamy CAA o jejich názvech domén, možná vás budou muset autorizovat k vydávání certifikátů jejich jménem.

  • Pokud zákazníci vydávají a poskytují vám vlastní certifikáty, bezpečně obdržíte a spravujete privátní klíče. Aby nedošlo k přerušení jejich služby, možná budete muset zákazníkům připomenout, že si platnost certifikátu prodlouží před vypršením jeho platnosti.

Několik služeb Azure podporuje automatickou správu certifikátů pro vlastní domény. Například Azure Front Door a App Service poskytují certifikáty pro vlastní domény a automaticky zpracovávají proces obnovení. Tato funkce eliminuje zátěž při správě certifikátů pro provozní tým. Přesto ale musíte zvážit vlastnictví a autoritu. Ověřte, že jsou záznamy CAA nastaveny a nakonfigurované správně. Ujistěte se také, že domény vašich zákazníků umožňují certifikáty, které platforma spravuje.

Přispěvatelé

Microsoft udržuje tento článek. Tento článek napsali následující přispěvatelé.

Hlavní autor:

Další přispěvatelé:

Pokud chcete zobrazit nepublikované profily LinkedIn, přihlaste se na LinkedIn.

Další kroky

Mnoho služeb používá Azure Front Door ke správě názvů domén. Další informace najdete v tématu Použití služby Azure Front Door ve víceklientských řešeních.

Vraťte se k přehledu aspektů architektury. Nebo si projděte Azure Well-Architected Framework.