-
Notifications
You must be signed in to change notification settings - Fork 0
MS_IntelligentTrackingPrevention
- 戻る(Cookie)
Intelligent Tracking Prevention(ITP)とは、
-
Safari ブラウザに実装された機能で、
- Safari ブラウザがサイトを Tracker 判定し、
- 3rd Party Cookie のクロスサイトでの扱いを変更する機能。
-
下記の影響が出るなど、
- IdP <-> RP 間で GET 遷移すると Tracker 判定される可能性がある。
- Tracker 判定されると、ブラウザが Cookie のハンドリングを変更する。
認証界隈でも話題になっている。
補足(なぜ認証界隈の問題になるのか): ITP は本来、
広告のトラッキングを防ぐための機能である。
しかし クレームベース認証(SAML、OIDC)の
フェデレーションも、技術的にはトラッカーと同じ挙動をする。【広告トラッカー】 サイトA ──リダイレクト──▶ 広告事業者 ──▶ サイトB (Cookie で同一人物と判定) 【フェデレーション認証】 RP(サービス) ──リダイレクト──▶ IdP(認証基盤) ──▶ RP (Cookie でセッションを維持)ブラウザから見ると区別がつかないため、
IdP がトラッカーと誤判定され、
SSO(シングル サインオン)が壊れるという事故が起きた。
これが「認証界隈でも話題になっている」の中身である。
詳細は、おいおい記載していきます。
補足(原文が見出しのみのため、要点を補う)
Safari が機械学習ベースの分類器で、
「複数サイトをまたいで頻繁に登場するドメイン」を
クロスサイト トラッカーとして自動判定する。
事前のブラックリストではなく、利用者ごとの閲覧履歴から判定するのが特徴。
判定されたドメインに対して、段階的に制限が強化されてきた。
版 制限 ITP 1.0(2017) 24 時間で 3rd Party Cookie をパーティション化、30 日で削除 ITP 2.0 猶予なしに 3rd Party Cookie をブロック ITP 2.1 JavaScript で設定した Cookie の有効期限を 7 日に短縮 ITP 2.3 localStorage も 7 日で削除 現在 3rd Party Cookie を全面ブロック
document.cookieで設定した Cookie が 7 日で消えるという ITP 2.1 の変更は、
1st Party であっても影響を受けるため、
「たまにしか使わないサービスで毎回ログインを求められる」
という現象を広く引き起こした。
バウンス トラッキング(Redirect Tracking)とは、
3rd Party Cookie が使えないことへの回避策として、
トラッカーのドメインを一瞬経由させて 1st Party Cookie を書く手法。サイトA ──▶ tracker.example(一瞬)──▶ サイトB ↑ ここでは 1st Party 扱いになるので Cookie を書ける
Safari は、利用者の操作を伴わずに通過しただけのドメインを検出し、
その Cookie とサイト データを削除する。ここでもフェデレーション認証が巻き添えになる。
IdP は「リダイレクトで通過するだけ」に見えるため、
セッション Cookie を消される可能性がある。
Apple が提案した仕組みで、
「このサイトにログイン中である」ことをブラウザに明示的に伝える API。
ブラウザがそれを認識していれば、
そのドメインの Cookie をトラッカーとして扱わずに済む。
ただし標準化には至っていない。
フェデレーション認証専用の API をブラウザに用意するという提案。
リダイレクトと Cookie に頼らず、
ブラウザが仲介して IdP と RP を繋ぐ。補足(最新化): WebID はその後、
FedCM (Federated Credential Management API) として結実した。
Chrome で先行実装され、Safari / Firefox でも実装が進んでいる。【従来】 RP ──リダイレクト──▶ IdP ──▶ RP (Cookie 依存) 【FedCM】RP ──ブラウザ API──▶ ブラウザが IdP に問い合わせ ↑ ブラウザが仲介するので Cookie 不要ブラウザが利用者に明示的な同意 UI を出す点も特徴で、
「気付かないうちに追跡される」問題と
「SSO が壊れる」問題の両方に応えるものになっている。
補足(3rd Party Cookie 廃止の現況): ITP は Safari の機能だが、
同じ方向の変更は各ブラウザで進んだ。
ブラウザ 状況 Safari ITP により既に全面ブロック Firefox Total Cookie Protection により既定でブロック Chrome 段階的な廃止を進めたが、2024 年に方針を転換(利用者が選択する方式へ) Edge Chrome に準じる Chrome が方針転換したことで「3rd Party Cookie は即座に消える」
という前提は崩れたが、Safari では既に使えない以上、
設計としては依存しないのが正しい。実務上の対処としては、
- IdP と RP を同一サイト(same-site)に配置する
(サブドメインを揃える)、SameSite=None; Secureを正しく付ける
(ITP には効かないが、他ブラウザ対策として必須)、- フロントチャネルのリダイレクトに依存しない設計にする、
- 将来的には FedCM へ移行する、
といったものがある。
- Safari に搭載された Apple の Intelligent Tracking Prevention はどのように動作するのか
https://www.infoq.com/jp/news/2018/07/safari-tracking-prevention/
- Intelligent Tracking Prevention
https://webkit.org/blog/7675/intelligent-tracking-prevention/
- Federated Credential Management API
https://developer.mozilla.org/ja/docs/Web/API/FedCM_API
Tags: 移行, プログラミング, 通信技術, .NET開発, .NET Core, ASP.NET, ASP.NET Web API
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。