0

Я обновлении 4.0 приложения ASP.NET от:Лучший способ для подключения IIS 7.5 Web Forms для SQL Server

Windows Server 2003 и IIS 6

к:

Windows Server 2008 и IIS 7.5

Это приложение основано на ASP.NET Web Forms, а не MVC. В настоящее время я использую проверку подлинности SQL, но я хотел бы следовать лучшим практикам в новой среде.

Как машина IIS 7.5, так и машина SQL Server 2008 будут находиться в DMZ с собственным контроллером домена. Было бы неплохо, если бы мы могли использовать аналогичные строки соединения для сред Dev, Test и Prod. Какова наилучшая практика для этой ситуации? Я читал о трех вариантах.

  1. ApplicationPoolIdentity
  2. Создать собственную учетную запись службы в домене
  3. аутентификации SQL

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

User ASP.NET Runs Under

Assign Permissions to ApplicationPoolIdentity Account

ответ

1

Я рекомендую учетную запись AD для запуска пула приложений. Затем на сервере SQL могут быть созданы разрешения для этой же учетной записи. Строка соединения, используемая приложением, тогда не должна содержать учетную информацию вообще (надежное соединение), и у вас будет меньше вопросов, связанных с безопасностью. В качестве дополнительной меры предосторожности удалите эту учетную запись AD из всех групп пользователей и не используйте ее ни для чего другого, кроме этой одной вещи (пула приложений). Предоставьте этому пользователю доступ к файлам веб-сайтов и напишите доступ только к папкам, которые необходимо записать (например, для архивации файлов журнала).

+0

Спасибо, я думаю, это отвечает на мой вопрос, но у меня все еще есть проблема. Microsoft создала конструкцию ApplicationPoolIdentity. Почему они беспокоятся, имеет ли смысл создавать учетную запись AD для каждого пула приложений? Каковы компромиссы между учетной записью AD и ApplicationPoolIdentity? – jtherkel

+0

Не у всех есть настройки AD. Затем не каждый веб-сайт будет использовать сетевые папки и/или сервер MS SQL (и т. Д.). –

+0

Я бы предположил, что ApplicationPoolIdentity имеет меньше разрешений в системе (ОС) по сравнению с любым другим пользователем (например, когда он создается вручную), и что это порождает больше, чем доступ к файлам на диске (например, возможно, он имеет доступ только к что важно для asp.net, на диске, в реестре и т. д.). –

0

Насколько наилучшей практики, то я не думаю, что любой из 3-х вариантов, которые вы перечислили лучше над другим; все они могут выполнять работу надежно и эффективно при правильном использовании. Ваше решение должно основываться на том, какое из этих преимуществ дает вам преимущества вашей конкретной среды, политики компании и т. Д., Но опять же, ни одна из них не является плохой практикой.