IIS モジュールの概要

IIS チーム、Mike Volodarsky

互換性

バージョン メモ
IIS 7.0 以降 この記事で説明されている機能は、IIS 7.0 で導入されました。
IIS 6.0 以前 この記事で説明する機能は、IIS 7.0 より前ではサポートされていません。

はじめに

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

モジュールは、Win32 DLL (ネイティブ モジュール) またはアセンブリに含まれる .NET 2.0 型 (マネージド モジュール) のいずれかです。 一連の構成要素と同様に、モジュールはアプリケーションに必要な機能を提供するためにサーバーに追加されます。 同様に、すべての IIS モジュールは削除したり、IIS C++ API または使い慣れた ASP.NET 2.0 API を使用して開発されたカスタム モジュールに置き換えたりすることもできます。

この記事では、一般的な IIS モジュール管理タスクについて説明し、各モジュールの構成設定や、モジュールの削除が Web サーバーに与える潜在的な影響について詳しく説明します。 管理の例については、グラフィカル IIS マネージャーと AppCmd コマンド ライン ツールの両方を使用して提供されます。

前提条件

このドキュメントの手順に従うには、IIS の完全インストールを行うことをお勧めします。

Note

Windows のすべてのエディションで、使用可能なすべての IIS 機能がサポートされているわけではありません。 お使いのオペレーティング システムでサポートされている IIS の機能を確認するには、お使いのバージョンの Windows に付属しているドキュメントを参照する必要があります。

Windows Vista、Windows 7、Windows 8、Windows 10、または Windows 11 で IIS の完全インストールを実行するには

  1. [スタート] ボタンをクリックし、コントロール パネル をクリックします。
  2. [コントロール パネル] で、[プログラム] を選択します。
  3. [プログラムと機能][Windows の機能を有効化または無効化] をクリックします。
  4. [Windows の機能] ダイアログで、[インターネット インフォメーション サービス] を展開し、すべての機能を選択します。
    一部のカテゴリを展開して、そのカテゴリのすべての機能を選択する必要がある場合があります。
  5. OK をクリックします。

Windows Server 2008/R2、Windows Server 2012/R2、または Windows Server 2016 で IIS の完全インストールを実行するには

  1. [サーバー マネージャー]>[ロール] を開き、[Web サーバー (IIS)] を選択します。
  2. [Web サーバー] の下のすべての機能をオンにします。

モジュールの使用を開始する

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

  1. サーバーにモジュールをインストールする (ネイティブ モジュールのみ)。
  2. アプリケーションでモジュールを有効にする。

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

Note

ネイティブ モジュールは、以前のバージョンの ISAPI フィルターや拡張機能と同様に、サーバー ワーカー プロセスが使用できる任意のリソースに制限なしでアクセスできます。 この無制限のアクセスのため、信頼できるソースから取得したネイティブ モジュールのみをインストールする必要があります。

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

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

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

  • IIS 構成ストアを手動で編集する。 IIS 7.5 以降では、IIS マネージャーで構成エディターを使用できます。
  • IIS マネージャーを使用する
  • AppCmd.exe コマンド ライン ツールを使用する

これら 3 つのオプションすべてで、モジュール エントリが <globalModules> IIS 構成セクションに追加されます。これは、サーバー レベルでのみ設定できます。 このセクションの内容を調べるには、%windir%\system32\inetsrv\config\applicationhost.config にあるルート構成ファイル開き、文字列 "<globalModules>" を検索します。

IIS の完全インストール後、このセクションには、IIS に付属している各ネイティブ モジュールのエントリが含まれ、モジュール 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 構成ストアを手動で編集する。 IIS 7.5 以降では、構成エディターを使用できます。
  • IIS マネージャーを使用する
  • AppCmd.exe コマンド ライン ツールを使用する

Note

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

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

モジュールは、特定のアプリケーションにサービスを提供する前に有効にする必要があります。 ネイティブ モジュールを有効にするには、最初にサーバーにインストールする必要があります (前のセクション「ネイティブ モジュールをインストールするには」を参照してください)。

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

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

  • IIS 構成ストアを手動で編集します。サーバー上のすべてのアプリケーションに対してグローバルにモジュールを有効にするか、そのモジュールを有効にする各アプリケーション内にある特定の web.config ファイルでモジュールを有効にします。 IIS 7.5 以降では、構成エディターを使用できます。
  • IIS マネージャーを使用する
  • AppCmd.exe コマンド ライン ツールを使用する

これらの 3 つのオプションはすべて、<modules> IIS 構成セクションにモジュール エントリを追加します。これは、サーバー レベルとアプリケーション レベルの両方で設定できます。 このセクションの内容を調べるには、%windir%\system32\inetsrv\config\applicationhost.config にあるルート構成ファイル開き、文字列 "<modules>" を検索します。

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

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

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

</modules>

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

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

  • アプリケーションの <system.webServer>/<modules> 構成セクションを 手動で編集する。
  • IIS マネージャーを使用する。
  • AppCmd.exe コマンド ライン ツールを使用する。

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

Note

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

Preconditions

モジュール エントリには、前提条件と呼ばれる別の属性があります。 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 統合パイプラインを利用する方法」を参照してください。

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

<modules runAllManagedModulesForAllRequests="true"/>

このプロパティを使用すると、"managedHandler" の前提条件は効果がなくなり、すべての要求に対してすべてのマネージド モジュールが実行されます。

IIS マネージャーを使用したモジュールのクエリ、追加、および削除

IIS マネージャーでは、モジュールのクエリ、追加、または削除を簡単に行う方法が用意されています。

  1. IIS マネージャーを開くには、[スタート] をクリックし、[検索] ボックスに「inetmgr」と入力して、Enter キーを押します。
  2. IIS サーバーのコンピューター名をクリックします。
  3. [IIS] カテゴリの [モジュール] アイコンをクリックします。

IIS マネージャー

図 1: IIS マネージャー

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

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

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

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

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

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

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

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

AppCmd.exe を使用してモジュールをインストールするには

コマンド プロンプトで、次のコマンドを入力し、斜体の値をコンピューター上のモジュールの値に置き換えます。

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

Note

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

たとえば、次のコマンドは、既定のドキュメント モジュールをインストールします。

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

モジュールが既に読み込まれているコンピューターでこのコマンドを実行すると、次のようなエラー メッセージが表示されます。

ERROR (メッセージ: 重複するコレクション要素 "DefaultDocumentModule" を追加できませんでした。)

AppCmd.exe を使用してモジュールをアンインストールするには

コマンド プロンプトで、次のコマンドを入力し、斜体の値をコンピューター上のモジュールの値に置き換えます。

Appcmd.exe uninstall module MODULE_NAME

Note

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

たとえば、次のコマンドは、既定のドキュメント モジュールをアンインストールします。 このコマンドは、単に例として示されています。 テスト サーバーでのみ実行してください。

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

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

コマンド プロンプトで、次のコマンドを入力し、斜体の値をコンピューター上のモジュールの値に置き換えます。

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

たとえば、次のコマンドは、既定の Web サイトに対して有効になっているモジュールを一覧表示します。

%windir%\system32\inetsrv\appcmd.exe list modules /app.name:"Default Web Site"

このコマンドは、グローバルにインストールされているモジュールを一覧表示します。

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

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

コマンド プロンプトで、次のコマンドを入力し、斜体の値をコンピューター上のモジュールの値に置き換えます。

Appcmd.exe add module /name:MODULE_NAME /type:MGD_TYPE

たとえば、次のコマンドは、フォーム認証モジュールを既定の Web サイトに追加します。

%windir%\system32\inetsrv\appcmd.exe add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule /app.name:"Default Web Site"

このコマンドは、フォーム認証モジュールをグローバルに追加します。

%windir%\system32\inetsrv\appcmd.exe add module /name:FormsAuthentication /type:System.Web.Security.FormsAuthenticationModule

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

コマンド プロンプトで、次のコマンドを入力し、斜体の値をコンピューター上のモジュールの値に置き換えます。

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

たとえば、次のコマンドは、フォーム認証モジュールを既定の Web サイトから削除します。

%windir%\system32\inetsrv\appcmd.exe delete module FormsAuthentication /app.name:"Default Web Site"

このコマンドは、フォーム認証モジュールをグローバルに削除します。

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

各 App Cmd.exe コマンドの構文に関するヘルプを表示するには

Module オブジェクトの種類でサポートされているコマンドを表示するには、次のコマンドを入力します。

Appcmd.exe module /?

各コマンドの使用法を表示するには、次のコマンドを入力します。

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

モジュール リファレンス

IIS サーバーをカスタマイズする準備ができました。 副作用、機能の損失、またはセキュリティ機能の削除を回避するために、次の一覧を慎重に確認してください。

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

これらのモジュールは要求サービスを提供しませんが、代わりにサーバー エンジンの内部操作を支援します。

モジュール名: UriCacheModule
説明: 構成など、URL 固有のサーバー状態の汎用キャッシュを実装します。 サーバーは、このモジュールを使用して、特定の URL に対する最初の要求でのみ構成を読み取り、変更されるまで後続の要求で再利用します。
構成セクション: なし。
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 すべての要求について URL 取得ごとに状態がキャッシュされるため、パフォーマンスが低下する。
モジュール名: FileCacheModule
説明: サーバー エンジンとモジュールによって開かれたファイルのファイル ハンドルをキャッシュします。
構成セクション: なし。
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 パフォーマンスの低下。 ファイル ハンドルがキャッシュされない場合、すべての要求に対してファイルを開く必要があります。
モジュール名: TokenCacheModule
説明: パスワード ベースの認証スキーム (匿名認証、基本認証、IIS クライアント証明書認証) のための Windows セキュリティ トークンをキャッシュします。
構成セクション: なし。
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 パフォーマンスの低下。 トークンがキャッシュされていない場合、すべての要求に対してユーザーをログオンする必要があります。 パフォーマンスに大きな影響が生じる可能性があります。 たとえば、パスワードで保護された html ページが、保護されている 50 個のイメージを参照している場合、ローカル アカウント データベースへの 51 回の logonUser 呼び出し (よりひどいケースでは外部のドメイン コントローラーへの呼び出し) により、パフォーマンスの問題が発生します。
モジュール名: ManagedEngine
説明: マネージド エンジンには、他のすべてのモジュール内に特別な場所があります。 ASP.NET ランタイムに接続するための IIS 統合を提供する役割を担います。
構成セクション:
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 ASP.NET 統合は無効になります。 アプリケーション プールが統合モードで実行されるときに、<modules> で宣言されたマネージド モジュールおよび <handlers> セクションで宣言された ASP.NET ハンドラーはいずれも呼び出されません。
モジュール名: HttpCacheModule
説明: HttpCacheModule モジュールは、IIS 出力キャッシュと共に、http.sys キャッシュにアイテムをキャッシュするためのロジックも実装します。 構成を使用して、キャッシュ サイズ、出力キャッシュ プロファイルなどを設定します。
構成セクション: System.webServer/caching
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 カーネル モードではコンテンツがキャッシュされなくなります。 キャッシュ プロファイルは無視されます。 HttpCacheModule を削除すると、パフォーマンスとリソースの使用に悪影響を及ぼす可能性があります。
モジュール名: DynamicCompressionModule
説明: 動的コンテンツのメモリ内圧縮を実装します。
構成セクション: system.webServer/httpCompression と system.webServer/urlCompression。
依存関係: 動的圧縮は既定でオフになっているため、依存関係はありません。
モジュール名: StaticCompressionModule
説明: 静的コンテンツの圧縮 (メモリ内およびファイル システム内に永続的) を実装します。
構成セクション: system.webServer/httpCompression および system.webServer/urlCompression
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 圧縮されていないコンテンツがクライアントに送り返されるため、帯域幅が飽和する可能性があります。
モジュール名: DefaultDocumentModule
説明: 既定のドキュメント機能を実装します。 末尾に / が含まれる要求は、既定のドキュメント リスト内のドキュメントに再ルーティングされます。
構成セクション: system.webServer/defaultDocument
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 / への要求 (例: http://localhost/) には、404 エラーが返されます。 directoryBrowsing が有効になっている場合は、ディレクトリ一覧が生成されます。
モジュール名: DirectoryListingModule
説明: ディレクトリの参照機能を実装します。
構成セクション: system.webServer/directoryBrowse
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 既定のドキュメント モジュールも directoryListing モジュールも / の要求を処理しない場合は、空の応答が返されます。
モジュール名: ProtocolSupportModule
説明: カスタムおよびリダイレクトの応答ヘッダーを実装します。 トレースとオプションの HTTP 動詞を実装します。 構成を使用してキープアライブ サポートを許可または無効にするサポートを実装します。
構成セクション: system.webServer/httpProtocol
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 TRACE 要求または OPTIONS 要求には、"405 メソッドが許可されていません" というエラー メッセージが返されます。
モジュール名: 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 つの認証モジュールを構成する必要があります。 HttpUser オブジェクトが設定されている場合、IIS サーバー コアは認証フェーズの後にチェックします。 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 つの認証モジュールを構成する必要があります。 HttpUser オブジェクトが設定されている場合、IIS サーバー コアは認証フェーズの後にチェックします。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合、401.2 エラーが生成されます。
モジュール名: WindowsAuthenticationModule
説明: Windows 認証 (NTLM またはネゴシエート (Kerberos)) を実装します。
構成セクション: system.webServer/security/authentication/windowsAuthentication
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 少なくとも 1 つの認証モジュールを構成する必要があります。 HttpUser オブジェクトが設定されている場合、IIS サーバー コアは認証フェーズの後にチェックします。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合、401.2 エラーが生成されます。
モジュール名: DigestAuthenticationModule
説明: RFC 2617 で説明されているダイジェスト認証を実装します。
構成セクション: system.webServer/security/authentication/digestAuthentication
依存関係: IIS サーバーは、Active Directory ドメインに属している必要があります。
このモジュールを削除した場合の潜在的な問題 少なくとも 1 つの認証モジュールを構成する必要があります。 HttpUser オブジェクトが設定されている場合、IIS サーバー コアは認証フェーズの後にチェックします。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合、401.2 エラーが生成されます。
モジュール名: IISCertificateMappingAuthenticationModule
説明: IIS 証明書マッピングを実装します。 SSL クライアント証明書を Windows アカウントにマッピングします。 Active Directory 証明書のマッピングとは異なり、ユーザー資格情報とマッピング規則は IIS 構成ストア内に格納されます
構成セクション: system.webServer/iisClientCertificateMappingAuthentication
依存関係: このモジュールが機能するように、クライアント証明書を受信することを必須にする SSL を構成する必要があります。
このモジュールを削除した場合の潜在的な問題 少なくとも 1 つの認証モジュールを構成する必要があります。 HttpUser オブジェクトが設定されている場合、IIS サーバー コアは認証フェーズの後にチェックします。 HttpUser オブジェクトは IIS データ構造です。 HttpUser オブジェクトを設定する認証がない場合、401.2 エラーが生成されます。
モジュール名: UrlAuthorizationModule
説明: 構成規則に基づいて認可を実装します。
構成セクション: system.webServer/security/authorization
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 コンテンツを保護する認可規則が評価されなくなります。 保護されるはずのコンテンツが提供される場合があります。
モジュール名: IsapiModule
説明: ISAPI 拡張機能を実装します。
構成セクション: system.webServer/isapiCgiRestriction
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 <handlers> セクションでマップされた ISAPI 拡張機能 (modules="IsapiModule") または明示的に呼び出された 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 の上に ILogPlugin インターフェイスを実装します。 ILogPlugin は、お客様が IIS ログを拡張することを可能にした以前の COM 実装です。 このインターフェイスを使用して IIS を拡張することはお勧めしません。 代わりに、お客様はモジュールを記述し、RQ_LOG_REQUEST 通知をサブスクライブする必要があります。
構成セクション: system.webServer/httpLogging および system.applicationhost/sites/site/logFile/customLogPluginClsid
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 カスタム ログ プラグインが呼び出されなくなります。 たとえば、ODBC ログは ILogPlugin として実装されています。
モジュール名: CustomErrorModule
説明: カスタム エラーと IIS の詳細エラー機能を実装します。
構成セクション: system.webServer/httpErrors
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 IIS は、コア サーバー内でエラーが発生したときに、最小限の情報の空白ページを返します。 リモート ユーザーに、サーバー コンポーネントからの詳細なエラー情報が表示され、情報が開示される可能性があります。
モジュール名: HttpLoggingModule
説明: ログに記録する内容を HTTP.SYS に示すことによって、標準の IIS ログを実装します。
構成セクション: system.applicationHost/log および system.webServer/httpLogging
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 標準の IIS ログが機能しなくなります。
モジュール名: FailedRequestsTracingModule
説明: 失敗した要求のトレースを実装します。 構成を使用して、失敗した要求のルールを定義および設定します。
構成セクション: system.webServer/tracing および system.webServer/httpTracing
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 http 要求のトレースが機能しなくなります。
モジュール名: RequestMonitorModule
説明: IIS の実行時状態および制御インターフェイス (RSCA) を実装します。 RSCA を使用すると、ユーザーは、現在実行中の要求、Web サイトの開始/停止状態、現在実行中のアプリケーション ドメインなどの実行時情報を照会できます。
構成セクション: なし。
依存関係: なし。
このモジュールを削除した場合の潜在的な問題 ツールで、現在実行中の要求を列挙できなくなります。
モジュール名: CgiModule
説明: IIS の上に CGI を実装します。
構成セクション: system.webServer/cgi および 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 は、出力をキャッシュするように構成されたページにキャッシュ応答を出力できません。
モジュール名: セッション
説明: 詳細については、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 機能が動作しません。
モジュール名: プロフィール
説明: 詳細については、ASP.NET 2.0 のドキュメントを参照してください。
構成セクション:
依存関係: ManagedEngine モジュールをインストールする必要があります。
このモジュールを削除した場合の潜在的な問題 ASP.NET プロファイル機能は動作しません。
モジュール名: UrlMappingsModule
説明: 詳細については、ASP.NET 2.0 のドキュメントを参照してください。
構成セクション:
依存関係: ManagedEngine モジュールをインストールする必要があります。
このモジュールを削除した場合の潜在的な問題 ASP.NET URL マッピングが機能しません。