Sdílet prostřednictvím


Co je integrace služby Application Gateway se službou Azure App Service?

Tento článek popisuje, jak nakonfigurovat službu Azure Application Gateway se službou Azure App Service pomocí privátních koncových bodů pro zabezpečení provozu. Tento článek také popisuje důležité informace o používání koncových bodů služby a integraci s interními a externími prostředími App Service Environment. Tento č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

Privátní koncové body můžete použít k zabezpečení provozu mezi službou Application Gateway a vaší aplikací App Service. Musíte zajistit, aby služba Application Gateway mohla používat systém DNS k překladu privátní IP adresy aplikací služby App Service. Případně můžete použít soukromou IP adresu v back-endové skupině a přepsat název hostitele v nastavení HTTP.

Diagram znázorňující tok provozu do aplikační brány prostřednictvím privátního koncového bodu do instancí aplikací ve službě 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

Přečtěte si další informace o konfiguraci aplikace App Service s privátním koncovým bodem.

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

Jako alternativu k používání privátních koncových bodů můžete použít koncové body služby k zabezpečení provozu ze služby Application Gateway. 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 znázorňující tok internetu do aplikační brány ve virtuální síti Azure a následný průchod ikonou brány firewall do instancí aplikací ve službě App Service

Tato konfigurace má dvě části kromě vytvoření instance aplikace App Service a aplikační brány.

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í, že veškerý síťový provoz opouštějící podsíť směrem ke službě App Service je 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.

Na webu Azure Portal provedete čtyři kroky a vytvoříte a nakonfigurujete integraci služby App Service a Application Gateway. 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ý úvod .NET Core.
  2. Vytvořte aplikační bránu pomocí portálového rychlého startu, 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 přistupovat přímo ke službě App Service, očekává se, že se zobrazí chyba HTTP 403, která říká, že webová aplikace blokuje váš přístup.

Důležité informace pro interní službu App Service Environment

Interní prostředí App Service Environment není přístupné na internetu. Provoz mezi instancí a aplikační bránou je už izolovaný do virtuální sítě. Můžete nakonfigurovat interní službu App Service Environment a integrovat ji se službou Application Gateway pomocí webu Azure Portal.

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ě, 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).

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í prostředí App Service má veřejně přístupný nástroj pro vyrovnávání zatížení, podobně jako víceklientské aplikace App Service. Koncové body služby nefungují pro službu App Service Environment. Ve službě App Service Environment můžete použít omezení přístupu na základě IP adres 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 použít rychlý start.

Privátní koncové body můžete také přidat do aplikací hostovaných v externím prostředí App Service Environment.

Úvahy o místě 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í hostitelského jména 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.

Zachování názvu hostitele pojednává o obecných úvahách o přepsání původního názvu hostitele. Ve službě App Service je potřeba věnovat pozornost této konfiguraci ve dvou scénářích.

Ověřování

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í relací

V nasazeních s více instancemi spřažení relací zajišťuje směrování požadavků klientů do stejné instance po dobu životnosti relace. Spřažení relací lze nakonfigurovat tak, aby přizpůsobila doménu cookie příchozí hlavičce z reverzního proxy serveru. Nastavením proxy spřažení relace na true, spřažení relace hledá X-Original-Host nebo X-Forwarded-Host a přizpůsobuje doménu cookie doméně nalezené v této hlavičce. Jako doporučený postup při povolování proxy s udržením afinity relací byste měli nakonfigurovat omezení přístupu na webu, abyste zajistili, že veškerý provoz pochází z reverzního proxy serveru.

Také můžete clientAffinityProxyEnabled konfigurovat pomocí následujícího příkazu:

az resource update --resource-group myRG --name myWebApp --resource-type "Microsoft.Web/sites" --set properties.clientAffinityProxyEnabled=true