Storage Access API를 통해 쿠키가 아닌 스토리지에 액세스하기 위한 오리진 트라이얼에 참여합니다.

Helen Cho
Helen Cho
Ari Chivukula
Ari Chivukula

Chrome 115에서는 서드 파티 컨텍스트에서 파티션 나누기를 통해 스토리지, 서비스 워커, 커뮤니케이션 API에 변경사항을 도입했습니다. 서드 파티 컨텍스트에서 사용되는 영향을 받는 API는 동일 출처 정책에 의해 격리될 뿐만 아니라 최상위 컨텍스트 사이트에 의해 격리됩니다.

서드 파티 스토리지 파티셔닝 지원을 구현할 시간이 없었던 사이트는 지원 중단 체험판에 참여하여 일시적으로 파티션 나누기를 해제하고 (동일 출처 정책에 따른 격리는 계속 진행하되 최상위 사이트별 격리는 제거) 사이트에 삽입된 콘텐츠에서 스토리지, 서비스 워커, 커뮤니케이션 API의 이전 동작을 복원할 수 있습니다. 이 지원 중단 체험판은 2024년 9월 3일에 Chrome 127이 출시되면 만료됩니다. 이는 서드 파티 쿠키 액세스에 관한 지원 중단 체험판과는 별개이며 스토리지 액세스 목적으로만 사용됩니다.

서드 파티 비쿠키 스토리지 파티션 나누기로 인해 중단된 특정 사용 사례를 해결하기 위한 장기적인 솔루션으로서 Chrome은 서드 파티가 이미 쿠키 액세스를 요청할 수 있는 Storage Access API (Chrome 117부터 shipping)를 통해 스토리지/통신 액세스 (쿠키 및 비쿠키 모두)를 요청할 수 있는 기능을 제안합니다.

Chrome 120부터 이 제안서를 오리진 트라이얼을 통해 실험할 수 있습니다. 개발자는 이 오리진 트라이얼에 참여하여 제안된 솔루션이 사용 사례를 어떻게 해결하는지 평가하여 지원 중단 트라이얼이 종료되기 전에 준비되었는지 확인해야 합니다.

오리진 트라이얼 세부정보

Chrome 120부터 Chrome은 오리진 트라이얼StorageAccessAPIBeyondCookies를 지원합니다. 이를 통해 Storage Access API (이전 버전과 호환 가능)의 제안된 확장 프로그램을 사용 설정하여 서드 파티 컨텍스트에서 파티션이 나오지 않은 저장소 (쿠키 및 비쿠키)에 액세스할 수 있습니다.

기계

이 API는 다음과 같이 사용할 수 있습니다 (삽입된 iframe에서 실행되는 자바스크립트).

// Request a new storage handle via rSA (this should prompt the user)
const handle = await document.requestStorageAccess({all: true});
// Write some 1P context sessionStorage
handle.sessionStorage.setItem('userid', '1234');
// Write some 1P context localStorage
handle.localStorage.setItem('preference', 'A');
// Open or create an indexedDB that is shared with the 1P context
const messageDB = handle.indexedDB.open('messages');
// Use locks shared with the 1P context
await handle.locks.request('example', ...);

all에 액세스하는 대신 특정 API 액세스만 원한다면 필요한 API 핸들의 이름만 전달하면 됩니다. 예를 들어 {sessionStorage: true}를 전달하여 세션 저장소에만 액세스하거나 {indexedDB: true, locks:true}를 전달하여 IndexedDB 및 웹 잠금에 액세스할 수 있습니다.

이 추가 확장 프로그램을 호출하는 것 외에도 쿠키가 아닌 저장소에 액세스하는 것은 Storage Access API를 통한 쿠키 액세스에 대한 현재 요구사항과 일치합니다. 예를 들어 Chrome에서는 출처가 동일한 관련 웹사이트 세트 (RWS, 퍼스트 파티 세트의 새 이름)에 있으면 메시지가 표시되지 않습니다. 동일한 RWS에 속하지 않는 출처에는 Chrome Storage Access API의 메시지 표시 요구사항이 적용됩니다.

시간

오리진 트라이얼은 Chrome 120부터 Chrome 125까지 (또는 2024년 8월 6일 이후) 제공됩니다.

범위

Chrome 120에서는 DOM 저장소 (세션 및 로컬 저장소), 색인화된 DB, 웹 잠금만 사용할 수 있습니다.

캐시 스토리지, 오리진 비공개 파일 시스템, 할당량, Blob 스토리지, 브로드캐스트 채널이 Chrome 121에 추가되었습니다.

공유 작업자쿠키 포함에 대한 제어 기능이 Chrome 123에 추가되었습니다.

Chrome 120 현재 작업자가 생성되기 전에 requestStorageAccess가 호출된 경우 전용 작업자는 파티션을 나누지 않은 쿠키에 대한 액세스 권한을 상속받습니다 (Storage Access API 핸들을 사용할 필요는 없음).

참여하기

  1. 서드 파티 맥락에서 쿠키 및 비쿠키 저장소를 어떻게 사용하는지 평가합니다. 사용 사례 예는 이 제안서가 요구에 적합한지 파악하는 데 도움이 될 수 있습니다.
  2. Chrome 버전 120 이상을 실행하고 test-third-party-cookie-phaseout 플래그가 사용 설정되어 있는지 확인합니다.
  3. 오리진 트라이얼 토큰을 먼저 설정하지 않고 로컬에서 기능을 테스트하려면 브라우저에서 #enable-experimental-web-platform-features를 사용 설정하세요.
    1. 로컬에서 테스트를 완료한 후 StorageAccessAPIBeyondCookies 오리진 트라이얼에 register하고 도메인용 토큰을 받을 수 있습니다. 자세한 내용은 오리진 트라이얼 시작하기를 참고하세요. Chrome 오리진 트라이얼 문제 해결 가이드에는 토큰이 올바르게 구성되었는지 확인하기 위한 전체 체크리스트가 포함되어 있습니다.
    2. HTTP 헤더, HTML 메타 태그 또는 프로그래매틱 방식으로를 사용하여 Storage Access API 핸들을 사용해야 하는 iframe에 오리진 트라이얼 토큰을 삽입합니다. 토큰은 이 API를 사용하려는 모든 프레임에 삽입해야 하며 상위 프레임에 삽입해도 하위 프레임에서 API가 사용 설정되지 않습니다.
  4. document.requestStorageAccess(...)를 호출하여 교차 사이트 iframe에서 Storage Access API 핸들을 가져옵니다. 이 호출이 성공하는 데 필요한 요구사항은 Storage Access API 문서를 참조하세요.
  5. 사용 가능한 경우 Storage Access API 핸들을 사용하도록 iframe과 관련된 저장소를 이전합니다. 예를 들어 window.sessionStorage.setItem(...) 호출은 handle.sessionStorage.setItem(...)가 됩니다.
  6. 웹사이트를 열고 저장소 액세스 핸들이 의도한 대로 작동하는지 확인합니다.
  7. 오리진 트라이얼 참여를 중지하려면 3단계에서 추가한 토큰을 삭제합니다.
  8. Storage Access API 비쿠키 저장소 GitHub 저장소에 의견을 제출하거나 문제가 발생하면 알려주세요.

데모: Storage Access API를 사용하여 파티션을 나누지 않은 로컬 저장소에 액세스

다음 데모는 Storage Access API를 사용하여 서드 파티 iframe에서 파티셔닝되지 않은 브로드캐스트 채널에 액세스하는 방법을 보여줍니다.

https://saa-beyond-cookies.glitch.me/

데모를 사용하려면 test-third-party-cookie-phaseout 플래그가 사용 설정된 Chrome 121 이상이 필요합니다.

추가 리소스