Здравствуйте, stump, Вы писали:
S>А клиент? Кто клиент?
S>Похоже, что клиент не предает credential на IIS и IIS не может аутентифицировать клиента. Соответственно "NT AUTHORITY\ANONYMOUS LOGON" не может быть делегирован дальше на другой сервер.
S>Другой вариант, попробуйте убрать tcp: из строки подключения: "Data Source=serv1.dom.local;Initial Catalog=DB1;Integrated security=SSPI;"
В строке подключения tcp: наоборот желательно для поддержки Kerberos.
Клиентом является IE 7, т.е.:
IE(ws) -> IIS(serv0) -> SQL(serv1)
В настройках IE:
- включено "Разрешить встроенную проверку подлинности Windows".
- сайт добавлен в "местную интрасеть".
- для пользователя dom\user1 в AD отключено "Учетная запись важна и не может быть делегирована".
дополнительно было настроено:
IIS:
cscript adsutil.vbs set w3svc/1/root/mySite/NTAuthenticationProviders "Negotiate,NTLM"
Группа приложений (Application pool): под пользователем "Локальная система" вместо "Сетевой службы".
SQL:
добавлен логин IIS-сервера dom\serv0$
Тест показывает:
System.Security.Principal.WindowsIdentity.GetCurrent().Name = dom\user1
System.Security.Principal.WindowsIdentity.GetCurrent().AuthenticationType = NTLM (с удаленной машины)
System.Security.Principal.WindowsIdentity.GetCurrent().AuthenticationType = Kerberos (с локальной машины)
Как и видно, проблема в том, что аутентификация между IE (удаленным) и IIS используется NTLM вместо Kerberos.
Все остальные настройки системы и сервисов настроены по умолчанию. Что еще необходимо?