Как откатиться от метода согласования до базового только в случае сбоя согласования

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

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

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

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

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

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

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

1 ответ

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

Другие вопросы по тегам