автоматизировать продление TGT

Я автоматизирую службу, которой требуется доступ к ресурсу с поддержкой Kerberos. Беспарольный kinit с keytab работает нормально. Затем ресурс подключается с использованием SASL.

Есть ли способ, возможно, через GSSAPI или libkrb5, обеспечить наличие TGT при каждом доступе к ресурсу? Разветвление kinit перед каждым доступом кажется прагматичным. Тем не менее, существует очевидная гонка между временем приобретения TGT и его использованием для приобретения TGS, чего я хотел бы избежать.

Я представляю что-то вроде получения fd для аутентификации, действительность которого гарантируется до тех пор, пока он не будет закрыт пользователем.

Я бы предпочел держаться подальше от ресурсоемких решений, таких как sssd, для автоматического продления TGT.


person phg    schedule 10.11.2017    source источник


Ответы (1)


Ответ заключается в предоставлении таблицы ключей client для libkrb5 в параметре KRB5_CLIENT_KTNAME:

If no existing tickets are available for the desired name, but the name
has an entry in the default client keytab, the krb5 mechanism will
acquire initial tickets for the name using the default client keytab.

Из документов MIT Kerberos.

В вики также есть описание реализации.

person phg    schedule 10.11.2017