Az Application Gateway háttérrendszerének beállításainak konfigurálása

A háttérbeállítások lehetővé teszik az Application Gateway-erőforrásból létrehozott háttérkapcsolatok konfigurációinak kezelését a háttérkészlet egy kiszolgálója felé. A háttérbeállítások konfigurációja egy vagy több útválasztási szabályhoz társítható.

Háttérbeállítások típusai az Application Gatewayben

Míg a Portál felhasználói csak a "Háttérbeállítások" lehetőséget látják, az API-felhasználók kétféle beállításhoz férhetnek hozzá. A protokollnak megfelelően a megfelelő konfigurációt kell használnia.

  • Háttérbeli HTTP-beállítások – A 7. rétegbeli proxykonfigurációk támogatják a HTTP- és HTTPS-protokollokat.
  • Háttérbeállítások – A 4. rétegbeli proxy (előzetes verzió) konfigurációi támogatják a TLS- és TCP-protokollokat.

Azure Application Gateway átjáró által felügyelt cookie-kat használ a felhasználói munkamenetek fenntartásához. Amikor egy felhasználó elküldi az első kérést az Application Gatewaynek, egy affinitási cookie-t állít be a válaszban a munkamenet részleteit tartalmazó kivonatértékkel. Ez a folyamat lehetővé teszi az affinitási cookie-t tartalmazó későbbi kérések átirányítását ugyanarra a háttérkiszolgálóra, így fenntartva a ragadást.

Ez a funkció akkor hasznos, ha egy felhasználói munkamenetet ugyanazon a kiszolgálón szeretne tartani, és amikor a munkamenet állapota helyileg van mentve a kiszolgálón egy felhasználói munkamenethez. Ha az alkalmazás nem tudja kezelni a cookie-alapú affinitást, nem használhatja ezt a funkciót. A használatához győződjön meg arról, hogy az ügyfelek támogatják a cookie-kat.

Megjegyzés:

Egyes sebezhetőségi vizsgálatok megjelölhetik az Application Gateway affinitási cookie-ját, mert a secure vagy a HttpOnly jelölő nincs beállítva. Ezek a vizsgálatok nem veszik figyelembe, hogy a cookie adatai egyirányú kivonat használatával jönnek létre. A cookie nem tartalmaz felhasználói adatokat, és kizárólag útválasztásra szolgál.

A Chromium böngészőv80-as frissítése olyan felhatalmazást adott, hogy a SameSite attribútum nélküli HTTP-cookie-kat SameSite=Lax néven kell kezelni. CORS -kérések (forrásközi erőforrás-megosztás) esetén, ha a cookie-t külső környezetben kell elküldeni, akkor a SameSite=None értéket kell használnia ; Biztonságos attribútumok, amelyeket csak HTTPS-en keresztül kell elküldeni. Ellenkező esetben csak HTTP-forgatókönyv esetén a böngésző nem küldi el a cookie-kat harmadik féltől származó környezetben. A Chrome frissítés célja a biztonság növelése és a cross-site request hamisítás (CSRF) támadások elkerülése.

A változás támogatásához 2020. február 17-től az Application Gateway (az összes termékváltozattípus) a meglévő ApplicationGatewayAffinityCORS cookie mellett egy másik, ApplicationGatewayAffinityCORS nevű cookie-t is beszúr. Az ApplicationGatewayAffinityCORS cookie két további attribútumot is hozzáad hozzá ("SameSite=None; Biztonságos"), hogy a ragadós munkamenetek még a keresztirányú kérések esetében is megmaradjanak.

Az alapértelmezett affinitási cookie-név az ApplicationGatewayAffinity , amely módosítható. Ha a hálózati topológiában több alkalmazásátjárót is üzembe helyez, minden erőforráshoz egyedi cookie-neveket kell beállítania. Ha egyéni affinitási cookie-nevet használ, a rendszer egy másik cookie-t ad hozzá CORS utótagként. Például: CustomCookieNameCORS.

Megjegyzés:

Ha a SameSite=None attribútum be van állítva, kötelező, hogy a cookie tartalmazza a Biztonságos jelzőt is, és HTTPS-en keresztül kell elküldeni. Ha a CORS-hoz munkamenet-affinitás szükséges, a számítási feladatot HTTPS-be kell migrálnia. Tekintse meg az Application Gateway TLS-terheléselosztás és végpontok közötti TLS-re vonatkozó dokumentációt. Tekintse meg az SSL áttekintését, az Application Gateway TLS-leállítással való konfigurálását és a teljes körű TLS konfigurálását.

Kapcsolatleürítés

A kapcsolatelvezetés segít a háttérkészlet tagjainak zökkenőmentes eltávolításában a tervezett szolgáltatásfrissítések, a működés közbeni üzembe helyezések, a méretezési események vagy az átjárók konfigurációs frissítései során. Használja a kapcsolatelvezetést az időszakos 502 hibák és a kapcsolatok elvesztésének csökkentése érdekében, amikor a háttérpéldányokat explicit módon eltávolítják a háttércsoportból.

Ezt a beállítást az összes háttérkészlet-tagra alkalmazhatja, ha engedélyezi a kapcsolat kiürítését a háttérbeállításban. Biztosítja, hogy a háttérkészletben lévő összes törlési példány ne kapjon új kéréseket/kapcsolatokat, miközben a meglévő kapcsolatokat a konfigurált időtúllépési értékig fenntartja. Ez a folyamat a WebSocket-kapcsolatokra is igaz.

Konfiguráció típusa Érték
Alapértelmezett érték, ha a kapcsolat ürítése nincs engedélyezve a háttérbeállításban 30 másodperc
Felhasználó által megadott érték, ha a kapcsolat ürítése engedélyezve van a háttérbeállításban 1–3600 másodperc

A folyamat egyetlen kivétele az átjáró által kezelt munkamenet-affinitás miatt az instanciák törlésére vonatkozó kérelmek. Ezeket a kéréseket továbbra is eljuttatják a kijelentkező példányokhoz.

Megjegyzés:

Van egy korlátozás, amely miatt a konfigurációs frissítés megszakítja a folyamatos kapcsolatokat a kapcsolat kiürítési időtúllépése után. Ennek a korlátozásnak a megoldásához a háttérbeállításokban a kapcsolat ürítési időtúllépését a maximális ügyfélletöltési időnél magasabb értékre kell növelnie.

Ha frissíteni szeretné a kapcsolat kiürítési időkorlátját az Azure CLI-ben, futtassa a az network application-gateway http-settings update parancsot, és állítsa be a --connection-draining-timeout a háttérbeli HTTP-beállításokon. A 0 érték letiltja a kapcsolat kiürítését, és az 1 és 3600 másodperc közötti értékek engedélyezik azt.

Megjegyzés:

Ha időszakos 502-es hibákat tapasztal az üzembe helyezések, a gördülő frissítések vagy a visszaskálázási események során, akkor előfordulhat, hogy a kapcsolatürítési időkorlát túl rövid. Növelje a(z) --connection-draining-timeout értékét a várt maximális ügyfél-adatátviteli időnél nagyobb értékre.

Protokoll

Az Application Gateway http-t és HTTPS-t is támogat a háttérkiszolgálókra irányuló útválasztási kérelmekhez. HA HTTP-t választ, a háttérkiszolgálók felé történő forgalom titkosítatlan. Ha a titkosítatlan kommunikáció nem elfogadható, válassza a HTTPS lehetőséget.

Ez a beállítás a HTTPS-vel kombinálva a figyelőben támogatja a teljes körű TLS-t. Így biztonságosan továbbíthatja a háttérrendszerbe titkosított bizalmas adatokat. A teljes körű TLS-kompatibilis háttérkészletben lévő háttérkiszolgálók mindegyikét tanúsítványsal kell konfigurálni a biztonságos kommunikáció érdekében.

Kikötő

Ez a beállítás azt a portot adja meg, ahol a háttérkiszolgálók figyelik az application gatewayről érkező forgalmat. 1 és 65535 közötti portokat konfigurálhat.

Megbízható gyökértanúsítvány

Ha a HTTPS-protokoll ki van választva a háttérbeállítások között, az Application Gateway-erőforrás az alapértelmezett megbízható legfelső szintű hitelesítésszolgáltató tanúsítványtárolóját használja a háttérkiszolgáló által biztosított tanúsítvány láncának és hitelességének ellenőrzéséhez.

Az Application Gateway-erőforrás alapértelmezés szerint népszerű hitelesítésszolgáltatói tanúsítványokat tartalmaz, így zökkenőmentes háttérbeli TLS-kapcsolatokat tesz lehetővé, amikor a háttérkiszolgáló tanúsítványát nyilvános hitelesítésszolgáltató állítja ki. Ha azonban teljes TLS-érvényesítéssel szeretne magánhálózati hitelesítésszolgáltatót vagy ön által létrehozott tanúsítványt használni, a háttérbeállítások konfigurációjában meg kell adnia a megfelelő legfelső szintű hitelesítésszolgáltatói tanúsítványt (.cer).

Háttérbeli HTTPS-érvényesítési beállítások

Ha a HTTPS van kiválasztva a Azure Application Gateway háttérbeállításaiban, az átjáró teljes TLS-kézfogás-ellenőrzést hajt végre, miközben biztonságos kapcsolatot hoz létre a háttérkiszolgálókkal. Ezek az érvényesítések a következők:

  1. A tanúsítványlánc ellenőrzése annak érdekében, hogy a tanúsítvány megbízható legyen.
  2. A tanúsítvány tulajdonosnevének ellenőrzése az Application Gateway által küldött kiszolgálónév-jelzés (SNI) alapján.
  3. A tanúsítvány lejáratának ellenőrzése annak ellenőrzéséhez, hogy a tanúsítvány még érvényes-e.

Az alapértelmezett érvényesítési beállítások biztosítják az átjáró és a háttérszolgáltatások közötti biztonságos TLS-kommunikációt. Bizonyos esetekben szükség lehet egy vagy több ilyen érvényesítési beállítás módosítására. A különböző ügyfélkövetelmények kielégítése érdekében az Application Gateway a következő konfigurálható lehetőségeket kínálja. Igény szerint mindkét lehetőséget használhatja.

Az ügyfelek számára elérhető TLS érvényesítési vezérlők portálnézetét bemutató diagram.

Tulajdonságok Értékek
validateCertChainAndExpiration Típus: Boolean (igaz vagy hamis). Az alapértelmezett beállítás igaz. Ez ellenőrzi vagy kihagyja a tanúsítványláncot és a lejárati ellenőrzést is.
validálja SNI Típus: Boolean (igaz vagy hamis). Az alapértelmezett beállítás igaz. Ellenőrzi, hogy a háttérkiszolgáló által megadott tanúsítvány közös neve megegyezik-e az Application Gateway által küldött kiszolgálónév-jelzés (SNI) értékkel.
sniName Típus: Karakterlánc. Ez a tulajdonság csak akkor szükséges, ha az validateSNI értéke igaz. Megadhat egy SNI-értéket, amely megegyezik a háttérrendszer tanúsítványának általános nevével. Alapértelmezés szerint az Application Gateway a bejövő kérés állomásfejlécét használja SNI-ként.

Megjegyzés:

  • Javasoljuk, hogy az összes érvényesítést engedélyezve tartsa az éles környezetekben. Egyes vagy az összes ellenőrzés letiltása csak tesztelési és fejlesztési célokra javasolt, például önaláírt tanúsítványok használata esetén.
  • Ezek a beállítások nem vonatkoznak a tesztelési próbaművelet funkcionalitására, amikor egyéni állapotfelügyeleti szondát adnak hozzá. Ennek eredményeképpen az eredmények különbségei láthatók az időszakos állapotmintákhoz való összehasonlításakor.
  • Jelenleg a TLS-proxy nem támogatott.
  • A PowerShell és a parancssori felület hamarosan támogatott lesz.

Kérés-időtúllépés

Ez a beállítás azt a másodpercet adja meg, amíg az Application Gateway választ vár a háttérkiszolgálótól. Az alapértelmezett érték 20 másodperc. Ezt a beállítást azonban az alkalmazás igényeihez igazíthatja. Az elfogadható értékek 1 másodperctől 86400 másodpercig (24 óra) érhetők el.

Háttéralkalmazás elérési útjának felülbírálása

Ezzel a beállítással konfigurálhat egy opcionális egyéni továbbítási útvonalat, amelyet a kérés háttérbe történő továbbításakor használhat. A bejövő elérési útnak a felülbírálási háttérútvonal mezőjében szereplő egyéni elérési útnak megfelelő bármely része át lesz másolva a továbbított elérési útra. Az alábbi táblázat a funkció működését mutatja be:

  • Ha a HTTP-beállítás egy egyszerű kérés-útválasztási szabályhoz van csatolva:

    Eredeti kérelem Háttéralkalmazás elérési útjának felülbírálása Háttérrendszerbe továbbított kérés
    /otthon/ felülír /felülírás/kezdőlap/
    /home/secondhome/ felülír /felülbírálás/home/secondhome/
  • Ha a HTTP-beállítás egy útvonalalapú kérelem-útválasztási szabályhoz van csatolva:

    Eredeti kérelem Elérési út szabálya Háttéralkalmazás elérési útjának felülbírálása Háttérrendszerbe továbbított kérés
    /pathrule/home/ /útvonal_szabály* felülír /felülírás/kezdőlap/
    /pathrule/home/secondhome/ /útvonal_szabály* felülír /felülbírálás/home/secondhome/
    /otthon/ /útvonal_szabály* felülír /felülírás/kezdőlap/
    /home/secondhome/ /útvonal_szabály* felülír /felülbírálás/home/secondhome/
    /pathrule/home/ /pathrule/home* felülír felülír
    /pathrule/home/secondhome/ /pathrule/home* felülír /felülbírálás/másodfokú/
    Útvonalszabály Útvonalszabály felülír felülír

Egyéni mintavétel használata

Ez a beállítás egy egyéni mintavételt egy HTTP-beállításhoz társít. Csak egy egyéni mintavétel társítható HTTP-beállítással. Ha nem társít kifejezetten egy egyedi próbát, a rendszer az alapértelmezett próbát használja a háttér állapotának ellenőrzésére. Javasoljuk, hogy hozzon létre egy egyéni ellenőrző eszközt, hogy nagyobb mértékben tudja szabályozni a háttérrendszerek állapotfigyelését.

Megjegyzés:

Az egyéni mintavétel csak akkor figyeli a háttérkészlet állapotát, ha a megfelelő HTTP-beállítás explicit módon társítva van egy figyelőhöz.

A hosztnév beállítása

Az Application Gateway lehetővé teszi, hogy a háttérrendszerrel létesített kapcsolat más gazdagépnevet használjon, mint az ügyfél által az Application Gatewayhez való csatlakozáshoz használt. Bár ez a konfiguráció bizonyos esetekben hasznos lehet, legyen óvatos, amikor úgy módosítja a gazdagépnevet, hogy az eltérjen az alkalmazás átjáró és az ügyfél, valamint a háttér cél között.

Éles környezetben ajánlott ugyanazt a gazdagépnevet használni az ügyfél és az alkalmazásátjáró kapcsolatára, valamint az alkalmazásátjáró és a háttérbeli célkapcsolat között. Ez a gyakorlat elkerüli az abszolút URL-címekkel, az átirányítási URL-címekkel és a gazdagéphez kötött cookie-kkal kapcsolatos esetleges problémákat.

Az ettől eltérő Application Gateway beállítása előtt tekintse át az architektúraközpontban részletesebben tárgyalt konfiguráció következményeit: A fordított proxy és a háttérbeli webalkalmazás közötti eredeti HTTP-gazdagépnév megőrzése

A HTTP-beállításnak két aspektusa van, amelyek befolyásolják az Host Application Gateway által a háttérrendszerhez való csatlakozáshoz használt HTTP-fejlécet:

  • "Állomásnév kiválasztása a backendcímből"
  • "Állomásnév felülírása"

Hosztnév kiválasztása a backend cím alapján

Ez a képesség dinamikusan beállítja a kérelem gazdagépfejlécét a háttérkészlet gazdagépnevére. IP-címet vagy FQDN-t használ.

Ez a funkció akkor segít, ha a háttérrendszer tartományneve eltér az alkalmazási átjáró DNS-nevétől, és a háttérrendszer egy adott gazdagépfejlécre támaszkodik, hogy a megfelelő végpontra oldódjon fel.

Példaként a több-bérlős szolgáltatások szolgálnak háttérként. Az app service egy több-bérlős szolgáltatás, amely egyetlen IP-címmel rendelkező megosztott területet használ. Tehát egy alkalmazás szolgáltatás csak az egyéni tartománybeállításokban konfigurált gazdagépnév alapján érhető el.

Alapértelmezés szerint az egyéni tartománynév example.azurewebsites.net. Ha az app service-hez egy olyan gazdagépnéven szeretne hozzáférni, amely nincs explicit módon regisztrálva az app service-ben, vagy az Application Gateway teljes tartománynevén keresztül, felülbírálhatja az eredeti kérelemben szereplő gazdagépnevet az App Service gazdagépnevére. Ehhez engedélyezze a gazdagépnév kiválasztása a háttércím alapján beállítást.

Olyan egyéni tartomány esetében, amelynek meglévő egyéni DNS-neve le van képezve az app service-re, az ajánlott konfiguráció nem engedélyezi a gazdagép nevét a háttércímből.

Megjegyzés:

Ez a beállítás nem szükséges az App Service Environment esetében, amely egy dedikált üzembe helyezés.

Hosztnév felülbírálása

Ez a képesség lecseréli az alkalmazásátjárón bejövő kérelem gazdagépfejlécét a megadott gazdagépnévre.

Ha például www.contoso.com a gazdagépnév-beállításban van megadva, az eredeti kérés *https://appgw.eastus.cloudapp.azure.com/path1 *-rahttps://www.contoso.com/path1 változik, amikor a kérést a háttérkiszolgálóra továbbítja.

Dedikált háttérkapcsolat

Azure Application Gateway alapértelmezés szerint újra felhasználja az üresjárati háttérkapcsolatokat, hogy optimalizálja a TCP-kapcsolatok erőforrás-kihasználtságát mind az Application Gateway, mind a háttérkiszolgáló számára. Az ügyféladat-elérési utakon található olyan biztonsági funkciók támogatásához, amelyek ügyfélenként egyedi háttérkapcsolatokat igényelnek, Azure Application Gateway V2 dedikált kapcsolatokat biztosít a háttérkiszolgálókhoz.

Képernyőkép az Application Gateway 7. rétegbeli proxyn keresztüli hálózati folyamatokról.

Ez a képesség közvetlen, egy-az-egyhez leképezést hoz létre az előtérbeli és a háttérkapcsolatok között, így állandó kapcsolatot biztosít az egyes ügyfelek számára.

Fontos

Tekintse át a következő szempontokat, mielőtt engedélyezi a dedikált háttérkapcsolatot az Application Gatewayen:

  • NTLM/Kerberos-támogatás: Az NTLM és a Kerberos átengedési hitelesítéséhez az előtér- és háttérkapcsolatok közötti egy-az-egyhez leképezés szükséges a munkamenet integritásának megőrzése érdekében. Kapcsolja be a dedikált háttérkapcsolatot a protokollok támogatásához.
  • Örökölt ügyfelek: Az olyan régi ügyfelek, mint az MSIE6 vagy a régebbi felhasználói ügynök aláírásokat használó alkalmazások nem képesek teljes mértékben támogatni a modern HTTP-funkciókat és a kapcsolatkezelési viselkedést. A megbízhatóság javítása és az olyan problémák megelőzése érdekében, mint a hiányos vagy sérült válaszok, Azure Application Gateway alapértelmezés szerint további kompatibilitási kezelést alkalmaz. Ha engedélyezve van a dedikált háttérkapcsolat funkció, ez a kompatibilitási kezelés különbségeket eredményezhet az NTLM-et használó örökölt ügyfelek kapcsolati viselkedésében, ami kapcsolati inkonzisztenciákat okozhat. Az optimális megbízhatóság és kiszámítható viselkedés érdekében ajánlott modern, szabványoknak megfelelő ügyfeleket használni, vagy ha lehetséges, frissíteni az örökölt ügyfeleket.
  • Kapacitástervezés: A dedikált háttérkapcsolat a háttérkapcsolatok számának növekedéséhez vezet, ezért több erőforrásra lehet szükség az Application Gateway és a háttérkiszolgálók egyidejű kapcsolatainak növeléséhez. Az Application Gatewayen növelje a példányok számát, vagy engedélyezze az automatikus skálázást a terhelésnek megfelelően.
  • SNAT-porthasználat: Ha a háttérrendszer távoli kiszolgáló, minden ügyfélkapcsolat dedikált SNAT-portot használ, ami növeli az SNAT-portok kimerülésének kockázatát. Útmutatásért tekintse meg az architektúra ajánlott eljárásait.
  • Protokolltámogatás: A dedikált háttérkapcsolat nem támogatott a HTTP/2-ben.

4xx-hibák elhárítása dedikált háttérkapcsolatokkal

Ha a dedikált háttérkapcsolatok engedélyezve van egy háttérbeállításhoz, és a háttéralkalmazás 4xx állapotkódokat ad vissza, a probléma diagnosztizálásához és megoldásához kövesse az alábbi útmutatást.

Ellenőrizze a Service Principal Name (SPN) konfigurációját - Az olyan hitelesítési mechanizmusok, mint az NTLM és a Kerberos, megfelelően regisztrált Service Principal Nevek megkövetelik. Győződjön meg arról, hogy az SPN-ek megfelelően vannak konfigurálva és egyediek a címtárban a sikeres hitelesítés biztosítása érdekében. További információkért tekintse meg a Kerberos dokumentációját.

Tekintse át az alállapotkódok háttérkiszolgálói naplóit– Az Application Gateway csak az elsődleges HTTP-állapotot jeleníti meg (például: 401 Jogosulatlan). A mögöttes ok azonosításához tekintse át a háttérkiszolgáló naplóit részletesebb alállapot-információkért. Útmutatásért tekintse meg a Windows Authentication configuration.

Következő lépések