У нас есть сторонний продукт, который позволяет некоторым нашим пользователям манипулировать данными в базе данных (в том, что мы будем называть 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.