使用Kerberos,成功使用kinit进行身份验证会导致本地缓存的TGT,该TGT将用于对使用Kerberos的服务进行身份验证。通常,此TGT有效期为一天,因此用户每天仅需一次提供其凭据即可与Kerberos服务进行所有交互。
说我编写了一个使用Cyrus SASL实现来使用Kerberos机制对用户进行身份验证的客户端/服务器应用程序。在这种情况下,TGT缓存如何工作?换句话说,客户端cyrus库是否自动跟踪TGT,以便将来与服务器的交互不需要用户凭据?如果是这样,是否有办法指定Cyrus从KDC获得的TGT是可转发的,以便客户端可以与其他使用Kerberized的服务进行交互?
感谢任何提示!
答案 0 :(得分:2)
据我所知,Cyrus SASL库没有为用户获取TGT –它甚至不知道主体或密码;相反,它希望TGT已存在于系统的凭据缓存中。
答案是使用kinit --forwardable
,因为无论如何都必须使用kinit。