Учетная запись пользователя Windows, которая выполняет только положения IIS7 - PullRequest
1 голос
/ 11 ноября 2009

У меня есть веб-приложение, которое выполняет положения IIS 7 (используя Microsoft.Web.Administration.dll) для создания наших веб-сайтов и FTP-сайтов. Когда я запускаю это, используя учетную запись администратора, она работает нормально.

Я хочу создать учетную запись пользователя Windows для олицетворения, которая будет выполнять только эти процедуры веб-подготовки, но не будет идентична ролям администратора сервера.

Как мне этого добиться?

1 Ответ

2 голосов
/ 11 ноября 2009

Вы должны разбить ваше приложение на три части:

Служба Windows

Здесь будет размещено приложение WCF или Remoting. Вы хотите разместить здесь код, который требует привилегированного доступа к вашей системе. Например, создание и удаление сайтов. Запустите этот сервис под учетной записью, у которой достаточно прав для выполнения операций, используя Microsoft.Web.Administration.

сборка Trusted Wrapper или Proxy в сборе

Это просто подписанная сборка оболочки, которая установлена ​​в GAC. Его роль заключается в том, чтобы передавать вызовы из вашего веб-приложения с низким уровнем доверия для выполнения привилегированных действий в коде, запущенном в приведенном выше сервисе. Пометьте сборку атрибутом AllowPartiallyTrustedCallers (если ваш сервер настроен на частичное доверие) и отметьте все классы, которым требуется доступ к службе удаленного взаимодействия, [PermissionSet(SecurityAction.Assert, Unrestricted=true)].

Приложение переднего плана (или веб-служба)

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

Ваше веб-приложение / служба ссылается на сборку Trusted Wrapper в GAC, которая, в свою очередь, имеет ссылку на приложение удаленного взаимодействия или WCF, работающее в службе Windows.

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

Этот подход довольно хорошо описан в Приложении C к «Доминик Байер» « Разработка более защищенных приложений Microsoft ASP.NET 2.0 ». Я настоятельно рекомендую получить копию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...