Клиент Kerberos не найден в базе данных Kerberos
Я выполняю следующие команды на сервере W12:-
setspn -A HTTP / krbspn
ktpass / princ HTTP / @ / crypto ALL / ptype krb5_nt_principal / mapuser krbspn c: \ ticket \ krbspn.keytab -kvno 0 / pass Pa $$ w0rd
и kinit krbspn дает правильный результат, однако kinit HTTP/ возвращает:-
KrbException: клиент не найден в базе данных Kerberos (6) по адресу sun.security.krb5.KrbAsRep.(KrbAsRep.java:76) по адресу sun.security.krb5.KrbAsReqBuilder.send(KrbAsReqBuilder.java:319) по адресу sun.security.krb5.KrbAsReqBuilder.action(KrbAsReqBuilder.java:364) в sun.security.krb5.internal.tools.Kinit.(Kinit.java:221) в sun.security.krb5.internal.tools.Kinit.main(Kinit.java:113) Вызвано: KrbException: идентификатор не соответствует ожидаемому значению (906) в sun.security.krb5.internal.KDCRep.init(KDCRep.java:143) в sun.security.krb5.internal.ASRep.init(ASRep).java:65) на sun.security.krb5.internal.ASRep.(ASRep.java:60) на sun.security.krb5.KrbAsRep.(KrbAsRep.java:60) ... еще 4
Я все готово проверил с прямой и обратной DNS, и они работают нормально.
Интересный факт:-
Я использовал эти точные команды с тем же именем SPN на той же машине, и все работало отлично в течение нескольких месяцев. Но 2 дня назад просто для демонстрации я сделал:
setspn -D HTTP/ krbspn
а затем снова выполнили вышеуказанные команды, и теперь это сломано:-(
Любая помощь приветствуется..
Спасибо, Нихил
1 ответ
- setspn -A HTTP/ krbspn имеет пробел после / и до krbspn. Там не должно быть никакого разрыва там.
- В HTTP/@ /crypto ALL ktpass / princ должно быть какое-то имя хоста, указанное после HTTP / и перед @, предпочтительно полное DNS-имя.
- kinit HTTP / сам по себе всегда завершится неудачей, поскольку аргумент SPN является неполным, вы должны иметь какое-то имя хоста после HTTP /, иначе поиск в KDC ничего не найдет.
Для примера того, как выполнить команду ktpass, обратитесь к этой ссылке: Kerberos Keytabs - Explained. Пример команды ktpass внизу статьи. Если вы будете следовать этому, SPN и Keytab будут правильно собраны, и если вы все правильно выполните, аутентификация Kerberos будет успешной.