Apache2 + mod_auth_kerb:密钥表中主体的密钥版本号不正确

pet*_*hka 3 active-directory single-sign-on mod-auth-kerb apache-2.2

我已经配置了 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
Run Code Online (Sandbox Code Playgroud)

当我在 IE 中打开页面时,我在 apache 日志中收到以下错误:

gss_accept_sec_context() failed: Miscellaneous failure (, Key version number for principal in key table is incorrect)
Run Code Online (Sandbox Code Playgroud)

然后我可以通过基本身份验证设置密码和登录,这完全没问题。但是我无法通过票证进行身份验证。

# klist -k /etc/httpd/httpd.keytab
Keytab name: FILE:/etc/httpd/httpd.keytab
KVNO Principal
---- --------------------------------------------------------------------------
   6 host/portal.domain.com@DOMAIN.COM
   6 host/portal.domain.com@DOMAIN.COM
   6 host/portal.domain.com@DOMAIN.COM
   6 host/portal@DOMAIN.COM
   6 host/portal@DOMAIN.COM
   6 host/portal@DOMAIN.COM
   6 PORTAL$@DOMAIN.COM
   6 PORTAL$@DOMAIN.COM
   6 PORTAL$@DOMAIN.COM
   6 HTTP/portal.domain.com@DOMAIN.COM
   6 HTTP/portal.domain.com@DOMAIN.COM
   6 HTTP/portal.domain.com@DOMAIN.COM
   6 HTTP/portal@DOMAIN.COM
   6 HTTP/portal@DOMAIN.COM
   6 HTTP/portal@DOMAIN.COM
Run Code Online (Sandbox Code Playgroud)

我应该用 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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

小智 5

KVNO是密钥表的版本号,每次生成一个新的密钥表或更改密码时KVNO被递增。该数字应与 Active Directory 中的数字相匹配。此错误表明密钥表包含主服务器认为已过期的条目。

您可以KVNO使用adsiedit.msc. 在适当的用户下查找msDS-KeyVersionNumber属性;通常它应该与密钥表相同。(在你的情况下 6。)