Выдача себя за другое лицо в классическом ASP

Подготовка к миграции asp-приложения с Windows 2000 (web1) на Windows 2003 (web2). На старом сервере есть папка для обмена документами, используемая для импорта и экспорта (\ \ web1 \ папка). Я хочу предоставить доступ к той же папке asp-приложения доступа с новым сервером. Конфигурация IIS: разрешен анонимный доступ, в том числе проверка окон. Пул запущен под сетевой службой. Но доступа нет. И есть интересный факт: если обрабатывать локально с новым сервером как http://localhost, у вас есть доступ (олицетворение работает), при обработке как http://web2 доступ отсутствует. Ошибка:

Microsoft VBScript runtime error Error '800a0046 ' 

Permission denied

Мы кое-что изменили настройки безопасности, локальный IE 6 - тоже заработал через http://web2, но в других браузерах (например, Opera) нет Работа. На других машинах тоже не работает.

Ставьте утилиту procmon от SysInternal. Он показывает, что в обоих случаях это обращение к ресурсу, в обоих случаях олицетворение, все равно, но в одном случае УСПЕХ, а в другом ОТКАЗ В ДОСТУПЕ.

Вся система безопасности этого приложения построена на правах NTFS, поэтому вы не можете отключить олицетворение.

Я новичок в классическом asp. Я не могу понять этот случай.


person GraDea    schedule 15.02.2011    source источник


Ответы (2)


Классический ASP не работает под учетной записью пула приложений, вместо этого используются учетные данные, указанные на вкладке анонимной аутентификации IIS, обычно это IUSR_MACHINENAME.

Похоже, что анонимная аутентификация не работает и используется аутентификация Windows, поэтому она работает локально и в IE, который по умолчанию поддерживает аутентификацию Windows.

ОБНОВЛЕНИЕ. Прочтите эту статью: Как устранить проблемы, связанные с Kerberos, в IIS

ОБНОВЛЕНИЕ 2: Это также может помочь вам диагностировать, что происходит на стороне IIS: Диагностика аутентификации и контроля доступа

Думаю, самый простой способ получить доступ к общему ресурсу - добавить разрешение на чтение группе «Гости».

person Artem Koshelev    schedule 15.02.2011
comment
Почему проверка подлинности Windows не работает в локальной сети? В обоих случаях я использую учетную запись домена для доступа. - person GraDea; 15.02.2011
comment
@GraDea Потому что, когда вы получаете доступ к http://localhost , IE безопасно передавать ваши учетные данные Windows в IIS, поскольку IE знает, что это ваш локальный компьютер. Но при доступе к http://web2 это небезопасно, так как IE должен предполагать, что это интернет-сервер, и поэтому передавать ваши учетные данные Windows на сервер небезопасно. - person RobV; 15.02.2011
comment
@GraDea Возможно, можно настроить IE для передачи ваших учетных данных Windows при доступе к http://web2, но я настоятельно рекомендую вам не делать этого, поскольку это серьезная угроза безопасности. - person RobV; 15.02.2011
comment
Я просматриваю заголовки в Fiddler. В обоих случаях у меня есть заголовок авторизации. - person GraDea; 16.02.2011
comment
Новые факты. Исследуем нашу проблему. Мы добавили роль контроллера домена на новый веб-сервер (старый сервер был контроллером домена). После этого все нормально работает. - person GraDea; 17.02.2011

вы можете изменить пользователя анонимной аутентификации на пользователя пула приложений, я протестировал его, и он работает! перейдите в iis -> веб-сайт \ виртуальный каталог -> аутентификация -> выберите анонимный -> изменить -> изменить идентификатор пользователя на пользователя пула приложений

снимок экрана:

скриншот

person uri bahbut    schedule 17.04.2018
comment
Спасибо! Но я не могу проверить эти настройки. Думаю, мы пробовали идентификацию пула приложений. - person GraDea; 18.04.2018