簡體   English   中英

Java-Spring-LDAP-Kerberos

[英]Java-Spring-LDAP-Kerberos

我需要一些幫助,以將基於Spring的應用程序中的用戶身份驗證委派給Active Directory,這似乎將這種責任委派給了Kerberos-我似乎無法弄清楚如何做到這一點。 這是一團糟的真實樣子:

我遵循有關配置Spring Security與LDAP服務器一起使用的Spring指南。 一切順利。

我有主機,是實際LDAP服務器的端口。 我將Spring Security配置為可以與之對話,它不允許我進行身份驗證。

OK,我下載了jxplorer並成功連接到我的LDAP服務器。 如果jxplorer僅知道HOST,PORT,USERNAME和PASSWORD才能連接到LDAP,我認為我的應用程序應該能夠執行此操作。

奇怪的是,我的LDAP沒有顯示OU = people。 我的員工分散在樹中的各個OU之間,這是每個部門的一種OU-但是,大多數人在樹的內部同樣深。

同樣奇怪的是,我唯一標識一個人的實際人節點沒有userPassword屬性。

為了進行實驗,我以某種方式配置Spring Security,使其嘗試通過查看代表我部門的OU來驗證個人身份,並告訴它用作密碼mailNickname(使用PlaintTextPasswordEncoder()),並且它可以正常工作-僅在端口3268上有效,而不是389。

此時,我開始猜測-LDAP告訴基於Spring的應用程序需要與Kerberos通訊,而我沒有告訴它如何執行Kerberos,因此可以解釋為什么我的應用程序無法通過身份驗證。 但是,沒有人告訴jxplorer Kerberos將對其進行身份驗證,但是它設法獲得了LDAP樹的視圖。 顯然,我的spring-app的假設!= jxplorer的假設。 我給了他們完全相同的信息,但其中一個設法認證了另一個人。 有人知道嗎?

編輯:好的,所以,我仍然沒有解決這個問題,但是我想我的錯誤已經改變,這是進步的標志。

我根據這個配置彈簧: 鏈接

現在,當我嘗試登錄時,如果輸入錯誤的密碼或用戶名,則會收到明顯表明輸入密碼錯誤的投訴。 但是,如果我輸入正確的密碼,投訴會有所不同。

堆棧跟蹤的末尾包括:原因:javax.security.auth.login.LoginException:預身份驗證信息無效(24)

但是,調試還指示在kerberos數據庫中找到了該用戶,因為它說:“主要是username @ correct_realm”和“添加的服務器的密鑰Kerberos主體correct_user @ correct_realm”並執行一些十六進制轉儲。

因此,我確定我的keytab不能正常工作。 我確定Spring可以找到我的密鑰標簽,因為它說:KeyTab是my_keytab_file(否則它將說:KeyTab為空)。

如果使用Kerberos配置,則可以嘗試SPNEGO。 它是Java中Kerberos最好的庫之一。

閱讀: http : //spnego.sourceforge.net/

Kerberos身份驗證的示例代碼:

用法示例(用戶名/密碼):

public static void main(final String[] args) throws Exception {
     System.setProperty("java.security.krb5.conf", "krb5.conf");
     System.setProperty("sun.security.krb5.debug", "true");
     System.setProperty("java.security.auth.login.config", "login.conf");

     SpnegoHttpURLConnection spnego = null;

     try {
         spnego = new SpnegoHttpURLConnection("spnego-client", "dfelix", "myp@s5");
         spnego.connect(new URL("http://medusa:8080/index.jsp"));

         System.out.println(spnego.getResponseCode());

     } finally {
         if (null != spnego) {
             spnego.disconnect();
         }
     }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM