2011-09-20 1191 views
4

我試圖再次使用Spring框架和Spring安全3.0來驗證用戶AD LDS \ ADAM。我不斷收到以下錯誤,希望有人能從這裏解釋問題所在。Spring安全和活動目錄LDAP錯誤32問題2001(NO_OBJECT)

[LDAP: error code 32 - 0000208D: NameErr: DSID-0315258B, problem 2001 (NO_OBJECT), data 0, best match of: 'CN=Users,DC=Domain,DC=local' ]; nested exception is javax.naming.NameNotFoundException: [LDAP: error code 32 - 0000208D: NameErr: DSID-0315258B, problem 2001 (NO_OBJECT), data 0, best match of: 'CN=Users,DC=Domain,DC=local' ]; remaining name 'cn=Mo Logan,cn=Users,dc=Domain,dc=local' 

任何人都可以解釋什麼是最好的匹配和剩餘名稱位的意思 - 這真的讓我感到困惑?這種搜索大小寫是否敏感?而像服務器和客戶端之間的時間差異這樣的問題會產生差異嗎?

從我在線閱讀的錯誤代碼32意味着不能找到對象 - 非常有幫助我相信你會同意。下面是我使用的配置信息:

<authentication-manager alias="ldapAuthenicationManager"> 
    <ldap-authentication-provider 
     user-search-base="cn=Users,dc=Domain,dc=local" 
     user-search-filter="(uid={0})" 
     role-prefix="Users" 
    /> 
</authentication-manager> 

<ldap-server url="ldap://server:50006/" manager-dn="CN=Admin,CN=Users,DC=Domain,DC=local" manager-password="Password101" /> 

我正在尋找通過UID(在LDS沒有SAM帳戶名),當我使用服務器上ldap.exe相同的標準搜索我能找到用戶正確如:

ldap_search_s(ld, "CN=Users,DC=Domain,DC=local", 2, "(uid=mologan)", attrList, 0, &msg) 

***Searching... 

ldap_search_s(ld, "CN=Users,DC=Domain,DC=local", 2, "(uid=mologan)", attrList, 0, &msg) 

Getting 1 entries: 

Dn: CN=Mo Logan,CN=Users,DC=Domain,DC=local 

badPasswordTime: 9/20/2011 1:19:51 PM GMT Standard Time; 

badPwdCount: 0; 

cn: Mo Logan; 

distinguishedName: CN=Mo Logan,CN=Users,DC=Domain,DC=local; 

dSCorePropagationData: 0x0 = (); 

instanceType: 0x4 = (WRITE); 

lastLogonTimestamp: 9/20/2011 9:10:32 AM GMT Standard Time; 

lockoutTime: 0; 

memberOf (2): CN=DMSUsers,CN=Users,DC=Domain,DC=local; CN=Users,CN=Roles,CN=Users,DC=Domain,DC=local; 

msDS-UserAccountDisabled: FALSE; 

name: Mo Logan; 

objectCategory: CN=Person,CN=Schema,CN=Configuration,CN={BD500A33-CE7C-492F-9007-BF1B17F972EE}; 

objectClass (4): top; person; organizationalPerson; user; 

objectGUID: 40f74ed4-6cf3-495e-a28c-6aa080a0333b; 

objectSid: S-1-514506224-2209559093-2723712157-1234827279-3369888698-2052446679; 

pwdLastSet: 9/20/2011 8:19:06 AM GMT Standard Time; 

uid: mologan; 

uSNChanged: 13994; 

uSNCreated: 13985; 

whenChanged: 9/20/2011 9:10:32 AM GMT Standard Time; 

whenCreated: 9/20/2011 8:16:54 AM GMT Standard Time; 

我以屬於角色下閱讀器組的管理員帳戶綁定到AD LDS。此用戶與我嘗試驗證的用戶名所在的級別相同。

正如你可能會說我是平的想法,爲什麼我收到此錯誤,希望有人能夠幫助我或點我在正確的方向,

乾杯提前&感謝

回答

0

我注意到你的問題中有一件奇怪的事情。你做一個搜索:

ldap_search_s(ld, "CN=Users,DC=Domain,DC=local", 2, "(uid=mologan)", attrList, 0, &msg) 

(uid=mologan)作爲過濾器,結果回報uid: chweeks是它只是一個錯字複製/從另一個搜索結果過去?

你寫LDAP.EXE你的意思LDP.EXE

另一件事---- ------ EDITED

你可以嘗試這種配置

<authentication-manager alias="ldapAuthenicationManager">  
    <ldap-authentication-provider 
     user-search-base="cn=Users" 
     user-search-filter="(uid={0})" 
     role-prefix="Users" 
    /> 
</authentication-manager> 

<ldap-server url="ldap://server:50006/dc=Domain,dc=local" manager-dn="CN=Admin,CN=Users,DC=Domain,DC=local" manager-password="Password101" /> 
+0

是的,apols是一個複製和粘貼錯誤 - 我抓住了錯誤的搜索結果,並關閉了窗口,並試圖修復它。 – Morrislgn

+0

我編輯我的答案,你可以嘗試這個配置 – JPBlanc

+1

感謝您的指點,我再次嘗試這個沒有任何喜悅的遺憾。同樣的錯誤或多或少,但具有較短的DN例如:[LDAP:錯誤代碼32 - 0000208D:NameErr:DSID-0315258B,問題2001(NO_OBJECT),數據0,最佳匹配:CN =用戶,DC =域, DC =本地'];嵌套異常是javax.naming.NameNotFoundException:[LDAP:error code 32 - 0000208D:NameErr:DSID-0315258B,problem 2001(NO_OBJECT),data 0,'CN = Users,DC = Domain,DC = local' ]。剩餘名稱'cn = Mo Logan,cn =用戶' – Morrislgn

3

的,我想我終於深入到底,希望這會幫助別人。下面是我的安全配置:

<authentication-manager alias="ldapAuthenicationManager">  
    <ldap-authentication-provider   
      user-search-filter="(uid={0})" 
      group-search-filter="(member=userGroup)" 
     >  
    </ldap-authentication-provider>  
</authentication-manager> 

<ldap-server url="ldap://server:50006/CN=Users,CN=Domain,CN=local" manager-dn="Cn=Admin,CN=Domain,CN=local" manager-password="Password101" /> 

我不得不創建一個用戶在LDS名爲admin,並將其分配給LDS讀者的角色(如果你沒有這一點,從提供的LDS的LDF文件導入)。現在創建一個用戶,然後是一個組,將用戶添加到在AD中創建的組中

此時,我得到了Ldap錯誤32.在通過spring安全代碼進行調試並查看服務器I的事件日誌後猜測問題在於AD LDS的設置。經過大量的小提琴和猜測工作後,我偶然發現了這個問題。

爲了解決這個問題,我最終添加了我想用(不是manager-dn)登錄到讀者組的用戶,以允許成功綁定。這樣做解決了問題。

希望這有用嗎?