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

Apache2 + mod_auth_kerb: номер версии ключа для принципала в таблице ключей неверен

Я настроил 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)

Затем я могу установить пароль и войти в систему через Basic Auth, и это полностью нормально. Но я не могу пройти аутентификацию по билету.

# 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

Что делать с КВНО? Что в этом плохого?

P.S. KDC - это KDC внутри ActiveDirectory (сервер Windows 2003). Моя серверная платформа - 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 номер версии keytab, каждый раз, когда вы создаете новую keytab или меняете пароль, KVNO увеличивается. Номер должен соответствовать тому, что находится внутри Active Directory. Эта ошибка указывает на то, что keytab содержит запись, которую мастер считает устаревшей.

Вы можете увидеть KVNO в каталоге с помощью adsiedit.msc. Под правильным пользователем найдите msDS-KeyVersionNumber атрибут; обычно он должен быть идентичен тому, что такое keytab. (В вашем случае 6.)