166

ASP.NET アプリケーションをホストするために、Win2003 の IIS6 から Win2012 の IIS8 に移動しました。

アプリケーションの特定のフォルダー内で、ファイルを作成および削除する必要があります。ファイルを新しいサーバーにコピーした後、ファイルを削除しようとすると、次のエラーが表示され続けました。

パス「D:\WebSites\myapp.co.uk\companydata\filename.pdf」へのアクセスが拒否されました。

IIS を確認すると、アプリケーションが DefaultAppPool アカウントで実行されていることがわかりますが、 IIS AppPool\DefaultAppPoolを含めるようにこのフォルダーに Windows アクセス許可を設定したことはありません。

代わりに、顧客の悲鳴を止めるために、フォルダーに次のアクセス許可を付与しました。

IUSR

  • 読み取りと実行
  • フォルダの内容を一覧表示する
  • 読んだ
  • 書く

IIS_IUSRS

  • 変更
  • 読み取りと実行
  • フォルダの内容を一覧表示する
  • 読んだ
  • 書く

これでうまくいっているように見えますが、あまりにも多くの権限が設定されていることが懸念されます。ここでIUSRが実際に必要かどうかについて、矛盾する情報をオンラインで読みました。このフォルダーでドキュメントを作成および削除するのに十分なユーザー/権限を明確にすることはできますか? また、IUSR は IIS_IUSRS グループの一部ですか?

更新と解決策

以下の私の回答をご覧ください。最近のいくつかの提案はよく考えられていなかったか、安全でさえなかったので(IMO)、悲しいことにこれをしなければなりませんでした。

4

6 に答える 6

173

私は自分の回答を投稿するのは嫌いですが、最近、私が自分の質問に投稿した解決策を無視した回答がいくつかあり、無謀にほかならないアプローチを示唆しています。

つまり、Windows ユーザー アカウントの権限を編集する必要はまったくありません。そうすることはリスクをもたらすだけです。このプロセスは、継承された特権を使用して IIS で完全に管理されます。

正しいユーザー アカウントへの変更/書き込みアクセス許可の適用

  1. [サイト] リストの下にドメインが表示されたら右クリックし、[アクセス許可の編集] を選択します。

    ここに画像の説明を入力

    [セキュリティ] タブの下に、MACHINE_NAME\IIS_IUSRSが表示されます。これは、IIS がディレクトリに対する読み取り専用アクセス許可を自動的に持つことを意味します (たとえば、サイトで ASP.Net を実行するため)。 このエントリを編集する必要はありません

    ここに画像の説明を入力

  2. [編集] ボタンをクリックし、[追加... ] をクリックします。

  3. テキスト ボックスに を入力し、ドメイン名またはサイトにアクセスしているアプリケーション プールIIS AppPool\MyApplicationPoolNameに置き換えます。MyApplicationPoolNameIIS AppPool\mydomain.com

    ここに画像の説明を入力

  4. 名前の確認ボタンを押します。入力したテキストが変換されます (下線に注意してください)。

    ここに画像の説明を入力

  5. [ OK]を押してユーザーを追加します

  6. 新しいユーザー (ドメイン) を選択すると、変更または書き込みのアクセス許可を安全に提供できます。

    ここに画像の説明を入力

于 2016-04-13T11:39:39.450 に答える
8

サイト フォルダーにアクセス許可を追加したときIIS_IUSRS、JavaScript や CSS などのリソースにはまだアクセスできませんでした (エラー 401、禁止されています)。ただし、を追加するIUSRと、機能し始めました。したがって、 のアクセス許可を削除することはできませんIUSR

于 2014-07-11T11:37:32.257 に答える
4

@EvilDr AD 環境内に IUSR_[identifier] アカウントを作成し、特定のアプリケーション プールをその IUSR_[identifier] アカウントで実行できます。

「アプリケーション プール」 > 「詳細設定」 > 「ID」 > 「カスタム アカウント」

詳細設定で、Web サイトを「特定のユーザー」ではなく「アプリケーション ユーザー (パススルー認証)」に設定します。

ここで、その IUSR_[identifier] に、ファイルとフォルダーに対する適切な NTFS アクセス許可を付与します。たとえば、companydata を変更します。

于 2013-02-21T13:23:56.483 に答える
0

特定のユーザーを使用します(アプリケーションユーザーではありません)。次に、アプリケーションで偽装を有効にします。これを行うと、特定のユーザーとして設定されているアカウントが何であれ、それらの資格情報はそのサーバー上のローカルリソースにアクセスするために使用されます(外部リソース用ではありません)。

特定のユーザー設定は、ローカルリソースにアクセスするためのものです。

于 2013-02-24T01:20:48.853 に答える