Я пытаюсь протестировать свое приложение в домене ms. Сервер приложений развернут успешно. Оба, Kerberos и имя пользователя/пароль, аутентификация работают хорошо.
Но когда я добавляю «тест» (есть какая-то причина, по которой это контроллер), используя «KerberosRestTemplate» с сгенерированной клиентской keytab «ktpass», тогда возникает исключение «SunJaasKerberosTicketValidator»:
'java.security.PrivilegedActionException: GSSException: неуказанный сбой на уровне GSS-API (уровень механизма: указанная версия ключа недоступна (44))'.
Я предполагаю, что причина в том, что файл keytab, сгенерированный ktpass, был поврежден. Вот как я его генерирую:
"C:> ktpass /princ [email protected] /pass Qw1er2ty3 /ptype KRB5_NT_PRINCIPAL /out deniz.keytab
*NOTE: creating a keytab but not mapping principal to any user.
For the account to work within a Windows domain, the
principal must be mapped to an account, either at the
domain level (with /mapuser) or locally (using ksetup)
If you intend to map [email protected] to an account through other means
or don't need to map the user, this message can safely be ignored.
WARNING: pType and account type do not match. This might cause problems.
Key created.
Output keytab to deniz.keytab:
Keytab version: 0x502
keysize 52 [email protected] ptype 1 (KRB5_NT_PRINCIPAL) vno 1 etype 0x17 (RC4-HMAC) keylength 16 (0xa0eb0b1e09b8c36edc
2da4762c53283f)*"
На всякий случай я сохранил образец на своем github: https://github.com/mezlogo/kerberos_sample
Я думаю, что keytab моя keytab сломана, но не могу найти, как сгенерировать ее для использования клиентом (без HTTP/имя_пользователя@DOMAIN).
P.S. Извините за мой английский.