Моя пользовательская страница с ошибкой 401 обслуживается Apache для firefox, а не IE.
Я использую аутентификацию Kerberos и авторизацию группы ldap.
Обычно, если пользователь не входит в нужную группу, я бы хотел, чтобы отображалась страница с ошибкой 401. Это правильно работает с Firefox, но не с IE.
Кроме того, похоже, что браузер IE пытается дважды получить ресурс, в отличие от firefox, который извлекает ресурс один раз и отображает правильное сообщение об ошибке.
==> /var/log/httpd/ssl_access_log <==
xxx.xx.xxx.xx - - [20/Oct/2011:11:10:25 -0400] "GET / HTTP/1.1" 401 129
==> /var/log/httpd/ssl_request_log <==
[20/Oct/2011:11:10:25 -0400] xxx.xx.xxx.xx TLSv1 AES128-SHA "GET / HTTP/1.1" 129
==> /var/log/httpd/ssl_access_log <==
xxx.xx.xxx.xx - rballest [20/Oct/2011:11:10:25 -0400] "GET / HTTP/1.1" 401 129
==> /var/log/httpd/ssl_request_log <==
[20/Oct/2011:11:10:25 -0400] xxx.xx.xxx.xx TLSv1 AES128-SHA "GET / HTTP/1.1" 129
Вот соответствующие строки в моем httpd conf:
<Directory "/">
Order Allow,Deny
Allow from all
# http://httpd.apache.org/docs/current/mod/core.html#authtype
AuthType Kerberos
KrbServiceName HTTP
KrbAuthRealms REALM.DOMAIN.COM
Krb5Keytab /etc/httpd/mykeytab.keytab
KrbMethodNegotiate on
#KrbMethodK5Passwd on
KrbMethodK5Passwd off
KrbSaveCredentials on
# This removes the @REALM
KrbLocalUserMapping on
#Require valid-user
# LDAP AUTH
#AuthType Basic
AuthBasicProvider ldap
AuthName "Domain Credentials"
# this authorizes users with ldap
#AuthzLDAPAuthoritative on
# tls port 636
# text port 389
# userPrincipalName will require user to input userid like:
# username@subdomain.domain.com
# sAMAccountName will require user to input userid like:
# username
AuthLDAPUrl "ldaps://adserver.subdomain.domain.com/CN=Users,DC=subdomain,DC=domain,DC=com?sAMAccountName"
AuthLDAPBindDN "bind-id@subdomain.domain.com"
AuthLDAPBindPassword "password"
AuthLDAPRemoteUserIsDN on
AuthLDAPGroupAttributeIsDN on
# require one of the following groups
Require ldap-group CN=group1,CN=Users,DC=subdomain,DC=domain,DC=com
</Directory>
ErrorDocument 401 "<html><h1>Awstats Portal</h1><h2>Sorry, you don't have permission</h2>contact webmaster@domain.com for access or information</html>"
РЕДАКТИРОВАТЬ:
Более крупное сообщение об ошибке 401 не помогло, та же проблема. Я также отключил показ "дружественных сообщений об ошибках http" в моем браузере IE. Если я использую только чистую аутентификацию ldap, одно и то же сообщение об ошибке 401 отлично отображается в обоих браузерах. Когда я использую Kerberos, только firefox показывает сообщение об ошибке.
Сделайте свой ErrorDocument
строка длиннее, заполните ее пробелом.
Internet Explorer игнорирует настраиваемые страницы ошибок размером менее 256 или 512 байт, в зависимости от того, какой код возвращается.