Назад | Перейти на главную страницу

.htaccess требует пароля в Chrome, но не в других браузерах?

У нас на сайте есть .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 регистрировал имена пользователей в журнале доступа и смотрел, разрешены ли обращения из других браузеров по имени пользователя или нет ... и переходите оттуда.