лучший способ подключить сервер sql (проверка подлинности Windows и проверка подлинности SQL Server) для приложения asp.net

У меня есть база данных и сайт с аутентификацией форм. Он отлично работает с VS2008. На этот раз я использую «Trusted_connection = True». Но когда он открывается извне или напрямую из браузера, я получаю сообщение об ошибке «Ошибка входа в систему для пользователя« NT AUTHORITY \ ANONYMOUS LOGON ».

Я знаю, что это из-за разрешения. SQL-сервер основан на аутентификации Windows.

  • Каков наилучший подход к управлению пользователем для подключения к SQL Server?
  • Должен ли я включить аутентификацию SQL Server?

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

Примечание. SQL Server установлен на сервере домена.


person Brij    schedule 12.03.2010    source источник
comment
какая версия SQL Server? 2000, 2005, 2008??   -  person marc_s    schedule 12.03.2010


Ответы (3)


Аутентификация сайта не имеет ничего общего с аутентификацией между ASP и SQL. «Аутентификация форм» на самом деле не является формой настоящей аутентификации, это просто роль и членство для приложения ASP.Net, не связанного с инфраструктурой безопасности.

Когда вы запускаете свой сайт из Visual Studio, вы запускаете веб-сервер Visual Studio под своей собственной учетной записью, и этот веб-сервер будет аутентифицироваться на SQL Server с использованием NTLM/Kerberos, поскольку он работает под вашими учетными данными.

Когда вы посещаете сайт из браузера, ваш сайт запускается из пула приложений IIS с идентификатором указанного пула приложений, которым обычно является локальный пользователь с именем IUSER_... Этот локальный пользователь при аутентификации на сервере SQL с использованием NTLM/ Kerberos будет аутентифицироваться как анонимный пользователь, поскольку локальная учетная запись не имеет значения на удаленном компьютере/домене, на котором размещен SQL Server.

Решение состоит в том, чтобы изменить идентификатор пула приложений на пользователя, который может нормально аутентифицироваться с помощью SQL Server. Для этого хост-компьютер IIS должен быть присоединен к тому же домену, что и хост-компьютер SQL Server (или домену, который доверяет домену хост-компьютера SQL Server), а идентификатор пула приложений должен быть изменен на учетную запись из этого домена. Итак, если машина SQL Server работает на машине, присоединенной к домену FOO, то:

  • убедитесь, что машина IIS подключена к FOO
  • создать пользователя домена FOO\MyWebApp
  • измените идентификатор пула приложений на FOO\MyWebApp
  • добавить логин SQL для FOO\MyWebApp
  • предоставить необходимое разрешение в SQL для FOO\MyWebApp

Альтернатива использованию SQL-аутентификации плоха по нескольким причинам (возможность раскрытия пароля в web.config, возможность раскрытия пароля во время аутентификации по сети). Если хост-компьютер IIS не присоединен к домену, вы можете использовать зеркальные учетные записи (локальные учетные записи с одинаковым именем и паролем как на хосте IIS, так и на хосте SQL), но это также имеет недостатки: не может работать с Kerberos. , пароль учетной записи должен синхронизироваться на двух хостах и ​​т. д.

person Remus Rusanu    schedule 12.03.2010

Один из подходов заключается в создании служебной учетной записи для использования приложением. Вы создаете учетную запись в Active Directory или аналогичной. В IIS настройте пул приложений для работы под этой учетной записью службы. В SQL Server предоставьте разрешения для учетной записи службы либо напрямую, либо путем включения учетной записи службы в роль.

Вот одна статья о том, как это сделать.

person DOK    schedule 12.03.2010

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

http://technet.microsoft.com/en-us/library/dd548356(v=ws.10).aspx

person Rasika Godawatte    schedule 27.10.2014