LDAP是什么?
首先LDAP是一個輕量級的產(chǎn)品(LightWeight),是一個Directory(D),存取的協(xié)議(Access Protocol)。
我要著重指出,LDAP是一個數(shù)據(jù)庫,但是又不是一個數(shù)據(jù)庫。說他是數(shù)據(jù)庫,因為他是一個數(shù)據(jù)存儲的東西。但是說他不是數(shù)據(jù)庫,是因為他的作用沒有數(shù)據(jù)庫這么強(qiáng)大,而是一個目錄。
為了理解,給一個例子就是電話簿(黃頁)。我們用電話簿的目的是為了查找某個公司的電話,在這個電話簿中附帶了一些這個公司的基本信息,比如地址,經(jīng)營范圍,聯(lián)系方式等。
其實這個例子就是一個LDAP在現(xiàn)實生活中的表現(xiàn)。電話簿的組織結(jié)構(gòu)是一條一條的信息組成,信息按照行業(yè),類比進(jìn)行了分類。每條記錄都分成了若干的區(qū)域,其中涵蓋了我們要的信息。這就是一個Directory。一個樹狀的結(jié)構(gòu),每個葉子都是由一條一條的分成若干區(qū)域的記錄。LDAP就是這么一個東西。
從概念上說,LDAP分成了DN, OU等。OU就是一個樹,DN就可以理解為是葉子,葉子還可以有更小的葉子。但是LDAP***的分層按照IBM的文檔是4層。
還是上面這個例子,電話簿由電話公司進(jìn)行維護(hù),因此寫是由他們?nèi)?,去組織。寫完了,組織好了,就完成了,以后再寫,再組織的次數(shù)是有限的。而其作用是為了查找。LDAP也是類似,目的不是為了寫,主要是為了查找。這就回答了有同志問,有人要寫有人要讀的并發(fā)怎么解決的問題。LDAP的用途不是針對這個來設(shè)計的,如果你有這樣的需求,解決辦法就應(yīng)該是數(shù)據(jù)庫,而不是LDAP。這就是另外一個例子,Access和SQL Server。Access就是一個數(shù)據(jù)庫產(chǎn)品,但是主要用于家庭,功能和性能都比較弱。SQL Server就是一個專業(yè)的數(shù)據(jù)庫系統(tǒng),功能強(qiáng)大。LDAP是一個輕量級的產(chǎn)品,主要目的是為了查,因此在架構(gòu)和優(yōu)化主要是針對讀,而不是寫。但并不是說LDAP不能滿足,只是說強(qiáng)項不在這里。
LDAP作為一個統(tǒng)一認(rèn)證的解決方案,主要的優(yōu)點(diǎn)就在能夠快速響應(yīng)用戶的查找需求。比如用戶的認(rèn)證,這可能會有大量的并發(fā)。如果用數(shù)據(jù)庫來實現(xiàn),由于數(shù)據(jù)庫結(jié)構(gòu)分成了各個表,要滿足認(rèn)證這個非常簡單的需求,每次都需要去搜索數(shù)據(jù)庫,合成過濾,效率慢也沒有好處。雖然可以有Cache,但是還是有點(diǎn)浪費(fèi)。LDAP就是一張表,只需要用戶名和口令,加上一些其他的東西,非常簡單。從效率和結(jié)構(gòu)上都可以滿足認(rèn)證的需求。這就是為什么LDAP成為現(xiàn)在很人們的統(tǒng)一認(rèn)證的解決方案的優(yōu)勢所在。
當(dāng)然LDAP也有數(shù)據(jù)寫入的借口,是可以滿足錄入的要求的。這里就不多說了。
我認(rèn)為現(xiàn)在***的LDAP Server,應(yīng)該還是Microsoft的AD。雖然不一定是標(biāo)準(zhǔn)的,但是的確是用的最多的一個LDAP Server。每個公司只要用到域,就肯定會用到了
原文鏈接:http://www.cnblogs.com/aooyu/archive/2011/03/15/1985150.html