2016-11-15 158 views
0

我試圖解決的問題是,當使用Kerberos與LDAP連接時,我們每次都要求新的TGT和會話密鑰。這給KDC和網絡帶來了不必要的負擔。LDAP連接與kerberos身份驗證池

我們想要使用LDAP連接池,但有自定義身份驗證或以某種方式只是重用TGT

請協助。

謝謝

回答

0

有幾種方法,以這樣的:

  1. 如果你不打算池連接,使用LoginContext獲得Subject與TGT,認爲TGT在內存中爲只要它是有效的並且包含獲取/發佈實現。只要您的Subject包裹new InitialDirContext()呼叫PriviledgedActionSubject#doAs()
  2. 使用池(這是我在春季所做的):修改Commons Pool 2解決方案​​。雖然,Spring的ContextSource不支持SASL GSSAPI機制。幸運的是,你可以爲use my library

無論哪種方式,我使用這兩種方法。第一種方法適用於自定義的身份驗證器/領域,在這裏速度非常快。我想知道爲什麼你的實現如此之慢 - 無論對你來說速度如何緩慢。

+0

謝謝邁克爾 1)你會建議重用只是TGT的Kerberos票的主體本身? 2)任何推薦的緩存? 3)是否有一種優雅的方式來驗證基於TGT的結束日期? 4)你知道華夫餅嗎? [鏈接](https://waffle.codeplex.com) –

+0

@YoavS 1)僅限主題; 2)我寫的Commons Pool 2; 3)不是從我的腦海到達,而僅僅是獲得一張服務票,儘管這樣做很便宜; 4)是的,他們真的很好吃。 –