LDAP 的全稱是 Lightweight Directory Access Protocol(輕量目錄通路協定),LDAP 「是一個協定」,約定了 Client 與 Server 之間的資訊互動格式、使用的端口号、認證方式等内容。而 「LDAP 協定的實作」,有着衆多版本,例如微軟的 Active Directory 是 LDAP 在 Windows 上的實作,AD 實作了 LDAP 所需的樹形資料庫、具體如何解析請求資料并到資料庫查詢然後傳回結果等功能。再例如 OpenLDAP 是可以運作在 Linux 上的 LDAP 協定的開源實作。而我們平常說的 LDAP Server,一般指的是安裝并配置了 Active Directory、OpenLDAP 這些程式的伺服器。
LDAP 協定能解決什麼問題,那不得不提 AD。AD 是 Windows 伺服器上最強大的功能,AD 是基于 LDAP 協定的一套解決方案(LDAP 伺服器 + 應用),解決了細粒度的權限控制。
每一個系統、協定都會有屬于自己的模型,LDAP也不例外,在了解LDAP的基本模型之前我們需要先了解幾個LDAP的目錄樹概念:
(一)目錄樹概念
1. 目錄樹:在一個目錄服務系統中,整個目錄資訊集可以表示為一個目錄資訊樹,樹中的每個節點是一個條目。
2. 條目:每個條目就是一條記錄,每個條目有自己的唯一可差別的名稱(DN)。
3. 對象類:與某個實體類型對應的一組屬性,對象類是可以繼承的,這樣父類的必須屬性也會被繼承下來。
4. 屬性:描述條目的某個方面的資訊,一個屬性由一個屬性類型和一個或多個屬性值組成,屬性有必須屬性和非必須屬性。
(二)DC、UID、OU、CN、SN、DN、RDN
屬性
别名
文法
描述
值(舉例)
commonName
cn
Directory String
姓名
sean
surname
sn
姓
Chow
organizationalUnitName
ou
機關(部門)名稱
IT_SECTION
organization
o
組織(公司)名稱
example
telephoneNumber
Telephone Number
電話号碼
110
objectClass
内置屬性
organizationalPerson