Разрешения IIS AppPool для SQL Server (добавление NT AUTHORITY\IUSR)

У меня есть новая сборка сервера под управлением Windows Server 2012 R2, IIS 8.5 (включая функцию ClassicASP) и SQL Server 2014 Express. Я хочу использовать идентификатор пула приложений для подключения к базе данных. База данных настроена на «Режим проверки подлинности Windows».

Мой идентификатор пула приложений называется activbase.net. Я настроил вход в систему безопасности в SQL Server под названием IIS AppPool\activbase.net, и пользователь сопоставил его с моей базой данных с доступом db_datareader и db_datawriter.

Однако, когда я пытаюсь получить доступ к базе данных с веб-сайта, я получаю:

Не удается открыть базу данных «ActivbaseLive», запрошенную при входе в систему. Вход не выполнен.

Я думал, что этого достаточно, чтобы соединение заработало. Журнал приложений (средство просмотра событий) показывает:

Ошибка входа в систему для пользователя "NT AUTHORITY\IUSR". Причина: не удалось открыть явно указанную базу данных «ActivbaseLive». [КЛИЕНТ: ]

Поэтому я добавил NT AUTHORITY\IUSR аналогичным образом в SQL Server>Безопасность>Логины и базы данных>[ActivbaseLive]>Безопасность>Пользователи, и это устраняет проблему.

Мои вопросы заключаются в следующем:

  1. Должен ли я добавлять NT AUTHORITY\IUSR логин/пользователь в дополнение к IIS AppPool\activbase.net логину/пользователю в мой экземпляр SQL Server и базу данных?
  2. Есть ли проблема с безопасностью при этом? (ПРИМЕЧАНИЕ: это будет производственная среда)

Спасибо, Крис


person Chris Walsh    schedule 07.10.2014    source источник
comment
Дальнейшее чтение предполагает, что это может быть связано с тем, что учетная запись NT AUTHORITY\IUSR используется для запросов без проверки подлинности, а IIS AppPool\activbase.net используется для запросов с проверкой подлинности (после входа в систему и создания токена IPrincipal). Может быть, кто-то может подтвердить это. Кроме того, если вышесказанное верно, наверняка выбранная учетная запись пользователя была выбрана IIS до того, как он обнаружит, исходит ли текущий запрос от аутентифицированного пользователя или нет?   -  person Chris Walsh    schedule 11.10.2014


Ответы (1)


Нет. Вам не нужно добавлять имя входа SQL Server для удостоверения NT AUTHORITY\IUSR в дополнение к удостоверению IIS AppPool\activbase.net. Логин только для удостоверения пула приложений IIS AppPool\activbase.net достаточен для подключения к SQL Server с использованием проверки подлинности Windows.

NT AUTHORITY\IUSR — это встроенная учетная запись Windows, которая используется по умолчанию, когда для вашего приложения включена анонимная аутентификация. Эта страница описывает обоснование учетной записи.

Чтобы подключиться к вашей базе данных с идентификатором IIS AppPool\activbase.net, вам необходимо изменить учетную запись, настроенную для анонимных пользователей, с NT AUTHORITY\IUSR на идентификатор пула приложений IIS AppPool\activbase.net. Чтобы внести это изменение, выполните следующие действия:

  1. Откройте Диспетчер информационных служб Интернета (IIS).
  2. На панели Подключения найдите и щелкните, чтобы выбрать веб-сайт, на котором размещено ваше приложение, например. Веб-сайт по умолчанию. (Если вы хотите настроить конкретное приложение на своем веб-сайте, вы можете выбрать приложение.)
  3. В Просмотре функций на центральной панели дважды нажмите Аутентификация.
  4. Анонимная аутентификация, скорее всего, будет включена в ваших настройках. Щелкните правой кнопкой мыши Анонимная аутентификация и выберите Изменить.
  5. В диалоговом окне Изменить учетные данные анонимной аутентификации выберите параметр Идентификатор пула приложений, а затем нажмите ОК.

Вопрос в приведенной ниже ссылке (и его ответ) касается той же проблемы:

Ошибка входа для пользователя NT AUTHORITY\IUSR

Что касается вашего второго вопроса: «Есть ли при этом проблема с безопасностью?», то ответ «Да». Желательно, чтобы встроенная учетная запись NT AUTHORITY\IUSR не имела доступа к вашей базе данных SQL Server, поскольку она используется в качестве анонимной учетной записи по умолчанию на любых других веб-сайтах (и их приложениях), размещенных на вашем веб-сервере IIS. Это означает, что другие веб-сайты и приложения смогут подключаться к вашей базе данных. Если они будут скомпрометированы в результате атаки, они потенциально могут быть использованы для доступа к вашим данным. Так что лучше не иметь логин SQL Server для NT AUTHORITY\IUSR. Вместо этого ограничьте доступ к базе данных идентификатором пула приложений вашего веб-сайта (или приложения).

person Stephen K. Karanja    schedule 20.09.2019