ASP.NET での偽装と IIS 認証の使用
このシナリオでは、イントラネット上の Web サイトでアプリケーションをセットアップして、従業員情報を掲示できるようにします。ただし、情報の一部は管理職専用です。管理職に関する情報は一般従業員情報のサブディレクトリに書き込みを行い、これらの情報へのアクセスは制限できるようにします。このシナリオでは、次のことも想定されています。
- Microsoft Windows NT または Microsoft Windows 2000 のサーバーを使用しています。
- ハード ディスクは NTFS でフォーマットされています。
- Web サーバーは Microsoft Internet Information Services (IIS) 6.0 です。
- アクセス権を必要とする従業員はすべて Windows プラットフォームを使用しています。
管理者は次のことを実行します。
次の図に示すファイルおよびディレクトリを作成します。
ファイルおよびディレクトリ
ManagerInfo.aspx ファイルへのアクセス権を必要とするすべてのユーザーを含む Managers という名前の Windows グループを作成します。
IIS 管理ツールを使用して Windows 認証を設定します。
ASP.NET 構成ファイルの <identity> 要素の impersonate 属性を true に設定します。
ManagerInformation ディレクトリの NTFS アクセス制御リスト (ACL) を、Windows の Manager グループに含まれている ID に対してだけアクセスを許可するように設定します。ASP.NET プロセス自体がファイルを読み込むことができるように、ローカル システムもアクセス権を必要とします。このディレクトリでの設定は、通常は次のようになります。
- Everyone グループにアクセスが許可されている場合は、そのアクセス権を削除します。
- 匿名ユーザーを拒否します。
- アクセス特権を与える対象のアカウントを追加します。
- システム アカウントにアクセス権を与えます。
これにより、コードを記述する必要なく、必要なセキュリティを設定できました。