摘要:介紹了LDAP目錄服務技術的簡單應用,它是許多新型技術實現信息存儲、管理和查詢的首選方案。在安全上,LDAP Security是基于ACL的,它通過給一個用戶組分配LDAP操作資源來最終完成權限的控制。
關鍵詞:LDAP;安全;模型
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)34-1637-02
LDAP Technology Applications
CHEN Yue-bin
(Zengcheng College of South China Normal University, Guangzhou 511363, China)
Abstract: Introduction the LDAP directory services on the simple application of technology,it is many new technologies of information storage, management and query the preferred option. On the issue of security, LDAP Security is based on the ACL, it passed to a user group allocation of resources to LDAP operations to complete the final authority control.
Key words: LDAP; security; pattern
1 引言
近幾年,隨著LDAP(Light Directory Access Protocol,輕量級目錄訪問協議)技術的興起和應用領域的不斷擴展,目錄服務技術成為許多新型技術實現信息存儲、管理和查詢的首選方案,特別是在網絡資源查找、用戶訪問控制與認證信息的查詢、新型網絡服務、網絡安全、商務網的通用數據庫服務和安全服務等方面,都需要應用目錄服務技術來實現一個通用、完善、應用簡單和可以擴展的系統。
2 LDAP概念
LDAP(Lightweight Directory Access Protocol),輕量級目錄訪問協議。它是目錄訪問協議的一個標準。它是基于X.500標準的,可以根據需要定制。輕量級目錄訪問協議以信息目錄的形式存在,在該目錄中可只定義一次用戶和組,而在多臺機器和多個應用程序間共享它們。
LDAP定義與目錄服務進行通信所使用的操作,如何找到目錄中的實體,如何描述實體屬性,以及許多安全特性。這些安全特性可用于對目錄進行身份驗證,控制對目錄中的實體的訪問。
LDAP 標準中沒有定義在目錄服務器上存儲信息的方式。為實施 LDAP 服務器,使用了許多不同的技術。這些技術包括簡單的平面文件、索引文件和相關數據庫。無論使用什么技術來實施目錄,從 LDAP 客戶端對目錄的所有訪問都使用相同的標準協議:LDAP。為此,盡管存在不同的內容結構,這些目錄都被稱為 LDAP 目錄服務器。
在企業范圍內實現LDAP可以讓運行在幾乎所有計算機平臺上的所有的應用程序從LDAP目錄中獲取信息。LDAP目錄中可以存儲各種類型的數據:電子郵件地址、郵件路由信息、人力資源數據、公用密匙、聯系人列表,等等。通過把LDAP目錄作為系統集成中的一個重要環節,可以簡化員工在企業內部查詢信息的步驟,甚至連主要的數據源都可以放在任何地方。
3 LDAP Security
越來越多的應用開始采用LDAP作為后端用戶存儲。在安全上,LDAP Security是基于ACL(Access Control List)的,它通過給一個用戶組分配LDAP 操作資源(比如對一個子樹的查詢,修改等)來最終完成權限的控制。因此在LDAP中,授權工作是以用戶組為單位進行的。一個用戶組一般來說是擁有如下一組屬性的LDAP Entry:
■
圖1
其中objectclass可以為groupOfUniqueNames或者groupOfNames,它們對應的組成員屬性分別是uniquemember和member。如果是動態組,objectclass為groupOfURLs。動態組一般應用在成員可以通過某種業務邏輯運算來決定的情況下。比如,經理為ZHANGSAN的全部員工。下面是一個典型的動態組,memberURL屬性定義了哪些entry屬于該組:
■
圖2
從圖1中我們可以看出,用戶WANTXIAOMING,ZHANGSAN,LISI屬于組HR Managers。這種組和成員的關系是通過屬性uniquemember來決定的。同時LADP Group 支持嵌套,即一個組可以是另外一個組的成員,比如我們將Accounting Managers組分配給HR Managers組作為其成員:
■
圖3
這樣將表示Accounting Managers中的成員,同時也是組HR Managers的成員。通過這種層級關系可以使權限分配變的更加靈活。
1) Objectclass —— LDAP對象類,抽象上的概念類似與一般我們理解的class。根據不同的objectclass,我們可以判斷這個entry是否屬于某一個類型。比如我們需要找出LDAP中的全部用戶:(objectclass=person)再比如我們需要查詢全部的LDAP組:(objectclass=groupOfUniqueNames)
2) Entry —— entry可以被稱為條目,或者節點,是LDAP中一個基本的存儲單元;可以被看作是一個DN和一組屬性的集合。屬性可以定義為多值或者單值。
3) DN —— Distinguished Name,LDAP中entry的唯一辨別名,一般有如下的形式:uid=ZHANGSAN, ou=staff, ou=people, o=examples。LDAP中的entry只有DN是由LDAP Server來保證唯一的。
4) LDAP Search filter ——使用filter對LDAP進行搜索。 Filter一般由 (attribute=value) 這樣的單元組成,比如:((uid=ZHANGSAN)(objectclass=person)) 表示搜索用戶中,uid為ZHANGSAN的LDAP Entry.再比如:((|(uid= ZHANGSAN)(uid=LISI))(objectclass=person)),表示搜索uid為ZHANGSAN, 或者LISI的用戶;也可以使用*來表示任意一個值,比如(uid=ZHANG*SAN),搜索uid值以 ZHANG開頭SAN結尾的Entry。更進一步,根據不同的LDAP屬性匹配規則,可以有如下的Filter: ((createtimestamp>=20050301000000)(createtimestamp<=20050302000000)),表示搜索創建時間在20050301000000和20050302000000之間的entry。
5) Base DN —— 執行LDAP Search時一般要指定basedn,由于LDAP是樹狀數據結構,指定basedn后,搜索將從BaseDN開始,我們可以指定Search Scope為:只搜索basedn(base),basedn直接下級(one level),和basedn全部下級(sub tree level)。
下面是一個典型的LDAP Tree結構,右側顯示Entry uid=ZHANGSAN, ou=staff, ou=people, o=examples的屬性,該entry代表了一個名字叫張三的用戶:
■
圖4
4 LDAP的模型
4.1 功能模式
功能模型是目錄客戶端用來與目錄進行通信的方法,這就是LDAP協議。LDAP提供以下四類操作:
查詢類操作——如搜索、比較;
更新類操作——如添加條目、刪除條目、修改條目、修改條目名;
認證類操作——做客戶身份驗證和訪問控制,對目錄進行身份驗證(綁定操作,解綁定操作); (下轉第1644頁)
(上接第1638頁)
其它操作——如放棄和擴展操作擴展操作。
除了擴展操作,別的的都是是LDAP的標準操作;擴展操作是LDAP中為了增加新的功能,提供的一種標準的擴展框架,當前已經成為LDAP標準的擴展操作,有修改密碼和StartTLS擴展,在新的RFC標準和草案中正在增加一些新的擴展操作,不同的LDAP廠商也均定義了自己的擴展操作。
4.2 安全模式
安全模型為根據目錄進行身份驗證以及授權客戶端控制對目錄的訪問提供了方法。安全模型包括兩個組件:
使用 LDAP 的身份驗證對目錄中的對象的訪問控制。
LDAP 身份驗證涉及綁定到 LDAP 服務器上的實體。根據接受還是拒絕該實體的憑據來確定綁定操作的成敗。如果綁定成功,則實體通過身份驗證;如果失敗,則實體沒有通過身份驗證。當通過身份驗證后,客戶端只能像目錄的訪問控制列表(Access Control List,ACL)中定義的那樣使用 LDAP 目錄。ACL 在 LDAP 目錄中的實施是依賴于實施的。
LDAP 身份驗證是為保護目錄事務專門設計的。將 LDAP 身份驗證用于除 LDAP 目錄訪問之外的其他目的,可能導致性能問題。這是因為 LDAP 目錄服務不是為處理大量身份驗證請求而設計的,而非常適用于進行目錄事務處理。
5 結束語
LDAP可以用于多應用中的統一的身份認證和授權了。由于LDAP所具有的查詢效率高、樹狀的信息管理模式、分布式的部署框架以及靈活而細膩的訪問控制,使LDAP廣泛地應用于基礎性、關鍵性信息的管理,如用戶信息、網絡資源信息等。LDAP的應用主要涉及幾種類型。信息安全類:數字證書管理、授權管理、單點登錄;科學計算類:DCE(Distributed Computing Envirionment,分布式計算環境)、UDDI (Universal Description,Discovery and Integration, 統一描述、發現和集成協議);網絡資源管理類:MAIL系統、DNS系統、網絡用戶管理、電話號碼簿;電子政務資源管理類:內網組織信息服務、電子政務目錄體系、人口基礎庫、法人基礎庫。
參考文獻:
[1] Stallings W.密碼編碼學與網絡安全[M].北京:電子工業出版社,2004.
[2] Schneider G P.電子商務[M].北京:機械工業出版社,2005.
[3] IBM.電子商務解決方案設計與實現[S].