Я поддерживаю веб-сайт, который использует базовую аутентификацию, чтобы предотвратить его просмотр посторонними пользователями (это промежуточная / тестовая среда, открытая для Интернета). Веб-сайт доступен через незащищенные (HTTP) соединения с некоторыми страницами (например, формами входа / регистрации), требующими безопасных (HTTPS) соединений. На сайте есть отдельный вход на основе файлов cookie, но он настраивается и не использует API-интерфейсы, предоставляемые платформой (например, аутентификация с помощью форм).
В этой среде, когда пользователь успешно вошел на главную страницу сайта через незащищенное соединение, затем щелкает ссылку, чтобы открыть защищенную страницу, ему предлагается снова войти в систему с помощью базовой аутентификации. Мой клиент попросил удалить этот второй вход в систему.
Есть ли способ сохранить базовую аутентификацию при переключении протокола (HTTP -> HTTPS) без повторного входа в систему?
Нет.
Поскольку ваш URL-адрес меняется, ваш браузер перестает отправлять Authorization:
заголовок, даже если область может быть одинаковой по HTTP и HTTPS.
Поскольку обычная проверка подлинности отправляет учетные данные в виде открытого текста, рекомендуется перенаправить всех пользователей, обращающихся к пространству URL-адресов, которое «защищено» с помощью базовой проверки подлинности, на HTTPS.
Вы можете попробовать что-то вроде ADFS или TMG (или аналогичный продукт), чтобы получить возможность «единого входа».
Не рекомендуется использовать базовую аутентификацию через HTTP.