Мы успешно настроили IIS для отображения 2 экземпляров Tomcat с помощью isapi_redirect.dll. Все делает умно, и мы были очень счастливы. Однако теперь мы используем один из экземпляров Tomcat для обслуживания веб-сервисов через AXIS. Для этого требуется BASIC Auth, и клиенты .NET не работают.
+ .NET-клиенты могут обойти IIS, перейдя на «site: 8180», и они в порядке
+ Java-клиенты могут использовать IIS, и ISAPI пропускает их, и они очень хорошо аутентифицируются, используя basic.
+ .NET-клиенты, попавшие в IIS, не могут аутентифицироваться, используя тот же самый unpw.
Fiddler сообщает об этом сеансе:
HTTP / 1.1 401 Несанкционированный
Дата: среда, 07 января 2009 14:31:59 GMT
Сервер: Microsoft-IIS / 6.0
WWW-Аутентификация: NTLM
X-Powered-By: ASP.NET
Прагма: без кеша
Cache-Control: без кеша
Истекает: Ср, 31 декабря 1969 19:00:00 EST
WWW-Authenticate: Basic realm = "Модуль ежедневного управления"
Тип содержимого: text / html; charset = utf-8
Длина контента: 954
Прокси-поддержка: аутентификация на основе сеанса
Он запускает то, что выглядит как базовое диалоговое окно авторизации, но вместо того, чтобы просить нас выполнить аутентификацию на основе модуля ежедневного управления, он запрашивает авторизацию на сервере Windows. И, конечно же, сервер IIS запрашивает NTLM-аутентификацию. Если я настрою весь сервер на использование Basic Auth, я получу это от Fiddler:
HTTP / 1.1 401 Несанкционированный
Длина контента: 1656
Тип контента: текст / html
Сервер: Microsoft-IIS / 6.0
WWW-Authenticate: Basic realm = "serverName"
X-Powered-By: ASP.NET
Дата: среда, 07 января 2009 15:08:32 GMT
Вздох. Базовая, но теперь Базовая область заменена на сервер IIS. Итак, если я настрою весь сервер для проверки подлинности с использованием базового царства, модуля ежедневного управления, то получу следующее:
HTTP / 1.1 401 Несанкционированный
Дата: среда, 07 января 2009 15:11:45 GMT
Сервер: Microsoft-IIS / 6.0
WWW-Authenticate: базовая область = "Модуль ежедневного управления"
X-Powered-By: ASP.NET
Прагма: без кеша
Cache-Control: без кеша
Истекает: Ср, 31 декабря 1969 года 19:00:00 EST
WWW-Authenticate: Basic realm = "Модуль ежедневного управления"
Тип содержимого: text / html; charset = utf-8
Длина контента: 954
Странно с двойными заголовками WWW-Auth, нет? В любом случае, аутентификация с использованием того же самого unpw, который работает непосредственно с Tomcat, не проходит, независимо от того, указываю я домен или нет.
В это время:
+ Anon выключен
+ Встроенная проверка подлинности Windows отключена
+ Базовая аутентификация включена, область настроена как модуль ежедневного управления
Спасибо за поиск.