Проблемы аутентификации Kerberos от IIS к SQL Server - PullRequest
4 голосов
/ 06 января 2011

У нас есть сторонний продукт, который позволяет некоторым нашим пользователям манипулировать данными в базе данных (в том, что мы будем называть SvrSQL) через веб-сайт на отдельном сервере (SvrWeb).

На SvrWeb у нас есть специальная, нестандартная настройка веб-сайта для этого приложения, поэтому вместо перехода на http://SvrWeb.company.com, чтобы перейти на веб-сайт, мы используем http://application.company.com, который разрешается на SvrWeb и хост Заголовки разрешить на правильный сайт.

Существует также определенный пул приложений, настроенный для этого сайта, который использует учетную запись Active Directory, которую мы будем называть "company \ SrvWeb_iis". Мы настроены на то, чтобы разрешить делегирование для этой учетной записи и позволить ему олицетворять другой логин, который мы хотим сделать. (мы хотим, чтобы эта учетная запись передавала учетные данные AD лица, вошедшего на веб-сайт, в SQL Server вместо учетной записи службы.

Мы также настраиваем имена участников-служб для учетной записи SrvWeb_iis с помощью следующей команды: setspn -A HTTP / SrvWeb.company.com SrvWeb_iis

Сайт обновляется, но раздел сайта, который выполняет вызов к базе данных, возвращает сообщение: Невозможно выполнить запрос к базе данных. Не удалось войти в систему для пользователя 'NT AUTHORITY \ ANONYMOUS LOGON'.

Я думал, что мы правильно установили информацию SPN, но когда я проверяю журнал событий безопасности на SrvWeb, я вижу записи моего входа в систему, но, похоже, он использует NTLM, а не kerberos:

Logon Type: 3
Logon Process:  NtLmSsp 
Authentication Package: NTLM

Буду очень признателен за любые идеи или статьи, подробно описывающие эту настройку!

Если это поможет, мы используем SQL Server 2005, а веб-серверы и серверы SQL - Windows 2003.

1 Ответ

5 голосов
/ 28 февраля 2011

Существует несколько возможных причин сбоев Kerberos, в том числе отсутствие имени участника-службы и дублированного имени участника-службы.

Если SQL работает под пользовательской учетной записью, вам также потребуется добавить имя участника-службы для SQL.
Такжеимейте в виду, что вы должны добавить SPN для полного доменного имени, которое является записью host (A) в DNS, а не CNAME.

Проверьте значение NTAuthenticationProviders
http://support.microsoft.com/kb/215383

Попробуйте DelegConfig, который покажет, чего не хватает, если его SPN или что-то еще.
http://www.iis.net/community/default.aspx?tabid=34&g=6&i=1887

...