Ошибка базовой авторизации (Basic HTTP Authentication failure) в браузерах Chrome, Firefox и Internet Explorer. При попытке пройти авторизацию в директории сайта, которая защищена базовой авторизацией получаем HTTP ошибку 401 или просто пустой экран.
Снифер был не многословен и на тему "401 Authorization Required" выразился образно:
The request returned a HTTP status code failure or caused an internal browser error. Failing requests may prevent a web page functioning correctly and cause performance problems
Ошибка базовой авторизации замечена на различных серверах, вплоть до IIS. Гугление говорит о том, что это может быть некая встроенная защита браузера, которая типа отключается параметром запуска из командной строки "--allow-cross-origin-auth-prompt", но мне она не помогла, но в браузере Opera базовая авторизация работала успешно.
Следующим шагом был взор в сторону конфигурации и анализа лог.файлов сервера, в которых также ничего подозрительного не найдено. Ещё немного покопавшись наткнулся на тему "Issue 91814 - chromium - Iframe Basic Authentication Issue - An open-source project to help move the web forward. - Google Project Hosting", в которой была упомянута директива Satisfy, применяемая в веб-сервере Apache для определения способа директив доступа (ака Allow/Deny) с директивами базовой авторизации (AuthType, require, etc). Директива Satisfy может принимать такие значения:
- Satisfy Any - Пропустит запрос, если выполнено хотя бы одно из требований, логин и пароль при базовой авторизации (ака "require valid-user") или совпадение IP адреса с адресом или диапазоном из директивы "Allow from ...";
- Satisfy All - Пропустит запрос, при условии если оба требования будут успешно выполнены, и базовая идентификация и проверка доступа по IP.
Решил попробовать добавить в конец файла .htaccess директиву "Satisfy all":
AuthUserFile "/path/to/.htpasswd" AuthName "Administrator only" AuthType Basic require valid-user Order allow,deny Satisfy all
HTTP ошибка 401 исчезла и базовая авторизация в браузерах IE, Firefox и Chrome заработала как обычно, но что интересно, так это то, что согласно документации "Satisfy all" установлена по умолчанию, а даже если бы было и "Satisfy any", то одинаково бы должно было бы работать?!
На каком-то форуме грешили на "редиректы" и использование фреймов, но фреймов на сайте нет, а вот "редиректы" были возможны... - например, "редирект" со стороны скрипта или Nginx-а на фронтенде, кстати, в лог. файле изменений последнего, регулярно проскакивают патчи "багов" с редиректами...
Просто так окончательно не определить, кто именно виноват в "Basic HTTP Authentication failure" - браузеры (IE, Firefox и Chrome), ведь в опере всё работает, Nginx на фронтенде или apache на бакэнде. Тут нужно жечь костры, курить травы и плясать с бубном;))
Ссылки по теме Basic HTTP Authentication
Так или иначе, в моём случае, проблема решена, что касается аналогичной проблемы с базовой авторизацией на других серверах типа IIS, то предлагаю побродить по тематическим ссылкам, что перечислены ниже.
- Authentication and Authorization - Apache HTTP Server
- BypassAuthenticationOrAuthorizationRequirements - Httpd Wiki
- iis - Kerberos authentication failing with 401 - Server Fault
- iis - Chrome fails to show http authentication window - Stack Overflow
- Run Chromium with flags - The Chromium Projects
- chrome.webRequest - Google Chrome
- Параметры реестра HTTP.sys для IIS