使用 kerberos 身份验证的 LDAP 连接池

LDAP connections pooling with kerberos authentication

我试图解决的问题是,当使用 kerberos 连接 LDAP 时,我们每次都请求一个新的 TGT 和会话密钥。这会给 KDC 和网络带来不必要的负载。

我们想使用 LDAP 连接池但带有自定义身份验证,或者以某种方式重用 TGT.

请协助。

谢谢

有几种方法可以解决这个问题:

  1. 如果您不打算使用连接池,请使用 LoginContext 获取带有您的 TGT 的 Subject,只要该 TGT 有效就将其保存在内存中并用acquire/release 实施。一旦你的 Subjectnew InitialDirContext() 调用包装在 PriviledgedActionSubject#doAs() 中。
  2. 使用池(这是我在 Spring 中所做的):为此调整 Commons Pool 2 解决方案 implemented by Spring LDAP. Though, Spring's ContextSource does not support SASL GSSAPI mechanism. Luckily, you can use my library

无论哪种方式,我都使用这两种方法。第一种方法适用于自定义 authenticator/realm 并且在这里非常快。我想知道为什么您的实施如此缓慢 - 不管对您来说慢意味着什么。