IIS_IUSRS RWアクセスをフォルダーに追加すると、ISUR RWアクセスが自動的に許可されなくなるのはなぜですか?


11

IIS7(Windows Server 2008 x64)を使用しており、匿名認証を使用してWebサイトをセットアップしています。anonユーザーIDはIUSRとして構成されます。アプリケーションがファイルをフォルダーに書き込み、IIS_IUSRSグループにフォルダーへのRWアクセス許可を与えています。これは機能しません。アプリケーションがフォルダーに書き込むことができるように、IUSR RW権限を明示的に指定する必要があります。

アプリケーションプールIDがIIS_IUSRSグループに自動的に追加されるのは私の理解です。IUSR(または任意の匿名ユーザーID)もIIS_IUSRSグループの暗黙のメンバーでもあると想定しました。これが事実であるとは思われません。

トラブルシューティング中に、プロセスモニターを使用してフォルダーへのアクセスを表示し、ネットワークサービス(アプリケーションプールID)がIUSRを偽装している(これは私が予想したことです)と判断しましたが、IIS_IUSRSグループにRW権限を与えると、IUSRがファイルアクセスが拒否されました)。

IUSRがIIS_IUSRSグループのメンバーであるかどうかを誰かが説明できますか?

次のドキュメントを確認しましたが、確かな答えは見つかりませんでした。

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

アプリケーションプールID

回答:


14

これらは2つの異なるものだからです。IIS_IUSRSは、IISワーカープロセスアカウントのグループです。これは、アプリケーションプール自体が実行されるIDを意味します。IUSRは匿名ユーザーIDです。これは、IISがサイトにアクセスしているユーザーであると考えるIDを意味します。

さて、あなたがそれを言わなかったとしても、私が推測させてください-このアプリは古典的なASPですか?(そうでなければ、それが.Netの場合は、偽装を使用している必要があります)。どちらの場合も、リソースは偽装されたID、つまりケースでは匿名ユーザー、つまりIUSRとしてアクセスされます。それがあなたにそれに権利を与えなければならない理由です。.Netでは、偽装をオフにすると、IIS_IUSRSが期待どおりに機能するようになります。クラシックASP(および静的ファイルの場合)では、選択肢はなく、偽装は常に「有効」です。したがって、常に使用されるユーザーIDであり、プールIDではありません。したがって、IIS_IUSRSはプールID用であるため、機能しません。


OPがさらに情報を追加した後に編集:

IUSRとIIS_IUSRSは、名前が違うため、混同しやすいです。それらが異なることを確認する方法は、IIS_IUSRSが、ワーカープロセスグループであるIIS6のIIS_WPGの代わりであることを覚えておくことです。これらのグループには、匿名のIDではなく、プールを実行するアカウントを追加します。匿名の特権はより制限されているはずです。例えば。場合によっては、ドメインアカウントを使用して、他のネットワークリソースへのKerberos委任用のプールを実行することができます。次に、そのサービスアカウントをこのグループに追加します。

偽装が有効になっている場合、プール/プロセスは、指示されたため、ユーザーであるように見せかけます。anon auth(あなたの場合)の場合、そのユーザーはIUSRです。Windows認証の場合は、ユーザーのWindows \ドメインIDになります。これは、プロセスがリソースアクセスのために別のIDに切り替える必要があるため、偽装によってパフォーマンスが低下する理由でもあります。

.NETと匿名認証を使用している場合は、偽装を有効にする理由がわかりません。偽装を使用していない、または必要がない場合は、IIS7の場合のさらに細かい点に注意する必要があります。IUSRを完全になくして、すべての混乱を終わらせることができます。私はあなたがそれを望んでいると思います、そしてそれは私の好みの方法でもあります。必要なのは、プールIDを匿名IDとして再利用するように指示することだけです。

したがって、この後はIIS_IUSRSグループのみを処理する必要があります。しかし、混乱しないでください。これは、これら2つが同じであることを意味するものではありません。プロセスIDがIUSRの代わりになる可能性がありますが、その逆はできません。

注意すべきIIS7のその他のトリック:IIS_IUSRSを見ると、空である可能性があります。これは、プールの起動時に仮想プールIDが自動的に追加されるため、これらのことを心配する必要がないためです。

この表は、スレッド実行IDがどのように決定されるかを明確にするのに役立ちます。

偽装匿名アクセスリソースとしてアクセス

有効有効IIS5 / 6のIUSR_computerまたは、
                                       IIS7のIUSRまたは、
                                       anonユーザーアカウントを変更した場合 
                                       IISでは、そこに設定したものは何でも
有効無効MYDOM \ MyName
無効有効NT Authority \ Network Service(プールID)
無効無効NT Authority \ Network Service(プールID)


私たちは.Net(3.5ターゲット)を使用して定義していますが、偽装を使用している可能性があります。確認するには、開発者に確認する必要があります。私の混乱は、匿名ユーザーIDが自動的にIIS_IUSRSグループのメンバーであると私が想定した(誤っているように思われる)ことに起因しています。彼はそれから私が明確にすることを許可していないので、私が身に着けている場合は私を修正してください。

1)従来のASPを使用して、ファイルアクセス許可は匿名ユーザーIDを使用します。IIS 7以降では、このユーザーはデフォルトでIIS_IUSRSグループのメンバーではありません。2)偽装が有効になっている場合、ASP.Netを使用して、ファイルアクセス許可は匿名ユーザーIDを使用します。IIS 7以降では、このユーザーはデフォルトでIIS_IUSRSグループのメンバーではありません。3)偽装が無効になっている場合、ASP.Netを使用して、ファイルアクセス許可はワーカープロセスIDを使用します。IIS 7以降では、このユーザーはデフォルトで常にIIS_IUSRSグループのメンバーです。

はい、すべての点で完全に正しいです!完全に明確にするために、#1と#2で「IIS anon authが有効な場合」を追加する必要があります。これは、すでにanonを使用していると言っていたため、以前に含める必要はありませんでした。これについて詳しく説明するには、追加した表を参照してください。
アミットナイドゥ

これを明確にしていただきありがとうございます。試行錯誤で見つけたものと一致しますが、これがどこにも明確に文書化されているのを見たことがありません。書き込み権限が必要なIISアプリケーションを設定するときに、サーバーにLUAを採用している管理者にとって重要です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.