<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-84  評論-56  文章-0  trackbacks-0

    如果你在計算機行業(yè)工作,那么對LDAP可能早有耳聞了。想深入地了解LDAP嗎?那么可以好好地讀一下這篇文章。這篇介紹性的文章是一系列介紹如何在企業(yè)中設(shè)計、實現(xiàn)和集成LDAP環(huán)境的文章的頭一篇。主要是先讓你熟悉一下LDAP的基本概念,那些比較困難的細節(jié)問題將放到以后討論。在這篇文章中我們將要介紹:


    什么是LDAP?

    什么時候該用LDAP存儲數(shù)據(jù)?

    LDAP目錄樹的結(jié)構(gòu)

    單獨的LDAP記錄

    作為例子的一個單獨的數(shù)據(jù)項

    LDAP復(fù)制

    安全和訪問控制

     

    現(xiàn)在LDAP技術(shù)不僅發(fā)展得很快而且也是激動人心的。在企業(yè)范圍內(nèi)實現(xiàn)LDAP可以讓運行在幾乎所有計算機平臺上的所有的應(yīng)用程序從LDAP目錄中獲取信息。LDAP目錄中可以存儲各種類型的數(shù)據(jù):電子郵件地址、郵件路由信息、人力資源數(shù)據(jù)、公用密匙、聯(lián)系人列表,等等。通過把LDAP目錄作為系統(tǒng)集成中的一個重要環(huán)節(jié),可以簡化員工在企業(yè)內(nèi)部查詢信息的步驟,甚至連主要的數(shù)據(jù)源都可以放在任何地方。如果OracleSybaseInformixMicrosoft SQL數(shù)據(jù)庫中已經(jīng)存儲了類似的數(shù)據(jù),那么LDAP和這些數(shù)據(jù)庫到底有什么不同呢?是什么讓它更具優(yōu)勢?請繼續(xù)讀下去吧!


    什么是LDAP?


    LDAP的英文全稱是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這個術(shù)語呢?


    在日常交談中,你可能會聽到有些人這么說:“我們要把那些東西存在LDAP中嗎?”,或者“從LDAP數(shù)據(jù)庫中取出那些數(shù)據(jù)!”,又或者“我們怎么把LDAP和關(guān)系型數(shù)據(jù)庫集成在一起?”。嚴格地說,LDAP根本不是數(shù)據(jù)庫而是用來訪問存儲在信息目錄(也就是LDAP目錄)中的信息的協(xié)議。更為確切和正式的說法應(yīng)該是象這樣的:“通過使用LDAP,可以在信息目錄的正確位置讀取(或存儲)數(shù)據(jù)”。但是,也沒有必要吹毛求疵,盡管表達得不夠準(zhǔn)確,我們也都知道對方在說什么。


    LDAP目錄是數(shù)據(jù)庫嗎?


    就象SybaseOracleInformixMicrosoft的數(shù)據(jù)庫管理系統(tǒng)(DBMS)是用于處理查詢和更新關(guān)系型數(shù)據(jù)庫那樣,LDAP服務(wù)器也是用來處理查詢和更新LDAP目錄的。換句話來說LDAP目錄也是一種類型的數(shù)據(jù)庫,但是不是關(guān)系型數(shù)據(jù)庫。不象被設(shè)計成每分鐘需要處理成百上千條數(shù)據(jù)變化的數(shù)據(jù)庫,例如:在電子商務(wù)中經(jīng)常用到的在線交易處理(OLTP)系統(tǒng),LDAP主要是優(yōu)化數(shù)據(jù)讀取的性能。


    LDAP目錄的優(yōu)勢


    現(xiàn)在該說說LDAP目錄到底有些什么優(yōu)勢了。現(xiàn)在LDAP的流行是很多因數(shù)共同作用的結(jié)果。我在這里說的不過是一些基本的原因,請你注意一下這不過是一小部分原因。


    可能LDAP最大的優(yōu)勢是:可以在任何計算機平臺上,用很容易獲得的而且數(shù)目不斷增加的LDAP的客戶端程序訪問LDAP目錄。而且也很容易定制應(yīng)用程序為它加上LDAP的支持。


    LDAP協(xié)議是跨平臺的和標(biāo)準(zhǔn)的協(xié)議,因此應(yīng)用程序就不用為LDAP目錄放在什么樣的服務(wù)器上操心了。實際上,LDAP得到了業(yè)界的廣泛認可,因為它是Internet的標(biāo)準(zhǔn)。產(chǎn)商都很愿意在產(chǎn)品中加入對LDAP的支持,因為他們根本不用考慮另一端(客戶端或服務(wù)端)是怎么樣的。LDAP服務(wù)器可以是任何一個開發(fā)源代碼或商用的LDAP目錄服務(wù)器(或者還可能是具有LDAP界面的關(guān)系型數(shù)據(jù)庫),因為可以用同樣的協(xié)議、客戶端連接軟件包和查詢命令與LDAP服務(wù)器進行交互。與LDAP不同的是,如果軟件產(chǎn)商想在軟件產(chǎn)品中集成對DBMS的支持,那么通常都要對每一個數(shù)據(jù)庫服務(wù)器單獨定制。


    不象很多商用的關(guān)系型數(shù)據(jù)庫,你不必為LDAP的每一個客戶端連接或許可協(xié)議付費。


    大多數(shù)的LDAP服務(wù)器安裝起來很簡單,也容易維護和優(yōu)化。


    LDAP服務(wù)器可以用“推”或“拉”的方法復(fù)制部分或全部數(shù)據(jù),例如:可以把數(shù)據(jù)“推”到遠程的辦公室,以增加數(shù)據(jù)的安全性。復(fù)制技術(shù)是內(nèi)置在LDAP服務(wù)器中的而且很容易配置。如果要在DBMS中使用相同的復(fù)制功能,數(shù)據(jù)庫產(chǎn)商就會要你支付額外的費用,而且也很難管理。


    LDAP允許你根據(jù)需要使用ACI(一般都稱為ACL或者訪問控制列表)控制對數(shù)據(jù)讀和寫的權(quán)限。例如,設(shè)備管理員可以有權(quán)改變員工的工作地點和辦公室號碼,但是不允許改變記錄中其它的域。ACI可以根據(jù)誰訪問數(shù)據(jù)、訪問什么數(shù)據(jù)、數(shù)據(jù)存在什么地方以及其它對數(shù)據(jù)進行訪問控制。因為這些都是由LDAP目錄服務(wù)器完成的,所以不用擔(dān)心在客戶端的應(yīng)用程序上是否要進行安全檢查。


    LDAP對于這樣存儲這樣的信息最為有用,也就是數(shù)據(jù)需要從不同的地點讀取,但是不需要經(jīng)常更新。例如,這些信息存儲在LDAP目錄中是十分有效的:


    l        公司員工的電話號碼簿和組織結(jié)構(gòu)圖


    l        客戶的聯(lián)系信息


    l        計算機管理需要的信息,包括NIS映射、email假名,等等


    l        軟件包的配置信息


    l        公用證書和安全密匙


    什么時候該用LDAP存儲數(shù)據(jù)?


    大多數(shù)的LDAP服務(wù)器都為讀密集型的操作進行專門的優(yōu)化。因此,當(dāng)從LDAP服務(wù)器中讀取數(shù)據(jù)的時候會比從專門為OLTP優(yōu)化的關(guān)系型數(shù)據(jù)庫中讀取數(shù)據(jù)快一個數(shù)量級。也是因為專門為讀的性能進行優(yōu)化,大多數(shù)的LDAP目錄服務(wù)器并不適合存儲需要需要經(jīng)常改變的數(shù)據(jù)。例如,用LDAP服務(wù)器來存儲電話號碼是一個很好的選擇,但是它不能作為電子商務(wù)站點的數(shù)據(jù)庫服務(wù)器。


    如果下面每一個問題的答案都是“是”,那么把數(shù)據(jù)存在LDAP中就是一個好主意。


    l        需要在任何平臺上都能讀取數(shù)據(jù)嗎?


    l        每一個單獨的記錄項是不是每一天都只有很少的改變?


    l        可以把數(shù)據(jù)存在平面數(shù)據(jù)庫(flat database)而不是關(guān)系型數(shù)據(jù)庫中嗎?換句話來說,也就是不管什么范式不范式的,把所有東西都存在一個記錄中(差不多只要滿足第一范式)。


    最后一個問題可能會唬住一些人,其實用平面數(shù)據(jù)庫去存儲一些關(guān)系型的數(shù)據(jù)也是很一般的。例如,一條公司員工的記錄就可以包含經(jīng)理的登錄名。用LDAP來存儲這類信息是很方便的。一個簡單的判斷方法:如果可以把保數(shù)據(jù)存在一張張的卡片里,就可以很容易地把它存在LDAP目錄里。


    LDAP目錄樹的結(jié)構(gòu)


    LDAP目錄以樹狀的層次結(jié)構(gòu)來存儲數(shù)據(jù)。如果你對自頂向下的DNS樹或UNIX文件的目錄樹比較熟悉,也就很容易掌握LDAP目錄樹這個概念了。就象DNS的主機名那樣,LDAP目錄記錄的標(biāo)識名(Distinguished Name,簡稱DN)是用來讀取單個記錄,以及回溯到樹的頂部。后面會做詳細地介紹。


    為什么要用層次結(jié)構(gòu)來組織數(shù)據(jù)呢?原因是多方面的。下面是可能遇到的一些情況:


    l        如果你想把所有的美國客戶的聯(lián)系信息都“推”到位于到西雅圖辦公室(負責(zé)營銷)的LDAP服務(wù)器上,但是你不想把公司的資產(chǎn)管理信息“推”到那里。


    l        你可能想根據(jù)目錄樹的結(jié)構(gòu)給予不同的員工組不同的權(quán)限。在下面的例子里,資產(chǎn)管理組對“asset-mgmt”部分有完全的訪問權(quán)限,但是不能訪問其它地方。


    l        LDAP存儲和復(fù)制功能結(jié)合起來,可以定制目錄樹的結(jié)構(gòu)以降低對WAN帶寬的要求。位于西雅圖的營銷辦公室需要每分鐘更新的美國銷售狀況的信息,但是歐洲的銷售情況就只要每小時更新一次就行了。


    刨根問底:基準(zhǔn)DN


    LDAP目錄樹的最頂部就是根,也就是所謂的“基準(zhǔn)DN”。基準(zhǔn)DN通常使用下面列出的三種格式之一。假定我在名為FooBar的電子商務(wù)公司工作,這家公司在Internet上的名字是foobar.com


    o="FooBar, Inc.", c=US


    (以X.500格式表示的基準(zhǔn)DN


    在這個例子中,o=FooBar, Inc. 表示組織名,在這里就是公司名的同義詞。c=US 表示公司的總部在美國。以前,一般都用這種方式來表示基準(zhǔn)DN。但是事物總是在不斷變化的,現(xiàn)在所有的公司都已經(jīng)(或計劃)上Internet上。隨著Internet的全球化,在基準(zhǔn)DN中使用國家代碼很容易讓人產(chǎn)生混淆。現(xiàn)在,X.500格式發(fā)展成下面列出的兩種格式。


    o=foobar.com


    (用公司的Internet地址表示的基準(zhǔn)DN


    這種格式很直觀,用公司的域名作為基準(zhǔn)DN。這也是現(xiàn)在最常用的格式。


    dc=foobar, dc=com


    (用DNS域名的不同部分組成的基準(zhǔn)DN


    就象上面那一種格式,這種格式也是以DNS域名為基礎(chǔ)的,但是上面那種格式不改變域名(也就更易讀),而這種格式把域名:foobar.com分成兩部分 dc=foobar, dc=com在理論上,這種格式可能會更靈活一點,但是對于最終用戶來說也更難記憶一點。考慮一下foobar.com這個例子。當(dāng)foobar.comgizmo.com合并之后,可以簡單的把“dc=com”當(dāng)作基準(zhǔn)DN。把新的記錄放到已經(jīng)存在的dc=gizmo, dc=com目錄下,這樣就簡化了很多工作(當(dāng)然,如果foobar.comwocket.edu合并,這個方法就不能用了)。如果LDAP服務(wù)器是新安裝的,我建議你使用這種格式。再請注意一下,如果你打算使用活動目錄(Actrive Directory),Microsoft已經(jīng)限制你必須使用這種格式。


    更上一層樓:在目錄樹中怎么組織數(shù)據(jù)


    UNIX文件系統(tǒng)中,最頂層是根目錄(root)。在根目錄的下面有很多的文件和目錄。象上面介紹的那樣,LDAP目錄也是用同樣的方法組織起來的。


    在根目錄下,要把數(shù)據(jù)從邏輯上區(qū)分開。因為歷史上(X.500)的原因,大多數(shù)LDAP目錄用OU從邏輯上把數(shù)據(jù)分開來。OU表示“Organization Unit”,在X.500協(xié)議中是用來表示公司內(nèi)部的機構(gòu):銷售部、財務(wù)部,等等。現(xiàn)在LDAP還保留ou=這樣的命名規(guī)則,但是擴展了分類的范圍,可以分類為:ou=people, ou=groups, ou=devices,等等。更低一級的OU有時用來做更細的歸類。例如:LDAP目錄樹(不包括單獨的記錄)可能會是這樣的:


        dc=foobar, dc=com


            ou=customers


                ou=asia


                ou=europe


                ou=usa


            ou=employees


            ou=rooms


            ou=groups


            ou=assets-mgmt


            ou=nisgroups


            ou=recipes


    單獨的LDAP記錄


    DNLDAP記錄項的名字


    LDAP目錄中的所有記錄項都有一個唯一的“Distinguished Name”,也就是DN。每一個LDAP記錄項的DN是由兩個部分組成的:相對DNRDN)和記錄在LDAP目錄中的位置。


    RDNDN中與目錄樹的結(jié)構(gòu)無關(guān)的部分。在LDAP目錄中存儲的記錄項都要有一個名字,這個名字通常存在cnCommon Name)這個屬性里。因為幾乎所有的東西都有一個名字,在LDAP中存儲的對象都用它們的cn值作為RDN的基礎(chǔ)。如果我把最喜歡的吃燕麥粥食譜存為一個記錄,我就會用cn=Oatmeal Deluxe作為記錄項的RDN


    l         我的LDAP目錄的基準(zhǔn)DNdc=foobar,dc=com


    l         我把自己的食譜作為LDAP的記錄項存在ou=recipes


    l        我的LDAP記錄項的RDN設(shè)為cn=Oatmeal Deluxe


    上面這些構(gòu)成了燕麥粥食譜的LDAP記錄的完整DN。記住,DN的讀法和DNS主機名類似。下面就是完整的DN


    cn=Oatmeal Deluxe,ou=recipes,dc=foobar,dc=com


    舉一個實際的例子來說明DN


    現(xiàn)在為公司的員工設(shè)置一個DN。可以用基于cnuidUser ID),作為典型的用戶帳號。例如,FooBar的員工Fran Smith(登錄名:fsmith)的DN可以為下面兩種格式:


    uid=fsmith,ou=employees,dc=foobar,dc=com


    (基于登錄名)


    LDAP(以及X.500)用uid表示“User ID”,不要把它和UNIXuid號混淆了。大多數(shù)公司都會給每一個員工唯一的登錄名,因此用這個辦法可以很好地保存員工的信息。你不用擔(dān)心以后還會有一個叫Fran Smith的加入公司,如果Fran改變了她的名字(結(jié)婚?離婚?或宗教原因?),也用不著改變LDAP記錄項的DN


    cn=Fran Smith,ou=employees,dc=foobar,dc=com


    (基于姓名)


    可以看到這種格式使用了Common NameCN)。可以把Common Name當(dāng)成一個人的全名。這種格式有一個很明顯的缺點就是:如果名字改變了,LDAP的記錄就要從一個DN轉(zhuǎn)移到另一個DN。但是,我們應(yīng)該盡可能地避免改變一個記錄項的DN


    定制目錄的對象類型


    你可以用LDAP存儲各種類型的數(shù)據(jù)對象,只要這些對象可以用屬性來表示,下面這些是可以在LDAP中存儲的一些信息:


    l        員工信息:員工的姓名、登錄名、口令、員工號、他的經(jīng)理的登錄名,郵件服務(wù)器,等等。


    l        物品跟蹤信息:計算機名、IP地址、標(biāo)簽、型號、所在位置,等等。


    l        客戶聯(lián)系列表:客戶的公司名、主要聯(lián)系人的電話、傳真和電子郵件,等等。


    l        會議廳信息:會議廳的名字、位置、可以坐多少人、電話號碼、是否有投影機。


    l        食譜信息:菜的名字、配料、烹調(diào)方法以及準(zhǔn)備方法。


    因為LDAP目錄可以定制成存儲任何文本或二進制數(shù)據(jù),到底存什么要由你自己決定。LDAP目錄用對象類型(object classes)的概念來定義運行哪一類的對象使用什么屬性。在幾乎所有的LDAP服務(wù)器中,你都要根據(jù)自己的需要擴展基本的LDAP目錄的功能,創(chuàng)建新的對象類型或者擴展現(xiàn)存的對象類型。


    LDAP目錄以一系列“屬性對”的形式來存儲記錄項,每一個記錄項包括屬性類型和屬性值(這與關(guān)系型數(shù)據(jù)庫用行和列來存取數(shù)據(jù)有根本的不同)。下面是我存在LDAP目錄中的一部分食譜記錄:


      dn: cn=Oatmeal Deluxe, ou=recipes, dc=foobar, dc=com


      cn: Instant Oatmeal Deluxe


      recipeCuisine: breakfast


      recipeIngredient: 1 packet instant oatmeal


      recipeIngredient: 1 cup water


      recipeIngredient: 1 pinch salt


      recipeIngredient: 1 tsp brown sugar


      recipeIngredient: 1/4 apple, any type


    請注意上面每一種配料都作為屬性recipeIngredient值。LDAP目錄被設(shè)計成象上面那樣為一個屬性保存多個值的,而不是在每一個屬性的后面用逗號把一系列值分開。


    因為用這樣的方式存儲數(shù)據(jù),所以數(shù)據(jù)庫就有很大的靈活性,不必為加入一些新的數(shù)據(jù)就重新創(chuàng)建表和索引。更重要的是,LDAP目錄不必花費內(nèi)存或硬盤空間處理“空”域,也就是說,實際上不使用可選擇的域也不會花費你任何資源。


    作為例子的一個單獨的數(shù)據(jù)項


    讓我們看看下面這個例子。我們用Foobar, Inc.的員工Fran SmithLDAP記錄。這個記錄項的格式是LDIF,用來導(dǎo)入和導(dǎo)出LDAP目錄的記錄項。


      dn: uid=fsmith, ou=employees, dc=foobar, dc=com


      objectclass: person


      objectclass: organizationalPerson


      objectclass: inetOrgPerson


      objectclass: foobarPerson


      uid: fsmith


      givenname: Fran


      sn: Smith


      cn: Fran Smith


      cn: Frances Smith


      telephonenumber: 510-555-1234


      roomnumber: 122G


      o: Foobar, Inc.


      mailRoutingAddress: fsmith@foobar.com


      mailhost: mail.foobar.com


      userpassword: {crypt}3x1231v76T89N


      uidnumber: 1234


      gidnumber: 1200


      homedirectory: /home/fsmith


      loginshell: /usr/local/bin/bash


    屬性的值在保存的時候是保留大小寫的,但是在默認情況下搜索的時候是不區(qū)分大小寫的。某些特殊的屬性(例如,password)在搜索的時候需要區(qū)分大小寫。


    讓我們一點一點地分析上面的記錄項。


    dn: uid=fsmith, ou=employees, dc=foobar, dc=com


    這是FranLDAP記錄項的完整DN,包括在目錄樹中的完整路徑。LDAP(和X.500)使用uidUser ID),不要把它和UNIXuid號混淆了。


      objectclass: person


      objectclass: organizationalPerson


      objectclass: inetOrgPerson


      objectclass: foobarPerson


    可以為任何一個對象根據(jù)需要分配多個對象類型。person對象類型要求cncommon name)和sn

     
    posted on 2008-09-17 13:44 憶風(fēng) 閱讀(790) 評論(0)  編輯  收藏 所屬分類: Java EEDataBase
    主站蜘蛛池模板: 国产一级一毛免费黄片| 中文字幕在线免费| 国产成人亚洲综合无码精品| 57pao国产成视频免费播放| 亚洲最大无码中文字幕| 久久亚洲精品无码播放| 久视频精品免费观看99| 国产亚洲日韩在线a不卡| 亚洲国产精品va在线播放| 成人毛片免费观看视频| 9久热精品免费观看视频| 亚洲精品中文字幕无乱码麻豆| 亚洲成A人片77777国产| 亚洲免费黄色网址| 一级毛片免费观看不收费| 亚洲成人网在线播放| 亚洲成av人片天堂网老年人| aⅴ在线免费观看| rh男男车车的车车免费网站| 亚洲 日韩 色 图网站| 亚洲级αV无码毛片久久精品| 在线观看特色大片免费视频 | 自怕偷自怕亚洲精品| 国产青草视频在线观看免费影院| 最近国语视频在线观看免费播放 | 日韩免费无码一区二区视频| 99re8这里有精品热视频免费| 亚洲精品天堂在线观看| 国产AV无码专区亚洲Av| 国产国产成年年人免费看片| 五月亭亭免费高清在线| 18禁超污无遮挡无码免费网站| 国产精品亚洲а∨天堂2021 | 亚洲国产综合AV在线观看| 亚洲丁香色婷婷综合欲色啪| 亚洲JIZZJIZZ中国少妇中文| AV免费网址在线观看| 久久午夜夜伦鲁鲁片免费无码影视| 插鸡网站在线播放免费观看| 亚洲精品一卡2卡3卡四卡乱码| 亚洲mv国产精品mv日本mv|