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