Posted on 2010-10-21 23:40
Prayer 閱讀(892)
評論(0) 編輯 收藏 引用 所屬分類:
數(shù)據(jù)庫,SQL
LDAP是輕量目錄訪問協(xié)議,英文全稱是Lightweight Directory Access Protocol,一般都簡稱為LDAP。它是基于X.500標(biāo)準(zhǔn)的,但是簡單多了并且可以根據(jù)需要定制。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。LDAP的核心規(guī)范在RFC中都有定義,所有與LDAP相關(guān)的RFC都可以在LDAPman RFC網(wǎng)頁中找到。
LDAP是一個(gè)協(xié)議,一個(gè)標(biāo)準(zhǔn)。
為了實(shí)現(xiàn)這個(gè)協(xié)議,需要一個(gè)實(shí)體,這就是LDAP的產(chǎn)品。Server, Client, Storage,Interface.
置頂有一篇文章, 講述了什么是LDAP服務(wù)器, 看了一下,我覺得作者在概念上還有些模糊的地方。比如和數(shù)據(jù)庫的關(guān)系等,作者是用了一個(gè)MySQL作的比較和對比。 我也看了一些這里的朋友提到的問題,其實(shí)如果了解LDAP的內(nèi)涵,就很好解答這些問題了。
下面我從自己的理解,來說一下,希望和大家共享。 首先LDAP是一個(gè)輕量級的產(chǎn)品(LightWeight),是一個(gè)Directory(D),存取的協(xié)議(Access Protocol)。
我要著重指出,LDAP是一個(gè)數(shù)據(jù)庫,但是又不是一個(gè)數(shù)據(jù)庫。說他是數(shù)據(jù)庫,因?yàn)樗且粋€(gè)數(shù)據(jù)存儲的東西。但是說他不是數(shù)據(jù)庫,是因?yàn)樗淖饔脹]有數(shù)據(jù)庫這么強(qiáng)大,而是一個(gè)目錄。 為了理解,給一個(gè)例子就是電話簿(黃頁)。我們用電話簿的目的是為了查找某個(gè)公司的電話,在這個(gè)電話簿中附帶了一些這個(gè)公司的基本信息,比如地址,經(jīng)營范圍,聯(lián)系方式等。 其實(shí)這個(gè)例子就是一個(gè)LDAP在現(xiàn)實(shí)生活中的表現(xiàn)。電話簿的組織結(jié)構(gòu)是一條一條的信息組成,信息按照行業(yè),類比進(jìn)行了分類。每條記錄都分成了若干的區(qū)域,其中涵蓋了我們要的信息。這就是一個(gè)Directory。一個(gè)樹狀的結(jié)構(gòu),每個(gè)葉子都是由一條一條的分成若干區(qū)域的記錄。LDAP就是這么一個(gè)東西。 從概念上說,LDAP分成了DN, OU等。OU就是一個(gè)樹,DN就可以理解為是葉子,葉子還可以有更小的葉子。但是LDAP最大的分層按照IBM的文檔是4層。
還是上面這個(gè)例子,電話簿由電話公司進(jìn)行維護(hù),因此寫是由他們?nèi)懀ソM織。寫完了,組織好了,就完成了,以后再寫,再組織的次數(shù)是有限的。而其作用是為了查找。LDAP也是類似,目的不是為了寫,主要是為了查找。這就回答了有同志問,有人要寫有人要讀的并發(fā)怎么解決的問題。LDAP的用途不是針對這個(gè)來設(shè)計(jì)的,如果你有這樣的需求,解決辦法就應(yīng)該是數(shù)據(jù)庫,而不是LDAP。這就是另外一個(gè)例子,Access和SQL Server。Access就是一個(gè)數(shù)據(jù)庫產(chǎn)品,但是主要用于家庭,功能和性能都比較弱。SQL Server就是一個(gè)專業(yè)的數(shù)據(jù)庫系統(tǒng),功能強(qiáng)大。LDAP是一個(gè)輕量級的產(chǎn)品,主要目的是為了查,因此在架構(gòu)和優(yōu)化主要是針對讀,而不是寫。但并不是說LDAP不能滿足,只是說強(qiáng)項(xiàng)不在這里。
LDAP作為一個(gè)統(tǒng)一認(rèn)證的解決方案,主要的優(yōu)點(diǎn)就在能夠快速響應(yīng)用戶的查找需求。比如用戶的認(rèn)證,這可能會有大量的并發(fā)。如果用數(shù)據(jù)庫來實(shí)現(xiàn),由于數(shù)據(jù)庫結(jié)構(gòu)分成了各個(gè)表,要滿足認(rèn)證這個(gè)非常簡單的需求,每次都需要去搜索數(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)的,但是的確是用的最多的一個(gè)LDAP Server。每個(gè)公司只要用到域,就肯定會用到了。 |