Partilhar via


Processar as alterações de cookies do SameSite no browser do Chrome

O que é SameSite?

SameSite é uma propriedade que pode ser definida em cookies HTTP para evitar ataques Cross Site Request Forgery (CSRF) em aplicações web:

  • Quando SameSite é definido como Lax, o cookie é enviado em solicitações dentro do mesmo site e em solicitações GET de outros sites. Ele não é enviado em solicitações GET que são entre domínios.
  • Um valor de Strict garante que o cookie seja enviado em solicitações apenas dentro do mesmo site.

Por padrão, o valor NÃO é definido em navegadores e é por isso que não há restrições sobre cookies SameSite sendo enviados em solicitações. Um pedido teria de optar pela proteção CSRF, definindo Lax ou Strict de acordo com os seus requisitos.

Alterações no SameSite e impacto na autenticação

Atualizações recentes para os padrões no SameSite propõem proteger os aplicativos tornando o comportamento padrão de SameSite quando nenhum valor é definido como Lax. Esta atenuação significa que os cookies serão restritos a pedidos HTTP, exceto GET feitos a partir de outros sites. Além disso, um valor de Nenhum é introduzido para remover as restrições de cookies que estão sendo enviados. Essas atualizações serão lançadas em breve em uma próxima versão do navegador Chrome.

Quando os aplicativos Web são autenticados com a plataforma de identidade da Microsoft usando o modo de resposta "form_post", o servidor de logon responde ao aplicativo usando um HTTP POST para enviar os tokens ou o código de autenticação. Uma vez que este pedido é um pedido entre domínios (de login.microsoftonline.com para o seu domínio, por exemplo https://contoso.com/auth), os cookies que foram definidos pela sua aplicação enquadram-se agora nas novas regras do Chrome. Os cookies que precisam ser usados em cenários entre sites são cookies que contêm os valores state e nonce , que também são enviados na solicitação de login. Existem outros cookies descartados pelo Microsoft Entra ID para manter a sessão.

Se você não atualizar seus aplicativos Web, esse novo comportamento resultará em falhas de autenticação.

Mitigação e amostras

Para superar as falhas de autenticação, os aplicativos Web autenticados com a plataforma de identidade da Microsoft podem definir a SameSite propriedade para None cookies que são usados em cenários entre domínios quando executados no navegador Chrome. Outros navegadores (veja aqui uma lista completa) seguem o comportamento anterior e SameSite não incluirão os cookies se SameSite=None estiver definido. É por isso que, para suportar a autenticação em vários navegadores, os aplicativos da Web terão que definir o SameSite valor como None apenas no Chrome e deixar o valor vazio em outros navegadores.

Essa abordagem é demonstrada no código de exemplo a seguir.

Próximos passos

Saiba mais sobre o SameSite e o cenário do aplicativo Web: