Які всі облікові записи користувачів для IIS / ASP.NET і чим вони відрізняються?


282

У Windows Server 2008 із встановленим ASP.NET 4.0 є ціла низка пов’язаних облікових записів користувачів, і я не можу зрозуміти, що з них полягає в тому, як вони відрізняються, а в яких НАДАЛЬНО той, під яким працює моя програма. Ось список:

  • IIS_IUSRS
  • IUSR
  • DefaultAppPool
  • ASP.NET v4.0
  • NETWORK_SERVICE
  • МІСЬКЕ ОБСЛУГОВУВАННЯ.

Що таке?


А за допомогою Windows Server 2012 з ASP.NET 4.0 або вище?
Кікенет

Відповіді:


432

Це дуже гарне запитання, і, на жаль, багато розробників не задають достатньо питань щодо безпеки IIS / ASP.NET в контексті веб-розробника та налаштування IIS. Тож ось іде….

Щоб висвітлити вказані особи:

IIS_IUSRS:

Це аналогічно старій IIS_WPGгрупі IIS6 . Це вбудована група з безпекою, налаштованою таким чином, що будь-який член цієї групи може діяти як ідентифікація пулу програм.

IUSR:

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

Для отримання додаткової інформації про IIS_IUSRSта IUSRдивіться:

Розуміння вбудованих облікових записів користувачів та груп у IIS 7

DefaultAppPool:

Якщо пул додатків налаштований на запуск за допомогою функції Identity Pool Application, тоді «hes синтезований» обліковий запис, який називається, 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 Account

LOCAL SYSTEM:

Ви не питали про це, але я додаю для повноти. Це локальний вбудований рахунок. Він має досить широкі привілеї та довіру. Ніколи не слід налаштовувати веб-сайт або пул додатків для роботи під цим посвідченням.

Обліковий запис LocalSystem

На практиці:

На практиці бажаний підхід до захисту веб-сайту (якщо сайт має власний пул додатків - що є типовим для нового сайту в MMC IIS7) Application Pool Identity. Це означає встановлення ідентичності сайту в розширених налаштуваннях пулу додатків на Application Pool Identity:

введіть тут опис зображення

Потім на веб-сайті слід налаштувати функцію аутентифікації:

введіть тут опис зображення

Клацніть правою кнопкою миші та відредагуйте запис анонімної автентифікації:

введіть тут опис зображення

Переконайтесь, що вибрано "Ідентифікація пулу програм" :

введіть тут опис зображення

Коли ви приймете застосовувати дозволи для файлів і папок, ви надаєте ідентифікатор пулу додатків незалежно від прав. Наприклад, якщо ви надаєте ідентифікатор пулу додатків для ASP.NET v4.0дозволів пулу, ви можете зробити це через Explorer:

введіть тут опис зображення

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

введіть тут опис зображення

Або ви можете зробити це за допомогою 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 року, яка містить купу корисної інформації, яку варто прочитати:

Різниця між обліковим записом "Локальна система" та "Мережевою службою"?


не погоджуйтесь використовувати того самого користувача для анонімної автентифікації та ідентифікації пулу додатків ... якщо вам потрібно надати apppoolidentity, напишіть дозвіл на папку ....
giammin

1
@giammin - чому б і ні? Якщо у вас немає особливого випадку, використання ідентифікацій пулу додатків є найбільш безпечним підходом за умови, що кожен сайт має власний пул додатків. Ненавиджувати "звернення до авторитету", але він був спільним інженером веб-хостингу та хлопцем із безпеки протягом 15 років, цей підхід не працює на IIS7 +.
Кев

@Kev просто мені не подобається давати дозвіл на написання на сайті анонімному користувачу
giammin

1
Ваші пули програм можуть бути ще більш конкретними, використовуючи IIS AppPool \ <ім'я_файлу>. У відповідній примітці IIS Express працюватиме лише з IIS AppPool \ ASP.NET v4.0, оскільки віртуальні акаунти пулу додатків не створені.
kevindaub

@ daub815 - IIS Express працює по-іншому, оскільки він повинен був працювати під вашим входом у систему та запускатись у Windows, а також при необхідності відключатися при розробці та налагодженні. Насправді він фактично не використовує або не має залежності від пулів та інфраструктури Full Fat IIS. Намір IIS Express полягав у тому, щоб надати розробникам стільки ж поведінки, смаку та конфігурації, як справжнє, тому що веб-сервер іграшок VS був сильно обмежений ...
Кев
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.