Applies To.NET Framework 3.5 Service Pack 1 Windows 7 Service Pack 1 Windows 7 Enterprise Windows 7 Professional Windows 7 Ultimate Windows 7 Home Premium Windows 7 Home Basic Windows 7 Enterprise Windows 7 Professional Windows 7 Ultimate Windows 7 Home Premium Windows 7 Home Basic Windows Server 2008 R2 Service Pack 1 Windows Server 2008 R2 Standard Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2008 R2 Standard Windows Server 2008 R2 Enterprise Windows Server 2008 R2 Datacenter Windows Server 2008 Service Pack 2 Windows Server 2008 for Itanium-Based Systems Windows Server 2008 Datacenter Windows Server 2008 Enterprise Windows Server 2008 Standard Windows Server 2008 Web Edition Windows Vista Service Pack 2 Windows Vista Business Windows Vista Enterprise Windows Vista Home Basic Windows Vista Home Premium Windows Vista Starter Windows Vista Ultimate Windows Vista Enterprise 64-bit Edition Windows Vista Home Basic 64-bit Edition Windows Vista Home Premium 64-bit Edition Windows Vista Ultimate 64-bit Edition Windows Vista Business 64-bit Edition Microsoft Windows Server 2003 Service Pack 2 Microsoft Windows XP Professional x64 Edition Microsoft Windows XP Service Pack 3 Microsoft Windows XP Home Edition Microsoft Windows XP Professional

概要

セキュリティ情報 MS11-100 に記載されているセキュリティ更新プログラム 2638420 は ASP.NET でのフォーム認証チケットの作成方法を変更します。新しい動作は以前の動作と互換性がありません。新しい動作を使用して生成されたチケットを古い動作を使用するサーバーが読み取ることはできません。逆の場合も同様です。そのため、フォーム認証を使用するアプリケーションを使用する場合は、セキュリティ更新プログラム 2638420 を展開するときに、特定の手順を実行して、すべてのサーバーが新しい動作を同時に使用することを確認する必要があります。

展開の手引き

このチケットの動作変更のために、フォーム認証を使用するアプリケーションの管理者は、セキュリティ更新プログラム 2638420 を展開するときに、特定の手順を実行して、すべてのサーバーが新しい動作に同時に切り替わることを確認する必要があります。アプリケーションでフォーム認証が使用されているかどうかを確認するには、System.web ファイルを調べます。ホーム認証を使用するアプリケーションは、System.web ファイル内の次のエントリを使用します。

<authentication mode="Forms">注意事項

  • 既定の認証モードは "Windows" です。

  • ASP.NET は、フォーム認証を使用するように明示的に構成された場合のみフォーム認証を使用します。

フォーム認証を使用するアプリケーションを使用する場合は、次のいずれかの方法を使用してセキュリティ更新プログラム 2638420 を展開し、Web サイトが引き続き正常に動作することを確認する必要があります。方法 1セキュリティ更新プログラム 2638420 を ASP.NET Web ファーム内のすべてのアクティブなサーバーに同時に展開します。これを行うには、以下の手順を実行します。

  1. Web ファーム内サーバーの半分をロード バランサーのローテーションから削除します。

  2. それらのサーバーに更新プログラムをインストールします。

  3. それらのサーバーをローテーションに戻し、同時に残りのサーバーをオフラインにして更新します。

方法 2Web ファーム内のすべてのサーバーにセキュリティ更新プログラム 2638420 を同時に展開できない場合は、代わりにこの方法を使用します。注: マイクロソフトでは、この方法は推奨しません。このスイッチを設定すると、Web ファーム内の一部のサーバーにセキュリティ更新プログラムをインストールした上で引き続き古い動作を使用して機能させることができます。ただし、この構成スイッチを使用するサーバーは、セキュリティで保護されない状態になり、セキュリティ更新プログラムの修正機能の一部を利用できません。そのため、新しいセキュリティで保護された動作を有効にするために、セキュリティ更新プログラム 2638420 を Web ファーム内のすべてのサーバーに展開したら直ちにこの構成スイッチを削除する必要があります。更新プログラムがインストールされたときに古い動作を強制的に使用するために、セキュリティ更新プログラム 2638420 をインストールする前に Web.config ファイルまたは Machine.config ファイル内で互換性スイッチを設定します。これを行うには、以下の手順を実行します。

  1. メモ帳などのテキスト エディターを使用して Web.config ファイルまたは Machine.config ファイルを開きます。

  2. 次のテキストをファイルに追加してファイルを保存します。

    <appSettings><add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" /></appSettings>Web.config ファイルまたは Machine.config ファイルを更新して保存した後にコンピューターまたはいずれかのサービスを再起動する必要はありません。構成変更通知によってアプリケーション プールが自動的に循環します。

Web.config ファイルは次の場所にあります。.NET Framework Version 4.0 ~ 4.5

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Web.configC:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Web.config .NET Framework versions 2.0 ~ 3.5 SP1

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Web.configC:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\Web.config 32 ビット コンピューターには Framework フォルダーのみが存在します。64 ビット コンピューターには、Framework フォルダーと Framework64 フォルダーの両方が存在します。そのため、CLR 2 と CLR 4 を合わせて実行している 32 ビットと 64 ビットの両方のアプリケーション プールがある場合は、それらの 4 つのファイルのすべてにこのエントリを追加する必要があります。これらの構成ファイルに <appSettings> エントリも追加した場合は、システム全体に変更が適用されます。

既知の問題

  • セキュリティ更新プログラム 2638420 をインストールした後でチケットの復号化が失敗する新しいチケットの動作を有効にした後に、古い動作を使用して生成されるすべてのフォーム認証チケットが無効になります。この問題が発生すると、エンドユーザーがログオフされ、サーバー管理者によるチケットの復号化が失敗することがあります。イベント ログには次のエラー メッセージが記録されます。

    ログの名前: Applicationイベント ID: 1315イベント コード: 4005イベント メッセージ: 要求に対するフォーム認証に失敗しました。原因: 指定されたチケットは無効です。

    これらのエラーが原因で予期しない動作が発生することがあります。たとえば、Web ページが <authorization> 要素によって保護されている場合、"HTTP 401" エラーまたは "HTTP 302" エラーが発生することがあります。 セキュリティ更新プログラム 2638420 をインストールした後で、以前に生成されたチケットが期限切れになっているために管理者によるこれらのいくつかのチケットの復号化が失敗する可能性があります。時間の経過と共に新しいチケットが生成されると、これらの失敗の数および頻度は減少します。セキュリティ更新プログラムをインストールした後も長期間にわたり復号化の失敗が続く場合は、Web ファーム内の一部のサーバーが依然として古いチケットの動作を使用していることを示している可能性があります。たとえば、この問題は、次のいずれかの条件に該当する場合に発生することがあります。

    • 1 つまたは複数のサーバーがセキュリティ更新プログラム 2638420 で更新されていない。

    • 1 つまたは複数のサーバーで前述の互換性スイッチが設定されている。互換性スイッチについてはこの資料で前に説明しています。

詳細

TicketCompatibilityMode 構成スイッチはサポートされなくなりました。セキュリティ更新プログラム 2638420 によってフォーム認証チケットの形式が変更されるので、セキュリティ更新プログラム 2638420 がインストールされて有効になっている場合、<forms/ticketCompatibilityMode> 互換性スイッチはサポートされなくなります。 <forms/ticketCompatibilityMode> 構成スイッチの詳細については、次の MSDN Web サイトを参照してください。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。