Show Menu
TOPICS×

Compatibilidad con CORS en el servicio de identidad de Experience Cloud

Los navegadores utilizan Cross Origin Resource Sharing (CORS) para solicitar recursos de un dominio que no es el dominio en uso. El servicio de identidad de Experience Cloud admite los estándares CORS que habilitan solicitudes de recursos de origen diverso del lado del cliente. El servicio de ID cambia a solicitudes JSONP en los navegadores más antiguos o que no admiten el mecanismo CORS.

Problemas con políticas del mismo origen y solicitudes del servicio de ID

Las políticas del mismo origen son controles de seguridad o restricciones que aplica un navegador web. Al aplicarse en este nivel, el navegador web en sí determina si se permitirá o se bloqueará una solicitud de recursos realizada de una página a otra. Para determinar si una solicitud es del tipo de mismo origen, el navegador compara lo siguiente:
  • Los identificadores de recursos uniformes (URI)
  • Los nombres de host (p. ej., http://www.ejemplo-mi-pagina-web.com)
  • Los números de puerto (p. ej., puerto 80 y 440 para solicitudes HTTP y HTTPS)
El navegador permite realizar correctamente la solicitud si ambas páginas comparten estas características, y bloquea las solicitudes de recursos cuando no las comparten.

CORS resuelve problemas con políticas del mismo origen

CORS supone una manera segura y eficaz de solicitar recursos entre diferentes dominios. La especificación CORS incluye un conjunto de encabezados HTTP que los navegadores utilizan para enviar, recibir y evaluar solicitudes de recursos. Evaluar una solicitud de recurso es lo que se conoce como
preflight check
. Esta comprobación permite a los navegadores y los servidores determinar qué solicitudes se van a permitir o se van a bloquear. La comprobación preliminar es transparente para la aplicación, la API o el script que solicita un recurso. Estos son dos encabezados importantes en el proceso de solicitud de recursos:
  • Origin
    : un encabezado de solicitud que identifica el origen de una solicitud.
  • Access-Control-Allow-Origin
    : un encabezado de respuesta que indica si se puede compartir un recurso con el solicitante.
Veamos el funcionamiento de estos encabezados. En este ejemplo, supongamos que tenemos una empresa de servicios financieros que ha implementado el servicio de Experience Cloud ID de en su sitio, www.finance-website.com. La tabla siguiente define la manera en la que los encabezados de solicitud y respuesta CORS comprueban el acceso a un recurso.
Acción
Descripción
Solicitud
Cuando se carga la página de la empresa de finanzas, el navegador realiza una solicitud a
dpm.demdex.net
. Esta es una llamada al dominio de los servidores de recopilación de datos (DCS) que utiliza el servicio de ID. Esta solicitud entre dominios diferentes incluye el encabezado:
  • Origin: https://www.finance-website.com
Respuesta
La respuesta del dominio DCS incluye los siguientes encabezados que proporcionan acceso a la compañía de finanzas a los recursos necesarios:
  • Access-Control-Allow-Origin: https://www.finance-website.com
  • Access-Control-Allow-Credentials: true
Consulte también useCORSOnly .

Otras ventajas al usar CORS

La tabla a continuación describe algunas de las ventajas de usar CORS para los clientes que usan el servicio de ID.
Ventaja
Descripción
Mayor seguridad
CORS utiliza XMLHttpRequest para solicitar y transferir datos. Este método es más seguro que una solicitud JSONP. Garantiza que no sea posible ejecutar código JavaScript arbitrario que pueda incluirse en la respuesta del DCS. El código JavaScript del servicio de ID analiza la carga útil de la respuesta CORS XMLHttpRequest, en lugar de simplemente ejecutarse en una función de rellamada.
Nota: Para aceptar cookies, el objeto
XMLHttpRequest
tiene que tener su propiedad
withCredentials
establecida en
true
. Esta propiedad es compatible con Chrome, Firefox, Internet Explorer (v10+), Opera y Safari.
Mejoras en el rendimiento
CORS ayuda a mejorar el rendimiento por los siguientes motivos:
  • El navegador gestiona las solicitudes de recursos. El proceso de solicitud es transparente para el servicio de ID.
  • Al contrario que con las solicitudes JSONP asíncronas, el navegador no deroga la prioridad de las solicitudes CORS ni las coloca en la cola.
  • El servicio de ID responde permisivamente. Esto significa que, cuando se ha pasado una URL como
    Origin
    , el servicio de ID concederá a la página acceso a los recursos solicitados.