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

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

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

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

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

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

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

8 ответов

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Топ Ответ от Джона Адамса

Вот как реализовать это для людей 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", использующий сквозную аутентификацию, и я посмотрел на Действующие разрешения пользователя в корневой папке сайта. Тест "Проверка имен" разрешил имя "IIS AppPool\Umbo4", но "Действующие разрешения" показывают, что у пользователя вообще не было разрешений для папки (все флажки сняты).

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

Другие вопросы по тегам