SameSiteのサポート


説明

SameSiteは、クロス サイト リクエスト フォージェリ(CSRF)攻撃からの保護を目的としたIETFドラフト規格です。ドラフト規格は2016年に原案が作成され、改めて2019年に更新が行われました。更新された規格は、旧規格との後方互換性はありません。

Google Chromeバージョン80において、SameSiteクッキーの扱いに関する破壊的変更が導入されました。その他のブラウザも今後同様の措置を講じ、この仕様変更による問題の影響を受けることが予想されます。

解決策

Sitecore Identity ServerはFederated Authenticationのデフォルトのプロバイダであるため、以下に記載されている解決策を貴社ソリューションに適用してください:

Sitecore Federated AuthenticationをSameSiteの変更に適合させる

  1. サーバーの.Net Frameworkのバージョンをアップデートします:
    https://docs.microsoft.com/en-us/aspnet/samesite/kbs-samesite
  2. web.config<system.web>セクションのクッキーのデフォルト値を次のように設定します:
    <httpCookies sameSite="None" requireSSL="true" />
  3. Sitecore.Owin.Authentication.SameSite アーカイブをダウンロードして適用し、クッキーのチャンクの最大サイズを超えないようにします。アーカイブを解凍した後、readme.txtに記載されている手順に従って実施します。
  4. カスタムのIDプロバイダが設定されている場合、UseOpenIdConnectAuthentication()拡張メソッドを呼び出す際に、CookieManagerが指定されているかを確認します。 UseOpenIdConnectAuthentication()メソッドに渡されるOpenIdConnectAuthenticationOptionsオブジェクトでは、CookieManagerのプロパティが暗黙的に設定される必要があります。サービス コンテナに登録されたICookieManagerのインスタンスを使用します。これを、コンストラクタの依存関係として注入することができます。

Sitecore Identity ServerをSameSiteの変更に適合させる

  1. Sitecore.Plugin.Authentication.SameSiteアーカイブをダウンロードします。
  2. プラグインをSitecore Identity Serverにインストールします(手順の詳細については、アーカイブ内のreadme.txtを参照してください)。