Как откатиться от метода согласования до базового только в случае сбоя согласования - PullRequest
7 голосов
/ 23 марта 2011

У меня есть веб-приложение, которое выполняет Kerberos и базовую аутентификацию.Я не знаю, на что способен клиент.Таким образом, оба механизма аутентификации отправляются в ответе 401.

Заголовок ответа будет содержать,

WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="MyREALM"

Но я хочу, чтобы клиент вернулся к базовой аутентификации только в случае сбоя согласования.

Я хочу, чтобы поток был похож на

  1. Запрос клиента
  2. Сервер отвечает WWW-Authenticate: Negotiate
  3. Повторный запрос клиента с(либо с неверными данными аутентификации, либо с каким-либо флагом, указывающим на невозможность продолжения)
  4. Ответ сервера снова с WWW-Authenticate: Basic realm = "MYREALM"
  5. Клиент выполняет базовую аутентификацию.

Как я могу это сделать?Я изменил код сервера, чтобы сделать это.Но браузер, который не находится ни в одном домене (он должен выполнять базовую аутентификацию), не отвечает после шага 2.

1 Ответ

0 голосов
/ 19 июля 2011

Какой у вас браузер?Специальная глава RFC 4.6 требует, чтобы браузер использовал самый сильный из предложенных вариантов аутентификации.Я не могу вспомнить, что должен делать браузер, если он не может получить учетные данные для этого.

...