Zveřejnění Azure Spring Apps prostřednictvím reverzního proxy serveru

Azure Spring Apps
Azure Application Gateway
Azure Front Door

Při hostování aplikací nebo mikroslužeb v Azure Spring Apps je nechcete vždy publikovat přímo na internetu. Místo toho je můžete chtít zveřejnit prostřednictvím reverzního proxy serveru. Tento přístup umožňuje umístit službu před vaše aplikace. Služba může definovat průřezové funkce, jako jsou funkce firewallu webových aplikací (WAF), které pomáhají zabezpečit vaše aplikace, vyrovnávání zatížení, směrování, filtrování požadavků a omezování rychlosti.

Když nasadíte běžnou službu reverzního proxy serveru, jako je Aplikace Azure Gateway nebo Azure Front Door před Azure Spring Apps, měli byste zajistit, aby se vaše aplikace dostaly jenom přes reverzní proxy server. Tato ochrana pomáhá zabránit uživatelům se zlými úmysly v pokusu o obejití WAF nebo obejít limity omezování.

Azure DDoS Protection v kombinaci s osvědčenými postupy návrhu aplikací poskytuje vylepšené funkce pro zmírnění rizik DDoS, které poskytují větší ochranu před útoky DDoS. Službu Azure DDOS Protection byste měli povolit v jakékoli hraniční virtuální síti.

Tento článek popisuje, jak vynutit omezení přístupu, aby aplikace hostované v Azure Spring Apps byly přístupné jenom prostřednictvím reverzní proxy služby. Doporučený způsob, jak tato omezení vynutit, závisí na tom, jak nasadíte instanci Azure Spring Apps a jaký reverzní proxy server používáte. V závislosti na tom, jestli nasazujete v rámci virtuální sítě nebo mimo virtuální síť, je potřeba zvážit různé body. Tento článek obsahuje informace o čtyřech scénářích.

  • Nasaďte Azure Spring Apps ve virtuální síti a privátní přístup k vašim aplikacím z této sítě.

    • Máte kontrolu nad virtuální sítí, ve které běží vaše aplikace. Pomocí nativních síťových funkcí Azure, jako jsou skupiny zabezpečení sítě (NSG), zamkněte přístup a povolte pouze reverzní proxy server.

    • Své aplikace můžete veřejně zveřejnit na internetu pomocí služby Aplikace Azure Gateway a pak použít příslušná omezení přístupu k uzamčení. Tento přístup je popsaný ve scénáři 1 dále v tomto článku.

    • Azure Front Door nemůžete použít přímo, protože se nemůže spojit s instancí Azure Spring Apps ve vaší privátní virtuální síti. Azure Front Door se může připojit k back-endům jenom prostřednictvím veřejné IP adresy nebo prostřednictvím služeb, které používají privátní koncový bod. Pokud máte nasazení Azure Spring Apps ve více oblastech a potřebujete globální vyrovnávání zatížení, můžete instance Azure Spring Apps zveřejnit prostřednictvím služby Application Gateway. K dosažení tohoto scénáře umístíte službu Azure Front Door před službu Application Gateway. Tento přístup je popsaný ve scénáři 2 dále v tomto článku.

  • Nasaďte Azure Spring Apps mimo virtuální síť a publikujte aplikace přímo na internet, pokud jim přiřadíte koncový bod.

    • Síť neřídíte a nemůžete použít skupiny zabezpečení sítě k omezení přístupu. Povolení přístupu k aplikacím pouze reverznímu proxy serveru vyžaduje přístup v rámci samotné služby Azure Spring Apps.

    • Vzhledem k tomu, že jsou vaše aplikace veřejně dostupné, můžete jako reverzní proxy server použít Službu Application Gateway nebo Azure Front Door. Přístup ke službě Application Gateway je popsaný ve scénáři 3 dále v tomto článku. Přístup ke službě Azure Front Door je popsaný ve scénáři 4 dále v tomto článku.

    • Podle potřeby můžete použít kombinaci obou přístupů. Pokud používáte službu Application Gateway i Azure Front Door, použijte stejná omezení přístupu mezi dvěma reverzními proxy servery, které se používají ve scénáři 2.

Poznámka:

Místo služby Application Gateway nebo Azure Front Door můžete použít jiné reverzní proxy služby. V případě regionálních služeb založených na virtuální síti Azure, jako je Azure API Management, se pokyny podobají pokynům pro Službu Application Gateway. Pokud používáte služby mimo Azure, jsou pokyny podobné pokynům pro Azure Front Door.

Porovnání scénářů

Následující tabulka obsahuje stručné porovnání čtyř scénářů konfigurace reverzního proxy serveru pro Azure Spring Apps. Úplné podrobnosti o jednotlivých scénářích najdete v příslušné části tohoto článku.

Scénář Nasazení Služby Konfigurace
1 Uvnitř virtuální sítě Application Gateway – Pro každou aplikaci, kterou chcete zveřejnit, ji přiřaďte koncový bod a namapujte odpovídající vlastní doménu nebo domény na danou aplikaci.
– Pro back-endový fond ve službě Application Gateway použijte přiřazený koncový bod každé aplikace.
– V podsíti modulu runtime služby přidejte skupinu zabezpečení sítě, která povolí provoz pouze z podsítě služby Application Gateway, podsítě aplikací a nástroje pro vyrovnávání zatížení Azure. Zablokujte veškerý ostatní provoz.
2 Uvnitř virtuální sítě Azure Front Door a Application Gateway – Pomocí stejného přístupu popsaného ve scénáři 1 omezte přístup mezi službou Application Gateway a Azure Spring Apps.
– V podsíti služby Application Gateway vytvořte skupinu zabezpečení sítě, která povolí pouze provoz, který má AzureFrontDoor.Backend značku služby.
– Vytvořte vlastní pravidlo WAF ve službě Application Gateway, abyste ověřili, že hlavička X-Azure-FDID HTTP obsahuje vaše konkrétní ID instance služby Azure Front Door.
3 Mimo virtuální síť Application Gateway se službou Spring Cloud Gateway – Pomocí brány Spring Cloud zpřístupněte back-endové aplikace. Přiřazený koncový bod vyžaduje jenom aplikace Spring Cloud Gateway. Vlastní domény všech back-endových aplikací by se měly mapovat na tuto jedinou aplikaci Spring Cloud Gateway.
– Pro back-endový fond ve službě Application Gateway použijte přiřazený koncový bod aplikace Spring Cloud Gateway.
– Ve službě Spring Cloud Gateway nastavte XForwarded Remote Addr predikát trasy na veřejnou IP adresu služby Application Gateway.
– Volitelně v aplikacích Spring Framework nastavte server.forward-headers-strategy vlastnost aplikace na FRAMEWORK.
4 Mimo virtuální síť Azure Front Door s bránou Spring Cloud – Pomocí brány Spring Cloud zpřístupněte back-endové aplikace. Přiřazený koncový bod vyžaduje jenom aplikace Spring Cloud Gateway. Vlastní domény všech back-endových aplikací by se měly mapovat na tuto jedinou aplikaci Spring Cloud Gateway.
– Pro back-endový fond nebo zdroj ve službě Azure Front Door použijte přiřazený koncový bod aplikace Spring Cloud Gateway.
– Ve službě Spring Cloud Gateway nastavte XForwarded Remote Addr predikát trasy na všechny rozsahy odchozích IP adres služby Azure Front Door a ponechte toto nastavení aktuální. Header Nastavte predikát trasy, abyste zajistili, že X-Azure-FDID hlavička HTTP obsahuje vaše jedinečné ID služby Azure Front Door.
– Volitelně v aplikacích Spring Framework nastavte server.forward-headers-strategy vlastnost aplikace na FRAMEWORK.

Poznámka:

Po nastavení konfigurace zvažte použití služby Azure Policy nebo zámků prostředků, abyste zabránili náhodným nebo škodlivým změnám, které by mohly umožnit obejití reverzního proxy serveru a přímé zveřejnění aplikace. Toto zabezpečení platí jenom pro prostředky Azure (konkrétně skupiny zabezpečení sítě), protože konfigurace v rámci Azure Spring Apps není viditelná pro řídicí rovinu Azure.

Nasazení ve virtuální síti

Když je služba Azure Spring Apps nasazená ve virtuální síti, používá dvě podsítě:

  • Podsíť modulu runtime služby, která obsahuje relevantní síťové prostředky
  • Podsíť aplikací, která hostuje váš kód

Vzhledem k tomu, že podsíť modulu runtime služby obsahuje nástroj pro vyrovnávání zatížení pro připojení k vašim aplikacím, můžete v této podsíti modulu runtime služby definovat skupinu zabezpečení sítě, která povolí provoz jenom z reverzního proxy serveru. Když zablokujete veškerý ostatní provoz, nebude mít nikdo ve virtuální síti přístup k vašim aplikacím, aniž by procházel reverzním proxy serverem.

Důležité

Omezení přístupu k podsíti jenom na reverzní proxy server může způsobit selhání funkcí, které závisí na přímém připojení z klientského zařízení k aplikaci, jako je streamování protokolů. Zvažte přidánípravidelch

Každá aplikace, kterou chcete zveřejnit prostřednictvím reverzního proxy serveru, by měla mít přiřazený koncový bod, aby se reverzní proxy server mohl spojit s aplikací ve virtuální síti. Pro každou aplikaci byste také měli namapovat vlastní domény , které používá, aby se zabránilo přepsání hlavičky HTTP Host v reverzním proxy serveru a zachovat původní název hostitele beze změny. Tato metoda zabraňuje problémům, jako jsou nefunkční soubory cookie nebo adresy URL pro přesměrování, které nefungují správně. Další informace naleznete v tématu Zachování názvu hostitele.

Poznámka:

Případně (nebo pro hloubkovou ochranu, případně kromě skupiny zabezpečení sítě), můžete postupovat podle pokynů pro případ , že máte aplikace Azure Spring Apps nasazené mimo vaši virtuální síť. Tato část vysvětluje, jak se omezení přístupu obvykle dosahuje pomocí brány Spring Cloud, která má vliv také na back-endové aplikace, protože už nepotřebují přiřazený koncový bod nebo vlastní doménu.

Scénář 1: Použití služby Application Gateway jako reverzního proxy serveru

Scénář 1 popisuje, jak zveřejnit aplikace veřejně na internetu pomocí služby Application Gateway a pak použít příslušná omezení přístupu k uzamčení.

Následující diagram znázorňuje architekturu scénáře 1:

Diagram that shows the use of Azure Application Gateway with Azure Spring Apps in a virtual network.

Stáhněte si soubor aplikace Visio s touto architekturou.

Když se application Gateway nachází před vaší instancí Azure Spring Apps, použijete přiřazený koncový bod aplikace Spring Cloud Gateway jako back-endový fond. Příkladem koncového bodu je myspringcloudservice-myapp.private.azuremicroservices.io. Koncový bod se přeloží na privátní IP adresu v podsíti modulu runtime služby. Pokud tedy chcete omezit přístup, můžete do podsítě modulu runtime služby umístit skupinu zabezpečení sítě s následujícími příchozími pravidly zabezpečení (což dává pravidlu odepření nejnižší prioritu):

Akce Source type Zdrojová hodnota Protokol Rozsahy cílových portů
Povolit Adresy IP Rozsah privátníCH IP adres podsítě služby Application Gateway (například 10.1.2.0/24). TCP 80, 443 (nebo jiné porty podle potřeby)
Povolit Adresy IP Rozsah privátních IP adres podsítě aplikací v Azure Spring Apps (například 10.1.1.0/24). TCP *
Povolit Značka služby AzureLoadBalancer Any *
Odepřít Značka služby Any Any *

Konfigurace scénáře 1 zajišťuje, že podsíť modulu runtime služby umožňuje provoz pouze z následujících zdrojů:

  • Vyhrazená podsíť služby Application Gateway
  • Podsíť aplikací (vyžaduje se obousměrná komunikace mezi dvěma podsítěmi Azure Spring Apps.)
  • Nástroj pro vyrovnávání zatížení Azure (což je obecný požadavek na platformu Azure)

Veškerý ostatní provoz je zablokovaný.

Scénář 2: Použití služby Azure Front Door i služby Application Gateway jako reverzního proxy serveru

Jak už jsme si poznamenali dříve, nemůžete službu Azure Front Door umístit přímo před Azure Spring Apps, protože se nemůže spojit s vaší privátní virtuální sítí. (Azure Front Door Standard nebo Premium se může připojit k privátním koncovým bodům ve virtuální síti, ale Azure Spring Apps v současné době nenabízí podporu privátních koncových bodů.) Pokud stále chcete používat Azure Front Door, například vyžadovat globální vyrovnávání zatížení napříč několika instancemi Azure Spring Apps v různých oblastech Azure, můžete své aplikace stále zveřejnit prostřednictvím služby Application Gateway. K dosažení tohoto scénáře umístíte službu Azure Front Door před službu Application Gateway.

Následující diagram znázorňuje architekturu scénáře 2:

Diagram that shows the use of Azure Front Door and Azure Application Gateway with Azure Spring Apps in a virtual network.

Stáhněte si soubor aplikace Visio s touto architekturou.

Konfigurace scénáře 2 implementuje omezení přístupu mezi službou Application Gateway a Azure Spring Apps stejným způsobem jako scénář 1. Skupinu zabezpečení sítě umístíte do podsítě modulu runtime služby s příslušnými pravidly.

Ve scénáři 2 musíte také zajistit, aby služba Application Gateway přijímala provoz přicházející pouze z vaší instance služby Azure Front Door. Dokumentace ke službě Azure Front Door vysvětluje , jak uzamknout přístup k back-endu, aby umožňoval pouze provoz služby Azure Front Door. Pokud je back-end službou Application Gateway, můžete toto omezení implementovat následujícím způsobem:

Nasazení mimo vaši virtuální síť

Když nasadíte Azure Spring Apps mimo virtuální síť, nemůžete používat nativní síťové funkce Azure, protože síť neřídíte. Místo toho musíte u samotných aplikací použít potřebná omezení přístupu, abyste povolili provoz jenom z reverzního proxy serveru. Pokud máte mnoho aplikací, může tento přístup přidat složitost a existuje riziko, že není možné správně nakonfigurovat každou aplikaci.

Zveřejnění a zabezpečení aplikací pomocí brány Spring Cloud

Pokud chcete vývojářům jednotlivých aplikací odebrat zodpovědnost za řízení přístupu, můžete použít průřezová omezení pomocí brány Spring Cloud. Spring Cloud Gateway je běžně používaný projekt Spring, který můžete nasadit do Azure Spring Apps stejně jako jakoukoli jinou aplikaci. Pomocí brány Spring Cloud můžete mít vlastní aplikace v instanci Azure Spring Apps privátní a zajistit, aby k ní bylo možné přistupovat jenom prostřednictvím sdílené aplikace Spring Cloud Gateway. Tuto aplikaci pak nakonfigurujete s nezbytnými omezeními přístupu pomocí predikátů tras, což je integrovaná funkce brány Spring Cloud. Predikáty směrování můžou použít různé atributy příchozího požadavku HTTP k určení, jestli se má směrovat požadavek do back-endové aplikace nebo odmítnout. Predikát může používat atributy, jako je IP adresa klienta, metoda požadavku nebo cesta, hlavičky HTTP atd.

Důležité

Když bránu Spring Cloud umístíte před back-endové aplikace tímto způsobem, musíte všechny vlastní domény namapovat na aplikaci Spring Cloud Gateway, a ne na back-endové aplikace. Jinak Azure Spring Apps nesměruje příchozí provoz do brány Spring Cloud jako první, když přijde požadavek na některou z těchto vlastních domén.

Tento přístup předpokládá, že reverzní proxy nepřepíše hlavičku HTTP Host a původní název hostitele zůstane nedotčený. Další informace naleznete v tématu Zachování názvu hostitele .

Tento vzor se běžně používá. Pro účely tohoto článku předpokládáme, že své aplikace zveřejníte prostřednictvím brány Spring Cloud. Očekáváme, že použijete predikáty trasy k nastavení nezbytných omezení přístupu, abyste zajistili, že budou povoleny pouze požadavky z reverzního proxy serveru. I když bránu Spring Cloud nepoužíváte, platí stejné obecné principy. V aplikacích ale musíte vytvořit vlastní možnosti filtrování požadavků na základě stejné X-Forwarded-For hlavičky HTTP, která je popsána dále v tomto článku.

Poznámka:

Spring Cloud Gateway je také reverzní proxy server, který poskytuje služby, jako je směrování, filtrování požadavků a omezování rychlosti. Pokud tato služba poskytuje všechny funkce, které potřebujete pro svůj scénář, možná nebudete potřebovat další reverzní proxy server, jako je Application Gateway nebo Azure Front Door. Nejběžnější důvody, proč je stále potřeba zvážit použití ostatních služeb Azure, jsou funkce WAF, které poskytují, nebo pro možnosti globálního vyrovnávání zatížení, které Azure Front Door nabízí.

Popis fungování služby Spring Cloud Gateway je mimo rozsah tohoto článku. Je to vysoce flexibilní služba, kterou můžete přizpůsobit prostřednictvím kódu nebo konfigurace. Tento článek popisuje pouze čistě konfigurační přístup, který nevyžaduje změny kódu. Tento přístup můžete implementovat zahrnutím tradičního application.properties souboru nebo application.yml souboru do nasazené aplikace Spring Cloud Gateway. Přístup můžete implementovat také pomocí konfiguračního serveru v Azure Spring Apps , který externalizuje konfigurační soubor do úložiště Git. V následujících příkladech implementujeme application.yml přístup se syntaxí YAML, ale funguje také ekvivalentní application.properties syntaxe.

Směrování požadavků do aplikací

Pokud vaše aplikace ve službě Azure Spring Apps nemá ve výchozím nastavení přiřazený koncový bod nebo vlastní doménu nakonfigurovanou pro ni, není dostupná zvenčí. Když se aplikace zaregistruje ve službě Spring Cloud Service Registry, může brána Spring Cloud zjistit aplikaci, aby pomocí pravidel směrování přesměrovala provoz do správné cílové aplikace.

V důsledku toho je jedinou aplikací, která potřebuje mít přiřazený koncový bod v Azure Spring Apps, vaší aplikací Spring Cloud Gateway. Tento koncový bod umožňuje přístup zvenčí. Koncový bod byste neměli přiřazovat k žádným jiným aplikacím. Jinak se aplikace dají dostat přímo, ne přes bránu Spring Cloud, což zase umožňuje obejít reverzní proxy server.

Jednoduchý způsob, jak zpřístupnit všechny registrované aplikace prostřednictvím brány Spring Cloud, je použití lokátoru definice trasy DiscoveryClient následujícím způsobem:

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
          predicates:
          - Path="/"+serviceId+"/**" # Include the Path predicate to retain default behavior
          - (...)

Alternativně můžete selektivně zveřejnit určité aplikace prostřednictvím brány Spring Cloud definováním tras specifických pro aplikace:

spring:
  cloud:
    gateway:
      routes:
      - id: my_app1_route
        uri: lb://MY-APP1
        filters:
        - RewritePath=/myapp1(?<segment>/?.*), $\{segment}
        predicates:
        - (...)

S přístupem lokátoru zjišťování i explicitními definicemi tras můžete pomocí predikátů tras odmítnout neplatné požadavky. V tomto případě tuto funkci používáme k blokování požadavků, které nepocházejí z očekávaného reverzního proxy serveru, který se nachází před službou Azure Spring Apps.

Omezení přístupu pomocí hlavičky X-Forwarded-For HTTP

Když nasadíte aplikaci do Azure Spring Apps, klient HTTP nebo reverzní proxy se k aplikaci nepřipojí přímo. Síťový provoz nejprve prochází interním kontrolerem příchozího přenosu dat.

Poznámka:

Tento přístup znamená, že před dosažením aplikace ve scénářích, které následují, máte v kanálu požadavků tři nebo dokonce čtyři reverzní proxy servery. Toto jsou možné reverzní proxy servery: Azure Front Door nebo Application Gateway, kontroler příchozího přenosu dat a aplikace Spring Cloud Gateway.

Kvůli dodatečné službě je IP adresa přímého síťového klienta vždy interní komponentou Azure Spring Apps. IP adresa není nikdy logickým klientem, jako je reverzní proxy server, který očekáváte, že zavolá vaši aplikaci. IP adresu klienta nemůžete použít pro omezení přístupu. Nemůžete také použít předdefinovaný RemoteAddr predikát trasy brány Spring Cloud pro filtrování požadavků, protože ve výchozím nastavení používá IP adresu klienta.

Azure Spring Apps naštěstí vždy přidá IP adresu logického klienta do X-Forwarded-For hlavičky HTTP požadavku do vaší aplikace. Poslední hodnota X-Forwarded-For hlavičky (nejvíce vpravo) vždy obsahuje IP adresu logického klienta.

K filtrování požadavků na základě hlavičky X-Forwarded-For můžete použít předdefinovaný XForwarded Remote Addr predikát trasy. Tento predikát umožňuje nakonfigurovat seznam IP adres nebo rozsahů IP adres reverzního proxy serveru, které jsou povolené jako hodnota nejvíce vpravo.

Poznámka:

Predikát XForwarded Remote Addr trasy vyžaduje bránu Spring Cloud verze 3.1.1 nebo novější. Verze 3.1.1 je k dispozici ve vlaku verze Spring Cloud 2021.0.1 . Pokud nemůžete pomocí několika změn kódu v aplikaci Spring Cloud Gateway upravit způsob, jakým RemoteAddr predikát trasy určuje IP adresu klienta. Stejného výsledku můžete dosáhnout i s predikátem XForwarded Remote Addr trasy. RemoteAddr Nakonfigurujte predikát trasy tak, aby používal XForwardedRemoteAddressResolver a nakonfigurovali druhý maxTrustedIndex s hodnotou 1. Tento přístup nakonfiguruje aplikaci Spring Cloud Gateway tak, aby jako IP adresu logického X-Forwarded-For klienta používala správnou hodnotu hlavičky.

Konfigurace aplikace pro zobrazení správného názvu hostitele a adresy URL požadavku

Pokud používáte bránu Spring Cloud, je potřeba vzít v úvahu důležitý faktor. Brána Spring Cloud nastaví hlavičku HTTP Host u odchozího požadavku na interní IP adresu vaší instance aplikace, například Host: 10.2.1.15:1025. Název hostitele požadavku, který kód vaší aplikace uvidí, už není původním názvem hostitele požadavku, který prohlížeč odeslal, například contoso.com. V některých případech může tento výsledek vést k problémům, jako jsou nefunkční soubory cookie nebo adresy URL pro přesměrování, které nefungují správně. Další informace o těchto typech problémů a o tom, jak nakonfigurovat službu reverzního proxy serveru, jako je Application Gateway nebo Azure Front Door, abyste se jim vyhnuli, najdete v tématu Zachování názvů hostitelů.

Brána Spring Cloud poskytuje původní název hostitele v Forwarded hlavičce. Také nastaví další hlavičky, jako X-Forwarded-Portje , X-Forwarded-Protoa X-Forwarded-Prefix proto je vaše aplikace může použít k rekonstrukci původní adresy URL požadavku. V aplikacích Spring Framework můžete tuto konfiguraci dosáhnout automaticky nastavením server.forward-headers-strategy nastavení FRAMEWORK ve vlastnostech aplikace. (Nenastavujte tuto hodnotu na NATIVEhodnotu . V opačném případě se použijí jiné hlavičky, které nepřebírají požadovanou X-Forwarded-Prefix hlavičku.) Další informace najdete v tématu Spuštění za front-endovým proxy serverem. Při této konfiguraci metoda HttpServletRequest.getRequestURL vezme všechny tyto hlavičky do úvahy a vrátí přesnou adresu URL požadavku odeslanou prohlížečem.

Poznámka:

Možná budete chtít použít PreserveHostHeader filtr v bráně Spring Cloud, který udržuje původní název hostitele u odchozího požadavku. Tento přístup ale nefunguje, protože tento název hostitele je už namapovaný jako vlastní doména v aplikaci Spring Cloud Gateway. Ve finální back-endové aplikaci se nedá namapovat podruhé. Tato konfigurace způsobí HTTP 404 chybu, protože back-endová aplikace odmítne příchozí požadavek. Nerozpozná název hostitele.

Scénář 3: Použití služby Application Gateway se službou Spring Cloud Gateway

Scénář 3 popisuje, jak používat Službu Application Gateway jako reverzní proxy server pro veřejně dostupné aplikace prostřednictvím koncového bodu brány Spring Cloud.

Následující diagram znázorňuje architekturu scénáře 3:

Diagram that shows the use of Azure Application Gateway with Azure Spring Apps outside of a virtual network.

Stáhněte si soubor aplikace Visio s touto architekturou.

Když se application Gateway nachází před vaší instancí Azure Spring Apps, použijete přiřazený koncový bod aplikace Spring Cloud Gateway jako back-endový fond. Příkladem koncového bodu je myspringcloudservice-mygateway.azuremicroservices.io. Vzhledem k tomu, že služba Azure Spring Apps je nasazená mimo virtuální síť, přeloží se tato adresa URL na veřejnou IP adresu. Pokud je back-endový fond veřejným koncovým bodem, služba Application Gateway použije svou front-endovou veřejnou IP adresu pro přístup k back-endové službě.

Pokud chcete povolit přístup ke službě Spring Cloud Gateway jenom žádostem z vaší instance služby Application Gateway, můžete nakonfigurovat XForwarded Remote Addr predikát trasy. Nakonfigurujte predikát tak, aby umožňoval pouze požadavky z vyhrazené veřejné IP adresy vaší služby Application Gateway, jak je znázorněno v následujícím příkladu:

(...)
predicates:
- XForwardedRemoteAddr="20.103.252.85"

Scénář 4: Použití služby Azure Front Door s bránou Spring Cloud

Scénář 4 popisuje, jak používat Azure Front Door jako reverzní proxy server pro veřejně dostupné aplikace prostřednictvím koncového bodu brány Spring Cloud.

Následující diagram znázorňuje architekturu scénáře 4:

Diagram that shows the use of Azure Front Door with Azure Spring Apps outside of a virtual network.

Stáhněte si soubor aplikace Visio s touto architekturou.

Podobně jako ve scénáři 3 tato konfigurace používá veřejnou adresu URL aplikace Spring Cloud Gateway jako back-endový fond nebo zdroj ve službě Azure Front Door. Příkladem koncového bodu je https://myspringcloudservice-mygateway.azuremicroservices.io.

Vzhledem k tomu, že Azure Front Door je globální služba s mnoha hraničními umístěními, využívá mnoho IP adres ke komunikaci s back-endovým fondem. Dokumentace ke službě Azure Front Door popisuje , jak uzamknout přístup k back-endu, aby umožňoval pouze provoz služby Azure Front Door. V tomto scénáři ale neřídíte síť Azure, ve které jsou vaše aplikace nasazené. Značku služby bohužel nemůžete použít AzureFrontDoor.Backend k získání kompletního seznamu odchozích IP adres služby Azure Front Door, u které je zaručeno, že jsou aktuální. Místo toho musíte stáhnout rozsahy IP adres Azure a značky služeb, najít AzureFrontDoor.Backend oddíl a zkopírovat všechny rozsahy IP adres z addressPrefixes pole do XForwarded Remote Addr konfigurace predikátu trasy.

Důležité

Rozsahy IP adres používané službou Azure Front Door se můžou změnit. Autoritativní rozsahy IP adres Azure a soubor značek služeb se publikuje každý týden a zaznamenává všechny změny rozsahů IP adres. Pokud chcete zajistit, aby konfigurace zůstala aktuální, ověřte týdenní rozsahy IP adres a podle potřeby aktualizujte konfiguraci (ideálně automatizovaným způsobem). Abyste se vyhnuli režijním nákladům na údržbu tohoto přístupu, můžete azure Spring Apps nasadit ve virtuální síti pomocí dalších popsaných scénářů pomocí skupiny zabezpečení sítě se značkou AzureFrontDoor.Backend služby.

Vzhledem k tomu, že rozsahy IP adres služby Azure Front Door jsou sdílené s jinými organizacemi, musíte také zajistit, abyste zamkli přístup jenom ke konkrétní instanci služby Azure Front Door na X-Azure-FDID základě hlavičky HTTP, která obsahuje vaši jedinečnou Front Door IDhodnotu . Přístup můžete omezit pomocí Header predikátu trasy, který odmítne požadavek, pokud zadaná hlavička HTTP nemá určitou hodnotu.

V tomto scénáři může konfigurace predikátu trasy brány Spring Cloud vypadat jako v následujícím příkladu:

(...)
predicates:
- XForwardedRemoteAddr="13.73.248.16/29","20.21.37.40/29","20.36.120.104/29","20.37.64.104/29", ...(and many more)...
- Header="X-Azure-FDID", "e483e3cc-e7f3-4e0a-9eca-5f2a62bde229"

Přispěvatelé

Microsoft udržuje tento obsah. Následující přispěvatel vyvinul původní obsah.

Hlavní autor:

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

Další kroky