2011-05-20 52 views
0

我的具體問題是,當我嘗試用下面的完整DN綁定,一切都很好是OpenLDAP LDAPConnection.bind()dn字符串中可能的通配符?

new LDAPConnection().bind(LDAPConnection.LDAP_V3, 
"[email protected],ou=Lev1,ou=Lev2,o=Company", "secret".getBytes()); 

然而,當我試圖用一個不完整的DN綁定,我得到一個無效的憑證例外。

new LDAPConnection().bind(LDAPConnection.LDAP_V3, 
"[email protected],ou=Lev1,o=Company", "secret".getBytes()); 

是他們的某種形式的通配符這是可能的,如 「UID =我@ wherever.com,OU = LEV1,OU = *,O =公司」?

回答

0

要做這樣的通配符,你必須首先做一個搜索並選擇你想要執行綁定的那一個。這可能意味着你需要綁定一個可以執行搜索的ID。 ;)

+0

我害怕(雖然不害怕)。我們早就做出決定,我們只會'知道'dn,當然我們錯了。我必須將其重寫爲搜索並綁定。謝謝! – 2011-05-20 14:53:47

1

不,這聽起來像你可能會混淆bind()和search()。 bind()是針對目錄的身份驗證,就像登錄一樣。綁定一個帶有通配符的dn就像使用通配用戶名登錄一樣。沒有任何意義。

0

不,使用通配符不可能按照您描述的方式進行。但是,SASL提供了一種機制來完成所需的行爲。您的目錄服務器管理員可以配置目錄服務器以將身份映射到授權ID,其中客戶端不需要知道用於驗證LDAP連接的身份識別名。專業品質的目錄服務器軟件將提供各種身份映射功能。