Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W wielu wielodostępnych aplikacjach internetowych można użyć nazwy domeny, aby zapewnić następujące możliwości:
Aby odróżnić jednego najemcę od drugiego
Aby ułatwić kierowanie żądań do właściwej infrastruktury
Aby zapewnić klientom doświadczenie marki
Można użyć domen podrzędnych lub niestandardowych nazw domen. Ten artykuł zawiera wskazówki dla osób podejmujących decyzje techniczne dotyczące metod nazw domen i ich kompromisów.
Poddomen
Dla każdego najemcy można przypisać unikalną poddomenę w ramach wspólnej nazwy domeny udostępnionej przy użyciu formatu takiego jak tenant.provider.com
.
Rozważmy przykładowe rozwiązanie wielodostępne utworzone przez firmę Contoso. Klienci kupują produkt firmy Contoso, aby ułatwić zarządzanie generowaniem faktur. Firma Contoso przypisuje wszystkim najemcom własną poddomenę w ramach domeny contoso.com
. Jeśli firma Contoso używa wdrożeń regionalnych, mogą przypisywać poddomeny w domenach us.contoso.com
i eu.contoso.com
.
Ten artykuł odnosi się do tych domen regionalnych jako domen macierzystych. Każdy klient otrzymuje własną poddomenę w domenie macierzystej. Na przykład Tailwind Toys mogą otrzymać tailwind.contoso.com
. Jeśli używasz regionalnego modelu wdrażania, firma Adventure Works może otrzymać adventureworks.us.contoso.com
.
Uwaga / Notatka
Ta metoda jest używana przez wiele usług platformy Azure. Na przykład podczas tworzenia konta usługi Azure Storage platforma Azure przypisuje zestaw domen podrzędnych, takich jak <your account name>.blob.core.windows.net
.
Zarządzanie przestrzenią nazw domeny
Podczas tworzenia poddomen pod własną nazwą domeny można mieć wielu klientów o podobnych nazwach. Współdzielą jedną domenę macierzystą, więc pierwszy klient, który zarejestruje określoną domenę, otrzymuje preferowaną nazwę. Kolejni klienci muszą używać alternatywnych nazw domen podrzędnych, ponieważ pełne nazwy domen muszą pozostać globalnie unikatowe.
Dns z symbolami wieloznacznymi
Użyj wieloznacznych wpisów w systemie nazw domen DNS, aby uprościć zarządzanie poddomenami. Zamiast tworzyć wpisy DNS dla tailwind.contoso.com
lub adventureworks.contoso.com
, można utworzyć wpis wieloznaczny dla .*.contoso.com
Przekierowuj wszystkie poddomeny do pojedynczego adresu IP przy użyciu rekordu A lub nazwy kanonicznej przy użyciu rekordu CNAME. Jeśli używasz regionalnych domen macierzystych, może być konieczne użycie wielu wpisów wieloznacznych, takich jak *.us.contoso.com
i *.eu.contoso.com
.
Uwaga / Notatka
Upewnij się, że usługi warstwy internetowej obsługują system DNS z symbolami wieloznacznymi, jeśli planujesz używać tej funkcji. Wiele usług platformy Azure, w tym usług Azure Front Door i Azure App Service, obsługuje wpisy DNS z symbolami wieloznacznymi.
Poddomeny oparte na domenach macierzystych z wieloma częściami
Wiele rozwiązań wielodostępnych obejmuje wiele wdrożeń fizycznych. Takie podejście jest typowe, gdy trzeba spełnić wymagania dotyczące rezydencji danych lub zwiększyć wydajność, wdrażając zasoby geograficznie bliżej użytkowników.
Nawet w jednym regionie możesz rozłożyć użytkowników między niezależne wdrożenia w celu wsparcia strategii skalowania. Jeśli planujesz używać poddomen dla każdej dzierżawy, rozważ strukturę poddomeny wieloczęściowej.
Na przykład firma Contoso publikuje wielodostępną aplikację dla swoich czterech klientów. Firmy Adventure Works i Tailwind Traders znajdują się w Stanach Zjednoczonych, a ich dane są przechowywane w udostępnionym wystąpieniu usa platformy Contoso. Firmy Fabrikam i Worldwide Importers znajdują się w Europie, a ich dane są przechowywane w wystąpieniu europejskim.
Na poniższym diagramie przedstawiono przykład firmy Contoso używającej contoso.com domeny pojedynczej dla wszystkich klientów.
Firma Contoso może użyć następujących wpisów DNS do obsługi tej konfiguracji.
Subdomena | 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żdy nowy dołączony klient wymaga nowej poddomeny. Liczba poddomen zwiększa się wraz z każdym klientem.
Alternatywnie firma Contoso może używać domen macierzystych specyficznych dla wdrożenia lub regionu.
Używając wieloznacznych nazw DNS, wpisy DNS dla tego wdrożenia mogą wyglądać podobnie do następujących wpisów.
Subdomena | CNAME do |
---|---|
*.us.contoso.com |
us.contoso.com |
*.eu.contoso.com |
eu.contoso.com |
Firma Contoso nie musi tworzyć rekordów poddomeny dla każdego klienta. Zamiast tego pojedynczy rekord DNS z symbolami wieloznacznymi dla każdego wdrożenia geografii umożliwia nowym klientom poniżej tego elementu macierzystego automatyczne dziedziczenie rekordu CNAME.
Każde podejście ma zalety i wady. W przypadku korzystania z domeny jednoliterowej należy utworzyć rekord DNS dla każdego dołączonego dzierżawcy, co zwiększa obciążenie operacyjne. Jednak masz większą elastyczność przenoszenia najemców między wdrożeniami. Możesz zmienić rekord CNAME, aby skierować ich ruch do innego wdrożenia. Ta zmiana nie ma wpływu na żadnych innych lokatorów.
Domeny z wieloma składnikami mają mniejsze obciążenie związane z zarządzaniem. Możesz ponownie użyć nazw klientów w wielu regionalnych domenach macierzystych, ponieważ każda domena macierzystowa skutecznie reprezentuje własną przestrzeń nazw.
Niestandardowe nazwy domen
Możesz umożliwić klientom korzystanie z własnych nazw domen. Niektórzy klienci postrzegają tę funkcję jako ważny aspekt ich znakowania. Klienci mogą również wymagać niestandardowych nazw domen w celu spełnienia wymagań dotyczących zabezpieczeń, zwłaszcza jeśli muszą dostarczyć własne certyfikaty protokołu Transport Layer Security (TLS). Takie podejście może wydawać się proste, ale niektóre ukryte złożoności wymagają przemyślanego rozważenia.
Rozpoznawanie nazw
Ostatecznie każda nazwa domeny musi być przekształcona na adres IP. Jak pokazano wcześniej, proces rozpoznawania nazw zależy od tego, czy wdrażasz jedno wystąpienie, czy wiele wystąpień twojego rozwiązania.
Aby wrócić do przykładu, jeden z klientów firmy Contoso, Fabrikam, żąda użycia invoices.fabrikam.com
jako niestandardowej nazwy domeny w celu uzyskania dostępu do usługi firmy Contoso. Firma Contoso ma wiele wdrożeń swojej wielodostępnej platformy, dlatego decyduje się na użycie domen podrzędnych i rekordów CNAME w celu osiągnięcia wymagań dotyczących routingu. Firma Contoso i firma Fabrikam konfigurują następujące rekordy DNS.
Nazwa | Typ rekordu | Wartość | Skonfigurowane przez |
---|---|---|---|
invoices.fabrikam.com |
CNAME | fabrikam.eu.contoso.com |
Fabrikam |
*.eu.contoso.com |
CNAME | eu.contoso.com |
Contoso |
eu.contoso.com |
A | (Adres IP firmy Contoso) | Contoso |
Z punktu widzenia rozpoznawania nazw ten łańcuch rekordów dokładnie rozwiązuje żądania dotyczące invoices.fabrikam.com
adresu IP europejskiego wdrożenia firmy Contoso.
Rozpoznawanie nagłówka hosta
Rozpoznawanie nazw jest tylko częścią problemu. Wszystkie składniki sieci Web w ramach europejskiego wdrożenia firmy Contoso muszą wiedzieć, jak obsługiwać żądania zawierające nazwę domeny firmy Fabrikam w Host
nagłówku żądania. W zależności od określonych technologii sieci Web używanych przez firmę Contoso nazwa domeny każdej dzierżawy może wymagać dodatkowej konfiguracji, co zwiększa nakład pracy operacyjnej związanej z dołączaniem dzierżaw.
Możesz również ponownie napisać nagłówki hosta, aby niezależnie od nagłówka Host
żądania przychodzącego serwer internetowy widział spójną wartość nagłówka. Na przykład usługa Azure Front Door umożliwia ponowne zapisywanie Host
nagłówków, tak aby niezależnie od żądania serwer aplikacji otrzymał jeden Host
nagłówek. Usługa Azure Front Door propaguje oryginalny nagłówek hosta w nagłówku X-Forwarded-Host
, aby aplikacja mogła go sprawdzić, a następnie wyszukać dzierżawcę. Jednak ponowne zapisywanie nagłówka Host
może powodować inne problemy. Aby uzyskać więcej informacji, zobacz Zachowywanie nazwy hosta.
Walidacja domeny
Zanim dołączysz je, musisz zweryfikować własność domen niestandardowych. W przeciwnym razie klient może nieumyślnie lub celowo ubiegać się na nazwę domeny, co czasami nazywa się parkowaniem nazwy domeny.
Rozważ proces wdrażania firmy Contoso dla firmy Adventure Works, którzy zażądali użycia invoices.adventureworks.com
jako niestandardowej nazwy domeny. Niestety, ktoś zrobił literówkę, gdy próbował dołączyć niestandardową nazwę domeny, a oni przegapili s. Dlatego konfigurują go jako invoices.adventurework.com
. W związku z tym ruch nie może prawidłowo przepływać dla firmy Adventure Works. Ale gdy inna firma o nazwie Adventure Work próbuje dodać domenę niestandardową do platformy firmy Contoso, powiedziano im, że nazwa domeny jest już używana.
Aby zapobiec temu problemowi, zwłaszcza w ramach samoobsługowego lub zautomatyzowanego procesu, możesz wymagać kroku weryfikacji domeny. Aby można było dodać domenę, może być konieczne utworzenie rekordu CNAME przez klienta. Alternatywnie możesz wygenerować losowy ciąg i poprosić klienta o dodanie rekordu TXT DNS zawierającego wartość ciągu. Nie można dodać nazwy domeny, dopóki weryfikacja nie powiedzie się.
Zwisające ataki dns i poddomeny przejęcia
Podczas pracy z niestandardowymi nazwami domen narażasz platformę na ataki klasy nazywane zawieszone DNS lub przejęcie poddomeny. Te ataki występują, gdy klienci odłączają swoją niestandardową nazwę domeny od Twojej usługi, ale nie usuwają rekordu z serwera DNS. Ten wpis DNS wskazuje następnie na nieistniejący zasób i jest narażony na przejęcie.
Rozważ, w jaki sposób relacja firmy Fabrikam z firmą Contoso może ulec zmianie, jeśli wystąpi następujący scenariusz:
Firma Fabrikam decyduje się już nie współpracować z firmą Contoso, dlatego przerywają relację biznesową.
Firma Contoso zamyka dzierżawę firmy Fabrikam i wyłącza
fabrikam.contoso.com
.Fabrikam zapomina o usunięciu rekordu CNAME dla elementu
invoices.fabrikam.com
.Złośliwy aktor tworzy nowe konto Contoso i nadaje mu nazwę
fabrikam
.Osoba atakująca dołącza niestandardową nazwę
invoices.fabrikam.com
domeny do nowej dzierżawy.Firma Contoso sprawdza serwer DNS firmy Fabrikam podczas weryfikacji domeny opartej na CNAME. Widzą, że serwer DNS zwraca rekord CNAME dla
invoices.fabrikam.com
elementu , który wskazuje wartośćfabrikam.contoso.com
. Firma Contoso uważa, że weryfikacja domeny niestandardowej zakończyła się pomyślnie.Jeśli pracownicy firmy Fabrikam próbują uzyskać dostęp do witryny, żądania wydają się działać. Jeśli osoba atakująca skonfiguruje dzierżawę firmy Contoso przy użyciu znakowania firmy Fabrikam, pracownicy mogą mieć możliwość uzyskania dostępu do witryny i podania poufnych danych, do których osoba atakująca może uzyskać dostęp.
Użyj następujących strategii, aby chronić przed zwisanymi atakami DNS:
Wymagaj usunięcia rekordu CNAME przed usunięciem nazwy domeny z konta dzierżawy.
Zabrania się ponownego użycia identyfikatorów najemców. Wymagaj od każdego lokatora utworzenia rekordu TXT z nazwą zgodną z nazwą domeny i losowo wygenerowaną wartością, która zmienia się przy każdej próbie onboardingu.
Certyfikaty TLS
Protokół TLS jest istotnym składnikiem nowoczesnych aplikacji. Zapewnia zaufanie i bezpieczeństwo aplikacji internetowych. Starannie rozważ własność certyfikatów TLS i zarządzanie nimi dla aplikacji wielodostępnych.
Zazwyczaj właściciel nazwy domeny wystawia i odnawia certyfikaty. Na przykład firma Contoso wystawia i odnawia certyfikaty TLS dla us.contoso.com
oraz certyfikat typu wildcard dla *.contoso.com
. Podobnie Fabrikam zarządza rekordami dla fabrikam.com
domeny, w tym invoices.fabrikam.com
.
Właściciel domeny może używać rekordu typu CAA DNS do autoryzacji urzędów certyfikacji. Rekordy caA zapewniają, że tylko określone władze mogą tworzyć certyfikaty dla domeny.
Jeśli zezwolisz klientom na korzystanie z własnych domen, zastanów się, czy planujesz wystawiać certyfikaty w ich imieniu, czy też wymagać od nich posiadania. Każda opcja ma zalety i wady:
Jeśli wystawiasz certyfikat dla klienta, możesz obsłużyć odnawianie certyfikatu, aby klient nie musiał go obsługiwać. Jeśli jednak klienci mają rekordy CAA w swoich nazwach domen, może być konieczne autoryzowanie cię do wystawiania certyfikatów w ich imieniu.
Jeśli klienci wystawiają i udostępniają ci własne certyfikaty, bezpiecznie otrzymujesz klucze prywatne i zarządzasz nimi. Aby uniknąć przerw w działaniu usługi, może być konieczne przypomnienie klientom o odnowieniu certyfikatu przed jego wygaśnięciem.
Kilka usług platformy Azure obsługuje automatyczne zarządzanie certyfikatami dla domen niestandardowych. Na przykład usługi Azure Front Door i App Service udostępniają certyfikaty dla domen niestandardowych i automatycznie obsługują proces odnawiania. Ta funkcja eliminuje obciążenie związane z zarządzaniem certyfikatami z działu operacyjnego. Jednak nadal musisz wziąć pod uwagę własność i autorytet. Upewnij się, że rekordy CAA są obecne i prawidłowo skonfigurowane. Upewnij się również, że domeny klientów zezwalają na certyfikaty zarządzane przez platformę.
Współautorzy
Firma Microsoft utrzymuje ten artykuł. Następujący współautorzy napisali ten artykuł.
Główny autor:
- John Downs | Główny inżynier oprogramowania
Inni współautorzy:
- Daniel Scott-Raynsford | Strateg ds. technologii partnerskich
- Arsen Vladimirskiy | Główny inżynier ds. klientów, FastTrack dla Azure
Aby wyświetlić niepubliczne profile serwisu LinkedIn, zaloguj się do serwisu LinkedIn.
Dalsze kroki
Wiele usług używa usługi Azure Front Door do zarządzania nazwami domen. Aby uzyskać więcej informacji, zobacz Używanie usługi Azure Front Door w rozwiązaniu wielodostępnym.
Wróć do przeglądu zagadnień dotyczących architektury. Możesz też przejrzeć platformę Azure Well-Architected Framework.