Integrace Application Gateway

Tři varianty služby Aplikace Azure Vyžadují mírně odlišnou konfiguraci integrace se službou Aplikace Azure Gateway. Mezi varianty patří běžná služba App Service (označovaná také jako víceklient), interní nástroj pro vyrovnávání zatížení (ILB) App Service Environment a externí app Service Environment.

Tento článek vás provede konfigurací služby Application Gateway se službou App Service (víceklient) pomocí koncových bodů služby pro zabezpečení provozu. Tento článek také popisuje aspekty používání privátních koncových bodů a integrace s interním nástrojem pro vyrovnávání zatížení a externími prostředími App Service Environment. Nakonec článek popisuje, jak nastavit omezení přístupu na webu Správce správy zdrojového kódu (SCM).

Integrace se službou App Service (víceklient)

App Service (víceklient) má veřejný internetový koncový bod. Pomocí koncových bodů služby můžete povolit provoz jenom z konkrétní podsítě ve virtuální síti Azure a blokovat všechno ostatní. V následujícím scénáři tuto funkci použijete k zajištění toho, aby instance služby App Service přijímala provoz pouze z konkrétní aplikační brány.

Diagram that shows the internet flowing to an application gateway in an Azure virtual network and then flowing through a firewall icon to instances of apps in App Service.

Kromě vytvoření instance služby App Service a aplikační brány existují dvě části této konfigurace. První částí je povolení koncových bodů služby v podsíti virtuální sítě, ve které je služba Application Gateway nasazená. Koncové body služby zajišťují, aby veškerý síťový provoz opustil podsíť směrem ke službě App Service, označený konkrétním ID podsítě.

Druhou částí je nastavení omezení přístupu pro konkrétní webovou aplikaci, aby se zajistilo, že je povolený jenom provoz označený tímto konkrétním ID podsítě. Omezení přístupu můžete nakonfigurovat pomocí různých nástrojů v závislosti na vašich preferencích.

Nastavení služeb pomocí webu Azure Portal

Pomocí webu Azure Portal vytvoříte a nakonfigurujete nastavení služby App Service a Application Gateway čtyřmi kroky. Pokud máte existující prostředky, můžete první kroky přeskočit.

  1. Vytvořte instanci služby App Service pomocí jednoho z rychlých startů v dokumentaci ke službě App Service. Jedním z příkladů je rychlý start pro .NET Core.
  2. Vytvořte aplikační bránu pomocí rychlého startu portálu, ale přeskočte část o přidávání back-endových cílů.
  3. Nakonfigurujte službu App Service jako back-end ve službě Application Gateway, ale přeskočte část o omezení přístupu.
  4. Vytvořte omezení přístupu pomocí koncových bodů služby.

Teď máte přístup ke službě App Service prostřednictvím služby Application Gateway. Pokud se pokusíte získat přístup přímo ke službě App Service, měla by se zobrazit chyba HTTP 403 s informací, že webová aplikace váš přístup zablokovala.

Screenshot shows the text of Error 403 - Forbidden.

Nastavení služeb pomocí šablony Azure Resource Manageru

Šablona nasazení Azure Resource Manageru vytvoří kompletní scénář. Scénář se skládá z instance služby App Service, která je uzamčená pomocí koncových bodů služby a omezení přístupu pro příjem provozu pouze ze služby Application Gateway. Šablona obsahuje mnoho inteligentních výchozích hodnot a jedinečné opravy příspěvků přidané do názvů prostředků, aby byly jednoduché. Pokud je chcete přepsat, musíte naklonovat úložiště nebo stáhnout šablonu a upravit ji.

Pokud chcete šablonu použít, můžete použít tlačítko Nasadit do Azure v popisu šablony. Nebo můžete použít příslušný kód PowerShellu nebo Azure CLI.

Nastavení služeb pomocí Azure CLI

Ukázka Azure CLI vytvoří instanci služby App Service, která je uzamčená pomocí koncových bodů služby a omezení přístupu pro příjem provozu pouze ze služby Application Gateway. Pokud potřebujete izolovat provoz jenom do existující instance služby App Service z existující aplikační brány, použijte následující příkaz:

az webapp config access-restriction add --resource-group myRG --name myWebApp --rule-name AppGwSubnet --priority 200 --subnet mySubNetName --vnet-name myVnetName

Ve výchozí konfiguraci příkaz zajistí nastavení konfigurace koncového bodu služby v podsíti a omezení přístupu ve službě App Service.

Důležité informace o používání privátních koncových bodů

Jako alternativu ke koncovým bodům služby můžete použít privátní koncové body k zabezpečení provozu mezi službou Application Gateway a službou App Service (víceklient). Potřebujete zajistit, aby služba Application Gateway k překladu privátní IP adresy aplikací služby App Service používala DNS. Případně můžete použít privátní IP adresu v back-endovém fondu a přepsat název hostitele v nastavení HTTP.

Diagram that shows traffic flowing to an application gateway in an Azure virtual network and then flowing through a private endpoint to instances of apps in App Service.

Application Gateway ukládá výsledky vyhledávání DNS do mezipaměti. Pokud používáte plně kvalifikované názvy domén (FQDN) a spoléháte se na vyhledávání DNS, abyste získali privátní IP adresu, možná budete muset restartovat aplikační bránu, pokud se po nakonfigurování back-endového fondu stane aktualizace DNS nebo odkaz na privátní zónu DNS Azure.

Pokud chcete restartovat aplikační bránu, zastavte ji a spusťte pomocí Azure CLI:

az network application-gateway stop --resource-group myRG --name myAppGw
az network application-gateway start --resource-group myRG --name myAppGw

Důležité informace o službě App Service Environment s interním nástrojem pro vyrovnávání zatížení

Služba App Service Environment s interním nástrojem pro vyrovnávání zatížení není přístupná k internetu. Provoz mezi instancí a aplikační bránou je už izolovaný do virtuální sítě. Pokud chcete nakonfigurovat službu App Service Environment s interním nástrojem pro vyrovnávání zatížení a integrovat ji se službou Application Gateway pomocí webu Azure Portal, přečtěte si průvodce postupy.

Pokud chcete zajistit, aby se do služby App Service Environment dostal pouze provoz z podsítě služby Application Gateway, můžete nakonfigurovat skupinu zabezpečení sítě (NSG), která ovlivňuje všechny webové aplikace ve službě App Service Environment. Pro skupinu zabezpečení sítě můžete zadat rozsah IP adres podsítě a volitelně porty (80/443). Aby služba App Service Environment fungovala správně, ujistěte se, že nepřepíšete požadovaná pravidla skupiny zabezpečení sítě.

Pokud chcete izolovat provoz do jednotlivé webové aplikace, musíte použít omezení přístupu na základě PROTOKOLU IP, protože koncové body služby nefungují se službou App Service Environment. IP adresa by měla být privátní IP adresa aplikační brány.

Důležité informace o externím prostředí App Service Environment

Externí služba App Service Environment má veřejně přístupný nástroj pro vyrovnávání zatížení, jako je služba App Service s více tenanty. Koncové body služby nefungují pro službu App Service Environment. Proto musíte použít omezení přístupu na základě PROTOKOLU IP pomocí veřejné IP adresy aplikační brány. Pokud chcete vytvořit externí službu App Service Environment pomocí webu Azure Portal, můžete postupovat podle tohoto rychlého startu.

Důležité informace o lokalitě Kudu/SCM

Web SCM, označovaný také jako Kudu, je web pro správu, který existuje pro každou webovou aplikaci. Pro lokalitu SCM není možné použít reverzní proxy server. Pravděpodobně ho také chcete uzamknout na jednotlivé IP adresy nebo konkrétní podsíť.

Pokud chcete použít stejná omezení přístupu jako hlavní web, můžete nastavení zdědit pomocí následujícího příkazu:

az webapp config access-restriction set --resource-group myRG --name myWebApp --use-same-restrictions-for-scm-site

Pokud chcete přidat jednotlivá omezení přístupu pro web SCM, můžete použít --scm-site příznak:

az webapp config access-restriction add --resource-group myRG --name myWebApp --scm-site --rule-name KudoAccess --priority 200 --ip-address 208.130.0.0/16

Důležité informace o používání výchozí domény

Konfigurace služby Application Gateway pro přepsání názvu hostitele a použití výchozí domény služby App Service (obvykle azurewebsites.net) je nejjednodušší způsob konfigurace integrace. Nevyžaduje konfiguraci vlastní domény a certifikátu ve službě App Service.

Tento článek popisuje obecné aspekty přepsání původního názvu hostitele. Ve službě App Service existují dva scénáře, ve kterých je potřeba věnovat pozornost této konfiguraci.

Authentication

Při použití funkce ověřování ve službě App Service (označované také jako Easy Auth) se vaše aplikace obvykle přesměruje na přihlašovací stránku. Vzhledem k tomu, že App Service nezná původní název hostitele požadavku, přesměrování se provádí u výchozího názvu domény a obvykle dojde k chybě.

Pokud chcete obejít výchozí přesměrování, můžete nakonfigurovat ověřování, abyste zkontrolovali přeposílanou hlavičku a přizpůsobili doménu přesměrování původní doméně. Application Gateway používá hlavičku s názvem X-Original-Host. Pomocí konfigurace založené na souborech ke konfiguraci ověřování můžete nakonfigurovat službu App Service tak, aby se přizpůsobila původnímu názvu hostitele. Přidejte tuto konfiguraci do konfiguračního souboru:

{
    ...
    "httpSettings": {
        "forwardProxy": {
            "convention": "Custom",
            "customHostHeaderName": "X-Original-Host"
        }
    }
    ...
}

Spřažení Směrování žádostí na aplikace

V nasazeních s více instancemi spřažení ARR zajišťuje směrování požadavků klientů do stejné instance po dobu životnosti relace. Spřažení ARR nefunguje s přepsáním názvu hostitele. Aby spřažení relací fungovalo, musíte nakonfigurovat identickou vlastní doménu a certifikát ve službě App Service a ve službě Application Gateway a nepřepsat název hostitele.

Další kroky

Další informace o službě App Service Environment najdete v dokumentaci ke službě App Service Environment.

Další zabezpečení webové aplikace najdete v dokumentaci ke službě Azure Web Application Firewall ve službě Application Gateway.

Pokud chcete nasadit zabezpečený a odolný web s vlastní doménou ve službě App Service pomocí služby Azure Front Door nebo Application Gateway, podívejte se na tento kurz.