V mnoha víceklientských webových aplikacích je možné název domény použít jako způsob identifikace tenanta, pomoct se směrováním požadavků na správnou infrastrukturu a poskytnout zákazníkům branded prostředí. Dva běžné přístupy jsou použití subdomén a vlastních názvů domén. Na této stránce poskytujeme pokyny pro pracovníky technického rozhodování o přístupech, které můžete zvážit, a jejich kompromisy.
Subdomény
Každý tenant může získat jedinečnou subdoménu v rámci společného sdíleného názvu domény pomocí formátu, jako tenant.provider.com
je .
Podívejme se na ukázkové víceklientské řešení vytvořené společností Contoso. Zákazníci si kupují produkt společnosti Contoso, který pomáhá spravovat generování faktur. Všichni tenanti společnosti Contoso můžou mít přiřazenou vlastní subdoménu contoso.com
pod názvem domény. Pokud společnost Contoso používá místní nasazení, může v rámci us.contoso.com
domén a eu.contoso.com
domén přiřadit subdomény. V tomto článku se na tyto domény odkazujeme jako na kmenové domény. Každý zákazník získá svou vlastní subdoménu v rámci vaší kmenové domény. Například společnost Tailwind Toys může být přiřazena tailwind.contoso.com
a v modelu regionálního nasazení může být přiřazena adventureworks.us.contoso.com
společnost Adventure Works .
Poznámka:
Tento přístup používá mnoho služeb Azure. Když například vytvoříte účet úložiště Azure, přiřadí se vám 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 byste mohli mít více zákazníků s podobnými názvy. Vzhledem k tomu, že sdílí jednu kmenovou doménu, získá první zákazník, který získá určitou doménu, preferovaný název. Následní zákazníci pak musí používat alternativní názvy subdomén, protože úplné 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ým znakem. Místo vytváření položek DNS pro tailwind.contoso.com
, adventureworks.contoso.com
a tak dále můžete vytvořit položku se zástupnými znamény pro *.contoso.com
a směrovat všechny subdomény na jednu IP adresu (záznam A) nebo kanonický název (záznam CNAME). 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 se chystáte spoléhat na tuto funkci, ujistěte se, že vaše webové služby podporují dns se zástupnými znaků. Mnoho služeb Azure, včetně služby Azure Front Door a Aplikace Azure Service, podporuje položky DNS se zástupnými cardy.
Subdomény s vícedílnými doménami stem
Mnoho víceklientských řešení se rozprostírá napříč několika fyzickými nasazeními. Jedná se o běžný přístup v případě, že potřebujete splnit požadavky na rezidenci dat nebo pokud chcete zajistit lepší výkon nasazením prostředků geograficky blíže k uživatelům.
Dokonce i v rámci jedné oblasti možná budete muset rozšířit tenanty mezi nezávislá nasazení, aby bylo možné podporovat strategii škálování. Pokud plánujete používat subdomény pro každého tenanta, můžete zvážit strukturu subdomény s více částmi.
Tady je příklad: Společnost Contoso publikuje víceklientskou aplikaci pro své čtyři zákazníky. Adventure Works a Tailwind Traders jsou v USA a jejich data se ukládají na sdílenou instanci platformy Contoso v USA. Společnost Fabrikam a Worldwide Importers jsou v Evropě a jejich údaje jsou uloženy v evropské instanci.
Pokud se společnost Contoso rozhodla pro všechny své zákazníky používat jednu kmenovou doménu, contoso.com, může to vypadat takto:
Položky DNS (které jsou potřeba pro podporu této konfigurace) můžou vypadat takto:
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ý zákazník, který je onboardovaný, vyžaduje novou subdoménu a počet subdomén roste s každým zákazníkem.
Společnost Contoso může případně použít domény stem specifické pro nasazení nebo oblast, například takto:
Záznamy DNS pro toto nasazení pak můžou vypadat takto:
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 mají jeden záznam DNS se zástupnými znaménami pro nasazení jednotlivých zeměpisných oblastí a všichni noví zákazníci přidaní pod tento kmen automaticky dědí záznam CNAME.
Každý přístup má výhody a nevýhody. Když používáte jednu kmenovou doménu, každý tenant, kterého připojíte, vyžaduje vytvoření nového záznamu DNS, který přináší větší provozní režii. Můžete ale flexibilněji přesouvat tenanty mezi nasazeními, protože můžete změnit záznam CNAME tak, aby směrovaly provoz do jiného nasazení. Tato změna neovlivní žádné jiné tenanty. Při použití více kmenových domén dochází k nižší režii na správu. Můžete také opakovaně používat názvy zákazníků napříč několika oblastmi stem domén, protože každá doména stem efektivně představuje 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 vidí jako důležitý aspekt brandingu. Vlastní názvy domén můžou být také vyžadovány, aby splňovaly požadavky zákazníků na zabezpečení, zejména pokud potřebují zadat vlastní certifikáty TLS. I když se může zdát triviální, aby zákazníci mohli používat vlastní názvy domén, existuje několik skrytých složitostí tohoto přístupu a vyžaduje promyšlené zvážení.
Překlad adres IP
Nakonec je potřeba přeložit každý název domény na IP adresu. Jak jste viděli, přístup, podle kterého se překlad názvů stane, může záviset na tom, jestli nasadíte jednu instanci nebo více instancí vašeho řešení.
Vraťme se k našemu příkladu. Jeden ze zákazníků společnosti Contoso, Fabrikam, požádal o použití invoices.fabrikam.com
jako vlastní název domény pro přístup ke službě společnosti Contoso. Vzhledem k tomu, že společnost Contoso má víceklientských platforem několik nasazení, rozhodne se k dosažení požadavků na směrování použít subdomény a záznamy CNAME. Contoso a Fabrikam nakonfigurují následující záznamy DNS:
Název | Typ záznamu | Hodnota | Nakonfiguroval(a) |
---|---|---|---|
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 polovina problému. Všechny webové komponenty v rámci evropského nasazení společnosti Contoso musí vědět o tom, jak zpracovávat požadavky přicházející s názvem 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á, to může vyžadovat další konfiguraci pro název domény každého tenanta, což zvyšuje provozní režii při onboardingu tenantů.
Můžete také zvážit přepsání hlaviček hostitelů, 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že bez ohledu na požadavek obdrží aplikační server jednu Host
hlavičku. Azure Front Door rozšíří původní hlavičku X-Forwarded-Host
hostitele v hlavičce, aby ji vaše aplikace mohl zkontrolovat a pak vyhledat tenanta. 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 důležité ověřit vlastnictví vlastních domén. Jinak riskujete, že zákazník omylem nebo zlými úmysly zaparkuje název domény.
Pojďme se podívat na 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, oni to nastavili jako invoices.adventurework.com
. Provoz nefunguje správně nejen pro Adventure Works, ale když se jiná společnost s názvem Adventure Work pokusí přidat vlastní doménu do platformy Společnosti Contoso, říká se jim, ž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 nastavení záznamů CNAME před přidáním domény. Společnost Contoso může také vygenerovat náhodný řetězec a požádat společnost Adventure Works o přidání záznamu DNS TXT s řetězcovou hodnotou. To by zabránilo přidání názvu domény, dokud se ověření nedokončí.
Útoky na převzetí DNS a subdomény
Při práci s vlastními názvy domén můžete být potenciálně ohroženi třídou útoku, která se označuje jako přebírající DNS nebo subdoména. K tomuto útoku 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í.
Pojďme se podívat, jak se může změnit vztah společnosti Fabrikam se společností Contoso:
- Společnost Fabrikam se rozhodla, že už nepracuje se společností Contoso, a proto ukončila svůj obchodní vztah.
- Společnost Contoso přepnula tenanta Fabrikam a požádala
fabrikam.contoso.com
o to, aby přestala fungovat. Fabrikam však zapomněl odstranit záznam CNAME proinvoices.fabrikam.com
. - Zlomyslný aktér vytvoří nový účet Contoso a pojmenuje
fabrikam
ho . - Útočník nasadí vlastní název
invoices.fabrikam.com
domény do nového tenanta. Vzhledem k tomu, že Společnost Contoso provádí ověřování domény založené na CNAME, kontroluje server DNS společnosti Fabrikam. Vidí, že server DNS vrací záznam CNAME , kterýinvoices.fabrikam.com
odkazuje nafabrikam.contoso.com
. Společnost Contoso považuje ověření vlastní domény za úspěšné. - Pokud se zaměstnanci společnosti Fabrikam pokusili o 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.
Mezi běžné strategie ochrany před útoky DNS, které se nacházejí, patří:
- Před odebráním názvu domény z účtu tenanta je nutné odstranit záznam CNAME.
- Zakažte opakované použití identifikátorů tenanta a také vyžadovat, aby tenant vytvořil záznam TXT s názvem odpovídajícím názvu domény a náhodně vygenerovanou hodnotou, která se změní pro každý pokus o onboarding.
Certifikáty TLS/SSL
Protokol TLS (Transport Layer Security) je základní komponenta při práci s moderními aplikacemi. Poskytuje důvěryhodnost a zabezpečení webových aplikací. Vlastnictví a správacertifikátůch
Vlastník názvu domény obvykle zodpovídá za vystavování a obnovování certifikátů. Společnost Contoso například zodpovídá za vystavování a obnovování certifikátů TLS pro us.contoso.com
, a také za certifikát se zástupnými výjimkou 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í, aby pro doménu mohly vytvářet certifikáty pouze konkrétní autority.
Pokud chcete zákazníkům umožnit používání vlastních domén, zvažte, jestli máte v úmyslu vydat certifikát jménem zákazníka, nebo jestli zákazníci musí používat vlastní certifikáty. 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 si ho zákazník nemusel pamatovat, aby ho aktualizoval. 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 očekáváte, že zákazníci budou 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 svým zákazníkům připomenout, že si certifikát před vypršením platnosti prodlužují, abyste se vyhnuli přerušení jejich služby.
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í. Tím se z provozního týmu odstraní zátěž správy certifikátů. Přesto ale musíte zvážit otázku vlastnictví a autority, například jestli se záznamy CAA projeví a správně nakonfigurují. Musíte také 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ě byla napsána následujícími přispěvateli.
Hlavní autor:
- John Downs | Hlavní softwarový inženýr
Další přispěvatelé:
- Daniel Scott-Raynsford | Partner Technology Strategist
- Vladimirskij Vladimirskij | Hlavní zákaznický inženýr, FastTrack pro Azure
Pokud chcete zobrazit neveřejné profily LinkedIn, přihlaste se na LinkedIn.
Další kroky
Tip
Mnoho služeb používá Azure Front Door ke správě názvů domén. Informace o tom, jak používat Azure Front Door ve víceklientských řešeních, 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 dobře navrženou architekturu Microsoft Azure.