Не удается получить соединитель Tomcat IIS ISAPI для передачи базовой аутентификации через Tomcat - PullRequest
1 голос
/ 07 января 2009

Мы успешно настроили 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 отключена
+ Базовая аутентификация включена, область настроена как модуль ежедневного управления

Спасибо за поиск.

1 Ответ

1 голос
/ 07 января 2009

Какая конфигурация безопасности каталога?

Вы уверены, что включена только базовая аутентификация?

Другое дело. Возможно, на уровне iis вы должны использовать анонимную аутентификацию. А tomcat позаботится о реализации базового обмена аутентификацией?

Источник проблемы (из заголовка, который вы разместили) заключается в том, что клиент .net распознает, что сайт поддерживает аутентификацию ntlm. И попробуйте пройти проверку подлинности с этим протоколом. Клиент java просто игнорирует параметр ntlm, поэтому он использует любой другой протокол аутентификации, поддерживаемый сайтом.

Необходимо убедиться, что встроенная аутентификация не включена на уровне сайта и файла.

...