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