Права пользователя, необходимые для пользователя пула приложений IIS 7.5 (пользователь домена, а не AppPoolIdentity)
У нас есть домен active directory (назовем его foodomain
) и учетная запись пользователя домена (foodomainfooAppPoolUser
), используемая для идентификации пула приложений IIS.
Мы хотим запустить пул приложений под этой учетной записью пользователя, а не под Network Service
или новым AppPoolIdentity
, поскольку мы должны получить доступ к SQL server и иметь несколько приложений на IIS (с собственными пулами приложений), обращающихся к различным базам данных.
Проблема в том, что я не могу найти четкого объяснения, какие права пользователя должны быть установлены для этой учетной записи пользователя и как IIS должен быть настроен, чтобы это работало.
Сначала я получил ошибки (к сожалению, я не помню, какие именно), затем я добавил fooAppPoolUser
в локальную группу администраторов (Administrators
, я знаю, было только для тестирования), затем это сработало. Теперь я снова удалил пользователя, перезапустил IIS, и он все еще работает.
Так что я немного запутался и хотел бы знать, как должна быть конфигурация / настройка, чтобы она работала.
Где-то я читал, что учетная запись должна иметь " олицетворять клиента после аутентификации " права пользователя. Именно поэтому я добавил учетную запись в группу администраторов (назначение прав пользователя блокируется с помощью групповой политики, но это может быть изменено, если это действительно необходимо.
Я надеюсь, что мне было достаточно ясно, что это за вопрос, и надеюсь, что у кого-то есть ответ.4 ответа:
Это расстраивает, что эту информацию так трудно найти, поскольку некоторые администраторы безопасности, похоже, наслаждаются жестоким и необычным наказанием изменения параметров политики по умолчанию, чтобы помешать установке приложений в IIS.
Вот что, по моему мнению, вы должны сделать, чтобы позволить учетной записи работать в качестве идентификатора ApplicationPool:
- выполните команду
aspnet_regiis -ga DOMAIN\USER
, чтобы добавить разрешения на доступ к Метабазе IIS. (точно что это значит, кто знает?) ссылка aspnet_regiis- Добавить пользователь в группе
IIS_IUSRS
. Это может быть сделано автоматически в зависимости от параметра конфигурации IIS processmodel.manualGroupMembership, но проще всего добавить его самостоятельно.- Если политика безопасности использует Windows defaults, вот и все. Если политика безопасности заблокирована, возможно, потребуется включить определенные права пользователя для учетной записи. Те, которые у вас есть по умолчанию для ApplicationPoolIdentities (который кажется хорошим местом для начала, но не обязательно все необходимые):
- доступ к этому компьютер из сети
- настройка квот памяти для процесса
- разрешить локальный вход
- проверка обхода обхода
- Создание сведений аудита безопасности
- олицетворение клиента после аутентификации - (часто недоступно по умолчанию в заблокированных средах)
- войдите в систему как пакетное задание - (часто недоступно по умолчанию в заблокированных средах)
- войдите в систему как сервис - (я не уверен это необходимо)
- замените маркер уровня процесса
- Если вы используете Windows auth и Kerberos (provider=
Negotiate
), то в зависимости от URL-адреса и если включена функция auth в режиме ядра, возможно, потребуется настроить SPN. Я предлагаю перейти на NTLM, если это возможно. В противном случае смотрите статьи ниже о SPNs и найдите дружественного администратора домена, чтобы добавить их для вас.Веселое чтение:
- разрешения по умолчанию и права пользователя для IIS 7.0, 7.5, 8.0. Это лучшая ссылка, Смотрите права пользователя внизу.
- права пользователя (В Windows Server 2008, но все равно интересно и полезно, Так как это длинная статья, вы можете нажать CTRL+F, чтобы найти комментарии, связанные с IIS)
- назначение прав пользователя на сервере 2008 R2+. Вы должны углубиться в каждое право, чтобы увидеть, что он упоминает об IIS.
- Как создать учетную запись службы для ASP.NET 2.0 приложение - жаль, что нет более поздней версии этого статья.
- контрольный список SPN для Kerberos на IIS7/7.5
- как использовать SPNs - применяется к IIS6 или 7/8, если аутентификация в режиме ядра отключена.
Причина, по которой ваше приложение работало после удаления прав администратора, заключается в том, что ваше приложение было скомпилировано во временную папку Framework с использованием прав администратора - ваше приложение работало после удаления прав администратора, потому что приложение было скомпилировано. Если вы обновите приложение и оно потребует повторной компиляции, учетная запись пула приложений снова будет нуждаться в доверии.
Сначала я получил ошибки (к сожалению, я не могу вспомнить, какие именно), затем Я добавил: fooAppPoolUser в локальную группу администраторов (администраторы, I знаете, было только проверить), то это сработало. Теперь я снова удалил пользователя, перезапустил IIS, и он все еще работает.
Арьен,
Для шагов настройки в IIS я бы посмотрел на указание идентификатора для пула приложений (IIS 7) в TechNet.
Я нашел следующую ссылку, ответившую на аналогичный вопрос, который у меня был: http://www.iis.net/learn/manage/configuring-security/application-pool-identities
В основном, ApplicationPoolIdentity -это виртуальная учетная запись пользователя, которая по-прежнему ведет себя как сетевая служба, но без некоторых недостатков; каждый пул приложений имеет свою собственную учетную запись ApplicationPoolIdenity, созданную с ее помощью.
Можно также найти более подробную информацию, которая также относится к IIS 7.5 Идентификаторы Пула Приложений .