我已经configuration了apache2和mod_auth_kerb。 我以这种方式设置了我的.htaccess
# cat .htaccess AuthType Kerberos AuthName "Domain login" KrbAuthRealms DOMAIN.COM KrbMethodK5Passwd on Krb5KeyTab /etc/httpd/httpd.keytab require valid-user
当我在IE中打开页面时,在apache日志中出现以下错误:
gss_accept_sec_context() failed: Miscellaneous failure (, Key version number for principal in key table is incorrect)
然后我可以设置密码和通过基本authenticationlogin,这是完全没问题的。 但是我不能通过票证进行validation。
# klist -k /etc/httpd/httpd.keytab Keytab name: FILE:/etc/httpd/httpd.keytab KVNO Principal ---- -------------------------------------------------------------------------- 6 host/[email protected] 6 host/[email protected] 6 host/[email protected] 6 host/[email protected] 6 host/[email protected] 6 host/[email protected] 6 [email protected] 6 [email protected] 6 [email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 6 HTTP/[email protected] 6 HTTP/[email protected]
我应该如何处理KVNO? 它有什么不对?
PS KDC是ActiveDirectory(Windows 2003服务器)内的KDC。 我的服务器平台是SUSE Linux 10:
# cat /proc/version Linux version 2.6.16.60-0.21-smp (geeko@buemphasized textildhost) (gcc version 4.1.2 20070115 (SUSE Linux)) #1 SMP Tue May 6 12:41:02 UTC 2008
mod_auth_kerb是最新的(5.4-4.15)。 Kerberos库不是:
# zypper search krb Restoring system sources... Parsing metadata for SUSE Linux Enterprise Server 10 SP3... S | Catalog | Type | Name | Version | Arch --+-------------------------------------+---------+--------------------+----------------+------- i | SUSE Linux Enterprise Server 10 SP3 | package | krb5 | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-apps-clients | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-apps-servers | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-client | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-devel | 1.4.3-19.43.27 | x86_64 i | SUSE Linux Enterprise Server 10 SP3 | package | krb5-server | 1.4.3-19.43.27 | x86_64
KVNO是密钥表的版本号,每当你生成一个新的密钥表或者密码被改变时, KVNO得到递增。 该数字应该与Active Directory内部的数字相匹配。 此错误表示keytab包含主人认为已过期的条目。
您可以使用adsiedit.msc在目录中看到KVNO 。 在适当的用户下查找msDS-KeyVersionNumber属性; 通常它应该与keytab相同。 (在你的情况6)