У нас на сайте есть .htaccess http://subdomain.site.com/:
AuthType Kerberos
AuthName "Internet ID"
require valid-user
order deny,allow
deny from all
allow from all
В подкаталоге сайта http://subdomain.site.com/subdirectory/ у нас есть .htaccess:
AuthType none
Satisfy any
Причина в том, что в этом подкаталоге / у нас другой механизм аутентификации, и мы не хотим использовать Kerberos в качестве аутентификации. Проблема заключается в том, что в Chrome аутентификация .htaccess все еще появляется, но firefox, opera, IE не запрашивают эту аутентификацию перед загрузкой страницы.
Мне сложно понять, как конфигурация на стороне сервера может быть представлена конечному пользователю по-разному в зависимости от браузера? Есть ли что-то в моем подкаталоге .htaccess, чего мне не хватает?
Я только что воспроизвел это. Chrome запрашивает /favicon.ico и получает HTTP / 1.1 401 Требуется авторизация. Другие браузеры игнорируют это. Chrome представляет диалоговое окно аутентификации. Попробуйте добавить это в свой .htaccess на своем сайте http://subdomain.site.com/
<Files "favicon.ico">
AuthType none
Satisfy any
</Files>
Вот ошибка ... http://code.google.com/p/chromium/issues/detail?id=12876 ...довольно плохо.
При использовании chrome вы должны передать ему аргументы в командной строке, чтобы www -gotiate заработал. В частности, вы должны внести в белый список имена хостов (FQDN) веб-серверов с поддержкой Kerberos. Из http://www.chromium.org/developers/design-documents/http-authentication :
google-chrome --auth-server-whitelist="*example.com,*foobar.com,*baz"
Если вы хотите принудительно использовать только gssapi и не использовать базовую аутентификацию:
google-chrome --auth-schemes="negotiate"
См. Ссылку выше для получения дополнительной информации.
Предположительно, наиболее вероятная причина заключается в том, что Chrome не поддерживает Kerberos или не поддерживает его так же, как три других браузера. Скорее всего, все пользователи проходят аутентификацию, сервер по-прежнему требует аутентификации (не делает то, что вы думаете), но браузеры, поддерживающие Kerberos, делают это прозрачно.
Я бы сказал, чтобы apache регистрировал имена пользователей в журнале доступа и смотрел, разрешены ли обращения из других браузеров по имени пользователя или нет ... и переходите оттуда.