Ошибка — Cannot find key for kvno in keytab
В один момент перестала работать Kerberos/SSO аутентификация на сайте размещённом на веб-сервере Apache, в логах значатся ошибки вида.
...
[Mon Sep 04 11:04:58.724720 2023] [auth_kerb:error] [pid 19547] [client 10.51.90.61:58932] gss_accept_sec_context() failed: Unspecified GSS failure. Minor code may provide more information (, Cannot find key for HTTP/svc.web@JAKONDA.LOCAL kvno 4 in keytab)
...
Проверяем текущее значение номера Key Version Number (KVNO) в keytab-файле:
klist -k /etc/svc.web.keytab
Keytab name: FILE:/etc/svc.web.keytab
KVNO Principal
---- --------------------------------------------------------------------------
2 HTTP/zabbix.jakonda.ru@JAKONDA.LOCAL
Видим что номер Key Version Number (KVNO)
учётной записи равен 2
, в то время у учетной записи AD атрибут msDS-KeyVersionNumber
равен 4
.
Такое может получится при внесении изменений в учетную запись, к примеру при смене пароля и т.д., в этом случае все keytab-файлы, которые генерировались ранее для этой учётной записи (где номер KVNO меньше текущего) становятся недействительными.
В Windows можно посмотреть текущее значение KVNO для учетной записи в свойствах учётной записи — атрибут msDS-KeyVersionNumber
Либо выполнив команду в консоли:
dsquery * -filter sAMAccountName=svc.web -attr msDS-KeyVersionNumber
msDS-KeyVersionNumber
4
Исправить эту ошибку просто, нужно лишь сгенерировать новый keytab-файл для учетной записи. Делается все это командой ниже, не забываем подставить свои данные вместо моих.
ktpass -princ HTTP/web.jakonda.ru@JAKONDA.LOCAL -mapuser svc.web@JAKONDA.LOCAL -pass 3T2XgYCz2IFcBUo0altu -crypto ALL -ptype KRB5_NT_PRINCIPAL -out C:\Keytabs\svc.web.keytab
Проверяем текущее значение номера KVNO в вновь сгенерированном keytab-файле и проверяем kerberos аутентификацию с новым keytab-файлом и все должно быть успешно.
klist -k /etc/svc.web.keytab
Keytab name: FILE:/etc/svc.web.keytab
KVNO Principal
---- --------------------------------------------------------------------------
4 HTTP/zabbix.jakonda.ru@JAKONDA.LOCAL
kinit -V -k -t /etc/svc.web.keytab HTTP/svc.web@JAKONDA.LOCAL
Using default cache: /tmp/krb5cc_0
Using principal: HTTP/svc.web@JAKONDA.LOCAL
Using keytab: /etc/svc.web.keytab
Authenticated to Kerberos v5
Обсуждение
Нет комментариев.