Обзор разрешений IIS7-ApplicationPoolIdentity
мы недавно обновились до IIS7 в качестве основного веб-сервера, и мне нужен обзор с точки зрения разрешений. Ранее при необходимости записи в файловую систему я бы предоставил пользователю AppPool (сетевой службе) доступ к каталогу или файлу.
в IIS7 я вижу, что по умолчанию пользователь AppPool установлен в ApplicationPoolIdentity
. Поэтому, когда я проверяю диспетчер задач, я вижу, что учетная запись пользователя называется 'WebSite.com' выполняется процесс IIS ('Website.com' быть названием веб-сайта в Службы IIS)
однако эта учетная запись пользователя не существует, если я пытаюсь использовать это, чтобы дать разрешения. Итак, как определить, какой пользователь также должен предоставить разрешения?
изменить ==============================================================================
см. ниже для проблемы в снимке экрана. Наш сайт (www.silverchip.co.uk) работает на SilverChip имя пользователя.ко.Великобритания. Однако, когда я добавить pemissions, этот пользователь ни существовать!
=================================См. AppPool Image
8 ответов
ApplicationPoolIdentity на самом деле является лучшей практикой для использования в IIS7. Это динамически созданная, непривилегированная учетная запись. Чтобы добавить безопасность файловой системы для определенного пула приложений, см. IIS.net " S "идентификаторы пула приложений". Быстрая версия:
Если пул приложений называется " DefaultAppPool "(просто замените этот текст ниже, если он назван по-другому)
- Откройте Проводник Windows
- Выберите файл или справочник.
- щелкните правой кнопкой мыши файл и выберите "Свойства"
- выберите вкладку "Безопасность"
- Нажмите кнопку "Изменить", а затем кнопку" Добавить"
- Нажмите кнопку" местоположения " и убедитесь, что вы выбрали местные машины. (не домен Windows, если сервер принадлежит одному из них.)
- Enter"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", использующий сквозную аутентификацию, и посмотрел на эффективные разрешения пользователя в корневой папке сайта. Проверка имен разрешила имя "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
- перейти к свойствам-совместное использование-расширенный доступ-разрешения, и отметьте "поделиться этой папкой"
- в то же диалоговое окно, вы найдете кнопку "разрешения". Щелкнуть его.
- откроется новое диалоговое окно. Нажмите Кнопку "Добавить".
- откроется новое диалоговое окно "Выбор пользователей или групп". В разделе "из этого места" убедитесь, что имя совпадает с именем вашего локального хост-компьютера. Затем в разделе "введите имена объектов "введите" IIS AppPool\MyPool "и нажмите " Проверить имена", а затем "Ok"
- дайте полный доступ к разрешениям для пользователя "MyPool". Примените его и закройте папку свойства
- снова откройте Свойства папки. На этот раз перейдите в Security - Advanced - Permission и нажмите кнопку Добавить. Там будет опция "выбрать принципала" в верхней части, или какой-то другой вариант, чтобы выбрать пользователя. Щелкнуть его.
- диалоговое окно "Выбор пользователей или групп" откроется снова. Повторите шаг 4.
- дать все разрешения, необходимые для MyPool пользователя.
- Check ' заменить все разрешения дочерних объектов..."и применить и закрыть.
теперь вы должны иметь возможность использовать обзор веб-сайта