LDAP中文學(xué)習(xí)手冊(cè)_第1頁(yè)
LDAP中文學(xué)習(xí)手冊(cè)_第2頁(yè)
LDAP中文學(xué)習(xí)手冊(cè)_第3頁(yè)
LDAP中文學(xué)習(xí)手冊(cè)_第4頁(yè)
LDAP中文學(xué)習(xí)手冊(cè)_第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

/LDAP使用手冊(cè)LDAP介紹LDAP是輕量級(jí)目錄訪問協(xié)議的簡(jiǎn)稱(LightweightDirectoryAccessProtocol).用于訪問目錄服務(wù)。它是X.500目錄訪問協(xié)議的移植,但是簡(jiǎn)化了實(shí)現(xiàn)方法。目錄服務(wù)與關(guān)系數(shù)據(jù)庫(kù)之間的區(qū)別目錄查詢操作比關(guān)系數(shù)據(jù)庫(kù)有更高的效率,但是更新效率比關(guān)系數(shù)據(jù)庫(kù)低目錄不支持關(guān)系數(shù)據(jù)庫(kù)那樣的復(fù)雜查詢,比如兩個(gè)表的連接。目錄不支持多操作的事物完整性,沒有方式確認(rèn)一些操作是全部成功還是全部失敗目錄能夠能好和更靈活的支持子查詢和匹配查詢目錄協(xié)議更適合應(yīng)用于廣域網(wǎng),比如因特網(wǎng)或者大型公司的網(wǎng)絡(luò)目錄的管理,配置,和調(diào)試比關(guān)系型數(shù)據(jù)庫(kù)更簡(jiǎn)單在使用關(guān)系數(shù)據(jù)庫(kù)之前,必須首先定義表結(jié)構(gòu)(模式)才可以進(jìn)行操作。而目錄中所使用的模式是由LDAP定義好的一系列類組成的。對(duì)于目錄中的每條記錄中必須屬于其中的一個(gè)類或者多個(gè)類。這些類定義了該記錄中可以存儲(chǔ)的信息。目錄以對(duì)象的形式存儲(chǔ)數(shù)據(jù)。信息被組織成樹型結(jié)構(gòu)。目錄服務(wù)支持分布式存儲(chǔ)結(jié)構(gòu),容易實(shí)現(xiàn)數(shù)據(jù)的擴(kuò)展,能滿足大容量存儲(chǔ)的要求。LDAP的優(yōu)點(diǎn)1:可以存儲(chǔ)在其它條件下很難存儲(chǔ)的管理信息2:數(shù)據(jù)安全可靠,訪問控制粒度細(xì)膩。3:LDAP是一個(gè)標(biāo)準(zhǔn)的,開放的協(xié)議,具有平臺(tái)無關(guān)性。4:數(shù)據(jù)分布廣,規(guī)??伸`活擴(kuò)充。5:LDAP目錄服務(wù)器可以使任何一種開放源代碼或商用的LDAP目錄服務(wù)器。LDAP模型LDAP模型是從X.500協(xié)議中繼承過來的。是LDAP的一個(gè)組成部分,用于指導(dǎo)客戶如何使用目錄服務(wù)LDAP定義了四個(gè)模型,包括信息模型,命名模型,功能模型,安全模型。1.LDAP信息模型(LDAPinformationmodel)LDAP信息模型用于描述LDAP中信息的表達(dá)方式。LDAP信息模型包含三部分EntriesAttributesValues(條目屬性值)Entry:Directry中最基本的信息單元,Entry中所包含的信息描述了現(xiàn)實(shí)世界中的一個(gè)真實(shí)的對(duì)象,在目錄系統(tǒng)中它可以理解為,目錄樹中的一個(gè)節(jié)點(diǎn)。在目錄中添加一個(gè)Entry時(shí),該Entry必須屬于一個(gè)或多個(gè)objectclass,每一個(gè)objectclass規(guī)定了該Entry中必須要包含的屬性,以與允許使用的屬性。Entry所屬的類型由屬性objectclass規(guī)定。每一個(gè)Entry都有一個(gè)DN(distinguishedname)用于唯一的標(biāo)志Entry在directory中的位置。如下圖所示:根節(jié)點(diǎn)DN的命名有多種方法,其中之一就是域名命名法。例如:我們要以公司的網(wǎng)址作為公司目錄樹的根節(jié)點(diǎn)。如那么根節(jié)點(diǎn)的DN應(yīng)該為DN:dc=sohu,dc=com上圖中根節(jié)點(diǎn)的DN:dc=example,dc=com而該根節(jié)點(diǎn)有兩個(gè)子節(jié)點(diǎn),ou=people,和ou=servers。People節(jié)點(diǎn)的DN:ou=People,dc=example,dc=comRDN:是目錄樹中節(jié)點(diǎn)的相對(duì)分辨名。如:People節(jié)點(diǎn)的DN:ou=People,dc=example,dc=com而該節(jié)點(diǎn)的RDN:ou=PeopleAttribute:每個(gè)Entry都是由許多Attribute組成的。每一個(gè)屬性(Attribute)描述的是對(duì)象的一個(gè)特征。每一個(gè)屬性(Attribute)由一個(gè)類型(type)和一個(gè)或多個(gè)值組成(Value)如下圖所示:2.LDAP命名模型(LDAPNamingModel)LDAP命名模型定義了如何在目錄系統(tǒng)中組織數(shù)據(jù)以與如何從目錄系統(tǒng)中查找數(shù)據(jù)LDAP命名模型指定將Entry按類似倒立的樹形結(jié)構(gòu)進(jìn)行規(guī)劃。非常類似于UNIX系統(tǒng)得文件系統(tǒng)如下圖所示:UnixADirectoryTreeLDAP目錄結(jié)構(gòu)與Unix系統(tǒng)的文件系統(tǒng)主要有三點(diǎn)不同UNIX文件系統(tǒng)有一個(gè)根路徑,作為訪問所有文件和目錄的入口。而LDAP目錄結(jié)構(gòu)中的rootEntry只是一個(gè)特殊的Entry,它包含了目錄服務(wù)器的配置信息,通常情況下,并不用來存儲(chǔ)信息在LDAP目錄中任何一個(gè)節(jié)點(diǎn)都可以包含信息,同時(shí)也可以是一個(gè)容器,也就是說任何一個(gè)LDAPEntry都可以有子節(jié)點(diǎn)。而UNIX文件系統(tǒng)中的節(jié)點(diǎn)要么是一個(gè)文件,要么是一個(gè)目錄。而不能同時(shí)是這兩種情況。只有目錄才可以擁有子節(jié)點(diǎn)。下圖表示了LDAP是一個(gè)典型的目錄結(jié)構(gòu)LDAPDirectoryUNIX文件系統(tǒng)目錄結(jié)構(gòu)與LDAP目錄的第三個(gè)區(qū)別在于他們的每一個(gè)節(jié)點(diǎn)的命名不同。LDAP目錄中節(jié)點(diǎn)的命名和UNIX文件系統(tǒng)目錄結(jié)構(gòu)中的節(jié)點(diǎn)的命名是相反的。上圖示UNIX文件系統(tǒng)結(jié)構(gòu),如果要定位到grep節(jié)點(diǎn)的話,命名如下/user/bin/grep上圖是一個(gè)典型的目錄結(jié)構(gòu)第一個(gè)節(jié)點(diǎn)DN命名為:dn:dc=example,dc=com第二個(gè)節(jié)點(diǎn)DN命名為:dn:ou=People,dc=example,dc=com第三個(gè)節(jié)點(diǎn)DN命名為:dn:uid=bjensen,ou=people,dc=example,dc=com我們說每一個(gè)Entry的DN是唯一的,就是因?yàn)檫@種數(shù)形結(jié)構(gòu)決定了,從根節(jié)點(diǎn)到其它任何一個(gè)節(jié)點(diǎn)的路徑是唯一的。RDN:在DN中最左邊的內(nèi)容稱為相對(duì)域名。如ou=People,dc=example,dc=com其RDN為ou=People對(duì)于共享同一個(gè)父節(jié)點(diǎn)的所有節(jié)點(diǎn)的RDN必須是唯一的。如果不屬于同一個(gè)節(jié)點(diǎn)則節(jié)點(diǎn)的RDN可以相同。特殊字符:以下字符如果出現(xiàn)在Entry中的屬性值,必須進(jìn)行轉(zhuǎn)義#\#,\,+\+“\”\\\<\<>\>;\;如:o=UnitedWidgets\,Ltd.,c=GB別名在LDAP中可以定義一個(gè)別名Entry,指向另外一個(gè)Entry。如下圖所示如何創(chuàng)建別名Entry要?jiǎng)?chuàng)建別名Entry,該Entry的objectclass必須是alias。而且其屬性aliasedObjectName的值必須是該Entry所指向的Entry的DN。不過一般情況下應(yīng)該避免使用別名Entry。會(huì)影響性能。而且如果被引用的Entry被刪除的話,該Entry就會(huì)指向一個(gè)錯(cuò)誤的結(jié)果。LDAPURL由于使用AliasEntry有許多缺點(diǎn),可以使用LDAPURL或referral代替AliasEntry。3.LDAP功能模型(LDAPFunctionalModel)LDAP功能模型描述了LDAP協(xié)議可以采用的相關(guān)操作,來訪問存儲(chǔ)在目錄樹中的數(shù)據(jù)。LDAP功能模型包含一系列的操作,這些操作被分為三組。更新操作包括添加,刪除,重命名,修改EntryInterrogationOperation用于數(shù)據(jù)的查詢認(rèn)證和控制(bindunbindabandon)InterrogationOperationTheLDAPSearchOperation該操作需要八個(gè)參數(shù)baseobject也可以表示為DN。表明你想要查詢direcoty中樹的頂點(diǎn)。searchscopeDN與searchscope兩個(gè)參數(shù)限定了要搜索數(shù)據(jù)的范圍共有三個(gè)范圍scopeSub搜索范圍是包含頂節(jié)點(diǎn)在內(nèi)的一棵子樹如下圖其中DN=”ou=People,dc=example,dc=com”Base搜索范圍只包含一個(gè)節(jié)點(diǎn)如下圖其中DN=”ou=People,dc=example,dc=com”O(jiān)nelevel其搜索范圍是DN所表示的節(jié)點(diǎn)下的直接子節(jié)點(diǎn)。如下圖其中DN=”ou=People,dc=example,dc=com”aliassizelimit表示返回的符合條件的Entry的數(shù)目,0表示返回所有符合條件的Entry。目錄服務(wù)器端返回一個(gè)LDAP_SIZELIMIT_EXCEEDED。timelimit表示搜索一次所需要的時(shí)間,超過時(shí)間將停止搜索。服務(wù)器端返回一個(gè)LDAP_TIMELIMIT_EXCEEDEDattribute-only該屬性是一個(gè)boolean值,如果為true,表示服務(wù)器端之返回所搜索的Entry的屬性名稱,不返回屬性值。filter通過該屬性可以更精確的搜索結(jié)果。就像SQL語(yǔ)句中的條件查詢。Filter分類1.(sn=smith)匹配屬性sn的值包含smith的Entry2(sn=smith*)匹配屬性sn的值以smith開始的所有Entry如smithers,smithsonain等。其中“*”表示通配符,代表任意字符。3(sn~=jensen)匹配屬性sn的值聽起來像jensen的Entry。不同的目錄服務(wù)器,有不同的實(shí)現(xiàn)方法。4(age>21)或者(!(age<=21))匹配屬性age的值大于21的Entry如果是字符的話,如(sn<=Smith)則按字典順序進(jìn)行比較。5(telephoneNumber=*)匹配所有屬性telephoneNumber的值不為空的Entry6(&(sn=smith)(age>21))匹配屬性sn的值包含smith而且屬性age的值大于21的Entry(|(sn=smith)(age>21))匹配屬性sn的值包含smith或者屬性age的值大于21的Entry(&(mail=*)(!(telephoneNumber=*)))匹配屬性mail的值不為空,而且屬性telephoneNumber為空的Entry7如果屬性的值包含以下五個(gè)特殊字符的話必須進(jìn)行轉(zhuǎn)義如:(cn=A*Star)則必須改為(cn=A\2AStar)returnattributes該屬性表示客戶的搜索結(jié)果中需要返回的和用戶相關(guān)的屬性列表,如果為空表示返回所有屬性。4.LDAP安全模型安全模型的作用:是提供一個(gè)框架,保護(hù)目錄中的信息不被非法訪問。LDAP中的安全模型主要通過身份認(rèn)證、安全通道和訪問控制(ACL)來實(shí)現(xiàn)LDAP是一個(gè)面向連接的協(xié)議,在能夠?qū)DAP目錄進(jìn)行任何操作之前,LDAP客戶端必須獲得一個(gè)到LDAP服務(wù)端的一個(gè)連接,在這個(gè)過程中需要對(duì)LDAP客戶端的身份進(jìn)行驗(yàn)證,這一過程可以理解為用戶綁定。LDAPV2只支持簡(jiǎn)單的密碼驗(yàn)證。LDAPV3實(shí)現(xiàn)了SASL安全框架,SASL為多種驗(yàn)證協(xié)議提供了一種標(biāo)準(zhǔn)的驗(yàn)證方法,對(duì)于不同的驗(yàn)證系統(tǒng),可以實(shí)現(xiàn)特定的SASL機(jī)制。SASL機(jī)制代表了一種驗(yàn)證協(xié)議。在用戶通過驗(yàn)證之后,可以為該用戶分配附加的權(quán)限,比如一些用戶只能查看特定的Entry,而不能修改。一些用戶可以查看并且修改所有的Entry等。這一過程可以理解為訪問控制。LDIFLDIF通過一個(gè)文本文件,用來描述目錄數(shù)據(jù),可以將目錄服務(wù)器中的數(shù)據(jù)導(dǎo)出到一個(gè)LDIF文件中,并且可以將LDIF文件中的數(shù)據(jù)導(dǎo)入到另一個(gè)目錄服務(wù)器。即使這兩個(gè)目錄服務(wù)器內(nèi)部使用的是不同的數(shù)據(jù)庫(kù)格式。有兩種類型的LDIF文件,第一種用來描述Directory目錄數(shù)據(jù)的,第二種包含更新語(yǔ)句,用于更新現(xiàn)有的Directory條目數(shù)據(jù)。第一種文件,內(nèi)容包含兩部分:第一部分是DN,第二部分是一系列的屬性-值對(duì)如下圖:以上的LDIF文件只包含了一個(gè)DirectoryEntry??梢栽谝粋€(gè)LDIF文件中包含多個(gè)Entry第二種文件,包含更新語(yǔ)句。第一行同樣是DN。第二行是更新類型,后邊是要更新的屬性與值。當(dāng)然也可以用來添加新的Entry。如下圖:添加一條Entry(注意第二行:changetype:add)如下圖:刪除一條Entry如下圖:修改一條Entry語(yǔ)法如下:dn:dnofentrytobemodifiedchangetype:modifymodifytype:attributetype[attributetype:attributevalue]添加屬性示例刪除屬性示例或者修改屬性值也可以將多條更新語(yǔ)句放在一個(gè)文件里,各語(yǔ)句之間用“-”分開重新命名Entry或移動(dòng)Entry語(yǔ)法:dn:Entry的DN名稱changetype:moddn//changetype類型必須為moddn[newsuperior:如果要移動(dòng)一條Entry則該項(xiàng)表示一個(gè)新的節(jié)點(diǎn)的DN][deleteoldrdn:(0|1)該項(xiàng)表示是否要?jiǎng)h除修改以前的RDN0不刪除][newrdn:Entry的新RDN]由于一條Entry的DN是由該Entry的RDN和它的父節(jié)點(diǎn)的DN組成的。一條Entry的RDN是該Entry中的一個(gè)屬性。就像關(guān)系數(shù)據(jù)庫(kù)中,主鍵值可以唯一區(qū)區(qū)分一條記錄一樣,在同一個(gè)節(jié)點(diǎn)下的所有Entry中的RDN必須由唯一標(biāo)識(shí)該Entry屬性組成。所以重新命名Entry,也就是重新命名該Entry的RDN。示例如下:執(zhí)行以上語(yǔ)句后該Entry如下所示:dn:uid=babsj,ou=People,dc=example,dc=comuid:babsjuid:bjensen移動(dòng)一條Entry示例如下:LDAP模式(schema)如果你使用過關(guān)系型數(shù)據(jù)庫(kù),那么對(duì)模式應(yīng)該不會(huì)陌生。關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)都是通過表格的形式進(jìn)行數(shù)據(jù)存儲(chǔ)的。在這之前,我們首先要定義表結(jié)構(gòu),也即是模式。表結(jié)構(gòu)由一些字段組成,每個(gè)字段都有一個(gè)類型,以與一些約束條件。這就規(guī)定了我們可以存儲(chǔ)的信息。上面我們介紹過LDAP目錄服務(wù)器中存儲(chǔ)的信息是被組織成樹型結(jié)構(gòu)進(jìn)行存儲(chǔ)的。和存儲(chǔ)信息之前也要定義模式,不過,與關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)不同的是,作為L(zhǎng)DAP目錄服務(wù)器的用戶而言,一般不需要自己定義模式,所有實(shí)現(xiàn)LDAP協(xié)議的目錄服務(wù)器,都已經(jīng)定義好了許多模式,這些模式可以解決我們大部分的信息存儲(chǔ)的問題。LDAP模式是由以下一些元素組成的1:Attributetypes屬性類型,也就是屬性名稱。我們已經(jīng)介紹過,每個(gè)屬性名稱其實(shí)也代表著一種屬性類型。表示該屬性可以存儲(chǔ)什么樣的信息。2:Attributesyntaxes屬性語(yǔ)法,該元素表示每個(gè)屬性名稱所存儲(chǔ)的信息如何組織。3:匹配規(guī)則,每一個(gè)屬性都有匹配規(guī)則,用于數(shù)據(jù)的比較。4:objectclasses,對(duì)象類.上面已經(jīng)介紹過,每個(gè)Entry都必須至少屬于一個(gè)objectclass。規(guī)定了該Entry可以存儲(chǔ)那些屬性。下面介紹一下LDAP協(xié)議中定義的一些常用屬性極其含義(具體信息看RFC2252文檔)屬性中文名稱描述c國(guó)家名稱值為兩位國(guó)家代碼如:中國(guó):CN美國(guó):UScn通用名稱dc域名組件如:dc=sohu,dc=comco國(guó)家名稱國(guó)家的全名gngavenNamehomephone家庭電話號(hào)碼mail郵件地址mobile移動(dòng)電話號(hào)碼o組織名稱ou部門名稱通常為組織機(jī)構(gòu)下的一個(gè)部門或者一個(gè)大型實(shí)體下的一個(gè)子實(shí)體postalCode郵政編碼sn姓,別名st州或者省的名稱street街道地址userPassword用戶密碼uid用戶IDdepartmentNumber部門編號(hào)displayName顯示名稱description描述employeeNumber員工編號(hào)manager經(jīng)理下面是一些LDAP協(xié)議中定義的objectclass(具體信息查看RFC2252文檔)Objectclass必須屬性可選屬性accountuseriddescription$seeAlso$localityName$organizationName$organizationalUnitName$hostcountrycsearchGuide$descriptiondcObjectdcdevicecnserialNumber$seeAlso$owner$ou$o$l$descriptioninetOrgPerson->person繼承personaudio$businessCategory$carLicense$departmentNumber$displayName$employeeNumber$employeeType$givenName$homePhone$homePostalAddress$initials$jpegPhoto$labeledURI$mail$manager$mobile$o$pager$photo$roomNumber$secretary$uid$userCertificate$x500uniqueIdentifier$preferredLanguage$userSMIMECertificate$userPKCS12organizationalPerson

繼承Persontitle$x121Address$registeredAddress$destinationIndicator$preferredDeliveryMethod$telexNumber$teletexTerminalIdentifier$telephoneNumber$internationaliSDNNumber$facsimileTelephoneNumber$street$postOfficeBox$postalCode$postalAddress$physicalDeliveryOfficeName$ou$st$lorganizationouserPassword$searchGuide$seeAlso$businessCategory$x121Address$registeredAddress$destinationIndicator$preferredDeliveryMethod$telexNumber$teletexTerminalIdentifier$telephoneNumber$internationaliSDNNumber$facsimileTelephoneNumber$street$postOfficeBox$postalCode$postalAddress$physicalDeliveryOfficeName$st$l$descriptionorganizationalRolecnx121Address$registeredAddress$destinationIndicator$preferredDeliveryMethod$telexNumber$teletexTerminalIdentifier$telephoneNumber$internationaliSDNNumber$facsimileTelephoneNumber$seeAlso$roleOccupant$preferredDeliveryMethod$street$postOfficeBox$postalCode$postalAddress$physicalDeliveryOfficeName$ou$st$l$descriptionorganizationalUnitouuserPassword$searchGuide$seeAlso$businessCategory$x121Address$registeredAddress$destinationIndicator$preferredDeliveryMethod$telexNumber$teletexTerminalIdentifier$telephoneNumber$internationaliSDNNumber$facsimileTelephoneNumber$street$postOfficeBox$postalCode$postalAddress$physicalDeliveryOfficeName$st$l$descriptionpersoncnsnuserPassword$telephoneNumber$seeAlso$descriptionTop(所有類的基類)常用目錄服務(wù)器1:Apachedirectoryserver2:Sundirectoryserver3:openDS一個(gè)開源的,基于LDAP和DSML標(biāo)準(zhǔn)的Directoryservice。Directoryservice不僅包括Directoryserver,還有其它與directory相關(guān)的基本service:directoryproxy、virtualdirctory、namespacedistribution和數(shù)據(jù)同步Directoryserver是一個(gè)可以通過網(wǎng)絡(luò)訪問,信息分級(jí)存儲(chǔ)的數(shù)據(jù)庫(kù)。OpenDS只能用在linux操作系統(tǒng)。該項(xiàng)目的地址為:4:Netscape

DirectoryServer5:WindowADApachedirectoryserver安裝與使用1:下載ApacheDS地址為:2:ApacheDS的安裝比較簡(jiǎn)單,沒有什么特殊的設(shè)置。在ApacheDS安裝完成后要啟動(dòng)ApacheDS服務(wù)。路徑如下:控制面板管理工具服務(wù)--ApacheDirectoryserverApacheDS的監(jiān)聽端口默認(rèn)為103893:安裝Apachedirectorystudio。下載地址同上。該軟件是ApacheDS的一個(gè)客戶端工具。用于連接ApacheDS,搜索,更新,刪除,添加數(shù)據(jù)。安裝時(shí)也沒有特別設(shè)置,請(qǐng)按默認(rèn)設(shè)置安裝該軟件。4:使用Apachedirectorystudio連接ApacheDS步驟如下:第一步:在菜單欄中選擇LDAP菜單下的NewConnection選項(xiàng)第二步:在下面的對(duì)話框中輸入相應(yīng)的值。第三步:在一下對(duì)話框中輸入要連接的根DN和密碼。在ApacheDS安裝完成后,已經(jīng)創(chuàng)建了幾個(gè)DIT(目錄信息樹),第一次登錄ApacheDS的話一般會(huì)連接如下輸入的根節(jié)點(diǎn)的DN密碼為:secret。當(dāng)然可以在第一個(gè)選項(xiàng)框中選擇NoAuthentication。這是不需要輸入下面的驗(yàn)證信息。這種登錄術(shù)語(yǔ)匿名登錄。權(quán)限受限制。第四步。連接完成后,如下圖:圖中出現(xiàn)了apahceDS安裝默認(rèn)創(chuàng)建的三個(gè)目錄信息樹第五步:創(chuàng)建Partition。ApacheDS中的目錄信息是保存在Partition中的。所以在創(chuàng)建新的目錄樹之前首先要?jiǎng)?chuàng)建Partition。創(chuàng)建Partition的一個(gè)方法是修改server.xml配置文件。該文件路徑如下:C:\ProgramFiles\ApacheDirectoryServer\instances\default\conf\在該文件中找到Partitions元素。添加<jdbmPartition>元素。第六步:創(chuàng)建完成之后,重啟Apachedirecoryserver服務(wù)。在Apachedirectorystudio視圖中看到結(jié)果如下,在右側(cè)欄中我們可以看到我們剛剛添加的Partition。但是在左側(cè)欄中,我們并沒有看到該目錄分支存在。因?yàn)椋仨氁獎(jiǎng)?chuàng)建一個(gè)ContextEntry。第七步:創(chuàng)建ContextEntry123456LDAP應(yīng)用場(chǎng)景使用JNDI操作目錄服務(wù)準(zhǔn)備連接目錄服務(wù)器的相應(yīng)配置文件(以ApacheDS為例)pertiesjava.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFvider.url=ldap://localhost:10389/dc=example,dc=comjava.naming.security.authentication=simplejava.naming.security.principal=uid=liujz,dc=example,dc=comjava.naming.security.credentials=123456創(chuàng)建測(cè)試類publicclassLDAPTest{privatestaticDirContextctx=null;privatePropertiesldapProps;publicLDAPTest(PropertiesldapProp){This.ldapProp=ldapProp;}publicDirContextgetDirContext(){If(ctx=null){ctx=newInitialDirContext(ldapProps);}returnctx;}//從LDAP服務(wù)器中查詢符合條件的EntrypublicvoidqueryEntry(){SearchControlssc=newSearchControls();//用于設(shè)置查詢范圍//有三種查詢范圍SUBTREE_SCOPE:表示在以指定對(duì)象為根的子樹中查找,可以返回多個(gè)元素ONLEVEL_SCOPE:表示指定對(duì)象極其直接子實(shí)體OBJECT_SCOPE:表示返回指定對(duì)象。sc.setSearchScope(SearchControls.SUBTREE_SCOPE);//該方法有單個(gè)參數(shù),第一個(gè)參數(shù)是DN是一種相對(duì)的,因?yàn)楦鶕?jù)配置文件,我們已經(jīng)連接到根DN為dc=example,dc=com的目錄樹上,所以一下方法查詢的Entry的DN為ou=Account,dc=example,dc=com。第二個(gè)參數(shù)是過濾器,相當(dāng)于SQL中的where子句。第三個(gè)參數(shù)為查詢控制Stringdn=“ou=Account”;Stringfilter=“ou=Account”;NamingEnumerationresult=getDirContext().search(dn,filter,sc);While(result.hasMore()){SearchResultentry=(SearchResult)result.next();Attributesattrs=entry.getAttributes();Attributeattr=attrs.get(“ou”);System.out.println(“ou=”+attr.get());}}//向LDAP服務(wù)器中添加EntryPublicvoidaddEntry(){//在ou=account,dc=example,dc=com節(jié)點(diǎn)下添加一個(gè)子節(jié)點(diǎn)。其RDN為cn=liujianzhongAttributesattrs=newBasicAttributes();attrs.put(“cn”,”liujianzhong”);attrs.put(“sn”,”liu”);attrs.put(“userpassword”,”123456”);BasicAttributeobjectClassSet=newBasicAtrribute(“objectclass”);objectClassSet.add(“top”):objectClassSet.add(“person”);objectClassSet.add(“organizationalPerson”);objectClassSet.add(“inetOrgPerson”);attrs.put(objectClassSet);ctx.createSubContext(“cn=liujianzhong,ou=Account”,attrs);}//刪除LDAP目錄服務(wù)器中指定的Entry,如果該節(jié)點(diǎn)為葉子節(jié)點(diǎn)則直接刪除,否則要先得到該節(jié)點(diǎn)下的所有葉子節(jié)點(diǎn),然后從最底層的葉子節(jié)點(diǎn)刪除,直到刪除所有葉子節(jié)點(diǎn)為止PublicvoiddelEntry(){//刪除葉子節(jié)點(diǎn)StringDN=“cn=liujianzhong,ou=Account”;getDirContext().destroySubcontext(DN);//刪除非葉子

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論