目錄服務

目錄服務

目錄服務是將有關現實世界中的事物的信息存儲為具有描述性屬性的對象,由與資料庫類似的資料庫構成。目錄互用性論壇是目錄服務的一個重要的部分,其組建的目的是推進基於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屬於對象類“國家”,而Microsoft和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資料庫引起,則元目錄會視這些更改有效;如果這些更改由其他任何資料庫或目錄引起,則元目錄將撤消這些更改。Microsoft Metadirectory Service和Sun One Meta Directory為元目錄產品的不同例子。
Burton Group所編寫的“元目錄FAQ”中是這樣描述:在1996年,Burton Group正式定義了“元目錄”概念,它描述了聯合、集中註冊、屬性流和其他目錄服務的功能規範。該術語源自資料庫領域中的元數據。元數據以目錄卡描述圖書館中的書籍的相同形式描述資料庫中的數據。Burton Group社撰了術語“元目錄”以描述當時出現的集成並轉換多個目錄服務中的信息的一個產品類別。根據FAQ,“元目錄服務合併了多個目錄中信息的子集,其中包括有關人、團體、職能、組織單位、位置和其他資源的信息。這種合併創建了組織中不同目錄的聯合或統一的視圖。元目錄使得通過LDAP和基於Web的訪問協議可訪問聯合視圖”。
考慮單個用戶在網上具有多個身份(如他(或她)的註冊名和電子郵件名)是理解元目錄的聯合作用的最好方式。元目錄也可幫助解決組織內或商業夥伴之間建立的目錄中的命名方案中的差異問題。所有這些都通過跟蹤更改並確保相應更新這些更改信息的系統動態完成。元目錄有以下兩種類型:
聯合元目錄 在該方案中,將創建一個指向所有其他目錄的單獨目錄。管理員使用元目錄,而無需使用每個單獨引用的目錄。Isocor使用該方法。

虛擬元目錄

在該方案中,不創建額外的目錄。相反,管理應用程序允許管理員直接使用各個目錄,方法是通過索引映射模式提供目錄的單個視圖。Entevo使用該方法。
元目錄解決了與應使用哪一種目錄服務或(如果多個目錄存在)哪一個應是頂級目錄相關的政策問題。Microsoft最初將其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、Netscape及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使用時間戳表示哪些更新是最近發生的,而Microsoft的Active Directory使用順序編號方案將某個編號分配給最新的更改。

可用服務

最重要的目錄服務將在下面進行描述。Microsoft Active Directory Novell NDS是兩種主要的目錄服務。Active Directory只使用Windows 2000運行,而NDS已被移植到各種平台中。它們之間一個顯著的區別是在使用NDS的情況下,所有的訪問控制都由目錄管理:但在使用Windows 2000的情況下,一些訪問控制在Active Directory中,而其他訪問控制在伺服器中。NDS遵循比較傳統的X.500模型,而Active Directory仍具有Microsoft域模型(一種專有方案)的元素。
DCE目錄服務 用於維護關於各種分佈資源(如用戶,機器,基於DCE RPC的分佈應用程序等等)的信息,包括資源的名字及位置。The Open Group的DCE(分散式計算環境)包括自己的綜合其他DCE組件的目錄服務。
IBM Network Directory(網路目錄) IBM進入目錄服務市場靠的是其DB2資料庫。該資料庫設計用於電子商務和企業對企業交易。IBM聲稱該服務比Novell的NDS及Microsoft的Active Directory更安全、更具有可伸性。
Netscape 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的專用電子商務版本也是可用的。
Microsoft Active Directory Active Directory結合了網際網路的DNS定位服務及X.500命名功能。LDAP是該服務的核心訪問協議。LDAP使Microsoft's Active Directory能夠通過操作系統邊界運行並集成多個命名空間,因此使管理員能夠管理其他供應商的目錄服務。有關更多信息,請參閱“Microsoft Active Directory”。
目錄互用性論壇組建的目的是推進基於LDAP標準的開放式目錄。該論壇由開放式目錄供應商組成,這些供應商計劃制定標準主體以加速基於目錄的應用程序的發展和實施。