Azure App Service – SameSite-cookiehantering och .NET Framework 4.7.2-korrigering
Publiceringsdatum: 18 januari, 2020
Som en del i januari 2020-uppdateringen av Azure App Service installeras .NET Framework-korrigeringar som ändrar hur .NET Framework-appar hanterar SameSite-cookieegenskapen. Tjänsten distribuerar också ett App Service-kompatibilitetsbeteende som gäller för alla program som körs på App Service i de fall där en cookie har angett SameSite-egenskapen till ”None”.
.NET Core-versioner av App Service-plattformen innehåller redan uppdateringar för SameSite-cookiehantering och ändras inte i januari 2020-tjänstuppdateringen.
The Azure App Service-nyttolasten distribueras under januari 2020 och beräknas slutföras i slutet av januari 2020 i det offentliga Azure-molnet, alla App Service-miljöer och nationella moln. Se den senaste informationen om distributionen.
Eftersom uppdateringarna distribueras stegvis i tjänsten kommer programmen att börja köra den nya App Service-nyttolasten vid olika tidpunkter under distributionsperioden. Utvecklare kan ta reda på om program körs på den uppdaterade App Service-nyttolasten genom att kontrollera App Service-versionen på SCM-webbplatsen. SCM-webbplatsen är tillgänglig i portalen via alternativet Utvecklingsverktyg --> Avancerade verktyg. Utvecklare kan också gå direkt till SCM-webbplatsen för ett program med följande URL-format: https://namnet-på-din-webbplats.scm.azurewebsites.net.
När det gäller Windows App Service-webbplatser visas Azure App Service-versionen på startsidan för SCM-webbplatsen. Om versionen är 86.0.7.148 (eller senare) körs programmet på den nya korrigerade versionen av App Service.
När det gäller Linux App Service-webbplatser klickar du på alternativet Miljö på den översta menyn på SCM-webbplatsen. Därmed visas en sida med alla miljövariabler för webbplatsen. Sidan har följande URL-format: https://namnet-på-din-webbplats.scm.azurewebsites.net/Env. Miljövariabeln PLATFORM_VERSION anger aktuell App Service-version. Om versionen är 86.0.7.148 (eller senare) körs programmet på den nya korrigerade versionen av App Service.
Information om .NET Framework-korrigeringen för SameSite
De specifika detaljerna för SameSite-cookiehanteringen i .NET Framework 4.7.2-korrigeringen beskrivs i den här artikeln.
När .NET Framework-korrigeringen installeras ändrar .NET Framework standardvärdena för cookieSameSite-konfigurationsegenskapen för Session State och Forms Authentication till "Lax". .NET Framework skickar också automatiskt cookieegenskapen SameSite=None när värdet ”None” har angetts för HttpCookie.SameSite.
Ytterligare information om SameSite-cookiehantering med .NET Framework finns i denna artikel samt i vår dokumentation.
Läs mer om standardvärdet för formulärautentisering för cookieSameSite i den här artikeln.
Läs mer om standardvärdet för sessionstillstånd för cookieSameSite i den här artikeln.
Ytterligare information om SameSite-cookiehantering med .NET Core finns i den här artikeln.
Information om Azure App Service-kompatibilitetsbeteende
Utöver .NET Framework-korrigeringen har Azure App Service introducerat ett kompatibilitetsbeteende för de fall där ett HTTP/HTTPS-svar innehåller ett cookie-huvud med en SameSite-egenskap med värdet inställt på ”None”, och användaragenten som skickar begäran matchar en specifik delmängd av äldre webbläsare som inte stöder den nya 2019 SameSite-standarden och därmed inte känner igen SameSite-egenskapsvärdet ”None”. När en äldre webbläsare identifieras tar Azure App Service automatiskt bort cookieegenskapen SameSite=None om den upptäcks i svarshuvuden.
Nettoeffekten av App Service-kompatibilitetsbeteendet är att en specifik delmängd av äldre webbläsare inte får ett okänt SameSite-värde (vilket kan göra att äldre webbläsare återgår till beteendet SameSite=Strict) medan nya webbläsare, som Chrome version 80, får cookieegenskapen SameSite=None.
Den specifika identifieringslogiken som används i App Service för att bestämma när egenskapen SameSite=None ska tas bort från ett svar följer den pseudologik som finns dokumenterad i denna artikel.
Utvecklare bör granska användningen av SameSite-cookieegenskapen i sina program (om den används) och uppdatera programlogiken med lämplig användaragentidentifiering och specialhantering för respektive program. App Service-plattformens kompatibilitetsbeteende är endast avsett som ett stöd för utvecklare under tiden programmen uppdateras för att hantera det 2019 SameSite-beteende som har implementerats i nya webbläsarversioner.
Utvecklare bör också granska ytterligare webbläsarkrav när egenskapen SameSite=None tas med i cookies. Chrome version 80 använder bara SameSite=None om cookien också har markerats med attributet Secure, och om cookien skickas via en HTTPS-anslutning. Visa mer information.
Azure App Service-kompatibilitetsbeteendet implementeras i App Service-nätverksgränsinfrastrukturen. Beteendet är aktivt för alla webbplatser som körs i App Service, oavsett vilket språk eller ramverk som används av webbplatsen. Kompatibilitetsfunktionaliteten fungerar för webbplatser som körs på både Linux- och Windows-varianterna av App Service, för App Service-miljöer, och för alla nationella molndistributioner av Azure App Service.