Идентификация пула приложений или олицетворение - PullRequest
18 голосов
/ 29 апреля 2011

(вопрос с аналогичной жилой задавался до , но и вопрос, и принятый ответ не дают нужную мне информацию)

Снамерение запустить веб-службу asmx под выделенной учетной записью домена, каковы сценарии использования и / или плюсы и минусы использованияпул приложений с идентификацией учетной записи домена в сравнении с олицетворением?

У нас есть 3 небольших внутренних веб-сервиса, которые работают при относительно низкой нагрузке, и мы хотели бы переключить их на работу под своими собственными учетными записями домена (комплексной безопасности с SQL Server и т. д.).Похоже, у меня есть выбор: создать выделенные пулы приложений для каждого приложения или использовать один пул приложений для всех приложений и использовать олицетворение в каждом из них.

Я понимаю, что пулы приложений обеспечивают изоляцию рабочих процессов, и естьпроизводительность при использовании олицетворения, однако, кроме того, что еще будет диктовать правильный вариант?

Ответы [ 5 ]

10 голосов
/ 29 апреля 2011

Как правило, вы выбираете другое удостоверение для рабочего процесса (или выполняете олицетворение ASP.NET), потому что существует потребность в доступе к локальным / сетевым ресурсам, для которых требуются определенные разрешения. Очевидным недостатком является то, что код вашего приложения может работать с более широкими правами доступа, чем ему может понадобиться, и, таким образом, увеличивает уязвимость против вредоносных атак.

Олицетворение ASP.NET будет иметь больше накладных расходов, поскольку пользовательский контекст необходимо переключать для каждого запроса. Я предлагаю использовать отдельный подход к пулу приложений. Единственный недостаток подхода к пулу приложений состоит в том, что у вас есть процесс для каждого из них, и поэтому для каждого процесса будут накладные расходы (с точки зрения ОС). Если ваши приложения меньше по размеру и не имеют сильных требований к памяти, тогда это не должно быть проблемой,

4 голосов
/ 10 мая 2011

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

Если вы пойдете по пути олицетворения, вам придется учитывать проблему «двух прыжков». Когда пользователь вызывает веб-службу, которая использует олицетворение, веб-служба может получить доступ к локальным ресурсам в качестве этого пользователя. Однако если веб-служба пытается подключиться к нелокальному ресурсу (например, к базе данных, работающей на отдельном сервере), результатом будет ошибка аутентификации. Причина в том, что NTLM не позволяет вашим учетным данным делать более одного «прыжка». Чтобы обойти это, вам необходимо использовать делегирование Kerberos. Делегирование не сложно настроить, но оно требует привилегий администратора домена, что может осложнить работу в некоторых корпоративных средах.

Кроме того, использование олицетворения означает, что вам необходимо управлять разрешениями базы данных для каждого пользователя, который может посещать ваш веб-сервис. Сочетание ролей базы данных и групп AD значительно упростит эту задачу, но это дополнительный административный шаг, который вы, возможно, не захотите выполнять. Это также возможная угроза безопасности, поскольку некоторые пользователи могут получить привилегии, превышающие ожидаемые вашими веб-сервисами.

2 голосов
/ 06 мая 2011

Плюсы пула приложений:

Вам не нужно быть программистом .Net, чтобы понять, что происходит.

Аспект безопасности покидает домен программиста и входит в сферу инфраструктуры

Легко изменить через IIS с правильной проверкой безопасности, что имя пользователя является правильным при настройке пула приложений. То есть Это не позволит вам ввести неправильное имя пользователя.

Плюсы олицетворения:

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

Минусы подражания:

  1. Чтобы сменить пользователя, вы должны быть знакомы с конфигурацией .Net, а не просто настраивать веб-сайт

Не уверен, что могу думать о многом другом.

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

2 голосов
/ 05 мая 2011

Олицетворение полезно, когда вам нужен общий опыт конечного пользователя с другими службами Windows, основанными на безопасности Windows.

Например, серверы Microsoft SharePoint используют олицетворение, потому что вы можете получить доступ к библиотекам документов SharePoint с помощью веб-браузеров и со стандартным пользовательским интерфейсом общих папок Windows (подключаться / отключаться от общего сетевого ресурса на основе SMB * Протокол 1006 *). Чтобы обеспечить согласованность безопасности между ними, в этом случае вам необходимо олицетворение.

Кроме сценариев такого типа, олицетворение в большинстве случаев бесполезно (но может стоить дорого с точки зрения масштабируемости)

0 голосов
/ 06 мая 2011

Я бы посоветовал вам проверить следующую страницу для получения сведений о безопасности ...

https://www.attosol.com/sample-aspx-page-to-show-security-details-in-asp-net/

Как только вы закончите с этим, вы увидите "точно", как олицетворение изменяетидентичность.

...