Обзор разрешений IIS7 - ApplicationPoolIdentity - PullRequest
331 голосов
/ 07 сентября 2011

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

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

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

Изменить ===================================================================================

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

enter image description here

================================ См. Изображение AppPool

enter image description here

Ответы [ 8 ]

631 голосов
/ 07 сентября 2011

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

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

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

Не забудьте использовать локальное имя сервера, а не имя домена, при разрешении имени

IIS AppPool\DefaultAppPool

(просто напоминание, потому что это меня немного подвело): enter image description here

26 голосов
/ 01 мая 2014

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

icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R)
25 голосов
/ 13 марта 2016

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

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

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

authentication tab

Кредиты для этого ответа: Ошибка HTTP 401.3 - Несанкционировано

3 голосов
/ 11 июня 2018

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

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

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

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

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

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

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

Папка, о которой идет речь, - C: \ Wh независимо

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

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

3 голосов
/ 27 января 2016

Главный ответ от Джона Адамса

Вот как это реализовать для людей из 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
1 голос
/ 13 июля 2016

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

Дейв

1 голос
/ 06 января 2015

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

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

...