次の方法で共有


サード パーティの Cookie を使用する場合に ITP と連携するように Office アドインを開発する

Office アドインにサードパーティの Cookie が必要な場合、アドインを読み込んだ ランタイム がインテリジェント追跡防止 (ITP) を使用している場合、これらの Cookie はブロックされます。 サード パーティの Cookie を使用してユーザーを認証したり、設定の保存などのその他のシナリオに使用したりする場合があります。

Office アドインと Web サイトがサードパーティの Cookie に依存している必要がある場合は、次の手順を使用して ITP を操作します。

  1. 認証ドメイン (Cookie を必要とするサード パーティ) が承認トークンを Web サイトに転送するように、 OAuth 2.0 承認を設定します。 トークンを使用して、サーバー セットの Secure Cookie と HttpOnly Cookie を使用してファースト パーティ セッションを確立します。
  2. ストレージ アクセス API を使用して、サード パーティがファースト パーティの Cookie へのアクセスを取得するアクセス許可を要求できるようにします。 現在のバージョンの Office on Mac とOffice on the webはどちらもこの API をサポートしています。

    注:

    認証以外の目的で Cookie を使用している場合は、シナリオに localStorage を使用することを検討してください。

    ただし、Chrome や Edge などの Chromium ベースのブラウザーのバージョン 115 以降では、ストレージ パーティション分割を有効にして、特定のサイド チャネルクロスサイト追跡を防止することに注意してください (「Microsoft Edge ブラウザー ポリシー」も参照してください)。 つまり、ローカル ストレージなどのストレージ API によって格納されたデータは、同じ配信元と同じトップレベル サイトを持つコンテキストでのみ使用できます。

次のコード サンプルは、Storage Access API の使用方法を示しています。

function displayLoginButton() {
  const button = createLoginButton();
  button.addEventListener("click", function(ev) {
    document.requestStorageAccess().then(function() {
      authenticateWithCookies(); 
    }).catch(function() {
      // User must have previously interacted with this domain loaded in a top frame.
      // Also you should have previously written a cookie when domain was loaded in the top frame.
      console.error("User cancelled or requirements were not met.");
    });
  });
}

if (document.hasStorageAccess) { 
  document.hasStorageAccess().then(function(hasStorageAccess) { 
    if (!hasStorageAccess) { 
      displayLoginButton(); 
    } else { 
      authenticateWithCookies(); 
    } 
  }); 
} else { 
    authenticateWithCookies(); 
} 

ITP およびサード パーティの Cookie について

サード パーティの Cookie は、ドメインが最上位フレームとは異なる iframe に読み込まれる Cookie です。 ITP は複雑な認証シナリオに影響を与える可能性があります。このシナリオでは、ポップアップ ダイアログを使用して資格情報を入力し、アドイン iframe で認証フローを完了するために Cookie アクセスが必要になります。 ITP は、以前にポップアップ ダイアログを使用して認証を行っていたが、その後アドインを使用して非表示の iframe を介して認証しようとするサイレント認証シナリオにも影響する可能性があります。

Mac で Office アドインを開発する場合、サードパーティの Cookie へのアクセスは MacOS Big Sur SDK によってブロックされます。 これは、Safari ブラウザーで WKWebView ITP が既定で有効になっており、WKWebView によってすべてのサードパーティ Cookie がブロックされるためです。 Office on Mac バージョン 16.44 (20121301) 以降は、MacOS Big Sur SDK と統合されています。

Safari ブラウザーで、エンド ユーザーは [基本設定] の [クロスサイト追跡を禁止する] チェック ボックス>[プライベート] を切り替えて ITP をオフにすることができます。 ただし、埋め込み WKWebView コントロールの ITP をオフにすることはできません。

Google Chrome では、ユーザーが閲覧エクスペリエンスをより詳細に制御できるように取り組んでいます。 ユーザーは Chrome ブラウザーでサードパーティの Cookie をブロックできます。 これにより、アドインがそのような Cookie を使用できなくなります。 これにより、複数のサインオン要求やエラーなど、アドインがユーザーを認証するときに問題が発生する可能性があります。

認証エクスペリエンスの向上については、「 デバイスの状態を使用した、ブロックされたサード パーティの Cookie を使用したブラウザーでの SSO エクスペリエンスの向上」を参照してください。

Google Chrome ロールアウトの詳細については、「 Web 上のプライバシー サンドボックスの新しいパス」を参照してください。

関連項目