Řešení potíží se službou App Service ve službě Application Gateway
Zjistěte, jak diagnostikovat a vyřešit problémy, se kterými se můžete setkat, když se služba Aplikace Azure používá jako cíl back-endu s bránou Aplikace Azure Gateway.
Přehled
V tomto článku se dozvíte, jak řešit následující problémy, jak je popsáno podrobněji v Centru architektury: Zachování původního názvu hostitele HTTP mezi reverzním proxy serverem a jeho back-endovou webovou aplikací
- Nesprávné absolutní adresy URL
- Nesprávné adresy URL pro přesměrování
- Adresa URL služby App Service se zobrazí v prohlížeči, když dojde k přesměrování.
- Příklad: Tok ověřování OIDC je přerušen kvůli přesměrování s nesprávným názvem hostitele; to zahrnuje použití ověřování a autorizace služby App Service.
- Poškozené soubory cookie
- soubory cookie se nerozšírují mezi prohlížečem a službou App Service.
- Příklad: Doména souboru cookie ARRAffinity služby App Service je nastavená na název hostitele služby App Service a je svázaná s "example.azurewebsites.net" místo původního hostitele. V důsledku toho je spřažení relace přerušeno.
Hlavní příčinou výše uvedených příznaků je nastavení, které přepíše název hostitele používaný službou Application Gateway směrem ke službě App Service na jiný název hostitele, jak je vidět v prohlížeči. Název hostitele se často přepíše na výchozí doménu "azurewebsites.net" služby App Service.
Vzorová konfigurace
V případě, že konfigurace odpovídá jedné z následujících dvou situací, podléhá nastavení pokynům v tomto článku:
- Možnost Vybrat název hostitele z back-endové adresy je povolená v Nastavení HTTP
- Přepsání s konkrétním názvem domény je nastaveno na hodnotu odlišnou od toho, co má požadavek prohlížeče.
Příčina
App Service je víceklientská služba, takže k směrování požadavku do správného koncového bodu používá hlavičku hostitele v požadavku. Výchozí název domény služby App Services, *.azurewebsites.net (například contoso.azurewebsites.net) se liší od názvu domény aplikační brány (například contoso.com). Back-endové službě App Service chybí požadovaný kontext pro generování adres URL přesměrování nebo souborů cookie, které odpovídají doméně, jak je vidět v prohlížeči.
Řešení
Produkčním doporučeným řešením je nakonfigurovat službu Application Gateway a App Service tak, aby nepřepsaly název hostitele. Postupujte podle pokynů pro vlastní doménu (doporučeno) v konfiguraci služby App Service se službou Application Gateway.
Zvažte použití jiného alternativního řešení (například přepsání hlavičky umístění, jak je popsáno níže) po posouzení dopadů, jak je popsáno v článku: Zachování původního názvu hostitele HTTP mezi reverzním proxy serverem a jeho back-endovou webovou aplikací. Mezi tyto důsledky patří potenciál pro soubory cookie vázané na doménu a absolutní adresu URL mimo hlavičku umístění, která zůstanou přerušená.
Alternativní řešení: Přepsání hlavičky Umístění
Upozorňující
Tato konfigurace má určitá omezení. Doporučujeme zkontrolovat důsledky použití různých názvů hostitelů mezi klientem a službou Application Gateway a mezi aplikací a službou App Service v back-endu. Další informace najdete v článku Centrum architektury: Zachování původního názvu hostitele HTTP mezi reverzním proxy serverem a jeho back-endovou webovou aplikací
Nastavte název hostitele v hlavičce umístění na název domény služby Application Gateway. Uděláte to tak, že vytvoříte pravidlo přepsání s podmínkou, která vyhodnotí, jestli hlavička umístění v odpovědi obsahuje azurewebsites.net. Musí také provést akci, která přepíše hlavičku umístění tak, aby měla název hostitele služby Application Gateway. Další informace najdete v pokynech k přepsání hlavičky umístění.
Poznámka:
Podpora přepsání hlaviček HTTP je dostupná pouze pro Standard_v2 a WAF_v2 skladovou položku služby Application Gateway. Doporučujeme migrovat na verzi 2 pro přepsání hlaviček a další pokročilé funkce, které jsou k dispozici se skladovou jednotkou v2.
Další kroky
Pokud předchozí kroky problém nevyřeší, otevřete lístek podpory.