Pular para o conteúdo principal
JÁ DISPONÍVEL

Serviço de Aplicativo do Azure: tratamento de cookies SameSite e patch do .NET Framework 4.7.2

Data da publicação: 18 janeiro, 2020

Como parte da atualização de janeiro de 2020 do Serviço de Aplicativo do Azure, o .NET Framework fornece patches que atualizam a forma como os aplicativos .NET Framework tratam a propriedade de cookie SameSite que está sendo instalada. O serviço também implanta um comportamento de compatibilidade do Serviço de Aplicativo que se aplica a todos os aplicativos em execução no Serviço de Aplicativo para cenários em que um cookie definiu a propriedade SameSite como "None".

As versões do .NET Core na plataforma do Serviço de Aplicativo já contêm atualizações para tratamento de cookies SameSite e não são alteradas como parte da atualização do serviço de janeiro de 2020.

O conteúdo do Serviço de Aplicativo do Azure será implantado em janeiro de 2020, com uma data de conclusão estimada para o final de janeiro de 2020 na nuvem pública do Azure, em todos os ambientes do Serviço de Aplicativo e nas nuvens nacionais.  Veja as informações mais recentes sobre a implantação.

Como as atualizações são implantadas de maneira incremental em todo o serviço, os aplicativos começarão a ser executados no conteúdo mais recente do Serviço de Aplicativo em momentos diferentes durante o período de implantação.  Os desenvolvedores podem determinar se os aplicativos estão sendo executados no conteúdo atualizado do Serviço de Aplicativo verificando a versão do Serviço de Aplicativo no site do SCM. O site do SCM está disponível no portal por meio da opção Ferramentas de Desenvolvimento --> Ferramentas Avançadas.  Como alternativa, os desenvolvedores podem navegar diretamente até o site do SCM para um aplicativo usando o seguinte formato de URL: https://nome-do-site-aqui.scm.azurewebsites.net.

Para os sites do Serviço de Aplicativo do Windows, a home page do site do SCM mostra a versão do Serviço de Aplicativo do Azure.  Se a versão for 86.0.7.148 (ou posterior), o aplicativo associado será executado na nova versão corrigida do Serviço de Aplicativo.

Para os sites do Serviço de Aplicativo do Linux, se você clicar na opção Ambiente no menu superior do site do SCM, uma página com todas as variáveis de ambiente dos sites será retornada. A página resultante terá uma URL formatada da seguinte maneira: https://nome-do-site-aqui.scm.azurewebsites.net/Env.  A variável de ambiente PLATFORM_VERSION mostra a versão atual do Serviço de Aplicativo.  Se a versão for 86.0.7.148 (ou posterior), o aplicativo associado será executado na nova versão corrigida do Serviço de Aplicativo.

Detalhes sobre o patch do .NET Framework para SameSite

Os detalhes específicos sobre as diferenças no tratamento de cookies SameSite incluídas no patch do .NET Framework 4.7.2 são descritos neste artigo

Com o patch do .NET Framework instalado, o .NET Framework altera os padrões da propriedade de configuração de cookieSameSite de Estado de Sessão e Autenticação de Formulários para "Incerto".   O .NET Framework também envia automaticamente a propriedade de cookie SameSite=None na transmissão quando HttpCookie.SameSite é definido com um valor igual a "None".

Mais informações sobre o tratamento de cookies SameSite com o .NET Framework estão disponíveis neste artigo, bem como em nossa documentação.

Leia mais sobre o padrão de cookieSameSite para a autenticação de formulários neste artigo

Leia mais sobre o padrão de cookieSameSite para o estado de sessão neste artigo.

Mais informações sobre o tratamento de cookies SameSite com o .NET Core estão disponíveis neste artigo

Detalhes sobre o comportamento de compatibilidade do Serviço de Aplicativo do Azure

Além do patch do .NET Framework, o Serviço de Aplicativo do Azure introduziu um comportamento de compatibilidade para o cenário em que uma resposta HTTP/HTTPS inclui um cabeçalho de cookie com uma propriedade SameSite definida com um valor igual a "None", e o agente do usuário solicitante corresponde a um subconjunto específico de navegadores mais antigos que não dão suporte ao padrão de SameSite mais recente de 2019 e, portanto, não reconhece a propriedade "None" de SameSite.  Quando um navegador mais antigo for detectado, o Serviço de Aplicativo do Azure removerá automaticamente a propriedade de cookie SameSite=None caso ela seja detectada nos cabeçalhos de resposta.

O resultado final do comportamento de compatibilidade do Serviço de Aplicativo é que um subconjunto específico de navegadores mais antigos não receberá um valor SameSite não reconhecido (o que pode fazer com que os navegadores mais antigos sejam revertidos para o comportamento SameSite=Strict), enquanto os navegadores mais recentes, como o Chrome v80, receberão a propriedade de cookie SameSite=None.

A lógica de detecção específica usada pelo Serviço de Aplicativo para decidir quando remover a propriedade SameSite=None de uma resposta segue a pseudológica documentada neste artigo.

Os desenvolvedores devem examinar o uso e a dependência dos aplicativos (se houver) na propriedade de cookie SameSite e atualizar a lógica do aplicativo com a detecção de agente do usuário e o tratamento especial, conforme apropriado, para o cenário de cada aplicativo. O comportamento de compatibilidade da plataforma do Serviço de Aplicativo pretende apenas ser como uma mitigação parcial para auxiliar os desenvolvedores enquanto os aplicativos são atualizados para processar o comportamento de SameSite de 2019 implementado nas versões de navegadores mais recentes.

Os desenvolvedores também deverão examinar os requisitos adicionais do navegador quando os cookies incluírem a propriedade SameSite=None. Por exemplo, o Chrome v80 só respeitará SameSite=None se o cookie também estiver marcado com o atributo Secure e o cookie estiver fluindo por uma conexão HTTPS. Veja mais detalhes.  

O comportamento de compatibilidade do Serviço de Aplicativo do Azure é implementado na infraestrutura de borda da rede do Serviço de Aplicativo. O comportamento é ativo para todos os sites em execução no Serviço de Aplicativo, seja qual for a linguagem ou a estrutura usada pelo site. A funcionalidade de compatibilidade funciona para os sites em execução nas variações do Linux e do Windows do Serviço de Aplicativo, para Ambientes do Serviço de Aplicativo e para todas as implantações de nuvem nacional do Serviço de Aplicativo do Azure.

 

  • Serviço de Aplicativo
  • Services

Produtos relacionados