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부터 출시)를 통해 저장소/통신 액세스 (쿠키 및 비쿠키 모두)를 요청할 수 있는 기능을 제안하고 있습니다.

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

Origin 무료 체험판 세부정보

Chrome 120부터 Chrome은 오리진 트라이얼StorageAccessAPIBeyondCookies를 지원하여 서드 파티 컨텍스트에서 파티션을 나누지 않은 저장소 (쿠키 및 비쿠키)에 액세스할 수 있도록 제안된 Storage Access API 확장 (하위 호환)을 사용 설정할 수 있습니다.

기계

이 API는 다음과 같이 사용할 수 있습니다 (삽입된 iframe에서 실행되는 JavaScript).

// 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, 웹 잠금만 사용할 수 있습니다.

Chrome 121에서는 캐시 저장소, 출처 비공개 파일 시스템, 할당량, Blob Storage, 브로드캐스트 채널이 추가되었습니다.

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 출처 체험판을 등록하고 도메인의 토큰을 가져올 수 있습니다. 자세한 안내는 출처 무료 체험판 시작하기를 참고하세요. 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 이상이 필요합니다.

추가 리소스