У меня есть Java API, который общается с сервером Kerberos и выполняет различные операции. На данный момент мой API запрашивает невозобновляемые билеты на сервер Kerberos. Насколько я понимаю, в конфигурационном файле jaas есть возможность установить для параметра RenewTGT значение true, чтобы можно было выпустить возобновляемый билет. Однако, похоже, что у Jaas есть много ограничений на установку времени «RenewUntil». Кто-нибудь, пожалуйста, скажите мне, как мы можем запросить новый билет, а также контролировать его продление? В принципе, есть ли способ выполнить Java-эквивалент операции: kinit -R? Заранее спасибо.
Jaas - Запрос возобновляемых билетов Kerberos
Ответы (1)
Начиная с JDK7 (1.7.0_55), JAAS Krb5LoginModule
не предоставляет никаких опций для запроса возобновляемого TGT при аутентификации, поэтому в настоящее время это невозможно с использованием JAAS. Возможно, вам удастся этого добиться, но вам нужно будет напрямую использовать внутренние классы Kerberos, минуя JAAS.
Внутренне Krb5LoginModule
создает экземпляр sun.security.krb5.KrbAsReqBuilder
для получения учетных данных с использованием либо предоставленного пароля, либо keyTab. KrbAsReqBuilder
имеет метод setOptions(KDCOptions options)
, но он не вызывается в модуле входа в систему. Если бы к нему можно было получить доступ, вы могли бы вызвать KDCOptions#set(KDCOptions.RENEWABLE, true)
, и тогда я бы ожидал, что возвращенный билет будет возобновляемым, если KDC настроен на разрешение возобновляемых билетов.
renewTGT
и должно сойтись. Почему бы вам не включить ведение журнала и не использовать Wirshark, чтобы увидеть, что на самом деле делает Java? - person Michael-O   schedule 18.08.2013renewTGT
доступен только приuseTicketCache=true
, а затем применяется только к билетам, извлеченным из (собственного) кеша билетов. Это означает, что вы использовали что-то вродеkinit
или логин Windows для получения билета, что эквивалентноkinit -R
. Согласно моему ответу ниже, в настоящее время нет возможности получить возобновляемые билеты и продлить их с помощью билетов, полученных JAAS. - person javabrett   schedule 08.09.2014