Jaas - Требование Возобновляемых Билетов Kerberos

У меня есть Java API, который общается с сервером Kerberos и выполняет различные операции. На данный момент мой API запрашивает невозобновляемые билеты на сервер Kerberos. Из того, что я понимаю, в файле конфигурации jaas есть опция, чтобы установить для параметра renewTGT значение true, чтобы можно было выдавать возобновляемый билет. Тем не менее, у Jaas, похоже, есть множество ограничений на установку времени "renewUntil". Может кто-нибудь сказать мне, как мы можем запросить возобновляемый билет, а также контролировать его возобновляемость? По сути, есть ли способ, которым мы можем выполнить Java-эквивалент операции: kinit -R? Заранее спасибо.

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 настроен на разрешение возобновляемых билетов.

Другие вопросы по тегам