делегирование "ANONYMOUS LOGON"?
От: qwertyytrewq  
Дата: 26.08.08 01:12
Оценка:
Не могу настроить делегирование пользователя с удаленного компьютера: Пользователю "NT AUTHORITY\ANONYMOUS LOGON" не удалось войти в систему.
Должна работать интегрированная безопасность, SQL-аутентификацию не предлагать.
Локально на сервере serv0 работает, только если в адресе написать localhost.

Есть 2 сервера:

serv0:
Windows 2003, Active Directory, IIS (под SYSTEM), ASP.NET.
Режим леса на Windows 2003.
AD: Включено делегирование для SqlUser, serv0$, serv1$.
SPN: setspn -a http/serv0 serv0
     setspn -a http/serv0.dom.local serv0
Политика безопасности домена (и контроллера домена):
    Олицетворять клиента после проверки подлинности = служба, администраторы, system, serv0, serv1
    Работа в режиме операционной системы = system, serv0, serv1
    Сетевой доступ: разрешить трансляцию анонимного SID в имя
IIS: включена только "Встроенная проверка подлинности Windows"
ASP.NET web.config:
    <authentication mode="Windows"/>
    <identity impersonate="true"/>
    <authorization>
        <deny users="?"/>
    </authorization>
    connectionString="Server=tcp:serv1.dom.local;Database=DB1;Integrated security=SSPI;"


serv1:
Windows 2003, MSSQL 2005 (под SqlUser)


что еще не хватает?
Re: делегирование "ANONYMOUS LOGON"?
От: Time Россия  
Дата: 26.08.08 03:18
Оценка:
Здравствуйте, qwertyytrewq

Точного ответа у меня нет, единственное что могу предложить добавить пользователя в SQL server domain\computer$ где computer — имя компьютера с которого заходит клиент с необходимыми ему правами. почему так, мне доподлинно не известно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: делегирование "ANONYMOUS LOGON"?
От: stump http://stump-workshop.blogspot.com/
Дата: 26.08.08 06:10
Оценка:
Здравствуйте, qwertyytrewq, Вы писали:

Q>Не могу настроить делегирование пользователя с удаленного компьютера: Пользователю "NT AUTHORITY\ANONYMOUS LOGON" не удалось войти в систему.

Q>Должна работать интегрированная безопасность, SQL-аутентификацию не предлагать.
Q>Локально на сервере serv0 работает, только если в адресе написать localhost.

...

Q>что еще не хватает?

А клиент? Кто клиент?
Похоже, что клиент не предает credential на IIS и IIS не может аутентифицировать клиента. Соответственно "NT AUTHORITY\ANONYMOUS LOGON" не может быть делегирован дальше на другой сервер.

Другой вариант, попробуйте убрать tcp: из строки подключения: "Data Source=serv1.dom.local;Initial Catalog=DB1;Integrated security=SSPI;"
Понедельник начинается в субботу
Re[2]: делегирование "ANONYMOUS LOGON"?
От: qwertyytrewq  
Дата: 27.08.08 05:33
Оценка:
Здравствуйте, 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.
Все остальные настройки системы и сервисов настроены по умолчанию. Что еще необходимо?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.