Не удается заставить соединитель IIS ISAPI Tomcat передать БАЗОВУЮ аутентификацию Tomcat

StackOverflow https://stackoverflow.com/questions/420693

Вопрос

Мы успешно настроили IIS для работы с 2 экземплярами Tomcat, используя isapi_redirect.dll .Он все делает с умом, и мы были очень счастливы.Однако сейчас мы используем один из экземпляров Tomcat для обслуживания веб-служб через AXIS.Для этого требуется БАЗОВАЯ аутентификация, и .NET-клиенты выходят из строя.
+ Клиенты .NET могут обойти IIS, перейдя на "сайт: 8180", и с ними все в порядке
+ Java-клиенты могут обращаться к IIS, и ISAPI пропускает их, и они прекрасно аутентифицируются с помощью basic.
+ Клиенты .NET, которые обращаются к IIS, не могут пройти проверку подлинности, используя тот же unpw.

Скрипач сообщает об этой сессии:
HTTP/1.1 401 Неавторизованный
Дата:Ср., 07 янв. 2009 г. 14:31:59 GMT
Сервер:Microsoft-IIS/6.0
WWW-Аутентификация:NTLM
X-Powered-От:ASP.NET
Прагма:Отсутствие кэша
Управление кэшем:отсутствие кэша
Истекает:Ср., 31 дек. 1969 г. 19:00:00 по восточному времени
WWW-Аутентификация:Базовая область= "Модуль ежедневного контроля"
Тип содержимого:текст/html;кодировка=utf-8
Содержание-Длина:954
Прокси-Сервер-Поддержка:Аутентификация на основе сеанса

Он запускает то, что выглядит как обычное диалоговое окно авторизации, но вместо того, чтобы просить нас выполнить аутентификацию в модуле Daily Control, он просит нас выполнить аутентификацию в Windows server.И, конечно же, сервер IIS запрашивает аутентификацию NTLM.Если я настрою весь сервер на использование базовой аутентификации, я получу это от Fiddler:
HTTP/1.1 401 Неавторизованный
Содержание-Длина:1656
Тип содержимого:текст/html
Сервер:Microsoft-IIS/6.0
WWW-Аутентификация:Базовая область="Имя_сервера"
X-Powered-От:ASP.NET
Дата:Ср., 07 янв. 2009 г. 15:08:32 GMT

Вздох.Basic, но теперь Базовая область заменена на сервер IIS.Итак, если я настрою весь сервер на аутентификацию в Basic realm, модуле ежедневного управления, то я получу это:
HTTP/1.1 401 Неавторизованный
Дата:Ср., 07 янв. 2009 г. 15:11:45 GMT
Сервер:Microsoft-IIS/6.0
WWW-Аутентификация:Базовая область= "Модуль ежедневного контроля"
X-Powered-От:ASP.NET
Прагма:Отсутствие кэша
Управление кэшем:отсутствие кэша
Истекает:Ср., 31 дек. 1969 г. 19:00:00 по восточному времени
WWW-Аутентификация:Базовая область= "Модуль ежедневного контроля"
Тип содержимого:текст/html;кодировка=utf-8
Содержание-Длина:954

Странно с двойными заголовками WWW-Auth, не так ли?В любом случае, аутентификация с использованием того же unpw, который работает непосредственно с Tomcat, завершается неудачей, независимо от того, указываю я домен или нет.

В это время:
+ Анонс выключен
+ Встроенная аутентификация Windows отключена
+ Включена базовая аутентификация, при этом область настроена как модуль ежедневного контроля

Спасибо, что посмотрели.

Это было полезно?

Решение

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

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

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

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

Вы должны убедиться, что встроенная аутентификация не включена на уровне сайта и файла.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top