Skip to content

MS_IntelligentTrackingPrevention

nishi_74322014 edited this page Aug 19, 2026 · 1 revision

Intelligent Tracking Prevention (ITP)

概要

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(シングル サインオン)が壊れるという事故が起きた。
これが「認証界隈でも話題になっている」の中身である。

詳細

詳細は、おいおい記載していきます。

補足(原文が見出しのみのため、要点を補う)

Tracker 判定

機能の概要

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 であっても影響を受けるため、
「たまにしか使わないサービスで毎回ログインを求められる」
という現象を広く引き起こした。

Bounce Tracking Protection

機能の概要

バウンス トラッキング(Redirect Tracking)とは、
3rd Party Cookie が使えないことへの回避策として、
トラッカーのドメインを一瞬経由させて 1st Party Cookie を書く手法。

サイトA ──▶ tracker.example(一瞬)──▶ サイトB
             ↑ ここでは 1st Party 扱いになるので Cookie を書ける

変更内容

Safari は、利用者の操作を伴わずに通過しただけのドメインを検出し、
その Cookie とサイト データを削除する。

ここでもフェデレーション認証が巻き添えになる
IdP は「リダイレクトで通過するだけ」に見えるため、
セッション Cookie を消される可能性がある。

対策案

IsLoggedIn

Apple が提案した仕組みで、
「このサイトにログイン中である」ことをブラウザに明示的に伝える API。
ブラウザがそれを認識していれば、
そのドメインの Cookie をトラッカーとして扱わずに済む。
ただし標準化には至っていない

WebID

フェデレーション認証専用の 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 へ移行する、

といったものがある。

参考

WebKit Blog

参考(FedCM)


Tags: 移行, プログラミング, 通信技術, .NET開発, .NET Core, ASP.NET, ASP.NET Web API

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally