一个服务如何向另一个在 Kerberos 中注册的服务进行身份验证?就我而言,这两个服务由不同的服务帐户拥有,因此它们无法像普通用户那样运行kinit,例如,每 10 小时到期时刷新一次。因此,当一个服务需要另一个服务时,它如何在没有 TGT(票证授予票证)的情况下获得 Kerberos 票证?
更具体地说,我运行一个 Apache Web 服务器来提供对 Subversion 存储库的访问。它的服务帐户和 SPN(服务主体名称)在 Kerberos 中注册。我还运行一个 Jenkins 服务器,有时需要签出这些存储库。普通用户可以向两个服务器进行身份验证:仅在运行kinit后才向 Apache 进行身份验证,以及通过 LDAP 向 Jenkins 进行身份验证。由于 Jenkins 服务帐户无法每 10 小时运行一次kinit ,全天候运行,因此它如何向 Apache 进行身份验证以访问 Subversion 存储库?
这听起来很相似,但没有好的答案。而且 Jenkins的 Kerberos 插件用于向 Jenkins 验证用户身份,而不是向 Apache 验证 Jenkins 身份。还有这个晦涩难懂、已弃用的解决方案,但我不知道它是否还适用。而且这个问题似乎应该独立于任何特定服务器,只是一个服务器试图向另一个使用 Kerberos 的服务器进行身份验证。