Skip to main content
場合によっては、最新バージョンの Safari ブラウザーでは、サイレント認証によるトークンの更新が期待どおりに機能しないことがあります。最近の Safari ブラウザーには、Intelligent Tracking Prevention (ITP) という新機能が導入されています。ITP は、複数の Web サイトにまたがるユーザー アクティビティの追跡を防ぐために設計されています。ITP はデフォルトで有効になっています。使用中の Safari で ITP が有効かどうかは、Preferences > Privacy タブを開き、Prevent cross-site tracking オプションがチェックされているかどうかで確認できます。

ITP とブラウザーの動作

ITP を有効にすると、ブラウザーはサードパーティ Cookie を無効にした場合と同様の動作をするため、ユーザーに何も表示せずに新しいトークンを取得できなくなります。これは、 Connect (OIDC) が SPA でセッションを処理するために iframe を使用する方法と似ています。 SPA SDK (推奨) では、SDK をローテーションするを使用するよう設定しない限り、getTokenSilentlyサイレント認証を実行します。

回避策

近年、ブラウザーのユーザープライバシー制御が強化されたことでサードパーティ Cookie にアクセスできなくなり、ユーザーエクスペリエンスに悪影響が生じています。代替策として、リフレッシュトークンローテーション を使用できます。これにより、SPA でリフレッシュトークンを安全に利用しながら、ITP のようなブラウザーのプライバシー技術によって UX が中断されることなく、エンドユーザーはリソースにシームレスにアクセスできます。 また、Auth0 の カスタムドメイン 機能を使用して、ITP による問題を回避することもできます。特に、 がアプリケーションの Web サイトのドメインのサブドメイン上にある場合に有効です。たとえば、アプリケーションが example.com でホストされている場合、カスタムドメインは subdomain.example.com の形式にする必要があります。

ITP デバッグモード

Safari Technology Preview には「Intelligent Tracking Prevention Debug Mode」があり、ITP の問題のトラブルシューティングに使用できます。ITP のデバッグ方法については、WebKit のこちらのブログ記事を参照してください。 : この手順では、テスト目的でカスタムドメインをトラッキング機能を持つものとして永続的に分類する方法が説明されています。ただし、Safari Technology Preview の以降のバージョンでは、この設定の User Defaults を保存するドメインが com.apple.SafariTechnologyPreview から com.apple.WebKit.Networking に変更されています。手順に記載されているコマンドがうまく動作しない場合は、次を試してください。
  • サイトをトラッキング機能を持つものとして分類する: defaults write com.apple.WebKit.Networking ResourceLoadStatisticsManualPrevalentResource example.com
  • 設定を確認する: defaults read com.apple.WebKit.Networking ResourceLoadStatisticsManualPrevalentResource
  • 設定を削除する: defaults delete com.apple.WebKit.Networking ResourceLoadStatisticsManualPrevalentResource
設定を反映するには、変更を加えるたびに Safari Technology Preview を再起動する必要があります。