Как откатиться от метода согласования до базового только в случае сбоя согласования
У меня есть веб-приложение, которое выполняет Kerberos и базовую аутентификацию. Я не знаю, на что способен клиент. Таким образом, оба механизма аутентификации отправляются в ответе 401.
Заголовок ответа будет содержать,
WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="MyREALM"
Но я хочу, чтобы клиент вернулся к базовой аутентификации только в случае сбоя согласования.
Я хочу, чтобы поток был похож,
- Запрос клиента
- Сервер отвечает WWW-Authenticate: согласовать
- Клиент повторно запросит (либо с неверными данными аутентификации, либо с каким-либо флагом, указывающим на невозможность продолжения)
- Ответ сервера снова с WWW-Authenticate: Basic realm="MYREALM"
- Клиент выполняет базовую аутентификацию.
Как я могу это сделать? Я изменил код сервера, чтобы сделать это. Но браузер, который не находится ни в одном домене (он должен выполнять базовую аутентификацию), не отвечает после шага 2.
1 ответ
Какой у вас браузер? Конкретная глава 4.6 RFC гласит, что браузер должен использовать самую сильную из предложенных аутентификаций. Я не могу вспомнить, что должен делать браузер, если он не может получить учетные данные для этого.