web-dev-qa-db-ja.com

IIS_IUSRSに読み取りおよび実行アクセス許可を割り当てると、ネットワークサービスへのアクセスが許可されるのはなぜですか?

匿名認証を使用してセットアップしようとしているクラシックASPサイトがあります。現在のセットアップは次のとおりです。

  • アプリプールID:NetworkService
  • 匿名認証ユーザー:IUSR

サイトのディレクトリのIUSRアカウントとNETWORK SERVICEアカウントに読み取りと実行のアクセス許可を割り当てると、匿名アクセスが可能になります。ただし、何らかの理由でNETWORK SERVICE権限をIIS_IUSRSに割り当てることができ、同じ効果が得られます。アプリプールがApplicationPoolIdentityIDではなくNetworkServiceIDを選択して実行されていることを考えると、これは私には奇妙に思えます。また、net localgroup IIS_IUSRSを使用すると、NETWORK SERVICEがマシンのIIS_IUSRSグループのメンバーではないことがわかります。

では、なぜIIS_IUSRSに権限を割り当てるとNETWORK SERVICEアカウントにアクセスできるのでしょうか?

NETWORK SERVICEで認証できない場合にアプリプールの仮想アカウントを使用しようとする奇妙なフォールバックロジックがあるのではないかと思いましたが、Process Monitorを実行すると、w3wp.exeプロセスがNT Authority\NETWORK SERVICEを使用して正常に認証されたことがわかります。 。何か案は?

役立つ場合は、サーバー情報を次に示します。

  • OS:Windows Server 2008 R2 Standard Service Pack 1
  • IIS:7.5.7600.16385
  • アプリプール:.NET Framework v2.0、クラシックマネージドパイプライン、NetworkService Identity
2
David

IISアプリケーションプールを実行しているアカウントは、実行時にIIS_IUSRSグループに自動的に追加されます。

より正確には、IIS_IUSRSグループのセキュリティトークンは、任意のアプリケーションプールを実行しているプロセスのセキュリティトークンに追加されます。

IIS_IUSRSグループの静的メンバーシップを見ると、何が起こっているのかについて間違った考えがわかります。

Process Explorerの[セキュリティ]タブを見ると、BUILTIN\IIS_IUSRSプロセスのグループの1つとしてw3wp.exeが表示されているはずです。

2
Peter Hahndorf