Show Menu
TOPICS×

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 aplicadas nesse nível, o navegador determina se uma solicitação de recursos efetuada de uma página para outra será permitida ou bloqueada. Para determinar se uma solicitação é de 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 de HTTP e HTTPS)
O navegador permite a solicitação se ambas as páginas compartilham essas características, do contrário, bloqueia solicitações de recursos.

O CORS soluciona problemas com políticas de mesma origem

O CORS fornece um modo seguro e eficaz de solicitar recursos de vários domínios. A especificação do CORS inclui um conjunto de cabeçalhos HTTP que os navegadores podem usar 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 os navegadores e servidores determinem quais solicitações são permitidas ou bloqueadas. A verificaçã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 os cabeçalhos de solicitação e resposta do CORS 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 coleta 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 do DCS inclui os cabeçalhos que ao site da empresa financeira o 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 do CORS para os clientes que usam o serviço de ID.
Benefícios
Descrição
Aumento da segurança
O CORS usa a XMLHttpRequest para solicitar e transferir dados. Esse método é mais seguro do que uma solicitação JSONP. Ele garante que não existe uma maneira de executar um 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 é 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 no serviço de ID.
  • Diferente das solicitações JSONP assíncronas, o navegador não desprioriza e consulta solicitações de CORS.
  • 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.