1. 基礎(chǔ)知識(shí)鋪墊
1.1 什么是目錄淌山?
- (1) 目錄是一類為了瀏覽和搜索數(shù)據(jù)二十幾的特殊的數(shù)據(jù)庫(kù)豹障,例如:最知名的的微軟公司的活動(dòng)目錄(active directory)就是目錄數(shù)據(jù)庫(kù)的一種。目錄服務(wù)時(shí)按照梳妝形式存儲(chǔ)信息的宿接,目錄包含基于屬性的描述性信息赘淮,并且支持高級(jí)的過(guò)濾功能。
- (2) 一般來(lái)說(shuō)睦霎,目錄不支持大多數(shù)事務(wù)性數(shù)據(jù)庫(kù)所支持的高吞吐兩盒復(fù)雜的更新操作梢卸。目錄進(jìn)行更新操作,可以說(shuō)是要么全部副女,要么都不的原子操作蛤高,目錄服務(wù)適合的業(yè)務(wù)應(yīng)用在于提供大量的查詢和搜索操作。
- (3) 為了保證目錄數(shù)據(jù)的可用性和卡可靠性碑幅,她們?cè)诖_保提供快速的查詢和搜索操作的同事戴陡,還提供了主從服務(wù)器同步目錄數(shù)據(jù)信息的能力,這相當(dāng)于傳統(tǒng)的Mysql數(shù)據(jù)庫(kù)的主從同步一樣沟涨,可以最大限度的確毙襞基于目錄業(yè)務(wù)的持續(xù)可用性。
- (4) 廣義的目錄服務(wù)概念拷窜,可以有多重不同的方式來(lái)提供目錄服務(wù)开皿,不同的目錄所允許存儲(chǔ)的信息是不同的,在信息如何被引用篮昧,查詢,更新以及防止未經(jīng)守群的訪問(wèn)等問(wèn)題上笋妥,不同的目錄所允許存儲(chǔ)的信息是不同的懊昨,在信息如何被引用,查詢春宣,更新以及防止未經(jīng)授權(quán)的訪問(wèn)等問(wèn)題上酵颁,不同的目錄的處理方式也有諸多的不同。一些目錄服務(wù)時(shí)為本地的月帝,只提供受限的服務(wù)躏惋,(比如,單機(jī)上的finger服務(wù))嚷辅。另一些服務(wù)時(shí)大范圍的(global)簿姨,提供廣闊得多的服務(wù)(比如面向整個(gè)因特網(wǎng))。大范圍的服務(wù)通常是分布式的,這也就意味著數(shù)據(jù)是分布在多臺(tái)機(jī)器上的扁位,這些計(jì)數(shù)器一起來(lái)提供目錄服務(wù)准潭。典型的大范圍服務(wù)定義一個(gè)統(tǒng)一的名稱空間(namespace)來(lái)給出一個(gè)相同的數(shù)據(jù)試圖(data view),而不管你相對(duì)于數(shù)據(jù)所在的位置域仇。DNS是一個(gè)典型的大范圍分布式目錄服務(wù)的例子
1.2. 什么是X.500刑然?
- X.500由ITU-T和ISO定義,它實(shí)際上不是一個(gè)協(xié)議暇务,而是有一個(gè)協(xié)議族組成泼掠,包括了從X.501到X.525等一系列非常完整的目錄服務(wù)協(xié)議。
2. LADP介紹
2.1 什么是LDAP垦细?
- (1) LDAP是Lightweight Directory Access Protocol (輕量級(jí)目錄訪問(wèn)協(xié)議)的縮寫(xiě)择镇。正如它的名字所表明的那樣,它是一個(gè)輕量級(jí)的目錄訪問(wèn)協(xié)議蝠检,特質(zhì)基于X.500的目錄訪問(wèn)協(xié)議的簡(jiǎn)化版本沐鼠。LADP運(yùn)行在TCP/IP或者其他的面向連接的傳輸服務(wù)至上。LADP完整的技術(shù)規(guī)范由RFC2251 “The Lightweight Directory Access Protocol(V3)”和其他幾個(gè)在RFC3377中定義的文檔組成叹谁。
- (2) 目錄是一個(gè)為查詢饲梭、瀏覽和搜索而優(yōu)化的數(shù)據(jù)庫(kù),它成樹(shù)狀結(jié)構(gòu)組織數(shù)據(jù)焰檩,類似文件目錄一樣憔涉。
- (3) 目錄數(shù)據(jù)庫(kù)和關(guān)系數(shù)據(jù)庫(kù)不同,它有優(yōu)異的讀性能析苫,但寫(xiě)性能差兜叨,并且沒(méi)有事務(wù)處理、回滾等復(fù)雜功能衩侥,不適于存儲(chǔ)修改頻繁的數(shù)據(jù)国旷。所以目錄天生是用來(lái)查詢的,就好象它的名字一樣茫死。
2.2 LADP目錄服務(wù)的特點(diǎn)
2.2.1 LDAP目錄服務(wù)具有下列特點(diǎn)
- LDAP是一個(gè)跨平臺(tái)的跪但,標(biāo)準(zhǔn)的協(xié)議,近幾年來(lái)得到了業(yè)界廣泛的認(rèn)可峦萎;
- LADP的結(jié)構(gòu)用樹(shù)形結(jié)構(gòu)來(lái)表示屡久,而不是用表格。因此不用SQL語(yǔ)句維護(hù)了爱榔;
- LADP提供了靜態(tài)數(shù)據(jù)的快速查詢方式被环,但在寫(xiě)數(shù)據(jù)方面并不擅長(zhǎng);
- LADP服務(wù)可以使用基于“推或"拉"的復(fù)制信息技術(shù)详幽,用簡(jiǎn)單的活基于安全證書(shū)的安全認(rèn)證筛欢,復(fù)制部分或全部數(shù)據(jù),既保證了數(shù)據(jù)的安全性,又提高了數(shù)據(jù)的訪問(wèn)效率悴能;
- LDAP是一個(gè)安全的協(xié)議揣钦,LDAP v3支持SASL(Simple Authentication and Securityh Layer),SSL(Secure Socket Layer)和TLS(Transport Layer Security),使用認(rèn)證來(lái)確保事物的安全漠酿,另外冯凹,LDAP提供了不同層次的訪問(wèn)控制,以限制不同用戶的訪問(wèn)權(quán)限炒嘲;
- LADP支持一類數(shù)據(jù)存儲(chǔ)宇姚,LADP存儲(chǔ)的數(shù)據(jù)可由是文本資料,二進(jìn)制圖片等夫凸;
- Client/Server模型:Server用于存儲(chǔ)樹(shù)浑劳,Client提供操作目錄信息數(shù)的工具,這些工具可以將數(shù)據(jù)庫(kù)的內(nèi)容以文本格式(LDAP數(shù)據(jù)交換格式夭拌,LDIF)呈現(xiàn)在我們的面前魔熏;
- LDAP是一種開(kāi)放Internet標(biāo)準(zhǔn),LADP協(xié)議時(shí)跨平臺(tái)的Internt協(xié)議鸽扁,它是基于X.500標(biāo)準(zhǔn)的蒜绽,與X.500不同,LADY支持TCP/IP(即可以分不知部署)
3. LDAP是怎樣工作的桶现?
LDAP目錄服務(wù)器是基于客戶/服務(wù)器模式的躲雅。一個(gè)或者多個(gè)LDAP服務(wù)器包含著組成整個(gè)目錄信息樹(shù)(DIT)的數(shù)據(jù)÷夂停客戶連接到服務(wù)器并且并發(fā)一個(gè)請(qǐng)求(request)相赁。然后服務(wù)器要么以一個(gè)回答(answer)予以回應(yīng),要么給出一個(gè)指針慰于,客戶可以通過(guò)此指針獲取到所需的數(shù)據(jù)(通常钮科,該指針是指向另一個(gè)LDAP服務(wù)器)。無(wú)論客戶連到哪個(gè)LDAP服務(wù)器婆赠,它看到的都是同一個(gè)目錄視圖(view)跺嗽。這是LDAP這類全局目錄服務(wù)的一個(gè)重要特征。
4. LADP目錄信息模型
4.1 什么樣的信息可以存儲(chǔ)在目錄當(dāng)中页藻?
條目和屬性的關(guān)系:
LDAP的信息模型是基于條目的(entry)。一個(gè)條目就是一些具有全局唯一的標(biāo)識(shí)名(Distinguished Name,簡(jiǎn)寫(xiě)做DN)的屬性的集合植兰。DN用于無(wú)二義性的紙袋一個(gè)唯一的條目份帐。條目的每一個(gè)屬性都有一個(gè)類型(type),一個(gè)或者多個(gè)值(value)楣导。類型往往是特定字符串的簡(jiǎn)寫(xiě)废境,比如用“cn”指代“common name”,或是"mail"指代電子郵件地址。值(value)的語(yǔ)法依賴于類型(type)噩凹。比如巴元,類型為cn的屬性可能包含值"候劍豪"。類型為mail的屬性可能包含值“frederick_hou@163.com”驮宴。類型為jpeg Photo的屬性可能包含二進(jìn)制格式的JPEG圖像逮刨。
4.2 信息在目錄中是如何組織的?
在LDAP中堵泽,條目是按樹(shù)狀的層次結(jié)構(gòu)組織的修己。傳統(tǒng)上,這個(gè)機(jī)構(gòu)旺旺是代理界限或組織界限的反應(yīng)迎罗。代表國(guó)家的條目位與整個(gè)目錄樹(shù)的頂層睬愤。之下的條目則代表各個(gè)州以及國(guó)家性的組織。在下面的條目則代表著組織單位纹安,個(gè)人尤辱,打印機(jī),文件厢岂,或者你所能想到的其他的東西光督。目錄是也可以按照因特網(wǎng)域名組織結(jié)構(gòu),因?yàn)樗试S按照DNS對(duì)目錄服務(wù)進(jìn)行定時(shí)咪笑,這種命名方式正變得越來(lái)越受歡迎可帽。下圖是按照域名進(jìn)行組織的一個(gè)LADP目錄樹(shù),相比傳統(tǒng)的命名方式更加讓用戶易于接受窗怒。另外映跟,LDAP允許你通過(guò)使用一種叫做objectClass的特殊屬性來(lái)控制哪些屬性是條目所必須的,哪些屬性是條目可選的扬虚。objectClass屬性的值是由條目所必須遵守的方案(schema)來(lái)定義的努隙。
4.3 信息是如何被引用的?
一個(gè)條目是通過(guò)它的標(biāo)識(shí)名來(lái)引用的辜昵。而標(biāo)識(shí)名(Relative DistinguishedName 或者RDN)是由標(biāo)識(shí)名和它的父條目名連在一起構(gòu)成的荸镊。
4.4 信息是如何被訪問(wèn)的?
LDAP定義了一個(gè)查詢和更新目錄的操作堪置,支持的操作包括從目錄中添加和刪除條目躬存,更改已有的條目,更改已有的的名字舀锨。然而岭洲,大多數(shù)情況下LDAP是用于搜索目錄中的信息的。通過(guò)指定搜索過(guò)濾器坎匿,LDAP可以在目錄的相關(guān)部分搜索想相符的條目盾剩。滿足過(guò)濾條件的每一個(gè)條目都能收到請(qǐng)求消息雷激。
4.5 怎樣保護(hù)信息不受未經(jīng)授權(quán)的訪問(wèn)?
一些目錄服務(wù)不提供保護(hù)告私,允許信息對(duì)任何人可見(jiàn)屎暇。LDAP提供了一套機(jī)制來(lái)對(duì)客戶進(jìn)行身份確認(rèn),或者讓客戶證明他擁有連接到服務(wù)器的身份驻粟,這無(wú)疑為對(duì)服務(wù)器進(jìn)行全方位的訪問(wèn)控制鋪平了道理根悼,從而確保了服務(wù)器上所包含信息的安全。LDAP也支持privacy和integrity的安全服務(wù)格嗅。
博客著作權(quán)歸本作者所有番挺,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。