Какой вариант идентификации в пуле приложений IIS считается лучшим
В настоящее время для всех наших веб-приложений для идентификатора пула приложений установлено значение Application Pool Identity. Теперь, когда приложению необходимо получить доступ к некоторым ресурсам на каком-то сервере, скажем, добавить / прочитать какой-либо файл, приложение выполняет олицетворение в коде для пользователя, у которого есть разрешения для этого. Но теперь мы собираемся создать отдельного пользователя для каждого приложения и установить для его идентификатора пула приложений своего нового пользователя. Но в диалоговом окне " Дополнительные параметры" я заметил, что Microsoft рекомендует использовать удостоверение пула приложений, как показано на следующем рисунке:
Почему Microsoft рекомендует использовать эту идентификацию, и использование определенного пользователя не является лучшей практикой или неправильным шагом?
Спасибо,
ashilon
1 ответ
ApplicationPoolIdentity использует концепцию, называемую виртуальными учетными записями, и реализована для обеспечения изоляции пула приложений. Этот блог подробно объясняет это.
ApplicationPoolIdentity - это рекомендуемый подход для обеспечения надлежащей изоляции между каждым веб-сайтом / пулом приложений в IIS7+ и выше. Таким образом, вы можете иметь код или файлы, запущенные для одного веб-сайта или приложения, к которым никто другой не сможет получить доступ.
Но для вашего сценария, когда вам нужен доступ к ресурсу на другом сервере, когда вы используете ApplicationPoolIdentity, он всегда использует идентификацию компьютера. Поэтому лучший подход - использовать управляемую учетную запись службы.
Управляемые учетные записи служб - это отличный способ управления службами, которым требуется доступ к сети. Пусть Windows позаботится о паролях и SPN для вас
Пожалуйста, найдите больше информации здесь, здесь
Но это имеет проблему, так как одному серверу может быть назначена только одна управляемая учетная запись службы. Даже с идентификатором пула приложений он будет использовать $ machineaccount для доступа к сетевым ресурсам.
Если вам необходимо изолировать сетевые ресурсы для каждого веб-сайта / приложения, то единственный способ создать отдельную учетную запись пользователя для каждого веб-сайта и управлять ею.
Надеюсь это поможет!