Instrucciones para la prueba de conjuntos propios

La iteración más reciente de los conjuntos propios está lista para las pruebas de marcas de función de los desarrolladores de Chrome 108. Estamos trabajando activamente en conjuntos propios con el objetivo de avanzar hacia el envío, por lo que consideraremos los comentarios de esta fase de pruebas para desarrolladores hasta el lanzamiento de Chrome 111 a principios de marzo (7 de marzo de 2023).

En los comentarios del ecosistema, se destacaron casos de uso entre sitios que se verán afectados cuando las cookies de terceros ya no sean compatibles con Chrome. La propuesta de Conjuntos propios examina y aborda una clase de casos de uso entre sitios en los que los sitios interdependientes comparten una relación que se puede expresar al navegador, de modo que este pueda tomar las medidas adecuadas en nombre del usuario o presentarle esa información de manera efectiva.

En la propuesta actualizada, se usan dos APIs (la API de Storage Access y una API nueva llamada tentativamente requestStorageAccessForOrigin) para proporcionar a los sitios un método activo de solicitud de acceso entre sitios para sus cookies dentro de un conjunto propio. Las instrucciones a continuación deberían permitirte probar y validar los conjuntos que podrías crear para tus sitios y los puntos adecuados para llamar a las dos APIs diferentes.

Descripción general de los conjuntos propios

Los conjuntos propios (FPS) son un mecanismo de plataforma web que permite a los desarrolladores declarar relaciones entre sitios, de modo que los navegadores puedan usar esta información para habilitar un acceso limitado a cookies entre sitios con fines específicos para el usuario. Chrome usará estas relaciones declaradas para decidir cuándo permitir o denegar el acceso de un sitio a sus cookies cuando se encuentre en un contexto de terceros.

En un nivel superior, un conjunto propio es una colección de dominios, para la cual hay un solo "conjunto principal" y, posiblemente, varios "miembros del conjunto". Solo los autores de sitios pueden enviar sus dominios a un conjunto y deberán declarar la relación entre cada "conjunto miembro" con su "conjunto principal". Los miembros de los conjuntos pueden incluir diferentes tipos de dominios con subconjuntos basados en casos de uso.

Para facilitar el manejo del navegador de cada subconjunto de acuerdo con las implicaciones de privacidad de cada uno, proponemos aprovechar la API de Storage Access (SAA) y requestStorageAccessForOrigin para habilitar el acceso de cookies en un FPS.

Con el SAA, los sitios pueden solicitar de forma activa acceso a cookies entre sitios. Chrome otorgará automáticamente la solicitud si el sitio solicitante y el sitio web de nivel superior están en los mismos FPS. Consulta la documentación de la API de Storage Access (SAA) para obtener información sobre cómo otros navegadores procesan las llamadas a SAA.

Actualmente, SAA requiere que el documento obtenga la activación del usuario antes de llamar a los métodos de la API.

Esto puede hacer que la adopción de FPS sea un desafío para los sitios de nivel superior que usan imágenes entre sitios o etiquetas de secuencias de comandos que requieren cookies. Para abordar algunos de estos desafíos, proponemos una nueva API, requestStorageAccessForOrigin, de modo que los desarrolladores puedan adoptar este cambio con mayor facilidad. Esta API también está disponible para pruebas.

Configurar envío

La lista canónica de FPS será una lista visible públicamente en un formato de archivo JSON alojado en un nuevo repositorio de GitHub de FPS, que funcionará como fuente de información para todos los conjuntos. Chrome consumirá este archivo para aplicarlo a su comportamiento.

Para obtener más información sobre el proceso propuesto y los requisitos para enviar conjuntos, consulta los lineamientos de envío. También puedes enviar un conjunto para probar las diversas verificaciones técnicas que validarán las postulaciones. Ten en cuenta que todos los envíos se borrarán antes de que los FPS estén disponibles en las versiones estables de Chrome.

Como el proceso de envío de conjuntos aún está en desarrollo activo, para las pruebas locales, solo puedes crear conjuntos en la línea de comandos y pasarlos directamente al navegador. Para las pruebas locales, no es necesario enviar un conjunto al repositorio de GitHub para realizar pruebas con marcas de función.

Cómo realizar pruebas de forma local

Requisitos previos

Para probar FPS de forma local, usa Chrome 108 o una versión posterior iniciada desde la línea de comandos.

Para conocer las próximas funciones de Chrome antes de su lanzamiento, descarga las versiones Beta o Canary de Chrome.

Ejemplo

google-chrome \
--enable-features="FirstPartySets,StorageAccessAPI,StorageAccessAPIForOriginExtension,PageInfoCookiesSubpage,PrivacySandboxFirstPartySetsUI" \
--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}" \

Obtén más información para ejecutar Chromium con marcas.

Pasos

Para habilitar FPS de forma local, debes usar la opción --enable-features de Chrome con una lista de marcas separadas por comas que se explican en esta sección y declarar un conjunto de sitios relacionados como un objeto JSON para pasar a --use-first-party-set.

Habilitar FPS

FirstPartySets habilita FPS en Chrome.

FirstPartySets

Habilita la API de Storage Access

StorageAccessAPI

Habilita la API de Storage Access (SAA) en Chrome, lo que permite que los iframes incorporados usen requestStorageAccess() para solicitar acceso a cookies en un contexto entre sitios, incluso cuando el navegador bloquea las cookies de terceros.

Ten en cuenta que, cuando se llama a requestStorageAccess(), se requiere un gesto del usuario para resolverse. Las versiones futuras de Chrome pueden imponer diferentes conjuntos de requisitos, ya que la especificación de SAA sigue en evolución. Consulta aquí para obtener una lista de las mejoras planificadas para la implementación del SAA por parte de Chrome.

StorageAccessAPIForOriginExtension

Permite que los sitios de nivel superior usen requestStorageAccessForOrigin() para solicitar acceso al almacenamiento en nombre de orígenes específicos. Esto es útil para los sitios de nivel superior que usan imágenes entre sitios o etiquetas de secuencias de comandos que requieren cookies y aborda algunos de los desafíos de adoptar SAA.

Declara un conjunto de manera local

Un conjunto propio es una colección de dominios para la que hay un solo “conjunto principal” y posiblemente varios “miembros establecidos”. Los miembros de los conjuntos pueden incluir diferentes tipos de dominios con subconjuntos basados en casos de uso.

Crea un objeto JSON que contenga las URLs que sean miembros de un conjunto y pásalo a --use-first-party-set.

En el siguiente ejemplo, primary enumera el dominio principal y associatedSites enumera los dominios que cumplen con los requisitos del subconjunto asociado.

{
     "primary": "https://primary.com",
    "associatedSites": ["https://associate1.com", "https://associate2.com", "https://associate3.com"]
}

Ejemplo:

--use-first-party-set="{\"primary\": \"https://first-party-sets.glitch.me\", \"associatedSites\": [\"https://fps-member-1.glitch.me\"]}"

Para las pruebas locales, solo puedes crear conjuntos en la línea de comandos y pasarlos directamente al navegador. Para realizar pruebas locales, no habrá validación establecida, pero cuando se envíe FPS en versiones estables, todos los conjuntos deberán enviarse al repositorio de GitHub de FPS y estar sujetos a criterios de validación.

Habilitar la IU de FPS

PageInfoCookiesSubpage

Permite mostrar FPS en la sección PageInfo a la que se puede acceder desde la barra de URL.

PrivacySandboxFirstPartySetsUI

Habilita la opción "Permitir que los sitios relacionados vean tu actividad en el grupo" de la IU de FPS en la configuración de Chrome, en Privacidad y seguridad → Cookies y otros datos de sitios (chrome://settings/cookies).

Verifica que las cookies de terceros estén bloqueadas

  1. En la configuración de Chrome, ve a Privacidad y seguridad → Cookies y otros datos de sitios o chrome://settings/cookies.
  2. En Configuración general, asegúrate de que la opción "Bloquear cookies de terceros" esté habilitada.
  3. Comprueba que la opción secundaria "Permitir que los sitios relacionados vean tu actividad en el grupo" también esté habilitada.

Consideraciones de seguridad

Dado que la API de Storage Access permite que los sitios web recuperen el acceso a cookies de terceros en casos seleccionados, es posible que las aplicaciones web sean vulnerables a ataques entre sitios y filtraciones de información. Los sitios que dependen de cookies en contextos de varios sitios deben conocer los riesgos del CSRF y otros ataques.

Mejoras planificadas

Para mejorar esto, las próximas versiones de Chrome requerirán controles de seguridad adicionales, con el objetivo de garantizar la aceptación explícita de las incorporaciones. Las mejoras propuestas serían: solo otorgar acceso por trama, requerir CORS en solicitudes acreditadas y mantener el alcance de acceso solo al origen. Puedes obtener más información en el análisis de seguridad reciente.

Consulta la lista de mejoras planificadas para la implementación del SAA por parte de Chrome.

Ten en cuenta que Chrome solo envía cookies marcadas con SameSite=None en contextos incorporados entre sitios, por lo que es relevante la API de Storage Access. Sin embargo, hasta que todos los navegadores dejen de estar disponibles el acceso predeterminado a esas cookies, no se pueden hacer suposiciones sobre dónde se podrían usar las cookies. No es seguro asumir que el acceso solo se permitiría dentro de un FPS y los sitios deben seguir aplicando las prácticas recomendadas de seguridad estándar.

Interactúa y comparte comentarios

Las pruebas locales son una oportunidad para probar el mecanismo de la API de Storage Access para habilitar FPS y compartir comentarios o cualquier problema que tengas. Además, probar el proceso de envío de conjuntos en GitHub es una oportunidad para compartir tu experiencia con el proceso y los pasos de validación. Para interactuar y compartir comentarios sobre la propuesta actualizada, sigue estos pasos: