IIS 7.0 のモジュールの概要

公開日: 2007 年 11 月 22 日 (作業者: saad)

更新日: 2009 年 8 月 19 日 (作業者: saad)

はじめに

IIS 7.0 の Web サーバー機能セットは、30 を超える独立したモジュールとしてコンポーネント化されています。

モジュールには、Win32 DLL (ネイティブ モジュール) とアセンブリに含まれる .NET 2.0 形式 (マネージ モジュール) の 2 つの種類があります。 レゴ ブロックと同様に、モジュールはアプリケーションに必要な機能を提供するためにサーバーに追加されます。 同様に、すべての IIS モジュールも、削除したり、新しい IIS 7.0 C++ API や使い慣れた ASP.NET 2.0 API を使用して開発したカスタム モジュールに置き換えたりすることができます。

ここでは、一般的な IIS 7.0 モジュールの管理タスク、各モジュールの構成設定を含む詳細、およびモジュールを削除した場合の Web サーバーに対する潜在的な影響について説明します。 グラフィカル IIS 7.0 管理ツールと AppCmd コマンド ライン ツールの両方を使用した管理の例も示します。

この記事の内容:

  • 必要条件

  • モジュールを使用するための準備

  • アプリケーションでのモジュールの無効化

  • 必須条件

  • IIS 7.0 管理ツールを使用したモジュールの照会、追加、および削除

  • コマンド ラインからのモジュールの管理

  • モジュール リファレンス

必要条件

このドキュメントで説明する手順を実行するには、IIS 7.0 の完全インストールを実行することをお勧めします。

Windows Vista で IIS の完全インストールを実行するには

  1. [スタート] ボタンをクリックし、[コントロール パネル] をクリックします。

  2. コントロール パネル[プログラム] をクリックします。

  3. [プログラムと機能][Windows の機能の有効化または無効化] をクリックします。

  4. [Windows の機能] ダイアログ ボックスで、[Internet Information Services] を展開し、すべての機能を選択します。

  5. [OK] をクリックします。

Windows Server® 2008 で IIS の完全インストールを実行するには

  1. [サーバー マネージャー][役割] を開き、[Web サーバー (IIS)] を選択します。

  2. IIS のすべての機能のチェック ボックスをオンにします。

モジュールを使用するための準備

モジュールをサーバーに追加するには、2 つの手順を実行する必要があります。

  1. サーバーにモジュールをインストールします (ネイティブ モジュールのみ)。

  2. アプリケーションでモジュールを有効にします。

最初の手順によって、サーバーでモジュールをグローバルに登録し、サーバーの各ワーカー プロセスで利用できるようにします。 この手順は、ネイティブ コードの信頼の性質上、ネイティブ モジュールでのみ必要になり、管理者のみが実行できます。

: ネイティブ モジュールは、以前のバージョンの ISAPI フィルターや拡張機能と同様に、サーバーのワーカー プロセスが利用できるあらゆるリソースに無制限にアクセスできます。 このように無制限にアクセスできるため、信頼できるソースから入手したネイティブ モジュールのみをインストールしてください。

2 番目の手順では、特定のアプリケーションでモジュールを実行できるようにし、アプリケーション管理者がアプリケーションで有効になっているサーバー機能を効果的に管理できるようにします。 この手順によって、インストールされたネイティブ モジュールとマネージ モジュールの両方を各アプリケーションで有効にすることができます。

ネイティブ モジュールをインストールするには

ネイティブ モジュールをインストールするには、以下のいずれかのオプションを使用してモジュールをサーバーに登録する必要があります。

  • 新しい IIS 7.0 構成ストアを手動で編集する
  • IIS 7.0 管理ツールを使用する
  • IIS 7.0 APPCMD.EXE コマンド ライン ツールを使用する

この 3 つのオプションのいずれを使用した場合でも、モジュールのエントリが IIS 7.0 の <globalModules> 構成セクションに追加されます。このセクションは、サーバー レベルでのみ設定可能です。 このセクションの内容を確認するには、%windir%\system32\inetsrv\config\applicationhost.config にあるルート構成ファイルを開き、"<globalModules>" という文字列を検索します。

IIS 7.0 の完全インストールの実行後、このセクションには IIS 7.0 に付属している各ネイティブ モジュールのエントリが含まれており、モジュールの DLL の名前とパスが指定されます。

<globalModules> 
<add name="DefaultDocumentModule" image="%windir%\system32\inetsrv\defdoc.dll" /> 
<add name="DirectoryListingModule" image="%windir%\system32\inetsrv\dirlist.dll" /> 
<add name="StaticFileModule" image="%windir%\system32\inetsrv\static.dll" /> 
...

</globalModules> 

これらの各モジュールについては、このドキュメントで詳しく説明します。

ネイティブ モジュールをアンインストールするには

ネイティブ モジュールがサーバー上で使用されなくなった場合や、別のモジュールに置き換える場合は、ネイティブ モジュールをアンインストールします。 次のいずれかのオプションを使用して、<globalModules> 構成リストから対応するモジュールのエントリを削除し、<modules> 構成リストの関連するエントリを削除します。

  • 新しい IIS 7.0 構成ストアを手動で編集する
  • IIS 7.0 管理ツールを使用する
  • IIS 7.0 APPCMD.EXE コマンド ライン ツールを使用する

: <globalModules> 構成セクションはサーバー レベルでのみ設定できるので、モジュールをアンインストールするには管理者である必要があります。

アプリケーション用のモジュールの有効化

モジュールで特定のアプリケーションにサービスを提供するには、モジュールを有効にする必要があります。

ネイティブ モジュールを有効にするには、まずサーバーにモジュールをインストールする必要があります (前の「ネイティブ モジュールのインストール」を参照)。

マネージ モジュールはインストールの必要がなく、直接、各アプリケーションで有効にすることができます。インストールが不要であるため、アプリケーションでは、アプリケーションの web.config ファイルでモジュールを登録し、/BIN または /App_Code ディレクトリで実装を提供することによって、アプリケーション内で直接マネージ モジュールを含めることができます。

モジュールを有効にするには、次のいずれかを実行します。

  • IIS 7.0 構成ストアを手動で編集します。サーバー上のすべてのアプリケーションについてグローバルにモジュールを有効にすることも、このモジュールを有効にする各アプリケーション内の特定の web.config ファイルで有効にすることもできます。
  • IIS 7.0 管理ツールを使用します。
  • IIS 7.0 APPCMD.EXE コマンド ライン ツールを使用します。

この 3 つのオプションのいずれを使用した場合でも、モジュールのエントリが IIS 7.0 の <modules> 構成セクションに追加されます。このセクションは、サーバー レベルとアプリケーションのいずれでも設定可能です。 このセクションの内容を確認するには、%windir%\system32\inetsrv\config\applicationhost.config にあるルート構成ファイルを開き、"<modules>" という文字列を検索します。

マネージ モジュールでは、ネイティブ モジュールとは異なり、<globalModules> 構成セクションに追加する必要はありません。

IIS 7.0 の完全インストールの実行後、構成セクションには、IIS 7.0 に付属している各モジュール (マネージ モジュールとネイティブ モジュールの両方) のエントリが含まれます。 このエントリは、これらのすべてのモジュールが、既定でサーバー上のすべてのアプリケーションについて有効であることを示します。 このセクションの各エントリは、サーバーにインストールされているネイティブ モジュールの名前、またはマネージ モジュールの名前と .NET 型を指定します。

<modules> 
<add name="DefaultDocumentModule" /> 
<add name="DirectoryListingModule" /> 
<add name="StaticFileModule" /> 
...

</modules> 

アプリケーションでのモジュールの無効化

モジュールがアプリケーションで使用されなくなった場合や、別のモジュールに置き換える場合は、モジュールを無効にします。 モジュールを無効にするには、このモジュールを実行しないようにする特定のアプリケーションについて、<modules> 構成コレクションから対応するモジュールのエントリを削除します。 モジュールがサーバー レベルで有効である場合、モジュールをサーバー レベルで削除すると、既定ではサーバー上のすべてのアプリケーションで無効になります。 モジュールをサーバー レベルで削除するには、次のいずれかのオプションを使用します。

  • アプリケーションの <system.webServer>/<modules> 構成セクションを手動で編集します。
  • IIS 7.0 管理ツールを使用します。
  • IIS 7.0 APPCMD.EXE コマンド ライン ツールを使用します。

モジュールをアプリケーションから削除すると、モジュールはそのアプリケーションではアクティブになりません。 ただし、モジュールがネイティブである場合、サーバーのワーカー プロセスには読み込まれるので、そのモジュールを削除していない他のアプリケーションで使用される可能性があります。

: ASP.NET がインストールされている場合、構成セクションは既定でロック解除されます。 この既定のロック解除によって、アプリケーションでは、グローバルに有効になっているネイティブ モジュールとマネージ モジュールの両方を無効にしたり、新しいマネージ モジュールを追加したりすることができます。 この構成セクションをサーバー レベルでロックして、すべての変更を禁止したり、管理者が指定した特定のモジュール エントリの削除を禁止したりすることができます。

必須条件

モジュール エントリには、precondition (必須条件) と呼ばれるもう 1 つの属性があります。 IIS コア エンジンでは、必須条件を使用して特定のモジュールを有効にする時期を決定します。 たとえば、パフォーマンス上の理由から、マネージ ハンドラーも使用する要求についてのみマネージ モジュールを実行することにしたとします。 この例では、必須条件 (precondition="managedHandler") によって、.aspx ファイルや .asmx ファイルに対する要求など、マネージ ハンドラーでも処理する必要がある要求についてのみ、フォーム認証モジュールを有効にします。

<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />

precondition="managedHandler" という属性を削除すると、フォーム認証は、マネージ ハンドラーによって処理されない .html、.jpg、.doc などのコンテンツや、クラシック ASP (.asp) や PHP (.php) の拡張子にも適用されます。 すべてのコンテンツについて ASP.NET モジュールを実行できるようにする例については、「IIS 7.0 の統合パイプラインを活用する方法」を参照してください。

ショートカットを使用して、"managedHandler" の必須条件に関係なく、アプリケーションにおけるすべての要求について、すべてのマネージ (ASP.NET) モジュールを実行できるようにすることもできます。 各モジュール エントリで "managedHandler" の前提条件を削除せずに、すべての要求についてすべてのマネージ モジュールを実行できるようにするには、<modules> セクションで runAllManagedModulesForAllRequests プロパティを使用します。

<modules runAllManagedModulesForAllRequests="true" />

このプロパティを使用する場合、"managedHandler" の必須条件は無効になり、すべての要求についてすべてのマネージ モジュールが実行されます。

IIS 7.0 管理ツールを使用したモジュールの照会、追加、および削除

IIS 7.0 管理ツールを使用すると、簡単にモジュールを照会、追加、または削除できます。

  1. IIS 7.0 管理ツールを開きます。

  2. 使用している IIS サーバーのコンピューター名をクリックします。

  3. IIS カテゴリの [モジュール] アイコンをクリックします。

    IIS マネージャー

    図 1: IIS マネージャー

特定のアプリケーションについて有効になっているモジュールを管理するには:

  1. 左側のツリー表示を使用してアプリケーションに接続します。
  2. [モジュール] 機能ウィンドウに移動します。
  3. [マネージ モジュールの追加] をクリックして、アプリケーションに "マネージ モジュール" を追加します。 [ネイティブ モジュールの追加] では、サーバー レベルで既に登録されているモジュールのみを追加できます。

アプリケーションからモジュールを削除するには:

  1. 一覧でモジュールをクリックします。 左側のウィンドウに [削除] タスクが表示されます。
  2. [削除] をクリックします。

IIS マネージャーでのモジュール一覧

図 2: IIS マネージャーでのモジュール一覧

コマンド ラインからのモジュールの管理

コマンド ラインやスクリプト モジュールの管理タスクからモジュールをすばやく管理するには、APPCMD.EXE コマンド ライン ツールを使用します。

モジュールをインストールするには (ネイティブ モジュールをインストールすると、そのモジュールは自動的にサーバー レベルで有効になります。

Appcmd.exe install module /name:<MODULE_NAME> /image:<PATH_TO_DLL>



e.g. %windir%\system32\inetsrv\appcmd.exe install module /name:DefaultDocumentModule /image:%windir%\system32\inetsrv\defdoc.dll  

モジュールをアンインストールするには (モジュールをアンインストールすると、そのモジュールは自動的にサーバー レベルで無効になります)。

Appcmd.exe uninstall module <MODULE_NAME>



e.g. %windir%\system32\inetsrv\appcmd.exe uninstall module DefaultDocumentModule

特定のアプリケーションについて (またはグローバルに) 有効になっているモジュールの一覧を表示します。

                    
Appcmd.exe list modules [/app.name:<APPLICATION_NAME>]



e.g. %windir%\system32\inetsrv\appcmd.exe list modules /app.name:"<span style="color:darkred">Default Web Site/>"



     %windir%\system32\inetsrv\appcmd.exe list modules

特定のアプリケーションについて (またはグローバルに) モジュールを有効にするには:

                    
Appcmd.exe <span style="color:blue">add< module /name:<MODULE_NAME> /type:<MGD_TYPE>

    

e.g. %windir%\system32\inetsrv\appcmd.exe <span style="color:blue">add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule /app.name:"<span style="color:darkred">Default Web Site/"



    %windir%\system32\inetsrv\appcmd.exe <span style="color:blue">add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule 

特定のアプリケーションについて (またはグローバルに) モジュールを無効にするには:

                    
Appcmd.exe delete module <MODULE_NAME> [/app.name:<APPLICATION_NAME>]

e.g. %windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication /app.name:"<span style="color:darkred">Default Web Site/"



     %windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication 

モジュール オブジェクトに対する各コマンドの構文に関するヘルプを表示するには、次のコマンドを使用します。

MODULE オブジェクトでサポートされるコマンドを表示する:

                    
Appcmd.exe module /?

各コマンドの使用方法を表示する:

Appcmd.exe install module /?
Appcmd add module /?
etc ...

モジュール リファレンス

IIS 7.0 サーバーはカスタマイズに対応しています。 以下の一覧を参照して、副作用、機能の喪失、セキュリティ機能の削除を回避してください。

ユーティリティ モジュール

これらのモジュールは要求にサービスを提供するのではなく、サーバー エンジンの内部操作を支援します。

モジュール名:

UriCacheModule

説明:

URL 固有のサーバー状態 (構成など) の汎用キャッシュを実装します。

このモジュールによって、サーバーは特定の URL の最初の要求についてのみ構成を読み込み、それ以降の要求では構成が変更されるまで読み込んだ構成を再利用します。

構成セクション:

なし。

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

各要求について URL の取得のたびに状態がキャッシュされるのでパフォーマンスが低下します。

モジュール名:

FileCacheModule

説明:

サーバー エンジンおよびモジュールによって開かれたファイルのファイル ハンドルをキャッシュします。

構成セクション:

なし。

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

パフォーマンスの低下。 ファイル ハンドルがキャッシュされていない場合、要求ごとにファイルを開く必要があります。

モジュール名:

TokenCacheModule

説明:

認証スキーム (匿名認証、基本認証、IIS クライアント証明書認証) に基づいてパスワードの Windows セキュリティ トークンをキャッシュします。

構成セクション:

なし。

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

パフォーマンスの低下。トークンがキャッシュされていない場合、ユーザーは要求のたびにログオンする必要があります。その結果、パフォーマンスに大きな影響を及ぼします。 たとえば、パスワードで保護されている html ページで、同じく保護されている 50 の画像を参照している場合、51 の logonUser の呼び出しがローカル アカウント データベースに対して、さらに悪い場合はオフボックスのドメイン コントローラーに対して行われるので、パフォーマンスの問題が発生します。

マネージ エンジン: ASP.NET の統合

モジュール名:

ManagedEngine

説明:

マネージ エンジンは、他のすべてのモジュールの中で特別な意味を持っています。 このモジュールは、ASP.NET ランタイムと連携する IIS の統合を実現します。

構成セクション:

    

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

ASP.NET の統合が無効になります。アプリケーション プールが統合モードで実行されているときに、<modules> で宣言されているマネージ モジュールも、<handlers> セクションで宣言されている ASP.NET ハンドラーも呼び出されません。

IIS 7.0 のネイティブ モジュール

モジュール名:

HTTPCacheModule

説明:

HttpCacheModule は、IIS 7.0 出力キャッシュと、http.sys キャッシュにアイテムをキャッシュするためのロジックも実装します。 構成によって、キャッシュ サイズ、出力キャッシュ プロファイルなどを設定します。

構成セクション:

System.webServer/caching

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

コンテンツがカーネル モードでキャッシュされなくなります。 キャッシュ プロファイルは無視されます。 HttpCacheModule を削除すると、パフォーマンスおよびリソースの使用状況に悪影響を及ぼします。

モジュール名:

DynamicCompressionModule

説明:

動的コンテンツのメモリ内での圧縮を実装します。

構成セクション:

system.webServer/httpCompression および system.webServer/urlCompression。

依存関係:

動的圧縮は既定では無効になっているので、依存関係はありません。

モジュール名:

StaticCompressionModule

説明:

静的コンテンツの圧縮 (メモリ内の圧縮と、ファイル システムでの永続的な圧縮) を実装します。

構成セクション:

system.webServer/httpCompression および system.webServer/urlCompression

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

圧縮されていないコンテンツがクライアントに返されるので、潜在的に帯域幅が飽和状態になる可能性があります。

モジュール名:

DefaultDocumentModule

説明:

既定のドキュメント機能を実装します。 末尾に / を含む要求は、既定のドキュメント リストのドキュメントにルーティングされます。

構成セクション:

system.webServer/defaultDocument

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

/ に対する要求 (https://localhost/ など) には、404 エラーが返されます。 directoryBrowsing が有効である場合は、ディレクトリの一覧が生成されます。

モジュール名:

DirectoryListingModule

説明:

ディレクトリ参照機能を実装します。

構成セクション:

system.webServer/directoryBrowse

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

DefaultDocumentModule でも、DirectoryListingModule でも / に対する要求が処理されない場合、空の応答が返されます。

モジュール名:

ProtocolSupportModule

説明:

カスタム リダイレクト応答ヘッダーを実装します。

HTTP 動詞 Trace および Options を実装します。

構成による Keep-Alive を許可または無効にするサポートを実装します。

構成セクション:

system.webServer/httpProtocol

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

TRACE または OPTIONS 要求に対して、"405 Method not allowed" エラー メッセージが返されます。

モジュール名:

HttpRedirectionModule

説明:

リダイレクト機能を実装します。

構成セクション:

system.webServer/httpRedirect

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

リソースがリダイレクトによって保護されていた場合は、潜在的なセキュリティの問題があります。リダイレクト モジュールを削除すると、コンテンツは再びアクセス可能になります。

モジュール名:

ServerSideIncludeModule

説明:

サーバー側インクルードを実装します。 このモジュールはハンドラーとしてマップされ、末尾が .stm、.shtm、および .shtml である要求についてのみ実行されます。

構成セクション:

system.webServer/serverSideInclude

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

静的ファイル モジュールによって、.stm、.shtm、および .shtml ファイルが処理されます。 このモジュールにこれらの拡張子の mimeMap がある場合、ファイルはテキストとして提供されます。 ただし、これは既定の設定ではありません。

モジュール名:

StaticFileModule

説明:

.html、.jpg などのファイル拡張子を持つ静的ファイルを送信します。 staticContent/mimeMap 構成コレクションによって、ファイル拡張子のリストが決まります。

構成セクション:

system.webServer/staticContent

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

静的ファイルが提供されなくなります。 ファイルを要求すると、ハンドラーが対応していないことを示す 404 Not Found エラーが返されます。

モジュール名:

AnonymousAuthenticationModule

説明:

匿名認証を実装します。 このモジュールは、URL が匿名認証を許可するように構成されている場合、HttpUser オブジェクトを生成します。

構成セクション:

system.webServer/security/authentication/anonymousAuthentication

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

少なくとも 1 つの認証モジュールが構成されている必要があります。 認証フェーズの後で、IIS サーバー コアは HttpUser オブジェクトが設定されているかどうかを確認します。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合は、401.2 エラーが生成されます。

モジュール名:

CertificateMappingAuthenticationModule

説明:

SSL クライアント証明書を Active Directory アカウントにマップします (Active Directory 証明書マッピング)。

構成セクション:

system.webServer/security/authentication/clientCertificateMappingAuthentication

依存関係:

このモジュールが機能するには、SSL が構成されている必要があります。 IIS を実行するコンピューターが、Active Directory ドメインのメンバーであることも必要です。

このモジュールを削除した場合の潜在的な問題

Active Directory 証明書マッピングを使用してディレクトリが保護されている場合、通常、要求は許可されます。この場合、モジュールは削除されます。

モジュール名:

BasicAuthenticationModule

説明:

RFC 2617 に記述されている HTTP 基本認証を実装します。

構成セクション:

system.webServer/security/authentication/basicAuthentication

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

少なくとも 1 つの認証モジュールが構成されている必要があります。 認証フェーズの後で、IIS サーバー コアは HttpUser オブジェクトが設定されているかどうかを確認します。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合は、401.2 エラーが生成されます。

モジュール名:

WindowsAuthenticationModule

説明:

Windows 認証を実装します (NTLM またはネゴシエート (Kerberos))。

構成セクション:

system.webServer/security/authentication/windowsAuthentication

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

少なくとも 1 つの認証モジュールが構成されている必要があります。 認証フェーズの後で、IIS サーバー コアは HttpUser オブジェクトが設定されているかどうかを確認します。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合は、401.2 エラーが生成されます。

モジュール名:

DigestAuthenticationModule

説明:

RFC 2617 に記述されているダイジェスト認証を実装します。

構成セクション:

system.webServer/security/authentication/digestAuthentication

依存関係:

IIS サーバーが Active Directory ドメインに含まれている必要があります。

このモジュールを削除した場合の潜在的な問題

少なくとも 1 つの認証モジュールが構成されている必要があります。 認証フェーズの後で、IIS サーバー コアは HttpUser オブジェクトが設定されているかどうかを確認します。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合は、401.2 エラーが生成されます。

モジュール名:

IISCertificateMappingAuthenticationModule

説明:

IIS 証明書マッピングを実装します。 SSL クライアント証明書を Windows アカウントにマップします。 Active Directory 証明書マッピングとは逆に、ユーザー資格情報およびマッピング規則は IIS 構成ストア内に格納されます。

構成セクション:

system.webServer/iisClientCertificateMappingAuthentication

依存関係:

このモジュールが機能するには、クライアント証明書を受信する要件を満たす SSL が構成されている必要があります。

このモジュールを削除した場合の潜在的な問題

少なくとも 1 つの認証モジュールが構成されている必要があります。 認証フェーズの後で、IIS サーバー コアは HttpUser オブジェクトが設定されているかどうかを確認します。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合は、401.2 エラーが生成されます。

モジュール名:

UrlAuthorizationModule

説明:

構成規則に基づいて承認を実装します。

構成セクション:

system.webServer/security/authorization

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

コンテンツを保護していた承認規則が評価されなくなります。 保護の対象となっていたコンテンツが提供される可能性があります。

モジュール名:

IsapiModule

説明:

ISAPI 拡張機能を実装します。

構成セクション:

system.webServer/isapiCgiRestriction

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

<handlers> セクション (modules="IsapiModule") でマップされていた ISAPI 拡張機能、または明示的に呼び出された ISAPI 拡張機能が動作しなくなります。

モジュール名:

IsapiFilterModule

説明:

ISAPI フィルター機能を実装します。

構成セクション:

system.webServer/isapiFilters

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

ISAPI フィルターは、通常、アプリケーションが利用する機能を実装します。 ASP.NET や SharePoint などがあります。
たとえば、ASP.NET の場合は、機密性の高いコンテンツを保護し、URL を書き換えるために aspnet_filter.dll が必要になります。
このモジュールを削除すると、IIS で ISAPI フィルターが読み込まれなくなります。 アプリケーションが動作を停止したり、機密性の高いコンテンツが公開されたりする可能性があります。

モジュール名:

IpRestrictionModule

説明:

クライアント要求の IPv4 アドレスに基づいて承認スキームを実装します。

構成セクション:

system.webServer/security/ipSecurity

依存関係:

IPv4 スタックがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

ipSecurity にある IP アドレスを持つクライアントが許可されます。

モジュール名:

RequestFilteringModule

説明:

疑わしい要求を初期段階で拒否する強力なセキュリティ規則のセットを実装します。 このモジュールは、IIS 5.0 および 6.0 に付属していた ISAPI フィルター UrlScan.DLL の後継です。

構成セクション:

system.webServer/security/requestFiltering

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

このモジュールを削除した場合、requestFiltering セクションで指定されている規則が適用されなくなります。 潜在的なセキュリティの問題が発生する可能性があります。

モジュール名:

CustomLoggingModule

説明:

IIS 7.0 上に ILogPlugin インターフェイスを実装します。 ILogPlugin は、ユーザーが IIS ログ記録を拡張できるようにしていた以前の COM 実装です。このインターフェイスを使用して IIS 7.0 を拡張することはお勧めできません。 その代わりに、ユーザーはモジュールを作成して RQ_LOG_REQUEST 通知を購読する必要があります。

構成セクション:

system.webServer/httpLogging and system.applicationhost/sites/site/logFile/customLogPluginClsid

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

カスタム ログ プラグインは呼び出されなくなります。 たとえば、ODBC ログは ILogPlugin として実装されています。

モジュール名:

CustomErrorModule

説明:

カスタム エラーおよび新しい IIS 7.0 の詳細なエラー機能を実装します。

構成セクション:

system.webServer/httpErrors

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

IIS 7.0 は、コア サーバーでエラーが発生した場合は、最小限の情報を含む空白のページを返します。
サーバー コンポーネントから返された詳細なエラー情報がリモート ユーザーに対して表示される場合があり、情報が公開される可能性があります。

モジュール名:

HttpLoggingModule

説明:

HTTP.SYS にログに記録する対象を指示することによって、標準的な IIS ログを実装します。

構成セクション:

system.applicationHost/log and system.webServer/httpLogging

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

標準の IIS ログが機能しなくなります。

モジュール名:

FailedRequestsTracingModule

説明:

失敗した要求のトレースを実装します。 構成によって、失敗した要求を定義し、規則を設定します。

構成セクション:

system.webServer/tracing and system.webServer/httpTracing

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

http 要求のトレースが機能しなくなります。

モジュール名:

RequestMonitorModule

説明:

IIS 7.0 RSCA (Run-time State and Control Interface) を実装します。 RSCA によって、ユーザーは、現在実行中の要求、Web サイトの開始/終了状態、現在実行中のアプリケーション ドメインなどの実行時の情報を照会できます。

構成セクション:

なし。

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

ツールで、現在実行中の要求を列挙できなくなります。

モジュール名:

CgiModule

説明:

IIS 7.0 上で CGI を実装します。

構成セクション:

system.webServer/cgi and system.webServer/isapiCgiRestriction

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

CGI プログラムが動作を停止します。

モジュール名:

TracingModule

説明:

ETW トレースを実装します。

構成セクション:

system.webServer/httpTracing

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

このモジュールを削除すると、ETW トレースが機能しなくなります。

モジュール名:

ConfigurationValidationModule

説明:

ASP.NET アプリケーション構成が統合モードで操作するように移行されたかどうかを確認します。

構成セクション:

system.webServer/Validation

依存関係:

なし。

このモジュールを削除した場合の潜在的な問題

モジュールやハンドラーについてレガシー ASP.NET 構成を指定しているアプリケーションで移行エラーが生成されなくなり、移行されていない新しいアプリケーションは正しく機能しなくなります。

マネージ モジュール:

モジュール名:

OutputCache

説明:

ASP.NET の出力キャッシュ機能を実装します。

構成セクション:

system.web/caching/outputCache

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

出力をキャッシュするように構成されたページに対して、ASP.NET でキャッシュ応答を出力できなくなります。

モジュール名:

Session

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。

構成セクション:

system.web/sessionState

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

マネージ セッション状態を使用できません。

モジュール名:

WindowsAuthentication

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。

構成セクション:

system.web/authentication

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

WindowsAuthentication.OnAuthenticate イベントが発生しなくなり、一部のカスタム ASP.NET 認証コードが実行できなくなる場合があります。 また、認証されたユーザーが UNC 共有を使用する場合に UNC ユーザーに置き換えられません (レガシー ASP.NET の動作)。
このモジュールは、統合モードの ASP.NET アプリケーションの NTLM/Kerberos 認証には影響しません。また、WindowsAuthentication.OnAuthenticate イベントおよびレガシー UNC 動作以外では必要ありません。

モジュール名:

FormsAuthentication

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。

構成セクション:

system.web/authentication

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

ASP.NET のフォーム ベース認証機能が使用できなくなり、フォーム認証チケットを持つクライアントが保護されたリソースにアクセスできなくなります。

モジュール名:

DefaultAuthentication

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。

構成セクション:

system.web/authentication

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

ASP.NET の認証モードがフォームである場合、匿名要求について、一部の ASP.NET 機能が動作しなくなります。
また、DefaultAuthentication.OnAuthenticate イベントが発生しなくなります。

モジュール名:

RoleManager

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。

構成セクション:

なし。

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

ロール マネージャー機能が使用できなくなります。

モジュール名:

UrlAuthorization

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。 UrlAuthorization ネイティブ モジュールは、ネイティブ コードでの URL 承認機能を実装します。 これによって、マネージ URL 承認モジュールに代わる、スケーラブルで高速なネイティブ モジュールが提供されます。

構成セクション:

system.web/authorization.

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

  ASP.NET 承認規則が無視され、情報が公開されたり、セキュリティ上の問題が発生したりする可能性があります。

モジュール名:

AnonymousIdentification

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。

構成セクション:

    

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

 ASP.NET プロファイルで使用されている匿名 ID 機能が動作しなくなります。

モジュール名:

Profile

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。

構成セクション:

    

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

  ASP.NET プロファイル機能が動作しなくなります。

モジュール名:

UrlMappingsModule

説明:

詳細については、ASP.NET 2.0 のドキュメントを参照してください。

構成セクション:

    

依存関係:

ManagedEngine モジュールがインストールされている必要があります。

このモジュールを削除した場合の潜在的な問題

  ASP.NET URL マッピングが動作しなくなります。

 

関連コンテンツ

記事