IIS 7 の組み込みのユーザー アカウントとグループ アカウントについて

作成者: Saad Ladki

はじめに

以前のバージョンの IIS では、インストール中に IUSR_MachineName というローカル アカウントが作成されます。 IIS では、匿名認証が有効になっている場合は常に、既定で IUSR_MachineName アカウントが使用されていました。 これは、FTP と HTTP の両方のサービスで使用されていました。

IIS_WPG という名前のグループもありました。これは、すべてのアプリケーション プール ID のコンテナーとして使用されていました。 IIS のセットアップ中に、システム上のすべての適切なリソースに IIS_WPG グループの正しいユーザー権限が付与されたため、管理者は新しいアプリケーション プール アカウントを作成するときにそのグループに自分の ID を追加するだけで済みました。

このモデルはうまく機能しましたが、欠点もありました。IUSR_MachineName アカウントと IIS_WPG グループは両方とも、それらが作成されたシステムに対してローカルでした。 Windows 内のすべてのアカウントとグループには、それを他のアカウントと区別するセキュリティ識別子 (SID) と呼ばれる一意の番号が与えられます。 ACL を作成される場合は、SID のみが使用されます。 以前のバージョンの IIS の設計の一部として、IUSR_MachineName が metabase.xml ファイルに含まれていたため、あるコンピューターから別のコンピューターに metabase.xml をコピーしようとしても機能しませんでした。 他方のコンピューターのアカウントは別の名前になりました。

さらに、SID がコンピューターごとに異なるため、あるコンピューターから別のコンピューターに ACL を 'xcopy /o' することはできませんでした。 回避策の 1 つはドメイン アカウントを使用することでしたが、そのためにはインフラストラクチャにアクティブなディレクトリを追加する必要がありました。 IIS_WPG グループにもユーザー権限に関して同様の問題がありました。 あるコンピューターのファイル システムに IIS_WPG 用の ACL を設定し、それらを別のコンピューターに 'xcopy /o' しようとすると、失敗しました。 IIS 7 以降では、組み込みのアカウントとグループを使用して、このエクスペリエンスが改善されました。

組み込みのアカウントとグループは、オペレーティング システムによって常に一意の SID を持つことが保証されます。 IIS 7 以降では、これをさらに進めて、新しいアカウントとグループで使用される実際の名前がローカライズされないようにしました。 たとえば、インストールする Windows の言語に関係なく、IIS アカウント名は常に IUSR になり、グループ名は IIS_IUSRS になります。

要約すると、IIS 7 以降では次のものが提供されます。

  • IUSR 組み込みアカウントが、IUSR_MachineName アカウントに置き換わります。
  • IIS_IUSRS 組み込みグループが IIS_WPG グループに置き換わります。

IUSR アカウントは組み込みアカウントであるため、パスワードは必要なくなりました。 論理的には、NETWORKSERVICE アカウントまたは LOCALSERVICE アカウントと同じであると考えることができます。 新しい IUSR アカウントと IIS_IUSRS グループの両方については、以下のセクションで詳しく説明します。

新しい IUSR アカウントについて

IIS 7 以降では、IUSR アカウントが IUSR_MachineName アカウントに置き換わります。 Windows Server 2008 に含まれる FTP 6 互換サーバーをインストールする場合は、IUSR_MachineName アカウントが引き続き作成され、使用されます。 Windows Server 2008 に含まれる FTP サーバーをインストールしない場合、このアカウントは作成されません。

この組み込みアカウントはパスワードを必要とせず、匿名認証が有効な場合に使用される既定の ID になります。 applicationHost.config ファイルを見ると、次の定義を確認できます。

<anonymousAuthentication enabled="true" userName="IUSR" defaultLogonDomain="" />

これは、IIS に対して、すべての匿名認証要求に新しい組み込みアカウントを使用するように指示します。 最大の利点は、次のことが可能になることです。

  • Windows エクスプローラーまたは多くのコマンド ライン ツールのいずれかを使用して、IUSR アカウントのファイル システムのアクセス許可を設定する。
  • このアカウントのパスワードの有効期限が切れることを心配する必要がなくなる。
  • xcopy /o を使用して、ファイルと共にその所有権と ACL 情報を別のコンピューターにコピーする。

Note

IUSR アカウントは、ネットワーク上で匿名で動作するという点で LOCALSERVICE に似ています。 NETWORKSERVICE アカウントと LOCALSYSTEM アカウントはマシン ID として機能できますが、IUSR アカウントは、ユーザー権限の昇格が必要となるため機能できません。 ネットワークに対する権限が匿名アカウントに必要な場合、以前に匿名認証で行ったように、新しいユーザー アカウントを作成し、ユーザー名とパスワードを手動で設定する必要があります。

IIS マネージャーを使用してネットワークに対する権限を匿名アカウントに付与する:

  1. [スタート] をクリックし、「INetMgr.exe」と入力し、Enter キーを押します。 プロンプトが表示されたら、[続行] をクリックしてアクセス許可を昇格します。
  2. [接続] セクションで、コンピューターの名前の横にある + ボタンをクリックします。
  3. IIS マネージャーで、管理するサイトをダブルクリックします。
  4. [機能ビュー] で、[認証] をダブルクリックします。
  5. [匿名認証] を選択し、[アクション] ペインで [編集] をクリックします。
  6. [匿名認証資格情報の編集] ダイアログ ボックスで、[特定のユーザー] オプションをクリックし、[設定] をクリックします。
  7. [資格情報の設定] ダイアログ ボックスに、必要なユーザー名とパスワードを入力し、[OK] をクリックします。

新しい IIS_IUSRS グループについて

IIS_IUSRS グループが IIS_WPG グループに置き換わります。 この組み込みグループは、必要なすべてのファイルおよびシステム リソースにアクセスできるため、アカウントをこのグループに追加すると、アプリケーション プール ID としてシームレスに機能できます。

組み込みアカウントと同様に、この組み込みグループによって、xcopy のデプロイを妨げるいくつかの障害が解決されます。 (IIS 6.0 システムで使用可能だった) IIS_WPG グループのファイルに対するアクセス許可を設定し、それらのファイルを別の Windows コンピューターにコピーしようとすると、グループの SID がコンピューター間で異なるため、サイトの構成が壊れます。

IIS 7 以降のグループ SID は Windows Server 2008 を実行しているすべてのシステムで同じであるため、コンピューター間でファイルを移動するときに、'xcopy /o' を使用して ACL と所有権情報を保持できます。 これにより、xcopy のデプロイが簡単になります。

IIS 7 以降ではまた、アプリケーション プール ID を構成し、必要なすべての変更を行うプロセスも簡単になります。 IIS でワーカー プロセスを開始するときに、プロセスで使用されるトークンを作成する必要があります。 このトークンが作成されると、IIS により、実行時に IIS_IUSRS メンバーシップがワーカー プロセス トークンに自動的に追加されます。 'アプリケーション プール ID' として実行されるアカウントを明示的に IIS_IUSRS グループに含める必要はなくなりました。 この変更により、障害の少ないシステムを設定できるようになり、全体的なエクスペリエンスがより好ましいものになります。

この機能を無効にしてアカウントを IIS_IUSRS グループに手動で追加する場合は、manualGroupMembership 値を 'true' に設定してこの新しい機能を無効にします。 次の例は、これを defaultAppPool に対して行う方法を示しています。

<applicationPools>
    <add name="DefaultAppPool">
        <processModel manualGroupMembership="true" />
    </add>
</applicationPools >