2017-11-10 5 views
1

Ich automatisiere einen Dienst, der auf eine kerberisierte Ressource zugreifen muss. Passwordless kinit mit einem Keytab funktioniert gut. Die Ressource wird dann mit der Verwendung von SASL verbunden .TGT-Erneuerung automatisieren

Gibt es einen Weg, vielleicht über GSSAPI oder libkrb5, um sicherzustellen, dass ein TGT vorhanden ist immer wenn auf die Ressource zugegriffen wird? Forking kinit vor jedem Zugriff scheint die pragmatische Sache zu tun. Es gibt jedoch ein offensichtliches Wettrennen zwischen der Zeit der TGT-Übernahme und ihrer Verwendung, um ein TGS zu erwerben, das ich gerne vermeiden würde.

Ich stelle mir so etwas wie das Empfangen eines fd für die Authentifizierung vor, dessen Gültigkeit garantiert ist, bis es vom Benutzer geschlossen wird.

Ich würde lieber weg von Heavy-Duty-Lösungen wie sssd bleiben, um die TGT automatisch zu erneuern.

Antwort

2

Die Antwort stellt sich heraus, die Client keytab für libkrb5 im KRB5_CLIENT_KTNAME Parameters werden:

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. 

Vom MIT Kerberos docs.

Das Wiki hat auch eine write-up of the implementation.