web-dev-qa-db-ja.com

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

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

11
joho0

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

さて、あなたがそれを言わなかったとしても、推測させてください-このアプリはクラシック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、
 IISで匿名ユーザーアカウント
を変更した場合、そこに設定します
有効無効MYDOM\MyName 
無効有効NT Authority\Networkサービス(プールID)
無効無効NT Authority \ネットワークサービス(プールID)
 
14
Amit Naidu