Обзор разрешений IIS7-ApplicationPoolIdentity
мы недавно обновились до IIS7 в качестве основного веб-сервера, и мне нужен обзор с точки зрения разрешений. Ранее при необходимости записи в файловую систему я бы дал пользователю AppPool (сетевая служба) доступ к каталогу или файлу.
в IIS7 я вижу, что по умолчанию пользователь AppPool установлен в ApplicationPoolIdentity. Поэтому, когда я проверяю диспетчер задач, я вижу, что учетная запись пользователя называется 'WebSite.com' выполняется процесс IIS ('Website.com' будучи название веб-сайта в IIS)
однако эта учетная запись пользователя не существует, если я пытаюсь использовать это, чтобы дать разрешения. Итак, как я могу определить, какой пользователь должен дать разрешения тоже?
редактировать ==============================================================================
см. ниже для проблемы в снимке экрана. Наш сайт (www.silverchip.co.uk) работает на имя пользователя SilverChip.co.uk. однако когда я добавляю pemissions, этот пользователь doenst существует!

=================================См. AppPool Image

8 ответов:
ApplicationPoolIdentity на самом деле является лучшей практикой для использования в IIS7. Это динамически созданная, непривилегированная учетная запись. Чтобы добавить файл системы безопасности для конкретного приложения см. В разделе IIS.net'ы "удостоверения пула приложений". Быстрая версия:
Если пул приложений называется " DefaultAppPool "(просто замените этот текст ниже, если он называется по-другому)
- Открыть Проводник Windows
- Выберите файл или справочник.
- щелкните правой кнопкой мыши файл и выберите "Свойства"
- выберите вкладку "Безопасность"
- Нажмите кнопку "Изменить", а затем кнопку" Добавить"
- Нажмите кнопку" Locations " и убедитесь, что вы выбрали местные машины. (не домен Windows, если сервер принадлежит к одному.)
- введите "IIS AppPool\DefaultAppPool" в текстовом поле " введите имена объектов для выбора:". (Не забудьте изменить "DefaultAppPool" здесь к тому, что вы назвали своим пулом приложений.)
- Нажмите кнопку "Проверить имена" и нажмите кнопку "ОК".
Не забудьте использовать локальное имя сервера, а не доменное имя, при разрешении имени "IIS AppPool\DefaultAppPool" (просто напоминание, потому что это немного сбило меня с толку):
в Windows Server 2008 (r2) нельзя назначить удостоверение пула приложений для папки с помощью свойства->безопасность. Вы можете сделать это через командную строку администратора, используя следующее:
icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R)
предоставление доступа к IIS AppPool\YourAppPoolName пользователей может быть не хватает с конфигурациями IIS по умолчанию.
в моем случае, у меня еще ошибка ошибка HTTP 401.3-несанкционированный после добавления пользователя AppPool и это было исправлено только после добавления разрешений на IUSR пользователей.
Это необходимо, потому что по умолчанию анонимный доступ осуществляется с помощью IUSR. Вы можете установить другой конкретный пользователь, пул приложений или продолжить использование IUSR, но не забудьте установить соответствующие разрешения.
кредиты на такой ответ: ошибка HTTP 401.3-несанкционированный
главный ответ от Джона Адамса
вот как это реализовать для людей 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
просто чтобы добавить к путанице, диалоговое окно эффективных разрешений (Проводник Windows) не работает для этих учетных записей. У меня есть сайт "Umbo4", использующий сквозную аутентификацию, и посмотрел на эффективные разрешения пользователя в корневой папке сайта. Тест Check Names разрешил имя "IIS AppPool\Umbo4", но эффективные разрешения показывают, что у пользователя вообще не было разрешений на папку (все флажки сняты).
затем я исключил этого пользователя из папки явно, используя вкладку Безопасность проводника. Это привело к сбою сайта с ошибкой HTTP 500.19, как и ожидалось. Однако эффективные разрешения выглядели точно так же, как и раньше.
я исправил все мои asp.net проблемы просто путем создания нового пользователя под названием IUSER с паролем и добавил его в сетевую службу и группы пользователей. Затем создайте все свои виртуальные сайты и приложения, установите аутентификацию в IUSER с его паролем.. установите высокий уровень доступа к файлам, чтобы включить IUSER и BAM он исправил по крайней мере 3-4 проблемы, включая этот..
Дэйв
часть A: настройка пула приложений
предположим, что пул приложений называется "MyPool" Перейдите в раздел "Дополнительные настройки" пула приложений из диспетчера IIS
прокрутите вниз до "Identity". При попытке изменить значение появится диалоговое окно. Выберите "встроенная учетная запись" и под ней выберите "ApplicationPoolIdentity".
несколько строк ниже "Identity", вы должны найти "загрузить профиль пользователя". Этот значение должно быть установлено в 'True'.
часть B: настройка вашего сайта
- название сайта: SiteName (просто пример)
- физический путь: C:\Whatever (просто пример)
- подключиться... : Пользователь приложения (сквозная аутентификация) (Вышеуказанные настройки можно найти в разделе "Основные настройки" сайта в Диспетчере IIS)
- после настройки основных параметров найдите "аутентификацию" конфигурация под ' IIS ' в главной консоли сайта. Открыть его. Вы должны увидеть опцию для анонимной проверки подлинности. Убедитесь, что он включен. Щелкните правой кнопкой мыши и редактировать...' он. Выберите "Удостоверение Пула Приложений".
часть C: настройка папки
папка, о которой идет речь C:\Whatever
- перейдите в раздел Свойства-общий доступ-расширенный общий доступ-разрешения и отметьте "поделиться этой папкой"
- в то же диалоговое окно, вы найдете кнопку "разрешения". Щелкнуть его.
- откроется новое диалоговое окно. Нажмите Кнопку "Добавить".
- откроется новое диалоговое окно "Выбор пользователей или групп". В разделе "из этого расположения" убедитесь, что имя совпадает с вашим локальным хост-компьютером. Затем в разделе 'введите имена объектов', тип 'ИИС\пул приложений MyPool" и нажмите кнопку "Проверить имена", а затем "ОК'
- дайте полные разрешения на общий доступ для пользователя "MyPool". Примените его и закройте папку свойства
- снова откройте Свойства папки. На этот раз перейдите в раздел Security - Advanced - Permission и нажмите кнопку Добавить. Там будет опция "выбрать принципала" в верхней части, или какой-либо другой вариант, чтобы выбрать пользователя. Щелкнуть его.
- диалоговое окно "Выбор пользователей или групп" откроется снова. Повторите шаг 4.
- дайте все или столько разрешений, которые вам нужны для пользователя "MyPool".
- установите флажок ' заменить все разрешения дочерних объектов...- и подать заявление, и закрыть.
теперь вы можете использовать обзор веб-сайта


Comments