目錄服務是將有關現實世界中的事物的信息存儲為具有描述性屬性的對象,由與數據庫類似的數據庫構成。目錄互用性論壇是目錄服務的一個重要的部分,其組建的目的是推進基于LDAP標準的開放式目錄。該論壇由開放式目錄供應商組成,這些供應商計劃制定標準主體以加速基于目錄的應用程序的發展和實施。
基本介紹
目錄服務對于網絡的作用就像白頁對電話系統的作用一樣。目錄服務將有關現實世界中的事物(如人、計算機、打印機等等)的信息存儲為具有描述性屬性的對象。人們可以使用該服務按名稱查找對象或者像使用黃頁一樣,可使用它們查找服務。
簡介
網絡管理員使用目錄管理用戶帳戶及網絡資源。從管理員的角度來看,目錄服務類似于網絡上的所有設備的清單。通過使用圖形界面或搜索任意設備的名稱或某些屬性(如“彩色打印機”)可杳找其位置。一旦找到設備的位置,管理員就可對設備進行控制(如禁用或防止某些用戶訪問該設備)。
目錄是一個為查詢、瀏覽和搜索而優化的專業分布式數據庫系統,它成樹狀結構組織數據,就好象Linux/Unix系統中的文件目錄一樣。目錄數據庫和關系數據庫不同,它有優異的讀性能,但寫性能差,并且沒有事務處理、回滾等復雜功能,不適于存儲修改頻繁的數據。所以目錄天生是用來查詢的,就好象它的名字一樣。目錄服務是由目錄數據庫和一套訪問協議組成的系統。DNS(域名系統)是目錄服務的一種形式。該系統保存有關域名的信息。類似以下的信息適合儲存在目錄中:
企業員工和企業客戶之類人員信息;
公用證書和安全密鑰;
郵件地址、網址、IP等電腦信息;
電腦配置信息。
...
目錄服務由與數據庫類似的數據庫構成。但它在很多方面不同于傳統的數據庫。目錄的組織是有層次的,其具有對象類及對象子類。目錄主要用于查找操作而不是用于連續的讀取和寫入。信息并不像事務交易數據庫一樣經常進行更改。因此,也很少考慮對目錄服務數據庫的分布式副本的經常更新。
早期的目錄服務標準為X.500(將在別處進行討論)。如今,Microsoft Windows 2000 Active Directory和Novell Directory Services(NDS)就是基于該模型構建的。LDAP(簡便目錄訪問協議)是重要的目錄服務協議,它是IETF定義的訪問目錄的客戶機/服務器協議。
LDAP用于訪問X.500的目錄服務,它不會產生目錄訪問協議(DAP)訪問X.500時所需的資源要求。本協議特別針對那些簡單管理程序和瀏覽器程序,它們提供對X.500目錄進行簡單的讀/寫交互式訪問,同時它也是對DAP本身的一種補充。
現在目錄用于管理各種大量的信息,其中包括QoS、帶寬管理策略、配置文件、電子商務信息及其他信息。在用戶的身份驗證、防火墻過濾及VPN訪問方面也起著重要的安全作用。大多數目錄產品現在將證書映射到目錄中的用戶帳戶,并且目錄能夠為用戶提供一次注冊。DEN(目錄運行網絡)是解決基于策略的連網及可互用的網絡問題的目錄服務的倡議。
目錄在電子商務和企業對企業之間的關系中扮演著重要的角色。目錄可保存有關公司網絡外部的人員的重要信息,用于鑒別這些人員并定義他們對于網絡資源的訪問權。管理員可將策略應用于目錄中的對象中以快速定義團體的訪問權,如業務合作者。
目錄服務提供一個公用位置以存儲所有類型信息。同時,某個組織可能由于安全性或商業原因想要擁有多個不同的目錄。元目錄是單獨的或綜合的目錄部分,可幫助鏈接多個不同的目錄并使各目錄中的信息同步。LDAP起著連接其他目錄的作用。XML可提供表示需要在目錄之間進行交流的信息的標準方法。
目錄結構和操作
X.500是在1988年由CCITT(現稱為ITU-T)認可的一套目錄服務標準。它最初旨在與X.400傳送消息標準一起使用。如今,X.500主要充當商業產品的一種模型。過去設計X.500的目的是使用OSI協議族,但是TCP/IP卻成為了實際的網絡協議。因此,大多數目錄服務如今以X.5OO為模型并設計用于在TCP/IP上運行。LDAP是對X.500協議進行修改以在TCP/IP網絡上運行的協議。
X.500是一個協議族,由一系列的概念和協議組成,包括:
X.501是模型定義,定義目錄服務的基本模型和概念;
X.509是認證框架,定義如何處理目錄服務中客戶和服務器認證;
X.511是抽象服務定義,定義X.500提供的功能性服務;
X.518是分布式操作過程定義,定義如何跨平臺處理目錄服務;
X.519是協議規范,定義了X.500協議,包括DAP(Directory Access Protocol,目錄訪問協議)、DSP(DIRECTORY SYSTEM Protocol,目錄系統協議)、DOP(Directory Operator Protocol,目錄操作綁定協議)、DISP(Directory Information Shadowing Protocol,目錄信息陰影協議);
X.520定義屬性類型要求;
X.521定義對象類型;
X.525定義如果在目錄服務器間復制內容。
X.500標準中定義了很多內容,包括:
定義了信息模型,確定目錄中信息的格式和字符集,如何在項中表示目錄信息(定義對象類、屬性等模式);
定義命名空間,確定對信息進行的組織和引用,如何組織和命名項-目錄信息樹DIT和層次命名模型;
定義功能模型,確定可以在信息上執行的操作;
定義認證框架,保證目錄中信息的安全,如何實現目錄中信息的授權保護-訪問控制模型;
定義分布操作模型,確定數據如何分布和如何對分布數據執行操作,如何將全局目錄樹劃分為管理域,以便管理。
定義客戶端與服務器之間的通信的各種協議。
X.500倒置層次樹如圖D-24所示。目錄由稱為容器或葉對象的項構成。容器位于樹的分枝上并保存其他容器和(或)葉對象。葉對象表示現實世界的對象,如人、計算機、打印機及存儲卷。每個對象都有一個CN(公共名稱)和屬性(稍后討論)。DN(辨別名稱)是定義組成從樹頂端到對象的路徑的所有容器的名稱。在圖D-24中,Joe的DN是在數據庫(邏輯目錄樹)中每個項都有一個對象類。在圖D-24中US和UK屬于對象類“國家”,而微軟和BigCorp屬于對象類“組織”。Joe屬于對象類“個人”。
cn=Joe,ou=Eng,o=Bigcorp,c=US
每個對象類具有一各特定的屬性(也稱為“特性”或“元素”)集合。屬性是數據庫中可保存某值的基本字段。“組織”項將會有描述公司的屬性,而“個人”項將會有定義人的屬性。最常見的屬性是“公共名稱”、“地址”、“郵件”、“部門”、“電話:“傳真”等等。
對象子類的概念是很重要的。如果創建一個對象并賦予其某些屬性,然后創建該對象下的子類,則子類將自動“繼承”父對象的屬性。如果更改父對象,則其子類也將繼承這些更改。例如對象“打印機”將具有所有打印機的基本屬性。在該對象下是打印機的子類,如彩色打印機、整理打印機等。這種設計為企業管理帶來了很大益處,尤其是當機構增長或變化時。
由于X.500較復雜,且需嚴格遵照OSI七層協議模型。造成應用開發較困難。所以開發了LDAP(簡便目錄訪問協議),以便在INTERNET上使用。LDAP是訪問目錄的通用協議。它是客戶機/服務器協議,其中客戶機操作可添加和刪除,或修改項,或只查詢有關某項的數據庫。客戶機還可通過指定它們正查找的對象的屬性來搜索數據庫。可將查詢限定在樹的某個特定分枝的范圍。例如,在圖D-24中,可搜索數據庫中的BigCorp項下的對象。
LDAP最大的優勢是可以在任何計算機平臺上,用很容易獲得的而且數目不斷增加的LDAP的客戶端程序訪問LDAP目錄。而且也很容易定制應用程序為它加上LDAP的支持。
圖D-24 分層命名方案
目錄模式
該模式是一種定義如何在目錄數據庫中表示現實世界中的對象(如人和計算機)的結構化模型。它定義數據庫的結構,數據庫中對象的名稱及這些對象的屬性。RFC 2251,“LDAPv3,”(December 1997)為該模式提供了很好的描述。
該模式類似于郵政編址模式。郵政編址模式通過在信封上寫上姓名、地址、城市、省份及ZIP編碼來尋址。在整個國家中統一使用使郵政系統運轉良好的這種模式。遺憾的是,大多數目錄服務沒有使用同一模式,所以將很難達到互用性。目錄服務,像Novell NDS,具有一組定義的對象(如“人”和“計算機”),而管理員也可以制定他們自己的對象。但是,一旦以這種方式“自定義”目錄后,當兩家公司合并或電子商務合作雙方需要共享目錄信息成為必要時,再將目錄與其他目錄合并使用將尤為困難。需要使用元目錄和轉換方案(將在后面進行討論)處理這種情況。
DEN(目錄運行網絡)倡議定義一種標準目錄服務結構和模式,其可用于存儲網絡策略和交換機、路由器、服務器及其他設備的配置信息。
元目錄
元目錄通過充當對于其他目錄服務的單個訪問點為目錄服務添加了可互用性。它是一種中間件形式。元目錄為不同的目錄服務提供了一種交換數據的方式。可將元目錄視為一種將目錄連接到其中以交換信息的中央集線器。
元目錄可以集成多種目錄服務,有時還可以集成其他存儲系統,如將數據庫集成到統一的命名空間中。元目錄提供了一個集成化的一致視圖,將先前相互隔離的信息集成到一個視圖中。另外,元目錄還可以控制數據的更新方式。例如,對于員工姓名更改,如果此更改由HR數據庫引起,則元目錄會視這些更改有效;如果這些更改由其他任何數據庫或目錄引起,則元目錄將撤消這些更改。微軟 Metadirectory Service和Sun One Meta Directory為元目錄產品的不同例子。
Burton Group所編寫的“元目錄FAQ”中是這樣描述:在1996年,Burton Group正式定義了“元目錄”概念,它描述了聯合、集中注冊、屬性流和其他目錄服務的功能規范。該術語源自數據庫領域中的元數據。元數據以目錄卡描述圖書館中的書籍的相同形式描述數據庫中的數據。Burton Group社撰了術語“元目錄”以描述當時出現的集成并轉換多個目錄服務中的信息的一個產品類別。根據FAQ,“元目錄服務合并了多個目錄中信息的子集,其中包括有關人、團體、職能、組織單位、位置和其他資源的信息。這種合并創建了組織中不同目錄的聯合或統一的視圖。元目錄使得通過LDAP和基于Web的訪問協議可訪問聯合視圖”。
考慮單個用戶在網上具有多個身份(如他(或她)的注冊名和電子郵件名)是理解元目錄的聯合作用的最好方式。元目錄也可幫助解決組織內或商業伙伴之間建立的目錄中的命名方案中的差異問題。所有這些都通過跟蹤更改并確保相應更新這些更改信息的系統動態完成。元目錄有以下兩種類型:
聯合元目錄 在該方案中,將創建一個指向所有其他目錄的單獨目錄。管理員使用元目錄,而無需使用每個單獨引用的目錄。Isocor使用該方法。
虛擬元目錄
在該方案中,不創建額外的目錄。相反,管理應用程序允許管理員直接使用各個目錄,方法是通過索引映射模式提供目錄的單個視圖。Entevo使用該方法。
元目錄解決了與應使用哪一種目錄服務或(如果多個目錄存在)哪一個應是頂級目錄相關的政策問題。微軟最初將其Active Directory設計為全控目錄操作,但卻發現這樣需要支持不同種類的目錄環境。于是Microsoft由于ZoomIt的Via元目錄產品而收購了該公司并重新將其加工以創建“Microsoft元目錄服務”。
Novell現在使用DirXML從遺留目錄中獲取目錄信息。DirXML依靠LDAP與其他目錄進行連接,而XML作為信息交換的標準格式。
最終,互用性服務將毫無疑問地集成到目錄服務中。
DSML
(目錄服務標記語言)
DSML(Directory Services Markup Language)是LDAP目錄和XML相結合的標記語言,它利用XML來定義數據內容和目錄結構并將它保存在分布式目錄上。DSML將XML與目錄進行集成。它提供訪問目錄中信息、封裝信息及通過企業網或因特網傳輸信息的方式。DSML的主要思想是允許XML程序員能訪問LDAP目錄而不必寫LDAP接口或使用某些目錄訪問API如微軟的活動目錄服務接口(ADSI)。
Bowstreet負責DSML,其受到主要的供應商(包括IBM、Microsoft、Novell、0racle、網景及Sun Microsystems)的支持。
DSML使基于XML的應用程序得以利用目錄。基本上,標準模式定義目錄信息的內容和結構。該信息進入可被傳輸到需要使用信息的其他應用程序的DCD(文檔內容描述)中。LDAP像通常一樣用于訪問目錄信息,而DSML則為其他應用程序提供了解釋目錄信息的方法。通過將DSML作為標準,就不需要為每個不同的目錄編寫自定義應用程序。通過用XML表達目錄信息,基于XML的任何應用程序都可以使用該信息。
DSML由結構化信息標準推進組織(OASIS)中的DSML工作小組開發,標準仍然很不成熟。DSML 1.0已于1999年完成,它提供了用XML來表達數據模型和目錄結構的標準方法,它最大局限在于不支持目錄的查詢和更新。查詢允許客戶從目錄中請求特定信息,如公司員工的姓名、電話號碼等;更新指改變目錄中的信息,如改變電話號碼、刪除記錄、添加記錄等。如要查詢和更新目錄,只能使用LDAP接口或某些API如ADSI。
DSML2.0草案標準于2001年12月發布,它用XML文檔為應用程序建立一種標準方法,來讀取、查詢、更新和搜索目錄。DSML2.0能夠定義運行在移動設備或PDA上的應用程序訪問目錄的方式,而且訪問時無需專門的客戶端;DSML2.0使程序員只用XML編程工具和技巧就可寫出應用程序,而不需深入了解LDAP。DSML1.0和DSML2.0在目錄表示上的區別是:前者是表示目錄的狀態,而后者是表示LDAP所執行的操作及操作所產生的結果。
DSML2.0的設計方法是用XML文檔片段來表示LDAP請求(request)和響應(response),這些XML文檔片段用作綁定(binding)時的有效載荷,綁定定義了請求和響應的文檔片段是怎樣以特定的方式(SOAP、SMTP、普通文件)傳輸的。
目錄運行網絡和策略管理基于策略的連網和目錄正聯合起來以提供管理和分配網絡資源的中心位置,網絡資源包括網絡核心和邊緣設備中的網絡帶寬。通過合并基于策略的管理和目錄,管理員可獲得對網絡設備管理的更多控制和管理多個網絡QoS的能力。目錄中的策略規則可定義將被分配到某個具體人、團體或服務的QoS和通信路由選擇的類型。
一個重要的概念是設備配置信息可從目錄提供的層次管理方案中移到受益設備的目錄中。設備檢查集中目錄查找更新信息或策略更改,而不用依靠管理員一對一地將信息編程到設備中。
Novell的ZENworks for Networks是一種網絡服務軟件產品,該軟件通過使用Novell的NDS作為策略信息的儲存庫而自動進行策略管理。該產品支持端到端QoS管理并使用網絡設備,如主要網絡供應商提供的交換機和路由器。管理員可使用該軟件為應用程序和用戶分配帶寬。
DEN將策略服務和目錄服務合并到一個權威性、分布式智能信息儲存庫中。
復制和分區
大多數目錄服務支持復制和分區。復制是一種將數據庫復制到其他位置并確保更新和同步所有副本的方式。分區將目錄在樹中分枝處進行拆分,以便拆分的目錄塊(如部門的所有對象)可位于其他位置(如部門)的服務器上。復制和分區提供容錯并允許用戶訪問附近的信息。
X.5OO定義了復制的主從數據庫模型,其中所有的寫入進入主副本,然后再從主副本寫出到從副本中。另一種方案是多主模型,其中所作的更改必須同時進入多個副本。后一種模型被認為較難實施并容易喪失數據的完整性。
復制和分區提出了對同步的需要。在一個數據庫中所做的更改必須也要盡可能地在副本中進行更改。如果很多管理員在不同的位置進行頻繁的更新,則必須要更頻繁地進行相應的更新。減少可進行更改的人員的數量有助于解決該問題。幸運的是,目錄主要“查找”服務,可允許較長時間更新延遲(與傳統數據庫相比)。
Novell使用時間戳表示哪些更新是最近發生的,而微軟的Active Directory使用順序編號方案將某個編號分配給最新的更改。
可用服務
最重要的目錄服務將在下面進行描述。Microsoft Active Directory Novell nds是兩種主要的目錄服務。Active Directory只使用Windows 2000運行,而NDS已被移植到各種平臺中。它們之間一個顯著的區別是在使用NDS的情況下,所有的訪問控制都由目錄管理:但在使用Windows 2000的情況下,一些訪問控制在Active Directory中,而其他訪問控制在服務器中。NDS遵循比較傳統的X.500模型,而Active Directory仍具有微軟域模型(一種專有方案)的元素。
DCE目錄服務 用于維護關于各種分布資源(如用戶,機器,基于DCE RPC的分布應用程序等等)的信息,包括資源的名字及位置。The Open Group的DCE(分布式計算環境)包括自己的綜合其他DCE組件的目錄服務。
IBM Network Directory(網絡目錄) IBM進入目錄服務市場靠的是其DB2數據庫。該數據庫設計用于電子商務和企業對企業交易。IBM聲稱該服務比Novell的NDS及微軟的Active Directory更安全、更具有可伸性。
網景 Directory Server (目錄服務器) NetscaPe的Directory Server旨在成為添加、修改、和刪除用戶信息的中心地點。它可組織并分配遍及企業內部網上的一系列服務器上的信息。這些服務可與Netscape's SuiteSpot集成以提供結構化信息及整套應用程序的組合信息。Directory Server提供高級LDAP支持及編寫目錄運行的應用程序的工具。它還包括對連續操作的改進及LDAP服務器之間的異類復制。
Novell目錄服務 NDS(Novell目錄服務)是NetWare4.X中的一種特性,其提供與X.5OO規范相似的分布式目錄服務。Novell已經將nds用在Windows NT和UNIX壓平臺上。nds的專用電子商務版本也是可用的。
微軟 Active Directory Active Directory結合了因特網的DNS定位服務及X.500命名功能。LDAP是該服務的核心訪問協議。LDAP使Microsoft's Active Directory能夠通過操作系統邊界運行并集成多個命名空間,因此使管理員能夠管理其他供應商的目錄服務。有關更多信息,請參閱“Microsoft Active Directory”。
目錄互用性論壇組建的目的是推進基于LDAP標準的開放式目錄。該論壇由開放式目錄供應商組成,這些供應商計劃制定標準主體以加速基于目錄的應用程序的發展和實施。
參考資料 >