2014-05-19 6 views
0

Моя цель: реализовать SSO в веб-приложении на основе Java. Моя проблема: я не специалист по безопасности ...с использованием файла keytab с расширением kerberos безопасности весны

После некоторого расследования я обнаружил, что весеннее защитное расширение кебероса - это то, что мне нужно (также посмотрел на apache shiro, но мог найти только пример с страницей входа).

Я использовал образцы в следующем проекте: https://github.com/spring-projects/spring-security-kerberos/tree/master/spring-security-kerberos-sample

я понял, что мне нужно создать Keytab. Когда я пытался использовать Keytab я получил следующее сообщение об ошибке:

javax.security.auth.login.LoginException: Unable to obtain password from user 

Глядя на некоторые подробности об этой ошибке я видел, что это может быть результатом wrong keytab location, но это не тот случай - я отлажена в источник и увидел, что файл keytab загружен.

Итак, я решил проверить свой keytab и посмотреть, все ли в порядке. Во-первых, это последняя команда (после длительной эволюции) Я использовал, чтобы создать свой Keytab:

ktpass /out http-web.keytab /mapuser [email protected] /princ HTTP/[email protected] /pass MyPass /ptype KRB5_NT_PRINCIPAL 

Конечно, я создал имя участника-службы для MyUser с помощью следующей команды:

setspn -a HTTP/[email protected] MYDOMAIN.COM\MyUser 

Я проверил SPN с следующее:

setspn -Q HTTP/[email protected] 

И получил успешный результат:

Checking domain DC=mydomain,DC=com CN=MyUser,OU=MyOrg,DC=mydomain,DC=com 
    HTTP/MyUser 
    HTTP/[email protected] 

Существующий SPN найден!

Теперь я хотел проверить, смогу ли я получить билет на MyUser, выполнив следующую команду:

kinit [email protected] 

Я получил положительный результат ("новый билет хранится в файле кэша ....«)

Теперь я хотел, чтобы проверить его с моим Keytab:

kinit [email protected] -k -t http-web.keytab 

Got следующее исключение:

Exception: krb_error 0 Do not have keys of types listed in default_tkt_enctypes available; only have keys of following type: No error KrbException: Do not have keys of types listed in default_tkt_enctypes available; only have keys of following type: 

Я использовал Klist инструмент, чтобы увидеть, если мой Keytab содержит любые ключи:

klist -e -K -k -t http-web.keytab 

Получил следующий результат:

KVNO: 8 
Key type: 23 
Key: 0x47bf8039a8506cd67c524a03ff84ba4e 
Time stamp: Jan 01, 1970 02:00 

В последней отчаянной попытке, я проверил следующие параметры учетной записи для MyUser:

  • типы шифрования Использование Kerberos DES для этой учетной записи
  • В аккаунте suppoerts Kerberos AES 128 бит шифрования
  • Учет suppoerts Kerberos AES 256-битное шифрование

Я не уверен, что настройка этих параметров вызвала его, но теперь, когда я запускаю

kinit [email protected] 

Я получаю следующее сообщение об ошибке:

Exception: krb_error 14 KDC has no support for encryption type (14) KDC has no support for encryption type 
KrbException: KDC has no support for encryption type (14) 

Так я вроде отчаянной здесь, я не знаю, что я делаю. Это все зависит от проб и ошибок (в основном, от ошибок). Если кто-нибудь может направить меня сюда, мы будем очень благодарны.

Спасибо, Лиор

ответ

0

Оказалось глупая ошибка. Я ввел весной учетную запись пользователя вместо основного имени как servicePrincipal.

Смежные вопросы