Delen via


Problemen met App Service in Application Gateway oplossen

Meer informatie over het vaststellen en oplossen van problemen die kunnen optreden wanneer Azure App Service wordt gebruikt als een back-enddoel met Azure Application Gateway.

Overzicht

In dit artikel leert u hoe u de volgende problemen kunt oplossen, zoals beschreven in Architecture Center: De oorspronkelijke HTTP-hostnaam behouden tussen een omgekeerde proxy en de back-endwebtoepassing

  • Incorrect absolute URLs
  • Onjuiste omleidings-URL's
    • de URL van de app-service wordt weergegeven in de browser wanneer er een omleiding is
    • een voorbeeld hiervan: een OIDC-verificatiestroom is verbroken vanwege een omleiding met een verkeerde hostnaam; dit omvat het gebruik van App Service-verificatie en -autorisatie
  • Kapotte cookies
    • cookies worden niet doorgegeven tussen de browser en de App Service
    • een voorbeeld hiervan: het cookiedomein ARRAffinity van de app-service is ingesteld op de hostnaam van de app-service en is gekoppeld aan 'example.azurewebsites.net', in plaats van de oorspronkelijke host. As a result, session affinity is broken.

The root-cause for the above symptoms is a setup that overrides the hostname as used by Application Gateway towards App Service into a different hostname as is seen by the browser. Vaak wordt de hostnaam overschreven naar het standaarddomein 'azurewebsites.net' van App Service.

Hoofdoorzaak: Application Gateway overschrijft hostnaam naar azurewebsites.net

Voorbeeldconfiguratie

Als uw configuratie overeenkomt met een van de onderstaande twee situaties, is uw installatie onderworpen aan de instructies in dit artikel:

  • Hostnaam kiezen uit back-endadres is ingeschakeld in HTTP-instellingen
  • Overschrijven met een specifieke domeinnaam is ingesteld op een andere waarde dan wat de browseraanvraag heeft

Oorzaak

App Service is een multitenant-service, dus deze maakt gebruik van de hostheader in de aanvraag om de aanvraag naar het juiste eindpunt te routeren. De standaarddomeinnaam van App Services, *.azurewebsites.net (bijvoorbeeld contoso.azurewebsites.net), verschilt van de domeinnaam van de toepassingsgateway (bijvoorbeeld contoso.com). De back-end-App Service mist de vereiste context voor het genereren van omleidings-URL's of cookies die zijn afgestemd op het domein, zoals te zien is in de browser.

Solution

De door de productie aanbevolen oplossing is om Application Gateway en App Service te configureren om de hostnaam niet te overschrijven. Volg de instructies voor 'Aangepast domein (aanbevolen)' in App Service configureren met Application Gateway

Overweeg alleen een andere tijdelijke oplossing toe te passen (zoals een herschrijf van de locatieheader zoals hieronder wordt beschreven) nadat u de gevolgen hebt beoordeeld, zoals beschreven in het artikel: Behoud de oorspronkelijke HTTP-hostnaam tussen een omgekeerde proxy en de back-endwebtoepassing. Deze gevolgen omvatten onder andere de mogelijkheid dat domeingebonden cookies en absolute URL's buiten de locatie-header kapot blijven.

Tijdelijke oplossing: de locatieheader opnieuw schrijven

Waarschuwing

Deze configuratie heeft beperkingen. We raden u aan om de gevolgen te bekijken van het gebruik van verschillende hostnamen tussen de client en Application Gateway en tussen Application en App Service in de back-end. Raadpleeg het artikel in Architecture Center voor meer informatie: behoud de oorspronkelijke HTTP-hostnaam tussen een omgekeerde proxy en de back-endwebtoepassing

Stel de hostnaam in de locatieheader in op de domeinnaam van de toepassingsgateway. Hiervoor maakt u een herschrijfregel met een voorwaarde die evalueert of de locatieheader in het antwoord azurewebsites.net bevat. Er moet ook een actie worden uitgevoerd om de locatieheader te herschrijven om de hostnaam van de toepassingsgateway te hebben. Zie de instructies voor het herschrijven van de locatieheader voor meer informatie.

Opmerking

De ondersteuning voor het herschrijven van HTTP-headers is alleen beschikbaar voor de Standard_v2 en WAF_v2 SKU van Application Gateway. U wordt aangeraden te migreren naar v2 voor het herschrijven van headers en andere geavanceerde mogelijkheden die beschikbaar zijn met v2 SKU.

Volgende stappen

Als het probleem niet is opgelost met de voorgaande stappen, opent u een ondersteuningsticket.