Обзор разрешений IIS7 - ApplicationPoolIdentity
Недавно мы обновили до IIS7 в качестве основного веб-сервера, и мне нужен обзор с точки зрения разрешений. Раньше, когда мне нужно было писать в файловую систему, я бы предоставил пользователю AppPool (Network Service) доступ к каталогу или файлу.
В IIS7 я вижу, что по умолчанию для пользователя AppPool установлено значение ApplicationPoolIdentity
. Поэтому, когда я проверяю диспетчер задач, я вижу, что учетная запись пользователя под названием "WebSite.com" запускает процесс IIS ( "Website.com" - имя веб-сайта в IIS)
Однако эта учетная запись пользователя не существует, если я пытаюсь использовать ее для предоставления разрешений. Итак, как я могу определить, какой пользователь должен предоставить разрешения?
Изменить ============================================================================================ ================================
См. ниже проблему при съемке экрана. Наш сайт (www.silverchip.co.uk) работает на имя пользователя SilverChip.co.uk. Однако, когда я добавляю pemissions, этот пользователь doenst существует!
=================== =
Ответы
Ответ 1
ApplicationPoolIdentity на самом деле является лучшей практикой для использования в IIS7. Это динамически созданная непривилегированная учетная запись. Чтобы добавить защиту файловой системы для определенного пула приложений, см. IIS.net "Идентификаторы пула приложений". Быстрая версия:
Если пул приложений называется "DefaultAppPool" (просто замените этот текст ниже, если он назван по-другому)
- Откройте проводник Windows
- Выберите файл или каталог.
- Щелкните правой кнопкой мыши файл и выберите "Свойства"
- Выберите вкладку "Безопасность"
- Нажмите кнопку "Изменить", а затем кнопку "Добавить"
- Нажмите кнопку "Locations" и убедитесь, что вы выбрали локальный компьютер. (Не домен Windows, если сервер принадлежит одному.)
- Введите " IIS AppPool\DefaultAppPool " в текстовом поле "Введите имена объектов для выбора:". (Не забудьте изменить здесь "DefaultAppPool" на пул приложений, который вы назвали.)
- Нажмите кнопку "Проверить имена" и нажмите "ОК".
Ответ 2
Не забудьте использовать локальное имя сервера, а не имя домена, при разрешении имени
IIS AppPool\DefaultAppPool
(просто напоминание, потому что это меня немного сбило с толку):
Ответ 3
В Windows Server 2008 (r2) вы не можете назначить идентификатор пула приложений в папку через Properties- > Security. Вы можете сделать это через командную строку администратора, используя следующее:
icacls "c:\yourdirectory" /t /grant "IIS AppPool\DefaultAppPool":(R)
Ответ 4
Предоставление доступа к пользователю IIS AppPool\YourAppPoolName может быть недостаточно для стандартных конфигураций IIS.
В моем случае у меня все еще была ошибка HTTP Error 401.3 - Неавторизовано после добавления пользователя AppPool, и это было исправлено только после добавления разрешений пользователю IUSR.
Это необходимо, поскольку по умолчанию анонимный доступ осуществляется с использованием IUSR. Вы можете установить другого конкретного пользователя, пул приложений или продолжить использование IUSR, но не забудьте установить соответствующие разрешения.
Кредиты к этому ответу: Ошибка HTTP 401.3 - Несанкционированный
Ответ 5
Вверх Отвечать от Джона Адамса
Вот как это реализовать для пользователей 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
Ответ 6
Часть A: Настройка пула приложений
Предположим, что пул приложений называется "MyPool". Перейдите в "Дополнительные параметры" пула приложений из диспетчера IIS.
-
Прокрутите вниз до "Идентичность". Попытка отредактировать значение вызовет диалоговое окно. Выберите "Встроенная учетная запись" и под ней выберите "ApplicationPoolIdentity".
-
Несколько строк ниже "Идентичность", вы должны найти "Загрузить профиль пользователя". Это значение должно быть установлено на "True".
Часть B: Настройка вашего сайта
- Название сайта: SiteName (только пример)
- Физический путь: C:\Независимо (только пример)
- Подключиться как...: пользователь приложения (сквозная аутентификация) (вышеуказанные настройки можно найти в разделе "Основные настройки" сайта в диспетчере IIS)
- После настройки основных параметров найдите конфигурацию "Аутентификация" в разделе "IIS" на главной консоли сайта. Открой это. Вы должны увидеть опцию "Анонимная аутентификация". Убедитесь, что он включен. Затем щелкните правой кнопкой мыши и "Изменить...". Выберите "Идентификация пула приложений".
Часть C: Настройка вашей папки
Папка, о которой идет речь, это C:\Wh независимо
- Перейдите в Свойства - Общий доступ - Расширенный общий доступ - Разрешения и установите флажок "Поделиться этой папкой"
- В том же диалоговом окне вы найдете кнопку "Разрешения". Нажмите на это.
- Откроется новое диалоговое окно. Нажмите "Добавить".
- Откроется новое диалоговое окно "Выбор пользователей или групп". В разделе "Из этого местоположения" убедитесь, что имя совпадает с именем вашего локального хост-компьютера. Затем в разделе "Введите имена объектов" введите "IIS AppPool\MyPool", нажмите "Проверить имена", а затем "ОК".
- Предоставьте пользователю "MyPool" полные права на совместное использование. Примените его и закройте свойства папки
- Снова откройте свойства папки. На этот раз перейдите в Безопасность - Дополнительно - Разрешение и нажмите Добавить. Там будет опция "Выбрать принципала" вверху или какой-то другой вариант, чтобы выбрать пользователя. Нажмите на это.
- Диалоговое окно "Выбор пользователей или групп" откроется снова. Повторите шаг 4.
- Предоставьте пользователю MyPool все или столько разрешений, сколько вам нужно.
- Установите флажок "Заменить все разрешения дочернего объекта...", а также "Применить и закрыть".
Теперь вы должны иметь возможность использовать просмотр веб-сайта
Ответ 7
Чтобы добавить к путанице, диалоговое окно "Эффективные разрешения" (Windows Explorer) не работает для этих логинов.
У меня есть сайт "Umbo4", использующий сквозную аутентификацию, и посмотрел на пользователя "Эффективные разрешения" в корневой папке сайта.
Тест Check Names разрешил имя "IIS AppPool\Umbo4", но "Эффективные разрешения" показывают, что у пользователя вообще не было прав в папке (все флажки сняты).
Я исключил этого пользователя из папки явно, используя вкладку "Безопасность проводника".
Это привело к сбою сайта с ошибкой HTTP 500.19, как и ожидалось. Эффективные разрешения, однако, выглядели точно так же, как и раньше.
Ответ 8
Я исправил все мои проблемы asp.net, просто создав нового пользователя с именем IUSER с паролем и добавив его в сетевую службу и группы пользователей. Затем создайте все свои виртуальные сайты и приложения, установив аутентификацию в IUSER с его паролем.. установите доступ к файлу высокого уровня, чтобы включить IUSER и BAM, он исправил по крайней мере 3-4 проблемы, включая этот.
Дейв