LDAP连接与kerberos身份验证池
问题描述:
我试图解决的问题是,当使用Kerberos与LDAP
连接时,我们每次都要求新的TGT
和会话密钥。这给KDC
和网络带来了不必要的负担。LDAP连接与kerberos身份验证池
我们想要使用LDAP
连接池,但有自定义身份验证或以某种方式只是重用TGT
。
请协助。
谢谢
答
有几种方法,以这样的:
- 如果你不打算池连接,使用
LoginContext
获得Subject
与TGT,认为TGT在内存中为只要它是有效的并且包含获取/发布实现。只要您的Subject
包裹new InitialDirContext()
呼叫PriviledgedAction
与Subject#doAs()
。 - 使用池(这是我在春季所做的):修改Commons Pool 2解决方案。虽然,Spring的
ContextSource
不支持SASLGSSAPI
机制。幸运的是,你可以为use my library。
无论哪种方式,我使用这两种方法。第一种方法适用于自定义的身份验证器/领域,在这里速度非常快。我想知道为什么你的实现如此之慢 - 无论对你来说速度如何缓慢。
谢谢迈克尔 1)你会建议重用只是TGT的Kerberos票的主体本身? 2)任何推荐的缓存? 3)是否有一种优雅的方式来验证基于TGT的结束日期? 4)你知道华夫饼吗? [链接](https://waffle.codeplex.com) –
@YoavS 1)仅限主题; 2)我写的Commons Pool 2; 3)不是从我的脑海到达,而仅仅是获得一张服务票,尽管这样做很便宜; 4)是的,他们真的很好吃。 –