在内存中为来自不同域 (AD) 的多个主体缓存 kerberos TGT 以供重用

问题描述

场景:

  • 我们想要连接到多个 AD 域以获取 AD 对象信息。
  • 对于身份验证,我们想使用 Kerberos。
  • 这是同时完成的,这意味着从多个 AD 域中获取数据预计将在单个请求中完成 - 可互换或在多线程环境中完成。

问题:

  • Kerberos 身份验证需要时间,并且被证明会影响性能

  • 因此,在应用程序机器上缓存 TGT 凭据将为我们解决问题

  • 单个缓存文件仅存储一个主体 TGT。因此,为了支持多个域,我们必须持久化多个缓存文件并动态选择用于当前上下文创建的缓存文件

  • 这确实是一个有效的解决方案,但问题在于安全问题:如何?

我们在不同的缓存文件中使用 kinit 缓存 TGT,但这种解决方案的缺点是,如果应用程序机器的安全性受到损害,那么这些 TGT 可以被任何不同的应用程序用于身份验证(我们希望TGT 的生命周期更长)

那么,有没有一种方法可以利用内存中的缓存?我知道 krb.conf 文件中的 MEMORY: ccache 配置,但同样,这如何解决缓存多个主体 TGT 的问题?我还没有尝试过这个解决方案,但据我所知,连续的 kinit 调用会覆盖之前的主体 TGT。

为每个 AD 域设置不同的 krb.conf 文件对我们有帮助吗?我还没有探索 keytab 的概念,这对解决我们的问题有帮助吗?


请注意:我是这个领域的新手,还处于学习概念和实现的阶段。以上几点可能感觉像是在猜测,但确实如此。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)