方法 : 共有サーバー上の ASP.NET アプリケーションを保護する
更新 : 2007 年 11 月
顧客ごとに複数のアプリケーションをホストする共有 Web サーバーでは、各アプリケーションとアプリケーション データを保護し、それらがサーバー上の他のアプリケーション ユーザーに公開されないようにする必要があります。次のプロシージャで、共有サーバー上の ASP.NET アプリケーションを保護するために行う手順を詳しく説明します。
共有サーバー上の ASP.NET アプリケーションを保護するには
Web アプリケーションを Windows Server 2003 でホストします。アプリケーションのファイルは、NTFS ファイル システムでフォーマットされたドライブに格納されていることを確認します。
Windows 2000 および Windows XP Professional では、すべての ASP.NET アプリケーションが単一のプロセス ID (ローカルの ASPNET アカウント) で実行されるため、アプリケーションを完全に分離できるためには Windows Server 2003 上で実行する必要があります。
Web サーバーの [コンピュータの管理] スナップイン ([管理ツール] フォルダ内) で、[システム ツール] の [ローカル ユーザーとグループ] をクリックします。新規ユーザーを追加します。このユーザーがアプリケーション プールの ID になります。これは、ASP.NET アプリケーションのプロセス ID とも呼ばれます。
[ローカル ユーザーとグループ] の [グループ] フォルダで、上記の手順でアプリケーション用に作成した ID を IIS_WPG グループに追加します。これにより、アプリケーション プールの ID として実行するために必要なアクセス許可が、この新しい ID に与えられます。
Web サーバーの [インターネット インフォメーション サービス (IIS) マネージャ] を使用して、アプリケーションのアプリケーション プールを作成します。
新しいアプリケーション プールのプロパティのページを開き、[識別] タブをクリックします。ID を [構成可能] に設定し、作成したアプリケーション プール ID の [ユーザー名] と [パスワード] を指定します。
[インターネット インフォメーション サービス (IIS) マネージャ] の [Web サイト] フォルダで、アプリケーションのプロパティのページを開きます。Web アプリケーションの [アプリケーション プール] を、作成したアプリケーション プールに設定します。Web アプリケーションをアプリケーションとして作成していない場合は、[作成] ボタンをクリックして作成する必要があります。
1 つのアプリケーション プールに複数のアプリケーションを入れることができます。アプリケーション プールには、1 人の顧客が使用する複数のアプリケーションのように、データを共有できるアプリケーションだけを入れます。
アプリケーション プールのディレクトリを作成します。このディレクトリには、プール内のアプリケーションの一時ファイルが格納されます。アプリケーション プール内のすべてのアプリケーションの Web.config ファイルで、この新しいディレクトリをアプリケーションの一時ディレクトリとして指定します。指定するには compilation 構成セクションの tempDirectory 属性を使用します。次に例を示します。
<configuration> <system.web> <compilation tempDirectory="C:\WebApps\AppPool1_Temp" /> </system.web> </configuration>
Windows ファイル システム内。アクセス制御リスト (ACL: Access Control List) のセキュリティを設定し、アプリケーションのアプリケーション プール ID と偽装される ID (「ASP.NET の偽装」を参照) が、アプリケーションを構成するファイルとサブディレクトリへの適切なアクセス権、および上記の手順で作成した一時ディレクトリへの完全なアクセス権を持つようにします。IIS_WPG グループをこれらの ACL から削除します。必要な場合を除いて、同じサーバー上の他のユーザーがこれらのファイルやフォルダにアクセスできないようにします。このためには、Everyone グループや Users グループなどの一般グループも削除します。偽装された ID が、「ASP.NET の必須アクセス制御リスト (ACL)」に示されている ACL にすべて含まれていることを確認します。
保護された構成を使用して Web.config ファイル内の機密情報を暗号化することにより、アプリケーションのセキュリティを向上することもできます。詳細については、「保護された構成を使用した構成情報の暗号化」を参照してください。