Обзор разрешений IIS7 – ApplicationPoolIdentity

Недавно мы обновили IIS7 в качестве основного веб-сервера, и мне нужен обзор с точки зрения разрешений. Раньше, когда мне нужно было писать в файловую систему, я бы предоставил пользователю AppPool (Network Service) доступ к каталогу или файлу.

В IIS7 я вижу, что по умолчанию для пользователя AppPool установлено значение ApplicationPoolIdentity . Поэтому, когда я проверяю диспетчер задач, я вижу, что учетная запись пользователя под названием «WebSite.com» запускает процесс IIS («Website.com» – название веб-сайта в IIS)

Однако эта учетная запись пользователя не существует, если я пытаюсь использовать ее для предоставления разрешений. Итак, как я могу определить, какой пользователь должен предоставить разрешения?

Редактировать ========================================================================================== =============================

См. Ниже проблему при съемке экрана. Наш сайт (www.silverchip.co.uk) работает на имя пользователя SilverChip.co.uk. Однако, когда я добавляю pemissions, этот пользователь doenst существует!

введите описание изображения здесь

========================== Просмотр изображения AppPool

введите описание изображения здесь

ApplicationPoolIdentity на самом деле является лучшей практикой для использования в IIS7. Это динамически созданная, непривилегированная учетная запись. Чтобы добавить безопасность файловой системы для определенного пула приложений, см. « Идентификаторы пула приложений» IIS.net . Быстрая версия:

Если пул приложений называется «DefaultAppPool» (просто замените этот текст ниже, если он назван по-разному)

  1. Открыть проводник Windows
  2. Выберите файл или каталог.
  3. Щелкните правой кнопкой мыши файл и выберите «Свойства»
  4. Выберите вкладку «Безопасность»
  5. Нажмите «Изменить», а затем кнопку «Добавить»
  6. Нажмите кнопку «Местоположения» и убедитесь, что вы выбрали локальный компьютер. ( Не домен Windows, если сервер принадлежит одному.)
  7. Введите « IIS AppPool \ DefaultAppPool » в поле «Введите имена объектов, чтобы выбрать:». (Не забудьте изменить «DefaultAppPool» здесь, как вы назвали пул приложений.)
  8. Нажмите кнопку «Проверить имена» и нажмите «ОК».

Не забывайте использовать локальное имя сервера, а не имя домена, при разрешении имени «IIS AppPool \ DefaultAppPool» (просто напоминание, потому что это немного сработало): введите описание изображения здесь

В Windows Server 2008 (r2) вы не можете назначить идентификатор пула приложений в папку через Properties-> Security. Вы можете сделать это через командную строку администратора, используя следующее:

 icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R) 

Предоставление доступа к пользователю IIS AppPool \ YourAppPoolName может быть недостаточным с настройками по умолчанию IIS.

В моем случае у меня все еще была ошибка HTTP Error 401.3 – Неавторизованная после добавления пользователя AppPool, и она была исправлена ​​только после добавления разрешений пользователю IUSR .

Это необходимо, потому что по умолчанию Анонимный доступ выполняется с помощью IUSR . Вы можете установить другого конкретного пользователя, пул приложений или продолжить использование IUSR, но не забудьте установить соответствующие разрешения.

закладка аутентификации

Кредиты на этот ответ: Ошибка HTTP 401.3 – Несанкционированный

Ответ от Jon Adams

Вот как это реализовать для людей PowerShell

 $IncommingPath = "F:\WebContent" $Acl = Get-Acl $IncommingPath $Ar = New-Object system.security.accesscontrol.filesystemaccessrule("IIS AppPool\DefaultAppPool","FullControl","ContainerInherit, ObjectInherit", "None", "Allow") $Acl.SetAccessRule($Ar) Set-Acl $IncommingPath $Acl 

Я исправил все мои проблемы asp.net, просто создав нового пользователя с именем IUSER с паролем и добавив его в сетевую службу и группы пользователей. Затем создайте все свои виртуальные сайты и приложения, установив аутентификацию для IUSER с его паролем .. установите доступ к файлу высокого уровня, чтобы включить IUSER и BAM, он исправил по крайней мере 3-4 проблемы, включая этот.

Дейв

Чтобы добавить к путанице, диалоговое окно «Эффективные разрешения» (Windows Explorer) не работает для этих логинов. У меня есть сайт «Umbo4», используя сквозную аутентификацию, и просмотрел «Эффективные разрешения пользователя» в корневой папке сайта. Тест Check Names разрешил имя «IIS AppPool \ Umbo4», но «Эффективные разрешения» показывают, что у пользователя не было никаких разрешений в папке (все флажки сняты).

Затем я исключил этого пользователя из папки, используя вкладку «Безопасность проводника». Это привело к сбою сайта с ошибкой HTTP 500.19, как и ожидалось. Эффективные разрешения, однако, выглядели точно так же, как и раньше.

Часть A: настройка пула приложений

Предположим, что пул приложений называется «MyPool». Перейдите в «Дополнительные настройки» пула приложений из диспетчера IIS

  1. Прокрутите вниз до «Идентификация». При попытке изменить значение появится диалоговое окно. Выберите «Встроенная учетная запись» и под ним выберите «ApplicationPoolIdentity».

  2. Несколько строк ниже «Identity», вы должны найти «Загрузить профиль пользователя». Для этого значения должно быть установлено значение «True».

Часть B: Настройка вашего сайта

  1. Имя веб-сайта: SiteName (всего лишь пример)
  2. Физический путь: C: \ Все, что угодно (просто пример)
  3. Подключить как …: пользователь приложения (сквозная аутентификация) (приведенные выше параметры можно найти в разделе «Основные настройки» сайта в диспетчере IIS)
  4. После настройки основных параметров найдите конфигурацию «Аутентификация» в разделе «IIS» на главной консоли сайта. Открой это. Вы должны увидеть опцию «Анонимная аутентификация». Убедитесь, что он включен. Затем щелкните правой кнопкой мыши и выберите «Изменить …». Выберите «Идентификатор пула приложений».

Часть C: Настройка вашей папки

Эта папка – C: \ Whatever

  1. Перейдите в раздел «Свойства – общий доступ» – «Расширенный доступ» – «Разрешения» и отметьте «Поделиться этой папкой»
  2. В том же диалоговом окне вы найдете кнопку «Разрешения». Нажмите на нее.
  3. Откроется новое диалоговое окно. Нажмите «Добавить».
  4. Откроется новое диалоговое окно «Выбрать пользователей или группы». В разделе «Из этого местоположения» убедитесь, что имя совпадает с вашим локальным компьютером. Затем в разделе «Введите имена объектов» введите «IIS AppPool \ MyPool» и нажмите «Проверить имена», а затем «Хорошо»,
  5. Дайте полные права доступа для пользователя «MyPool». Примените его и закройте свойства папки
  6. Откройте свойства папки снова. На этот раз перейдите в раздел «Безопасность – Дополнительно – разрешение» и нажмите «Добавить». В верхней части появится опция «Выбрать принципала» или другой вариант выбора пользователя. Нажмите на нее.
  7. Откроется диалоговое окно «Выбрать пользователей или группы». Повторите шаг 4.
  8. Предоставьте все или несколько разрешений пользователю «MyPool».
  9. Установите флажок «Заменить все разрешения дочерних объектов …» и «Применить и закрыть».

Теперь вы сможете использовать просмотр веб-сайта

  • Как использовать su для выполнения остальной части сценария bash как этого пользователя?
  • Метод checkSelfPermission не работает в targetSdkVersion 22
  • Разрешение отклонено (отсутствует разрешение INTERNET?): Но предоставляется разрешение
  • Веб-просмотр Android: загрузка файлов, таких как браузеры
  • Что мне делать: для этого требуется android.permission.INTERACT_ACROSS_USERS_FULL
  • проблема с правами на запись файла в папку «Program Files»
  • Как я могу получить страшные разрешения WRITE_SECURE_SETTINGS для моего приложения для Android?
  • Разрешение отклонено в hdfs
  • Android-разрешение не работает, даже если я его объявил
  • Ошибка MySQL 1449: пользователь, указанный как определитель, не существует
  • Диалоговое окно подтверждения разрешения хоста
  • Давайте будем гением компьютера.