Upravit

Sdílet prostřednictvím


Důležité informace o používání názvů domén ve víceklientských řešeních

Azure

V mnoha víceklientských webových aplikacích se název domény dá použít jako způsob identifikace tenanta, který pomáhá směrovat požadavky na správnou infrastrukturu a poskytuje zákazníkům značkové prostředí. Dvěma běžnými přístupy jsou použití subdomén a vlastních názvů domén. Na této stránce poskytujeme pokyny pro pracovníky s rozhodovací pravomocí pro technické pracovníky ohledně přístupů, které můžete zvážit, a jejich kompromisech.

Subdomény

Každý tenant může získat jedinečnou subdoménu pod společným názvem sdílené domény ve formátu, jako je tenant.provider.com.

Podívejme se na příklad víceklientské řešení vytvořené společností Contoso. Zákazníci si kupují produkt contosa, který jim pomůže se správou generování faktur. Všichni tenanti společnosti Contoso mohou mít přiřazenou vlastní subdoménu contoso.com pod názvem domény. Pokud contoso používá regionální nasazení, může přiřazovat subdomény v doménách us.contoso.com a eu.contoso.com . V tomto článku je označujeme jako kmenové domény. Každý zákazník získá svoji vlastní subdoménu v rámci vaší domény stem. Například tailwind Toys může být přiřazena tailwind.contoso.coma Adventure Works může být přiřazena adventureworks.contoso.com.

Poznámka

Tento přístup používá řada služeb Azure. Když například vytvoříte účet úložiště Azure, přiřadí se mu sada subdomén, které můžete použít, 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, musíte mít na paměti, že můžete mít více zákazníků s podobnými názvy. Vzhledem k tomu, že sdílejí jednu kmenovou doménu, získá upřednostňovaný název první zákazník, který získá konkrétní doménu. Další zákazníci pak musí použít alternativní názvy subdomén, protože celé názvy domén musí být globálně jedinečné.

DNS se zástupným znakem

Pokud chcete zjednodušit správu subdomén, zvažte použití položek DNS se zástupnými domény. Místo vytváření záznamů DNS pro tailwind.contoso.com, adventureworks.contoso.coma tak dále byste mohli vytvořit záznam se zástupným znakem pro *.contoso.com všechny subdomény a směrovat je na jednu IP adresu (záznam A) nebo kanonický název (záznam CNAME).

Poznámka

Pokud se chcete na tuto funkci spolehnout, ujistěte se, že služby webové vrstvy podporují dns se zástupnými znakůmi. Mnoho služeb Azure, včetně služby Azure Front Door a Azure App Service, podporuje zástupné položky DNS.

Subdomény s vícedílnými doménami kmene

Mnoho víceklientských řešení je rozdělených do několika fyzických nasazení. Jedná se o běžný přístup, když potřebujete splnit požadavky na rezidenci dat nebo když chcete zajistit lepší výkon nasazením prostředků geograficky blíže k uživatelům.

Dokonce i v rámci jedné oblasti můžete také potřebovat rozprostřít tenanty mezi nezávislá nasazení, abyste podpořili strategii škálování. Pokud plánujete používat subdomény pro každého tenanta, můžete zvážit strukturu subdomén s více částmi.

Tady je příklad: Společnost Contoso publikuje víceklientskou aplikaci pro své čtyři zákazníky. Společnosti Adventure Works a Tailwind Traders jsou v USA a jejich data jsou uložená ve sdílené instanci platformy Contoso v USA. Společnosti Fabrikam a Worldwide Importers jsou v Evropě a jejich data jsou uložená v evropské instanci.

Pokud se společnost Contoso rozhodla použít jednu kmenovou doménu contoso.com pro všechny své zákazníky, může to vypadat takto:

Diagram znázorňující nasazení webové aplikace v USA a EU s jednou doménou kmene pro subdoménu každého zákazníka

Položky DNS (potřebné k podpoře této konfigurace) můžou vypadat takto:

Subdoména CNAME do
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ý zákazník, který je nasazený, vyžaduje novou subdoménu a počet subdomén s každým zákazníkem roste.

Contoso může alternativně použít domény kmene specifické pro nasazení nebo oblast, například takto:

Diagram znázorňující nasazení webové aplikace v USA a EU s více doménami kmene

Při použití DNS se zástupnými znakůýmimi služby

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

Contoso nemusí vytvářet záznamy subdomény pro každého zákazníka. Místo toho mají pro každé nasazení zeměpisné oblasti jeden záznam DNS se zástupným znakem a všichni noví zákazníci přidaní pod tento kmen automaticky dědí záznam CNAME.

Každý přístup má své výhody a nevýhody. Při použití jedné domény kmene vyžaduje každý tenant, kterého nasadíte, vytvoření nového záznamu DNS, což představuje větší provozní režii. Při přesunu tenantů mezi nasazeními ale máte větší flexibilitu, protože záznam CNAME můžete změnit tak, aby jejich provoz směrovat do jiného nasazení. Tato změna neovlivní žádné jiné tenanty. Při použití více kmenových domén je potřeba snížit režijní náklady na správu. Můžete také opakovaně používat jména zákazníků napříč několika oblastmi domén stem, protože každá doména kmene ve skutečnosti představuje svůj vlastní obor názvů.

Vlastní názvy domén

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 to považují za důležitý aspekt své značky. Ke splnění požadavků zákazníků na zabezpečení můžou být potřeba také vlastní názvy domén, zejména pokud potřebují zadat vlastní certifikáty TLS. I když se může zdát triviální umožnit zákazníkům používat vlastní názvy domén, tento přístup má určité skryté složitosti a vyžaduje to promyšlené zvážení.

Překlad adres

Každý název domény se nakonec musí přeložit na IP adresu. Jak jste viděli, způsob překladu názvů může záviset na tom, jestli nasadíte jednu instanci nebo několik instancí vašeho řešení.

Vraťme se k našemu příkladu. Jeden ze zákazníků společnosti Contoso, společnost Fabrikam, požádal o použití invoices.fabrikam.com, jako vlastního názvu domény pro přístup ke službě Společnosti Contoso. Vzhledem k tomu, že contoso má více nasazení své platformy, rozhodne se k dosažení svých požadavků na směrování použít subdomény a záznamy CNAME. Společnosti Contoso a Fabrikam konfiguruje následující záznamy DNS:

Název Typ záznamu Hodnota Kde se provádí konfigurace
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 na invoices.fabrikam.com ip adresu evropského nasazení společnosti Contoso.

Překlad hlaviček hostitele

Překlad názvů je pouze polovinou 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é dorazí s názvem domény společnosti Fabrikam v hlavičce Host požadavku. V závislosti na konkrétních webových technologiích, které společnost Contoso používá, to může vyžadovat další konfiguraci názvu domény každého tenanta, což zvyšuje provozní režii při připojování tenantů.

Můžete také zvážit přepsání hlaviček hostitele, aby webový server viděl konzistentní hodnotu hlavičky bez ohledu na hlavičku příchozího požadavku Host . Azure Front Door například umožňuje přepsat Host hlavičky tak, aby váš aplikační server bez ohledu na požadavek obdržel jednu Host hlavičku. Azure Front Door rozšíří původní hlavičku X-Forwarded-Host hostitele do hlavičky, aby ji vaše aplikace mohl zkontrolovat a pak vyhledat tenanta. Přepsání Host hlavičky však může způsobit jiné problémy. Další informace najdete v tématu Zachování názvu hostitele.

Ověření domény

Před onboardingem je důležité ověřit vlastnictví vlastních domén. V opačném případě riskujete, že zákazník zaparkuje název domény omylem nebo úmyslně.

Podívejme se na proces onboardingu společnosti Contoso pro Adventure Works, která požádala o použití invoices.adventureworks.com jako vlastního názvu domény. Bohužel, někdo udělal překlep, když se pokusili připojit vlastní název domény, a oni promeškali s. Proto ho nastavili jako invoices.adventurework.com. Nejen, že provoz pro Adventure Works neprotéká správně, ale když se jiná společnost Adventure Work pokusí přidat vlastní doménu na platformu Contoso, bude jí řečeno, že se název domény už používá.

Při práci s vlastními doménami, zejména v rámci samoobslužného nebo automatizovaného procesu, je běžné vyžadovat krok ověření domény. To může vyžadovat, aby záznamy CNAME byly před přidání domény nastaveny. Contoso může také vygenerovat náhodný řetězec a požádat adventure Works, aby přidala záznam DNS TXT s řetězcovou hodnotou. To by zabránilo přidání názvu domény, dokud se ověření nedokončilo.

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

Při práci s vlastními názvy domén jste potenciálně zranitelní vůči třídě útoku, která se označuje jako nepropojený DNS nebo převzetí subdomény. K tomuto útoku dojde, když zákazníci oddělí přidružení vlastního názvu domény k vaší službě, ale neodstraní záznam ze svého serveru DNS. Tato položka DNS pak odkazuje na neexistující prostředek a je ohrožena převzetím.

Pojďme se podívat, jak se může změnit vztah společnosti Fabrikam se společností Contoso:

  1. Společnost Fabrikam se rozhodla, že už nebude se společností Contoso spolupracovat, a proto ukončila svůj obchodní vztah.
  2. Společnost Contoso ukončila registraci tenanta Fabrikam a požádala fabrikam.contoso.com o to, aby přestala fungovat. Společnost Fabrikam však zapomněla odstranit záznam CNAME pro invoices.fabrikam.com.
  3. Objekt se zlými úmysly vytvoří nový účet Contoso a pojmenuje fabrikamho .
  4. Útočník nasadí vlastní název invoices.fabrikam.com domény do svého nového tenanta. Vzhledem k tomu, že Společnost Contoso provádí ověření domény na základě CNAME, zkontroluje server DNS společnosti Fabrikam. Uvidí, že server DNS vrátí záznam CNAME pro invoices.fabrikam.com, který odkazuje na fabrikam.contoso.com. Společnost Contoso považuje ověření vlastní domény za úspěšné.
  5. Pokud se některý ze zaměstnanců společnosti Fabrikam pokusí o přístup k webu, budou požadavky vypadat jako funkční. Pokud útočník nastaví svého tenanta Contoso s brandingem společnosti Fabrikam, mohou být zaměstnanci zmást přístup k webu a poskytnutí citlivých dat, ke kterým pak bude mít útočník přístup.

Mezi běžné strategie ochrany proti útokům DNS patří:

  • Před odebráním názvu domény z účtu tenanta vyžadovat odstranění záznamu CNAME.
  • Zakázat opakované použití identifikátorů tenanta a také vyžadovat, aby tenant vytvořil záznam TXT s názvem, který odpovídá názvu domény a náhodně vygenerované hodnotě, která se při každém pokusu o připojení změní.

Certifikáty TLS/SSL

Protokol TLS (Transport Layer Security) je základní komponentou při práci s moderními aplikacemi. Poskytuje důvěryhodnost a zabezpečení webovým aplikacím. Vlastnictví a správa certifikátů TLS je něco, co je potřeba pečlivě zvážit u víceklientských aplikací.

Za vydávání a prodlužování certifikátů obvykle zodpovídá vlastník názvu domény. Společnost Contoso například zodpovídá za vystavování a obnovování certifikátů TLS pro us.contoso.coma také za certifikát se zástupným znakem pro *.contoso.com. Podobně by společnost Fabrikam obecně odpovídala za správu všech záznamů pro fabrikam.com doménu, včetně invoices.fabrikam.com. Typ záznamu DNS CAA (Certificate Authority Authorization) může použít vlastník domény. Záznamy CAA zajišťují, že certifikáty pro doménu můžou vytvářet jenom konkrétní autority.

Pokud chcete zákazníkům umožnit používání vlastních domén, zvažte, jestli plánujete vystavit certifikát jménem zákazníka, nebo jestli si zákazníci musí přinést vlastní certifikáty. Každá možnost má výhody a nevýhody.

  • Pokud vystavíte certifikát pro zákazníka, můžete ho prodloužit, aby zákazník nemusel pamatovat na jeho aktualizaci. Pokud ale zákazníci mají záznamy CAA ve svých názvech domén, možná vás budou muset autorizovat k vydávání certifikátů jejich jménem.
  • Pokud očekáváte, že zákazníci by měli vydávat a poskytovat vám vlastní certifikáty, zodpovídáte za bezpečné přijímání a správu privátních klíčů a možná budete muset zákazníkům upozornit, aby certifikát před vypršením platnosti obnovili, abyste se vyhnuli přerušení jejich služby.

Automatickou správu certifikátů pro vlastní domény podporuje několik služeb Azure. Například Azure Front Door a App Service poskytují certifikáty pro vlastní domény a automaticky zpracovávají proces obnovení. Tím se z provozního týmu odstraní zátěž spojenou se správou certifikátů. Stále ale musíte zvážit otázku vlastnictví a autority, například jestli jsou záznamy CAA účinné a správně nakonfigurované. Také je potřeba zajistit, aby domény vašich zákazníků byly nakonfigurované tak, aby povolovaly certifikáty spravované platformou.

Přispěvatelé

Tento článek spravuje Microsoft. Původně ji napsali následující přispěvatelé.

Hlavní autor:

  • John Downs | Hlavní inženýr zákazníka, FastTrack pro Azure

Další přispěvatelé:

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

Další kroky

Tip

Mnoho služeb ke správě názvů domén používá Službu Azure Front Door. Informace o tom, jak používat Službu Azure Front Door ve víceklientských řešeních, najdete v tématu Použití služby Azure Front Door v řešení s více tenanty.

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