提供中

Azure App Service — SameSite の Cookie 処理と .NET Framework 4.7.2 パッチ

更新: 1月 22, 2020

Azure App Service の 2020 年 1 月の更新プログラムの一部として .NET Framework アプリが SameSite の Cookie プロパティを処理する方法を更新する .NET Framework パッチがインストールされます。 このサービスでは、App Service の互換性動作もデプロイされます。これは、Cookie により SameSite プロパティが "None" に設定されている場合に App Service で実行されているすべてのアプリケーションに適用されます。

App Service プラットフォームの .NET Core バージョンには、SameSite の Cookie 処理の更新プログラムが既に含まれており、2020 年 1 月のサービス更新の一環としては変更されていません。

Azure App Service ペイロードは 2020 年 1 月にデプロイされます。パブリック Azure クラウド、すべての App Service 環境、各国のクラウド全体で 2020 年 1 月末に完了予定です。 デプロイについての最新情報はこちらを参照してください

更新はサービス全体に段階的にデプロイされるため、アプリケーションは、デプロイ期間中に異なるタイミングで、新しい App Service ペイロードで実行が開始されます。  開発者は、SCM サイトの App Service のバージョンを確認すると、更新された App Service ペイロードでアプリケーションが実行されているかどうかを判断できます。SCM サイトは、ポータルの [開発ツール --> 高度なツール] オプションから利用できます。  また、開発者は、次の URL 形式を使用して、アプリケーションの SCM サイトに直接移動することもできます: https://ここに自分のサイト名.scm.azurewebsites.net。

Windows App Service サイトの場合、SCM サイトのホーム ページには Azure App Service のバージョンが表示されます。  バージョンが 86.0.7.148 (またはそれ以降)の場合、関連付けられているアプリケーションは新しく修正された App Service のバージョンで実行されています。

Linux App Service サイトの場合、SCM サイトの上部のメニューにある [環境] オプションをクリックすると、サイトのすべての環境変数を含むページが返されます。 結果のページには、次のような URL が表示されます: https://ここに自分のサイト名.scm.azurewebsites.net/Env。  PLATFORM_VERSION 環境変数は、現在の App Service バージョンを示します。  バージョンが 86.0.7.148 (またはそれ以降)の場合、関連付けられているアプリケーションは新しく修正された App Service のバージョンで実行されています。

SameSite の .NET Framework パッチの詳細

.NET Framework 4.7.2 パッチに含まれる SameSite の Cookie 処理に関する相違点の詳細については、この記事を参照してください。 

.NET Framework パッチがインストールされている場合、.NET Framework では、セッションの状態フォーム認証cookieSameSite 構成プロパティの既定値は、"Lax" に変更されます。   また、HttpCookie.SameSite の値が "None" に設定されている場合、.NET Framework により、ワイヤー上に SameSite = None Cookie のプロパティも自動的に送信されます。

.NET Framework を使用した SameSite の Cookie 処理に関する追加情報については、この記事ドキュメントを参照してください。

フォーム認証の cookieSameSite の既定値については、この記事を参照してください。 

セッションの状態の cookieSameSite の既定値については、この記事を参照してください。

.NET Core を使用した SameSite の Cookie 処理に関する追加情報については、この記事を参照してください。 

Azure App Service の互換性動作の詳細

.NET Framework パッチに加えて、Azure App Service では、HTTP/HTTPS 応答が発生するシナリオに互換性動作が導入されました。これには、SameSite プロパティが "None" の値に設定された Cookie ヘッダーと、新しい 2019 SameSite 標準をサポートしていないため、SameSite プロパティ "None" を認識しない古いブラウザーの特定のサブセットと一致する要求元のユーザーエージェントが含まれています。  古いブラウザーが検出された場合、応答ヘッダーが検出されると、Azure App Service により SameSite=None の Cookie プロパティが自動的に削除されます。

App Service の互換性動作の実質的な効果は、古いブラウザーの特定のサブセットにより認識されない SameSite 値を受け取らない (古いブラウザーは SameSite=Strict 動作に戻る場合あり) ことで、Chrome v80 のような新しいブラウザーでは、SameSite=None の Cookie プロパティを受け取ります。

SameSite = None プロパティを応答から削除するタイミングを決定するために App Service により使用される特定の検出ロジックは、この記事に記載されている擬似ロジックに従います。

開発者は、SameSite の Cookie プロパティに対するアプリケーションの使用状況と信頼性 (ある場合) を確認し、各アプリケーションのシナリオに応じて、ユーザー エージェントの検出と特別な処理によってアプリケーション ロジックを更新する必要があります。App Service プラットフォームの互換性動作は、開発者を支援するための部分的な軽減策としてのみ使用されています。また、アプリケーションは、新しいバージョンのブラウザーで実装された 2019 SameSite の動作を処理するように更新されます。

また、開発者は、Cookie に SameSite=None プロパティが含まれている場合、追加のブラウザー要件も確認する必要があります。たとえば、Chrome v80 では、Cookie が Secure 属性でマークされ、HTTPS 接続経由で Cookie が送信されている場合にのみ、SameSite=None が優先されます。詳しくはこちらのブログ記事 (英語) をご覧ください。  

Azure App Service の互換性動作は、App Service ネットワーク エッジ インフラストラクチャに実装されます。 この動作は、App Service で実行されているすべてのサイトでアクティブになり、サイトで使用されている言語やフレームワークには関係ありません。互換性機能は、Linux と Windows の両方の App Service で実行されるサイト、App Service Environments、Azure App Service のすべての各国のクラウド展開で動作します。

 

  • App Service
  • Services

Related Products