Каковы все учетные записи пользователей для IIS/ASP.NET и чем они отличаются?

В Windows Server 2008 с установленным ASP.NET 4.0 существует целый ряд связанных учетных записей пользователей, и я не могу понять, какая из них, чем они отличаются, и какая действительно является той, под которой работает мое приложение. Вот список:

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • ASP.NET v4.0
  • NETWORK_SERVICE
  • МЕСТНЫЙ СЕРВИС.

Что есть что?

1 ответ

Решение

Это очень хороший вопрос, и, к сожалению, многие разработчики не задают достаточно вопросов о безопасности IIS/ASP.NET в контексте того, чтобы быть веб-разработчиком и настраивать IIS. Так что здесь идет....

Чтобы покрыть перечисленные личности:

IIS_IUSRS:

Это аналог старого IIS6 IIS_WPG группа. Это встроенная группа с настроенной безопасностью так, что любой член этой группы может выступать в качестве удостоверения пула приложений.

IUSR:

Этот аккаунт аналогичен старому IUSR_<MACHINE_NAME> локальная учетная запись, которая была анонимным пользователем по умолчанию для веб-сайтов IIS5 и IIS6 (т. е. настроена на вкладке "Безопасность каталога" свойств сайта).

Для получения дополнительной информации о IIS_IUSRS а также IUSR увидеть:

Общие сведения о встроенных учетных записях пользователей и групп в IIS 7

DefaultAppPool:

Если пул приложений настроен для работы с использованием функции идентификации пула приложений, то "синтезированная" учетная запись называется IIS AppPool\<pool name> будет создан на лету, чтобы использоваться в качестве удостоверения пула. В этом случае будет синтезированный аккаунт под названием IIS AppPool\DefaultAppPool создан для жизни бассейна. Если вы удалите пул, эта учетная запись больше не будет существовать. При применении разрешений к файлам и папкам они должны быть добавлены с помощью IIS AppPool\<pool name>, Вы также не увидите эти учетные записи пула в вашем компьютере. См. Следующее для получения дополнительной информации:

Идентификационные данные пула приложений

ASP.NET v4.0: -

Это будет идентификатор пула приложений для пула приложений ASP.NET v4.0. Увидеть DefaultAppPool выше.

NETWORK SERVICE: -

NETWORK SERVICE учетная запись является встроенной идентификацией, представленной в Windows 2003. NETWORK SERVICE это учетная запись с низким уровнем привилегий, под которой вы можете запускать пулы приложений и веб-сайты. Веб-сайт, работающий в пуле Windows 2003, может по-прежнему выдавать себя за анонимную учетную запись сайта (IUSR_ или любую другую, настроенную как анонимная личность).

В ASP.NET до Windows 2008 вы могли иметь ASP.NET выполнять запросы под учетной записью пула приложений (обычно NETWORK SERVICE). В качестве альтернативы вы можете настроить ASP.NET для олицетворения анонимной учетной записи сайта через <identity impersonate="true" /> установка в web.config файл локально (если этот параметр заблокирован, то это должно быть сделано администратором в machine.config файл).

настройка <identity impersonate="true"> распространен в средах с общим хостингом, где используются общие пулы приложений (в сочетании с настройками частичного доверия для предотвращения отмены олицетворенной учетной записи).

В IIS7.x/ASP.NET контроль олицетворения теперь настраивается с помощью функции настройки проверки подлинности сайта. Таким образом, вы можете настроить для запуска в качестве удостоверения пула, IUSR или определенный пользовательский анонимный аккаунт.

LOCAL SERVICE:

LOCAL SERVICE учетная запись - это встроенная учетная запись, используемая диспетчером управления службами. У него есть минимальный набор привилегий на локальном компьютере. Он имеет довольно ограниченную область применения:

Учетная запись LocalService

LOCAL SYSTEM:

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

Учетная запись LocalSystem

На практике:

На практике предпочтительный подход к защите веб-сайта (если у сайта есть собственный пул приложений, который используется по умолчанию для нового сайта в MMC IIS7), заключается в запуске под Application Pool Identity, Это означает, что идентификация сайта в расширенных настройках пула приложений должна быть Application Pool Identity:

На сайте вы должны настроить функцию аутентификации:

Щелкните правой кнопкой мыши и отредактируйте запись Anonymous Authentication:

Убедитесь, что выбран "Идентификатор пула приложений":

Когда вы начинаете применять права доступа к файлам и папкам, вы предоставляете удостоверение пула приложений независимо от того, какие права требуются. Например, если вы предоставляете удостоверение пула приложений для ASP.NET v4.0 разрешения пула, то вы можете сделать это через проводник:

Нажмите кнопку "Проверить имена":

Или вы можете сделать это с помощью ICACLS.EXE полезность:

 icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ ASP.NET v4.0":(CI) (OI) (M) 

... или... если пул приложений вашего сайта называется BobsCatPicBlog затем:

 icacls c: \ wwwroot \ mysite / grant "IIS AppPool \ BobsCatPicBlog":(CI) (OI) (M) 

Я надеюсь, что это помогает прояснить ситуацию.

Обновить:

Я только что наткнулся на этот отличный ответ от 2009 года, который содержит кучу полезной информации, которую стоит прочитать:

Разница между учетной записью "Local System" и учетной записью "Network Service"?

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