Delen via


Overwegingen voor domeinnaam in multitenant-oplossingen

In veel multitenant-webtoepassingen kunt u een domeinnaam gebruiken om de volgende mogelijkheden te bieden:

  • De ene tenant onderscheiden van een andere

  • Hulp bij routeringsaanvragen naar de juiste infrastructuur

  • Een merkervaring bieden aan uw klanten

U kunt subdomeinen of aangepaste domeinnamen gebruiken. Dit artikel bevat richtlijnen voor technische besluitvormers over domeinnaambenaderingen en hun afwegingen.

Subdomeinen

U kunt elke tenant een uniek subdomein toewijzen onder een gemeenschappelijke gedeelde domeinnaam met behulp van een indeling zoals tenant.provider.com.

Bekijk een voorbeeld van een multitenant-oplossing die is gebouwd door Contoso. Klanten kopen het product van Contoso om hun factuurgeneratie te beheren. Contoso wijst alle tenants hun eigen subdomein toe onder de contoso.com domeinnaam. Als Contoso regionale implementaties gebruikt, kunnen ze subdomeinen onder de us.contoso.com en eu.contoso.com domeinen toewijzen.

Dit artikel verwijst naar deze regionale domeinen als stamdomeinen. Elke klant krijgt een eigen subdomein onder uw stemdomein. Tailwind Toys kan bijvoorbeeld ontvangen tailwind.contoso.com. Als u een regionaal implementatiemodel gebruikt, kan Adventure Worksadventureworks.us.contoso.com ontvangen.

Opmerking

Veel Azure-services gebruiken deze benadering. Wanneer u bijvoorbeeld een Azure-opslagaccount maakt, wijst Azure een set subdomeinen toe, zoals <your account name>.blob.core.windows.net.

Uw domeinnaamruimte beheren

Wanneer u subdomeinen maakt onder uw eigen domeinnaam, kunt u meerdere klanten met vergelijkbare namen hebben. Ze delen één stemdomein, dus de eerste klant die een specifiek domein claimt, ontvangt de voorkeursnaam. Volgende klanten moeten alternatieve subdomeinnamen gebruiken, omdat volledige domeinnamen wereldwijd uniek moeten blijven.

DNS met jokertekens

Gebruik dns-vermeldingen (Domain Name System) met jokertekens om het beheer van subdomeinen te vereenvoudigen. In plaats van DNS-vermeldingen te maken voor tailwind.contoso.com of adventureworks.contoso.comkunt u een jokertekenitem maken voor *.contoso.com. Alle subdomeinen doorsturen naar één IP-adres met behulp van een A-record of een canonieke naam met behulp van een CNAME-record. Als u regionale stamdomeinen gebruikt, hebt u mogelijk meerdere jokertekens nodig, zoals *.us.contoso.com en *.eu.contoso.com.

Opmerking

Zorg ervoor dat uw weblaagservices ONDERSTEUNING bieden voor DNS met jokertekens als u van plan bent deze functie te gebruiken. Veel Azure-services, waaronder Azure Front Door en Azure App Service, ondersteunen DNS-vermeldingen met jokertekens.

Subdomeinen op basis van meerdelige stamdomeinen

Veel multitenant-oplossingen omvatten meerdere fysieke implementaties. Deze benadering is gebruikelijk wanneer u moet voldoen aan de vereisten voor gegevenslocatie of de prestaties wilt verbeteren door resources geografisch dichter bij de gebruikers te implementeren.

Zelfs binnen één regio kunt u uw tenants verspreiden over onafhankelijke implementaties ter ondersteuning van uw schaalstrategie. Als u van plan bent subdomeinen voor elke tenant te gebruiken, kunt u een structuur met meerdere onderdelen overwegen.

Contoso publiceert bijvoorbeeld een multitenant-toepassing voor de vier klanten. Adventure Works en Tailwind Traders bevinden zich in de Verenigde Staten en hun gegevens worden opgeslagen op een gedeeld exemplaar van het Contoso-platform. Fabrikam en Worldwide Importers bevinden zich in Europa en hun gegevens worden opgeslagen op een Europees exemplaar.

In het volgende diagram ziet u een voorbeeld van Contoso met behulp van het domein met één stem contoso.com voor al hun klanten.

Diagram met implementaties van de VS en Europa van een web-app, met één stemdomein voor het subdomein van elke klant.

Contoso kan de volgende DNS-vermeldingen gebruiken ter ondersteuning van deze configuratie.

Subdomein CNAME naar
adventureworks.contoso.com us.contoso.com
tailwind.contoso.com us.contoso.com
fabrikam.contoso.com eu.contoso.com
worldwideimporters.contoso.com eu.contoso.com

Voor elke nieuwe onboarding-klant is een nieuw subdomein vereist. Het aantal subdomeinen neemt toe met elke klant.

Contoso kan ook implementatiespecifieke of regiospecifieke stemdomeinen gebruiken.

Diagram met implementaties in de VS en DE EU van een web-app, met meerdere stemdomeinen.

Met behulp van jokerteken-DNS kunnen de DNS-vermeldingen voor deze implementatie eruitzien als de volgende vermeldingen.

Subdomein CNAME naar
*.us.contoso.com us.contoso.com
*.eu.contoso.com eu.contoso.com

Contoso hoeft geen subdomeinrecords te maken voor elke klant. In plaats daarvan kan met één DNS-record met jokertekens voor de implementatie van elke geografie nieuwe klanten onder die stam automatisch de CNAME-record overnemen.

Elke benadering heeft voordelen en nadelen. Wanneer u een domein met één stem gebruikt, moet u een DNS-record maken voor elke tenant die u onboardt, waardoor de operationele overhead toeneemt. U hebt echter meer flexibiliteit om tenants tussen implementaties te verplaatsen. U kunt de CNAME-record wijzigen om het verkeer naar een andere implementatie te leiden. Deze wijziging heeft geen invloed op andere tenants.

Meerdere multi-stemdomeinen hebben een lagere beheeroverhead. U kunt klantnamen hergebruiken in meerdere regionale stemdomeinen, omdat elk stamdomein in feite een eigen naamruimte vertegenwoordigt.

Aangepaste domeinnamen

Mogelijk wilt u uw klanten in staat stellen hun eigen domeinnamen mee te nemen. Sommige klanten zien deze functie als een belangrijk aspect van hun huisstijl. Klanten kunnen ook aangepaste domeinnamen nodig hebben om te voldoen aan de beveiligingsvereisten, met name als ze hun eigen TLS-certificaten (Transport Layer Security) moeten leveren. Deze benadering lijkt misschien eenvoudig, maar sommige verborgen complexiteiten vereisen doordachte overwegingen.

Naamomzetting

Uiteindelijk moet elke domeinnaam worden omgezet in een IP-adres. Zoals eerder wordt weergegeven, is het proces voor naamomzetting afhankelijk van of u één exemplaar of meerdere exemplaren van uw oplossing implementeert.

Als u het voorbeeld opnieuw wilt bekijken, vraagt een van de klanten van Contoso, Fabrikam, om te gebruiken invoices.fabrikam.com als hun aangepaste domeinnaam voor toegang tot de service van Contoso. Contoso heeft meerdere implementaties van hun multitenant-platform, dus besluiten ze subdomeinen en CNAME-records te gebruiken om hun routeringsvereisten te bereiken. Contoso en Fabrikam configureren de volgende DNS-records.

Naam Recordtype Waarde Geconfigureerd door
invoices.fabrikam.com CNAME fabrikam.eu.contoso.com Fabrikam
*.eu.contoso.com CNAME eu.contoso.com Contoso
eu.contoso.com Een (Ip-adres van Contoso) Contoso

Vanuit het perspectief van naamomzetting worden met deze keten van records aanvragen voor invoices.fabrikam.com het IP-adres van de Europese implementatie van Contoso nauwkeurig omgezet.

Oplossing van hostheader

Naamomzetting maakt alleen deel uit van het probleem. Alle webonderdelen binnen de Europese implementatie van Contoso moeten weten hoe aanvragen moeten worden verwerkt die de domeinnaam van Fabrikam bevatten in de Host aanvraagheader. Afhankelijk van de specifieke webtechnologieën die Contoso gebruikt, kan de domeinnaam van elke tenant verdere configuratie vereisen, waardoor extra operationele overhead wordt toegevoegd aan de onboarding van tenants.

U kunt ook hostheaders herschrijven, zodat de webserver, ongeacht de header van de binnenkomende aanvraag Host , een consistente headerwaarde ziet. Met Azure Front Door kunt u bijvoorbeeld headers herschrijven Host , zodat uw toepassingsserver ongeacht de aanvraag één Host header ontvangt. Azure Front Door stuurt de oorspronkelijke hostheader door in de X-Forwarded-Host header, zodat uw toepassing deze kan inspecteren en vervolgens de tenant kan opzoeken. Het herschrijven van een Host koptekst kan echter andere problemen veroorzaken. Zie Behoud van hostnamen voor meer informatie.

Domeinvalidatie

U moet het eigendom van aangepaste domeinen valideren voordat u ze onboardt. Anders kan een klant per ongeluk of kwaadwillend een domeinnaam claimen, wat soms ook wel parkeren van een domeinnaam wordt genoemd.

Denk aan het onboardingproces van Contoso voor Adventure Works, dat heeft gevraagd om invoices.adventureworks.com als hun aangepaste domeinnaam te gebruiken. Helaas heeft iemand een typefout gemaakt toen ze probeerden de aangepaste domeinnaam te onboarden en ze misten de s. Dus ze hebben het ingesteld als invoices.adventurework.com. Hierdoor kan het verkeer niet correct stromen voor Adventure Works. Maar wanneer een ander bedrijf met de naam Adventure Work probeert hun aangepaste domein toe te voegen aan het platform van Contoso, wordt hen verteld dat de domeinnaam al in gebruik is.

Om dit probleem te voorkomen, met name binnen een selfservice of geautomatiseerd proces, kunt u een domeinverificatiestap vereisen. Mogelijk moet de klant een CNAME-record maken voordat het domein kan worden toegevoegd. U kunt ook een willekeurige tekenreeks genereren en de klant vragen een DNS TXT-record toe te voegen die de tekenreekswaarde bevat. De domeinnaam kan pas worden toegevoegd als de verificatie is geslaagd.

Overnameaanvallen voor DNS- en subdomeinen

Wanneer u met aangepaste domeinnamen werkt, stelt u uw platform beschikbaar voor een klasse aanvallen met de naam zwevende DNS - of subdomeinovername. Deze aanvallen treden op wanneer klanten hun aangepaste domeinnaam loskoppelen van uw service, maar ze verwijderen de record niet van hun DNS-server. Deze DNS-vermelding verwijst vervolgens naar een niet-bestaande resource en is kwetsbaar voor een overname.

Overweeg hoe de relatie van Fabrikam met Contoso kan veranderen als het volgende scenario zich voordoet:

  1. Fabrikam besluit niet langer met Contoso te werken, zodat ze hun zakelijke relatie beëindigen.

  2. Contoso beëindigt de Fabrikam-tenant en schakelt fabrikam.contoso.com uit.

  3. Fabrikam vergeet de CNAME-record voor invoices.fabrikam.comte verwijderen.

  4. Een kwaadwillende actor maakt een nieuw Contoso-account en geeft het de naam fabrikam.

  5. De aanvaller onboardt de aangepaste domeinnaam invoices.fabrikam.com naar de nieuwe tenant.

  6. Contoso controleert de DNS-server van Fabrikam tijdens CNAME-domeinvalidatie. Ze zien dat de DNS-server een CNAME-record retourneert, invoices.fabrikam.comwaarnaar wordt verwezen fabrikam.contoso.com. Contoso is van mening dat de validatie van het aangepaste domein is geslaagd.

  7. Als Fabrikam-medewerkers proberen toegang te krijgen tot de site, lijken verzoeken te werken. Als de aanvaller zijn Contoso-tenant instelt met de huisstijl van Fabrikam, kunnen werknemers worden misleid om toegang te krijgen tot de site en gevoelige gegevens te verstrekken, waartoe de aanvaller vervolgens toegang heeft.

Gebruik de volgende strategieën om te beschermen tegen zwevende DNS-aanvallen:

  • Vereisen dat de CNAME-record wordt verwijderd voordat de domeinnaam kan worden verwijderd uit het account van de tenant.

  • Verbied het hergebruik van tenant-id's. En vereist dat elke tenant een TXT-record maakt met een naam die overeenkomt met de domeinnaam en een willekeurig gegenereerde waarde die voor elke onboardingpoging verandert.

TLS-certificaten

TLS is een essentieel onderdeel van moderne toepassingen. Het biedt vertrouwen en beveiliging voor uw webtoepassingen. Houd zorgvuldig rekening met het eigendom en beheer van TLS-certificaten voor multitenant-toepassingen.

Normaal gesproken vernieuwt de eigenaar van een domeinnaam de certificaten. Contoso geeft bijvoorbeeld TLS-certificaten voor us.contoso.com en vernieuwt een jokertekencertificaat voor *.contoso.com. Op dezelfde manier beheert Fabrikam records voor het fabrikam.com domein, waaronder invoices.fabrikam.com.

Een domeineigenaar kan het DNS-recordtype CAA (Certificate Authority Authorization) gebruiken. CAA-records zorgen ervoor dat alleen specifieke autoriteiten certificaten voor het domein kunnen maken.

Als u klanten toestaat hun eigen domeinen mee te nemen, kunt u overwegen of u van plan bent om namens hen certificaten uit te geven of dat ze hun eigen certificaten moeten meenemen. Elke optie heeft voordelen en nadelen:

  • Als u een certificaat voor een klant uitgeeft, kunt u het vernieuwen van het certificaat afhandelen, zodat de klant het niet hoeft te onderhouden. Als klanten echter CAA-records voor hun domeinnamen hebben, moeten ze u mogelijk autoriseren om namens hen certificaten uit te geven.

  • Als klanten hun eigen certificaten uitgeven en u voorzien van hun eigen certificaten, ontvangt en beheert u de persoonlijke sleutels veilig. Om een onderbreking van hun service te voorkomen, moet u uw klanten mogelijk eraan herinneren om het certificaat te vernieuwen voordat het verloopt.

Verschillende Azure-services ondersteunen automatisch beheer van certificaten voor aangepaste domeinen. Azure Front Door en App Service bieden bijvoorbeeld certificaten voor aangepaste domeinen en ze verwerken het verlengingsproces automatisch. Met deze functie wordt de last van het beheren van certificaten van uw operationele team verwijderd. U moet echter nog steeds rekening houden met het eigendom en de autoriteit. Controleer of CAA-records aanwezig zijn en juist zijn geconfigureerd. Zorg er ook voor dat de domeinen van uw klanten de certificaten toestaan die door het platform worden beheerd.

Bijdragers

Microsoft onderhoudt dit artikel. De volgende inzenders hebben dit artikel geschreven.

Hoofdauteur:

Andere Inzenders:

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen

Veel services maken gebruik van Azure Front Door om domeinnamen te beheren. Zie Azure Front Door gebruiken in een multitenant-oplossing voor meer informatie.

Ga terug naar het overzicht van architectuuroverwegingen. Of bekijk het Azure Well-Architected Framework.