簡體   English   中英

Spring Security和Active Directory LDAP錯誤32問題2001(NO_OBJECT)

[英]Spring Security & Active Directory LDAP Error 32 problem 2001 (NO_OBJECT)

我正在嘗試使用Spring框架和Spring Security 3.0再次驗證用戶AD LDS \\ ADAM。 我一直收到以下錯誤,希望有來自這里的人可以解釋問題所在。

[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中沒有SAMAccountName),當我使用服務器上的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作為管理員帳戶,屬於角色下的讀者組。 此用戶與我嘗試驗證的用戶名處於同一級別。

正如你可能會說我對於為什么我會收到這個錯誤的想法一無所知,希望有人能夠幫助我或指出我正確的方向,

歡呼和感謝提前

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

<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中的reader角色(如果你沒有這個,請從為LDS提供的ldf文件中導入它)。 現在創建一個用戶,然后創建一個組,將用戶添加到在AD中創建的組

此時我收到了Ldap錯誤32.在通過spring安全代碼進行調試並查看服務器的事件日志之后,我猜測問題出在AD LDS的設置方式上。 經過大量的擺弄和猜測工作,我偶然發現了問題。

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

希望這有用嗎?

我發現你的問題很奇怪。 你做了一個搜索:

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" /> 

暫無
暫無

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

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