概要
セキュリティ情報 MS11-100 に記載されているセキュリティ更新プログラム 2638420 は ASP.NET でのフォーム認証チケットの作成方法を変更します。新しい動作は以前の動作と互換性がありません。新しい動作を使用して生成されたチケットを古い動作を使用するサーバーが読み取ることはできません。逆の場合も同様です。そのため、フォーム認証を使用するアプリケーションを使用する場合は、セキュリティ更新プログラム 2638420 を展開するときに、特定の手順を実行して、すべてのサーバーが新しい動作を同時に使用することを確認する必要があります。
展開の手引き
このチケットの動作変更のために、フォーム認証を使用するアプリケーションの管理者は、セキュリティ更新プログラム 2638420 を展開するときに、特定の手順を実行して、すべてのサーバーが新しい動作に同時に切り替わることを確認する必要があります。
アプリケーションでフォーム認証が使用されているかどうかを確認するには、System.web ファイルを調べます。ホーム認証を使用するアプリケーションは、System.web ファイル内の次のエントリを使用します。<authentication mode="Forms">注意事項
-
既定の認証モードは "Windows" です。
-
ASP.NET は、フォーム認証を使用するように明示的に構成された場合のみフォーム認証を使用します。
フォーム認証を使用するアプリケーションを使用する場合は、次のいずれかの方法を使用してセキュリティ更新プログラム 2638420 を展開し、Web サイトが引き続き正常に動作することを確認する必要があります。
方法 1 セキュリティ更新プログラム 2638420 を ASP.NET Web ファーム内のすべてのアクティブなサーバーに同時に展開します。これを行うには、以下の手順を実行します。-
Web ファーム内サーバーの半分をロード バランサーのローテーションから削除します。
-
それらのサーバーに更新プログラムをインストールします。
-
それらのサーバーをローテーションに戻し、同時に残りのサーバーをオフラインにして更新します。
方法 2
Web ファーム内のすべてのサーバーにセキュリティ更新プログラム 2638420 を同時に展開できない場合は、代わりにこの方法を使用します。 注: マイクロソフトでは、この方法は推奨しません。このスイッチを設定すると、Web ファーム内の一部のサーバーにセキュリティ更新プログラムをインストールした上で引き続き古い動作を使用して機能させることができます。ただし、この構成スイッチを使用するサーバーは、セキュリティで保護されない状態になり、セキュリティ更新プログラムの修正機能の一部を利用できません。そのため、新しいセキュリティで保護された動作を有効にするために、セキュリティ更新プログラム 2638420 を Web ファーム内のすべてのサーバーに展開したら直ちにこの構成スイッチを削除する必要があります。 更新プログラムがインストールされたときに古い動作を強制的に使用するために、セキュリティ更新プログラム 2638420 をインストールする前に Web.config ファイルまたは Machine.config ファイル内で互換性スイッチを設定します。これを行うには、以下の手順を実行します。-
メモ帳などのテキスト エディターを使用して Web.config ファイルまたは Machine.config ファイルを開きます。
-
次のテキストをファイルに追加してファイルを保存します。
<appSettings>
<add key="aspnet:UseLegacyFormsAuthenticationTicketCompatibility" value="true" /> </appSettings>Web.config ファイルまたは Machine.config ファイルを更新して保存した後にコンピューターまたはいずれかのサービスを再起動する必要はありません。構成変更通知によってアプリケーション プールが自動的に循環します。
Web.config ファイルは次の場所にあります。
.NET Framework Version 4.0 ~ 4.5C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\Web.config
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Web.config .NET Framework versions 2.0 ~ 3.5 SP1C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Web.config
C:\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 イベント メッセージ: 要求に対するフォーム認証に失敗しました。原因: 指定されたチケットは無効です。-
1 つまたは複数のサーバーがセキュリティ更新プログラム 2638420 で更新されていない。
-
1 つまたは複数のサーバーで前述の互換性スイッチが設定されている。互換性スイッチについてはこの資料で前に説明しています。
-
詳細
TicketCompatibilityMode 構成スイッチはサポートされなくなりました。
セキュリティ更新プログラム 2638420 によってフォーム認証チケットの形式が変更されるので、セキュリティ更新プログラム 2638420 がインストールされて有効になっている場合、<forms/ticketCompatibilityMode> 互換性スイッチはサポートされなくなります。 <forms/ticketCompatibilityMode> 構成スイッチの詳細については、次の MSDN Web サイトを参照してください。