<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
    一、Directory Services(目錄服務)能做什么?

        我們知道,當局域網的規模變的越來越大時,為了方便主機管理,我們使用DHCP來實現IP地址、以太網地址、主機名和拓撲結構等的集中管理和統一分配。同樣,如果一個局域網內有許多的其它資源時,如打印機、共享文件夾等等,為了方便的定位及查找它們,一種集中定位管理的方式或許是較好的選擇,DNS和NIS都是用來實現類似管理的方法。
        
        對于局域網內的一個用戶來講,工作等其它應用需要,我們必須憑帳號登錄主機、用帳號收發E-mail,甚至為了管理需要公司還需要維護一個電子號碼簿來存儲員工的姓名、地址、電話號碼等信息。隨著時間的增長,我們會為這些越來越多的帳號和密碼弄的頭暈腦脹。同時,如果一個員工離開,管理員就不得不翻遍所有的記錄帳號信息的文件把離職員工的信息刪除。這些將是一個繁瑣而效率低下的工作。那么,如果能將此些帳號信息等統一到一個文件中進行管理,無疑會大大提高員工及管理員的工作效率。目錄服務(LDAP是其實現的一種)正是基于這些應用實現的。

    二、什么是LDAP?
        
        LDAP是Lightweight Directory Access Protocol的縮寫,顧名思義,它是指輕量級目錄訪問協議(這個主要是相對另一目錄訪問協議X.500而言的;LDAP略去了x.500中許多不太常用的功能,且以TCP/IP協議為基礎)。目錄服務和數據庫很類似,但又有著很大的不同之處。數據庫設計為方便讀寫,但目錄服務專門進行了讀優化的設計,因此不太適合于經常有寫操作的數據存儲。同時,LDAP只是一個協議,它沒有涉及到如何存儲這些信息,因此還需要一個后端數據庫組件來實現。這些后端可以是bdb(BerkeleyDB)、ldbm、shell和passwd等。

        LDAP目錄以樹狀的層次結構來存儲數據(這很類同于DNS),最頂層即根部稱作“基準DN”,形如"dc=mydomain,dc=org"或者"o=mydomain.org",前一種方式更為靈活也是Windows AD中使用的方式。在根目錄的下面有很多的文件和目錄,為了把這些大量的數據從邏輯上分開,LDAP像其它的目錄服務協議一樣使用OU(Organization Unit),可以用來表示公司內部機構,如部門等,也可以用來表示設備、人員等。同時OU還可以有子OU,用來表示更為細致的分類。

        LDAP中每一條記錄都有一個唯一的區別于其它記錄的名字DN(Distinguished Name),其處在“葉子”位置的部分稱作RDN;如dn:cn=tom,ou=animals,dc=mydomain,dc=org中tom即為RDN;RDN在一個OU中必須是唯一的。

    三、什么是LDIF?

        LDIF(LDAP Interchange Format)是指存儲LDAP配置信息及目錄內容的標準文本文件格式,之所以使用文本文件來格式來存儲這些信息是為了方便讀取和修改,這也是其它大多數服務配置文件所采取的格式。LDIF文件常用來向目錄導入或更改記錄信息,這些信息需要按照LDAP中schema的格式進行組織,并會接受schema的檢查,如果不符合其要求的格式將會出現報錯信息。LDIF文件樣例如下:

    #LDIF file example
    dn: dc=mydomain,dc=org
    objectClass: domain
    dc: mydomain

        其中,以“#”號開頭的為注釋行;第二行起的行中,冒號左邊為屬性,右邊是屬性的值,這類同于編程中的變量及為其所賦的值,但屬性可以被重復賦值。

    四、objectClass 

        LDAP中,一條記錄必須包含一個objectClass屬性,且其需要賦予至少一個值。每一個值將用作一條LDAP記錄進行數據存儲的模板;模板中包含了一條記錄中數個必須被賦值的屬性和一系列可選的屬性。如上述LDIF文件中的記錄所示,objectClass的值為domain。

        objectClass有著嚴格的等級之分,最頂層的類是top和alias。例如,organizationalPerson這個objectClass隸屬于Person,而Person又是top的子類。

        objectClass大致分為三類:結構型的(如:person和organizationUnit)、輔助型的(如:extensibeObject)和抽象型的(這類不能直接使用)。官方定義的objectClass,如下所示:

    alias 
    applicationEntity 
    dSA 
    applicationProcess 
    bootableDevice 
    certificationAuthority 
    certificationAuthority-V2 
    country 
    cRLDistributionPoint 
    dcObject 
    device 
    dmd 
    domain 
    domainNameForm 
    extensibleObject 
    groupOfNames 
    groupOfUniqueNames 
    ieee802Device 
    ipHost 
    ipNetwork 
    ipProtocol 
    ipService 
    locality 
    dcLocalityNameForm 
    nisMap 
    nisNetgroup 
    nisObject 
    oncRpc 
    organization 
    dcOrganizationNameForm 
    organizationalRole 
    organizationalUnit 
    dcOrganizationalUnitNameForm 
    person 
    organizationalPerson 
    inetOrgPerson 
    uidOrganizationalPersonNameForm 
    residentialPerson 
    posixAccount 
    posixGroup 
    shadowAccount 
    strongAuthenticationUser 
    uidObject 
    userSecurityInformation

    五、Attribute介紹

        如上文所述,Attribute類同于編程語言中的變量,它可以被賦值,就像是可以存放一個單一類型信息的容器。官方聲明了許多常用的Attribute,如果其中沒有你所需要的,你可以自己定義,但要避免重名。objectClass是一種特殊的Attribute,它包含其它用到的Attribute以及它自身。常見的Attribute如:givenName、l、objectClass、dc、ou、cn、c、mail、telephoneNumber、sn、uid等。分別介紹如下:

    c:國家;
    cn:common name,指一個對象的名字;如果指人,需要使用其全名;
    dc:domain Component,經常用來指一個域名的一部分,如:dc=mydomain,dc=org;
    givenName:指一個人的名字,不能用來指姓或者middle name;
    l:指一個地名,如一個城市或者其它地理區域的名字;
    mail:電子信箱地址
    o:organizationName,指一個組織的名字;
    objectClass:一個LDAP server要想啟用必須能夠識別每一個對象的Attribute,objectClass Attribute正是用來描述一個對象應該具有的Attribute及可選Attribute。因此,每個objectClass“模板”的Attribute中必然含有一條objectClass Attribute,我不知道用“自包含”稱呼這個算不算合適。
    ou:organizationalUnitName,指一個組織單元的名字。
    sn:surname,指一個人的姓;
    telephoneNumber:電話號碼,應該帶有所在的國家的代碼;
    uid:userid,通常指一個人的登錄名,這個不同于Linux系統中用戶的uid; 

        如果可以這樣類比的話,我想,我們不妨把objectClass理解為關系數據庫的表,而attribute則類同為表中的字段。而下面即可介紹的schema或許可以類比作一個數據庫,但它的這個類比或許從邏輯上說更合適些。

    六、什么是schema

            好了,現在可以說說到底什么是schema了。LDAP中,schema用來指定一個目錄中所包含的objects的類型(objectClass)以及每一個objectClass中的各個必備(mandatory)和可選(optional)的屬性(attribute)。因此,[color=Orange]Schema是一個數據模型,它被用來決定數據怎樣被存儲,被跟蹤的數據的是什么類型,存儲在不同的Entry下的數據之間的關系。[/color]schema需要在主配置文件slapd.conf中指定,以用來決定本目錄中使用到的objectClass。管理員可以自己設計制定schema,一般包括屬性定義(AttributeDefinition)、類定義(ClassDefinition)以及語法定義(SyntaxDefinition)等部分。  

        LDAP V3中在x.500標準的基礎上定義了一個包含了網絡中大多常見對象的schema,這些對象包括國家、所在地、組織、人員、小組以及設備等。同時,LDAP V3中可以很方便的從目錄中提取出schema,它正是一條記錄中關于屬性的聲明部分。

    七、對象標識符(Object Identifiers)

         對象標識符(OID)是被LDAP內部數據庫引用的數字標識。Attribute的名字是設計為方便人們讀取的,但為了方便計算機的處理,通常使用一組數字來標識這些對象,這類同于SNMP中的MIB2。例如,當計算機接收到dc這個Attribute時,它會將這個名字轉換為對應的OID:1.3.6.1.4.1.1466.115.121.1.26。


    八、使用LDAP做身份驗正

        驗正主要是用來確定一次會主中客戶端用戶所具有的權利,即用來確立用戶能否登錄以及登錄具有使用哪些資源以及如何使用資源的權限。驗正過程中的修改、查詢等操作由認證級別來控制。

        objectClass中的person可以用來作linux系統中用戶登入的身份驗正,此時需要指定userPassword屬性的值,即指定用戶登入時使用的密碼。密碼可以使用的加密方式有MD5、CRYPT、SHA、SSHA等。在LDAP V3中,驗正客戶端時可以使用的驗正機制有匿名驗正、簡單驗正、基于SSL/TLS的驗正和基于SASL的驗正等四種方式。
    posted on 2008-09-21 02:40 憶風 閱讀(672) 評論(0)  編輯  收藏 所屬分類: Java EE
    主站蜘蛛池模板: 国产亚洲精品资在线| 亚洲人成网站在线观看青青| 亚洲成av人片天堂网| 中国好声音第二季免费播放| 亚洲人成电影网站国产精品| 波霸在线精品视频免费观看| 亚洲欧洲美洲无码精品VA| 久久精品电影免费动漫| 亚洲精品视频观看| 国产卡一卡二卡三免费入口| 亚洲中文字幕无码中文字| 德国女人一级毛片免费| 男男gvh肉在线观看免费| 亚洲欧洲久久久精品| 免费91最新地址永久入口| 337p日本欧洲亚洲大胆艺术| 免费国产成人高清在线观看网站| 国产亚洲精aa在线看| 免费看国产精品麻豆| 免费无码又爽又刺激网站| 亚洲精品熟女国产| 国产高清免费在线| 三年在线观看免费观看完整版中文| 久久精品亚洲综合一品| 国产h视频在线观看免费| 日本亚洲中午字幕乱码| 国产AV无码专区亚洲A∨毛片| 美女视频黄的全免费视频| 精品国产日韩亚洲一区在线 | 亚洲最大中文字幕无码网站| 四虎永久在线精品免费观看地址 | 亚洲av日韩综合一区久热| 国产L精品国产亚洲区久久| 最近高清中文字幕免费| 亚洲精品无码mⅴ在线观看| 中文字幕中韩乱码亚洲大片 | 色婷婷六月亚洲综合香蕉| 亚洲午夜久久久久久久久久| 国产成人精品免费午夜app| 国产成人亚洲精品电影| 久久久久亚洲AV无码网站|