лучший способ подключения SQL Server (проверка подлинности Windows против проверки подлинности SQL Server) для приложения asp.net - PullRequest
13 голосов
/ 12 марта 2010

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

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

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

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

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

Ответы [ 3 ]

11 голосов
/ 12 марта 2010

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

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

Когда вы заходите на сайт из браузера, ваш сайт запускается из пула приложений IIS с идентификатором указанного пула приложений, которым обычно является локальный пользователь с именем IUSER _... Этот локальный пользователь при аутентификации на SQL Server использование 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 пароль учетной записи должен синхронизироваться на двух хостах и ​​т. д.

2 голосов
/ 27 октября 2014

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

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

2 голосов
/ 12 марта 2010

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

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

...