Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zjistěte, jak diagnostikovat a vyřešit problémy, se kterými se můžete setkat, když se služba Azure App Service používá jako back-endový cíl se službou Azure Application 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í.
- an example of this: an OIDC authentication flow is broken because of a redirect with wrong hostname; this includes the use of App Service Authentication and Authorization
-
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. As a result, session affinity is broken.
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. Often the hostname is overridden to the default App Service "azurewebsites.net" domain.
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:
- V nastavení HTTP je povolená možnost Vybrat název hostitele z back-endové adresy.
- Override with specific domain name is set to a value different from what the browser request has
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). The backend App Service is missing the required context to generate redirect url's or cookies that align with the domain as seen by the browser.
Řešení
Produkční doporučení je nakonfigurovat Application Gateway a App Service tak, aby nezasahovaly do názvu 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ří možnost existence doménově vázaných cookies a absolutních URL mimo záhlaví lokace, které mohou zůstat nefunkční.
Alternativní řešení: Přepsání hlavičky Umístění
Výstraha
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 'Location' v odpovědi obsahuje azurewebsites.net. It must also perform an action to rewrite the location header to have the application gateway's host name. Více informací naleznete v pokynech k tomu, jak přepsat hlavičku Location.
Poznámka:
Podpora přepsání hlaviček HTTP je dostupná pouze pro Standard_v2 a WAF_v2 SKU služby Application Gateway. Doporučujeme přejít na verzi 2 pro přepis hlaviček a další pokročilé funkce, které jsou dostupné ve verzi v2.
Další kroky
Pokud předchozí kroky problém nevyřeší, otevřete lístek podpory.