LDAP淺析

LDAP 的全稱是 Lightweight Directory Access Protocol,「輕量目錄訪問協議」。

LDAP 「是一個協議」,約定了 Client 與 Server 之間的信息交互格式、使用的端口號、認證方式等內容。而 「LDAP 協議的實現」,有着衆多版本,例如微軟的 Active Directory 是 LDAP 在 Windows 上的實現,AD 實現了 LDAP 所需的樹形數據庫、具體如何解析請求數據併到數據庫查詢然後返回結果等功能。再例如 OpenLDAP 是可以運行在 Linux 上的 LDAP 協議的開源實現。而我們平常說的 LDAP Server,一般指的是安裝並配置了 Active Directory、OpenLDAP 這些程序的服務器。

可以把LDAP理解成存儲數據的數據庫,但存儲格式採用樹狀存儲而非關係型表。
像是其他數據庫一樣,LDAP也是有client端和server端。
server端是用來存放資源,client端用來操作增刪改查等操作。而我們通常說的LDAP是指運行這個數據庫的服務器。可以簡單理解AD =LDAP服務器+LDAP應用。

LDAP連接服務器的連接字串格式爲:ldap://servername/DN
dn:cn=honglv,ou=bei,ou=xi,ou=dong,dc=ljheee
其中DN有三個屬性,分別是CN,OU,DC

  • dn :一條記錄的詳細位置
  • dc :一條記錄所屬區域 (哪一顆樹)
  • ou :一條記錄所屬組織 (哪一個分支)
  • cn/uid:一條記錄的名字/ID (哪一個節點名字)

具體概念

DIT(Directory Information Tree)目錄信息樹

LDAP directory servers present data arranged in tree-like hierarchies in which each entry may have zero or more subordinate entries. This structure is called the Directory Information Tree, or DIT.

LDAP 目錄服務器將信息以樹形的方式組織,每一項都可以包含 0 個或多個子項。這樣的結構叫做目錄信息樹。

目錄信息樹可以類比我們的「磁盤文件系統目錄樹」,上面的定義是官方定義,理解起來,DIT 就是指像文件系統一樣的目錄結構樹。

Entry 項

在用戶目錄中,你看到的每一行,都可以叫做一項,不論是葉子節點還是中間的節點。

Root DSE(Root DSA-specific entry)根節點項

每個 LDAP 服務器必須對外暴露一個特殊的「項」,叫做 root DSE,這個項的 DN 是空字符串。這個項是根節點,描述了 LDAP 服務器自身的信息和能力。例如你可以在下圖看到 LDAP 服務器支持的功能,LDAP 協議版本等信息。

dn(Distinguished Name)分辨名

dn 如下圖白色方框中的內容,「分辨名」用於唯一標識一個「項」,以及他在目錄信息樹中的位置。可以和文件系統中文件路徑類比。類似於關係型數據庫中的主鍵。dn 字符串從左向右,各組成部分依次向樹根靠近。

rdn(Relative Distinguished Name)相對分辨名

Rdn 就是「鍵值對」,如下圖黃色方框中的內容。dn 由若干個 rdn 組成,以逗號分隔。

dc(Domain Component))(域名組成)

http://example.comexample.com這樣的域名,拆成 dc=example,dc=com 這樣的形式。

o(Organization)組織機構、公司

在 dn 中可能會包含 o=公司 這樣的組成部分,這裏的 o 指代組織機構。

ou(Organization Unit)組織單元、部門

在 dn 中可能會包含 ou=某某部門 這樣的組成部分,這裏的 ou 指代組織單元。

cn(Common Name)節點名稱

節點的標識,類似uid

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章