Suporte ao CORS no serviço de identidade da Experience Cloud

Os navegadores usam o CORS (Cross Origin Resource Sharing, Compartilhamento de recursos de várias origens) para solicitar recursos de um domínio diferente do atual. O serviço de identidade da Experience Cloud oferece suporte aos padrões CORS que permitem solicitações de recursos do lado do cliente e entre pontos de origem. O serviço de ID reverte solicitações JSONP em navegadores antigos ou incompatíveis com CORS.

Problemas com políticas de mesma origem e solicitações do serviço de ID

As políticas de mesma origem são controles ou restrições de segurança aplicadas por um navegador. Quando aplicado nesse nível, o próprio navegador da web determina se uma solicitação de recursos feita de uma página para outra será permitida ou bloqueada. Para determinar se uma solicitação tem a mesma origem, o navegador compara:

  • Identificadores de recursos uniformes (URIs)
  • Nomes de host (por exemplo, http://www.my-webpage-example.com)
  • Números de porta (por exemplo, porta 80 e 440 para solicitações HTTP e HTTPS)

O navegador permite que uma solicitação seja bem-sucedida se ambas as páginas compartilharem essas características e bloquearem solicitações de recursos.

O CORS soluciona problemas com políticas de mesma origem

O CORS fornece uma maneira segura e eficaz de solicitar recursos em diferentes domínios. A especificação do CORS inclui um conjunto de cabeçalhos HTTP que os navegadores usam para enviar, receber e avaliar solicitações de recursos. A avaliação de uma solicitação de recursos é chamada de preflight check. Essa verificação permite que navegadores e servidores determinem quais solicitações são permitidas ou bloqueadas. A verificação de comprovação é transparente para o aplicativo, a API ou o script que solicita um recurso. Dois cabeçalhos importantes no processo de solicitação de recursos incluem:

  • Origin: um cabeçalho de solicitação que identifica a origem de uma solicitação.
  • Access-Control-Allow-Origin: um cabeçalho de resposta que indica se um recurso pode ser compartilhado com o solicitante.

Vamos analisar como esses cabeçalhos funcionam. Neste exemplo, considere uma empresa de serviços financeiros que implementou o serviço da Experience Cloud ID no seu site, www.finance-website.com. A tabela a seguir define como a solicitação do CORS e os cabeçalhos de resposta verificam o acesso a um recurso.

Ação Descrição

Solicitação

Enquanto a página da empresa de finanças é carregada, o navegador faz uma solicitação para dpm.demdex.net. Essa é uma chamada para o domínio dos servidores de coleção de dados (DCS) usados pelo serviço de ID. Essa solicitação entre domínios inclui o cabeçalho:

  • Origin: https://www.finance-website.com

Resposta

A resposta do domínio DCS inclui esses cabeçalhos que dão ao site da empresa financeira acesso aos recursos necessários:

  • Controle de acesso com permissão de origem: https://www.finance-website.com
  • Controle de acesso com permissão de credenciais: true

Consulte também useCORSOnly.

Outros benefícios de uso do CORS

A tabela abaixo descreve algumas das vantagens que o CORS oferece aos clientes que usam o serviço de ID.

Benefícios Descrição

Maior segurança

O CORS usa XMLHttpRequest para solicitar e transferir dados. Esse método é mais seguro do que uma solicitação JSONP. Ela garante que não há como executar JavaScript arbitrário, que pode estar contido na resposta do DCS. A carga de resposta XMLHttpRequest do CORS é analisada pelo JavaScript do serviço de ID e não é simplesmente executada em uma função de retorno de chamada.

Observação: para aceitar cookies, o objeto XMLHttpRequest precisa ter a propriedade withCredentials definida como true. Essa propriedade é compatível com Chrome, Firefox, Internet Explorer (v10+), Opera e Safari.

Melhorias de desempenho

O CORS ajuda a melhorar o desempenho porque:

  • O navegador gerencia solicitações de recursos. O processo de solicitação é transparente para o serviço de ID.
  • Diferente de solicitações JSONP assíncronas, o navegador não tira a prioridade e coloca solicitações CORS em fila.
  • O serviço de ID responde de forma permissiva. Ou seja, quando um URL é passado como Origem, o serviço de ID concede à página o acesso aos recursos necessários.

Nesta página