LDAP協議的這兩個實現之間有什麼主要區別?哪個更適合異質環境?任何有關此主題的優秀網站?Active Directory vs OpenLDAP
回答
對於希望使用通用服務器(如OpenLDAP)的hetrogenous環境。 AD的優勢通常在於它已經包含了內部用戶的用戶帳戶 - 這些帳戶可以與單獨的LDAP服務器保持同步,但這會增加複雜性。
就協議的具體細節而言,Oracle虛擬目錄的文檔有一個相當不錯的總結。 (OVD是可用於代理AD和翻譯一些其怪癖成更標準接口的產品):
http://download.oracle.com/docs/html/E10286_01/app_bundled_plugins.htm#CHDGDBBG
測距屬性在Active Directory和ADAM屬性 與更 然後返回1000個值1000(在 的某個時間,其名稱包括返回值的 值範圍(或對於Windows 2003爲 1500)。範圍是 回到形式的客戶端: 成員; 1-1000:someValue中爲了 獲得下一個千項,則 客戶端應用程序必須以某種方式知道 重複查詢,並要求 屬性成員; 1001 -2000。與其他 目錄產品相比,此 需要應用程序以 特殊方式處理 Microsoft Active Directory。
密碼更新微軟 Active Directory和ADAM周圍有如何 用戶的密碼可以使用LDAP更新特殊 規則:
- 密碼可以僅通過安全的SSL連接進行更新。
- 如果用戶更新自己的密碼,原始密碼必須 包括在修改與刪除 新密碼是一個修改 添加相同的修改操作。
- 只有管理員可以在不知道 以前的密碼的情況下重置用戶的密碼。
- Active Directroy不使用userPassword屬性,它使用 unicodePwd屬性(即 quoted-UTF16-hex-padded-base64 encoded)。
對象類映射大多數LDAP目錄 使用的inetOrgPerson和 groupOfUniqueNames對象爲 用戶和組班。 Microsoft活動目錄 使用用戶和組對象類 具體 到Active Directory NOS要求微軟 屬性。」
這些都是一些主要的,但還有其他的。
以下是我知道的一些區別。可以將OpenLDAP稱爲與許多其他供應商的LDAP服務器(Fedora DS 389,Oracle Internet Directory,IBM Tivoli Directory Server)類似的通用LDAP服務器。活動目錄對微軟產品套件(即:運行微軟域)進行更多定製。每個人都有優點和缺點。
安裝後OpenLDAP爲空,並且沒有結構(稱爲DIT)。它甚至沒有開箱即用的根條目。 AD將發佈一個基本結構,並且已經爲您準備好GUI工具來開始填充用戶。 OpenLDAP和其他人希望你手動創建DIT,所以你必須設計一個結構。因此,如果您的項目涉及到類似的事情,您必須計劃將您的用戶,組,角色放在哪裏,並考慮ACL或分支委派。例如,你可能有一個widgets.com的域名。在公元出貨結構將是這個樣子:
+ dc=widgets,dc=com
|-- cn=Computers
|-- cn=Users
|-- cn=Groups
OpenLDAP中(或其他香草實現),你可以設計自己的DIT在許多方面。您可以遵循域組件(dc = foo,dc = bar)約定,或者您可以使用按地理區域組織的東西(o = foo,c = bar)。這並不重要,但你應該去一個或另一個。 AD使用DC約定,並沒有給你一個選擇,但其他LDAP服務器可以遵循任何約定。如果你想融入一個大的MS域名,我會堅持使用DC約定來保持一致性和易於集成。但在這個例子中,我們將沒有區域或單位(OU)在一個國家(C)假裝我們公司組織(O):
+ o=widgets,c=us
|-- cn=Machines
|-- cn=People
|-- cn=Groups
|-- cn=Roles
然後你可以擴展你的方案如果需要的話。如果要擴展AD架構,AD將要求您通過Active Directory架構編輯器MMC控制檯插件(創建自定義MMC)添加架構元素。之後,它非常簡單。首先定義你的屬性,然後定義你的對象類。 OpenLDAP要求你編寫一個LDIF(首先還需要屬性,然後是對象類)。或者使用Apache Directory Studio和OpenLDAP,這是一個非常棒的圖形用戶界面和管理工具,並且使OpenLDAP在AD方面的易用性更好。
AD不允許您匿名查詢389上的所有內容。如果您想獲取架構信息(稱爲目錄),則必須在3289上進行查詢並進行身份驗證。這讓我想起LDAP的DIB與DIT隱藏,但我不知道AD是否正在嘗試在這裏做同樣的事情。
AD的默認查詢限制爲10,000。如果您想一次性吸收所有內容,則必須在客戶端或代碼中使用分頁控件,或者修改正在搜索的域控制器上的默認查詢限制。請注意,分頁控件可能有問題。我已經讓他們使用Netscape庫在java中工作,但即使他們聲稱他們支持分頁控件(YMMV),但某些LDAP客戶端似乎仍然無法正常工作。
AD的認證有點奇怪。您可以通過電子郵件格式的用戶名(-D username @ domain)進行身份驗證,也可以使用完整的用戶DN。如果在OpenLDAP中有這樣的方法,我不知道該怎麼做,但我不打擾。與其他LDAP服務器相比,這很奇怪。普通的LDAP通常遵循DN格式(cn = username,cn = Users,o = widgets,c = us)。
我想簡而言之,AD是有見地的,OpenLDAP是通用的。因此,AD很容易站起來,但OpenLDAP可以更靈活。