2015-01-14 25 views
0

我連接到我的ldap帳戶「myApp」並嘗試認證「usernumber」。ldap認證問題與正確的憑據

我用於登錄到LDAP帳戶連接字符串是:

security.ldap.cert.userDn=uid=myApp,ou=Org Unit,ou=application,dc=XXX,dc=com 
security.ldap.cert.password=mypassword 

我的用戶數搜索過濾器:

<property name="searchFilter" value="usernumber={0}" /> 
<property name="searchBasePattern" value="ou=User,o=network" /> 

我獲得:

Your login attempt was unsuccessful. Please try again. 
Cause: Bad credentials 

我嘗試了不同的用戶號碼及其相應的密碼。甚至創建了一個新的用戶編號,以確保它實際上存在於ldap服務器中。但仍然顯示相同的錯誤。這是否有其他原因? 對於不同的LDAP帳戶會有不同的權限嗎?

回答

1

在你的問題你提供2個獨立的東西:

  1. 您的DN和密碼。
  2. 用於搜索的一些參數。

爲了在LDAP中搜索,您需要「連接」(又名「綁定」)到它 - 這是使用#1的地方。錯誤信息可能與此步驟有關,因此請仔細檢查您的DN和相應的密碼。

要驗證用戶的密碼,您需要知道用戶DN。因此,通常需要使用#1中的技術/應用程序憑證連接到LDAP,然後使用#2搜索用戶,最後在獲得用戶的DN後,通過「連接」找到DN和用戶密碼。

+0

我的「連接」(又名「綁定」)工作正常。我通過給它錯誤的值來檢查它。我正在獲取Ldap錯誤。但我的問題是特定於用戶dn的,我想。我的用戶在節點「usernumber」下,我仔細檢查了他們是否真的在那裏。我的框架正在檢查用戶的DN和密碼,並給我帶來了錯誤的信息。 – RBz

+0

用戶的DN是否如下所示:「usernumber = xxx,ou = User,o = network」?請注意,您應該使用完整的用戶DN,可能它不一定包含「usernumber = xxx」,但例如「UID = YYY,OU =用戶,O =網絡」。 –

+0

我已連接到我的LDAP,現在我必須檢查該用戶號碼是否存在。每個試圖登錄的用戶都應該檢查它是否存在。用戶DN是「usernumber = xxx,ou =用戶,o =網絡」。但只是我必須驗證所有試圖登錄的用戶。所以我給「searchBasePattern」value =「ou = User,o = network」和「searchFilter」value =「usernumber = {0}」。我相信這是做到這一點的正確方法。 – RBz