2017-05-31 120 views
0

我對LDAP有一些理解問題。 當我使用Active Directory服務器時,我可以使用username @ domain和密碼進行綁定。LDAP通過用戶名和域名獲取用戶DN

當我使用ApacheDS時,我必須給它用戶和密碼的完整DN。

所以我有如下因素的問題:

  • 我如何找到用戶的ApacheDS的服務器上的完整DN與 匿名privilegs,只有用戶名,域(和 密碼)的知識呢?
  • 這是偶嗎? ApacheDS服務器甚至是Active Directory的替代品嗎?
+0

你有任何地方的東西一個LDAP搜索查詢?如果是,則搜索具有列出的'userPrincipalName'屬性的用戶,應該通過其實際DN返回一個用戶。然後用DN和密碼查詢,如果它與用戶匹配。 – Vesper

回答

1

一般來說,LDAP認證分兩步進行:

  1. 使用帶有過濾器的搜索操作映射一個給定唯一的用戶標識符(UID),以它卓越的名稱,如(&(objectClass=user)(uid=%s))
  2. 使用綁定與該dn進行操作,以針對您的LDAP服務器進行身份驗證。

Active Directory帶有一個便利功能:您可以使用一對支持的標識符進行綁定,並且AD將爲您在內部執行映射。

ApacheDS不是AD的即插即用替代品,但它是可擴展的。 Java開發人員可以輕鬆編寫一個認證攔截器,提供與AD相同的內部映射。

+0

Shuld此方法適用於AD和其他LDAP服務器?我嘗試了這種方式,並且在匿名訪問時搜索失敗。當我已經authenticatet(綁定)到它的工作服務器:S – maxbit89

+0

這就是如何配置AD:沒有認證沒有搜索。 – marabu