Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.com
kunt 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.
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.
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:
Fabrikam besluit niet langer met Contoso te werken, zodat ze hun zakelijke relatie beëindigen.
Contoso beëindigt de Fabrikam-tenant en schakelt
fabrikam.contoso.com
uit.Fabrikam vergeet de CNAME-record voor
invoices.fabrikam.com
te verwijderen.Een kwaadwillende actor maakt een nieuw Contoso-account en geeft het de naam
fabrikam
.De aanvaller onboardt de aangepaste domeinnaam
invoices.fabrikam.com
naar de nieuwe tenant.Contoso controleert de DNS-server van Fabrikam tijdens CNAME-domeinvalidatie. Ze zien dat de DNS-server een CNAME-record retourneert,
invoices.fabrikam.com
waarnaar wordt verwezenfabrikam.contoso.com
. Contoso is van mening dat de validatie van het aangepaste domein is geslaagd.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:
- John Downs | Hoofd Software Ingenieur
Andere Inzenders:
- Daniel Scott-Raynsford | Partner Technologie Strateeg
- Arsen Vladimirskiy | Hoofdklantingenieur, FastTrack voor Azure
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.