Apache 为 Firefox 提供的自定义 401 错误页面(非 IE Kerberos 按组授权)

Apache 为 Firefox 提供的自定义 401 错误页面(非 IE Kerberos 按组授权)

我的自定义 401 错误页面由 Firefox 的 Apache 提供,而不是 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:
     # [email protected]

     # 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 "[email protected]"
     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 [email protected] for access or information</html>"

编辑:

更大的 401 错误消息没有帮助,同样的问题。我还关闭了 IE 浏览器中的“友好 http 错误消息”显示。如果我使用纯 ldap 身份验证,则两个浏览器中都会正常显示相同的 401 错误消息。当我使用 kerberos 时,只有 Firefox 显示错误消息。

答案1

使ErrorDocument字符串更长,并用空格填充。

Internet Explorer 会忽略小于 256 或 512 字节的自定义错误页面,具体取决于返回的代码。

相关内容