今天參加乙個公司的面試,面試官問到我ldap協議,慚愧我竟然對其不了解。回來趕緊惡補下,摘抄如下,以供日後閱讀。
ldap的英文全稱是lightweight directory access protocol,即輕量級目錄訪問協議.我們知道,人們對計算機網路的使用和管理涉及了各種龐雜的資源,資訊.為了提高效能,便於使用,有效管理分布式應用的服務,資源,使用者及別的物件資訊,這些資訊需要清晰,一致地組織起來.基於這樣的需求,描述各種使用者,應用,檔案,印表機和其它可從網路訪問的資源的資訊被集中到乙個特殊的資料庫中,這種資料庫被稱為目錄.目錄存放物件的公開或非公開的資訊,這些資訊以某種順序組織,描述了每個物件的細節.**簿,圖書館藏書卡片目錄就是常見的目錄.
ldap是基於x.500標準的,訪問 x.500 目錄需要某種協議,例如:目錄訪問協議 (dap).然而,dap 需要大量的系統資源和支援機制來處理複雜的協議.ldap 僅通過使用原始 x.500目錄訪問協議 (dap) 的功能子集而減少了所需的系統資源消耗,而且可以根據需要定製.此外,與x.500不同,ldap支援tcp/ip,這對訪問internet是必須的.
為了能對ldap協議進行更好的理解,我們需要對以下概念有初步的認識:
目錄:directory,存放物件的資訊,這些資訊以某種順序組織,詳細描述每個物件.
目錄資訊樹:dit,directory information tree,目錄條目的集合構成了目錄資訊樹.
條目:entry,目錄資訊樹中的乙個結點,是乙個物件資訊的集合,是目錄資訊中最基本的
單位,包含該物件的一系列屬性.
屬性:attribute,屬性描述物件的特徵.乙個屬性由屬性型別(type)和乙個或多個屬性值
(values)構成.
相對標識名:rdn,relative distinguished name,條目的名字.
唯一標識名:dn,distinguished name,在乙個目錄資訊樹中唯一標識乙個條目的名字.
ldap(輕量級目錄訪問協議,lightweight directory access protocol)是實現提供被稱為目錄服務的資訊服務。 目錄服務是一種特殊的資料庫系統,其專門針對讀取,瀏覽和搜尋操作進行了特定的優化。目錄一般用來包含描述性的,基於屬性的資訊並支援精細複雜的過濾能力。目錄一般不支援通用資料庫針對大量更新操作操作需要的
複雜的事務管理或回卷策略。而目錄服務的更新則一般都非常簡單。這種目錄可以儲存包括個人資訊、web鏈結、 jpeg影象等各種資訊。為了訪問儲存在目錄中的資訊,就需要使用執行在tcp/ip之上的訪問協議—ldap。
ldap目錄中的資訊是是按照樹型結構組織,具體資訊儲存在條目(entry)的資料結構中。條目相當於關聯式資料庫中
表的記錄;條目是具有區別名dn(distinguished name)的屬性(attribute),dn是用來引用條目的,dn相當於
關聯式資料庫表中的關鍵字(primary key)。屬性由型別(type)和乙個或多個值(values)組成,相當於關聯式資料庫中的字段(field)由欄位名和資料型別組成,只是為了方便檢索的需要,ldap中的type可以有多個value, 而不是關聯式資料庫中為降低資料的冗餘性要求實現的各個域必須是不相關的。ldap中條目的組織一般按照地理位置和組織關係進行組織,非常的直觀。ldap把資料存放在檔案中,為提高效率可以使用基於索引的檔案資料庫,而不是關聯式資料庫。型別的乙個例子就是mail,其值將是乙個電子郵件位址。
weblogic的內建的ldap server支援ietf ldap為ldapv3制定的控制訪問模型。下面這個片斷將講述在內建的ldap server中怎樣實現控制訪問。可以通過編輯訪問控制檔案來將這些規則直接應用到目錄的入口。weblogic中的訪問控制檔案是acls.prop。在server的lib中可以找到這個檔案。
這個檔案的所有訪問控制規則都被注釋掉了,如果想更改這些規則,你要手工更改這個檔案。注意:weblogic server內建的ldap server在預設的情況下只允許admin帳號訪問,weblogic server的security providers
只使用admin帳號訪問內建的ldap server。如果你不想使用外部的ldap brower訪問weblogic server的內建的ldap server,
或者你只想使用admin帳號訪問內建的ldap server,你不需要編輯acls.prop檔案,
訪問控制檔案(the access control file)
訪問控制檔案(acls.prop)包含內建的ldap server的整個目錄的完整的訪問控制列表(acl)。這個檔案中的每一行都包含乙個訪問控制規則。乙個訪問控制規則由下面接個部分組成:
訪問控制位置(access control location)
每個訪問控制規則都應用於ldap目錄中的乙個給定的位置。這個位置通常是乙個區別命名(dn),但有乙個例外,這就是[root],如果訪問控制規則應用到整個目錄,則只需要指定位置為[root]就可以了!
如果被訪問或更改的入口的位置與訪問控制規則指定的位置不相等,或在訪問控制規則指定的位置的下級,則這個訪問控制規則將不會被執行。
訪問控制範圍(access control scope)
訪問控制範圍有2種:
entry-乙個entry範圍的訪問控制列表只在下面的情況下被執行:
ldap目錄的入口的dn與訪問控制規則指定的位置相同。這樣的規則對於包含了比並行和副入口更敏感資訊的單獨入口非常有用。
subtree-意味著訪問控制規則指定的位置及子樹都可以適用這條規則。
如果entry與subtree在訪問控制規則中有衝突,則entry要優先於subtree。
訪問許可權(access rights)
訪問許可權應用於整個物件或物件的屬性,有2個值:grant(准許)或deny(拒絕)。訪問許可權指定了ldap操作的型別。
許可(grant或deny)
應用規則的屬性(attribute)
允許或拒絕訪問的主題(subject)
在weblogic可以編寫程式來訪問ldap.上手時可以選擇jxplorer工具。
1.ldap server及ldap browser:
對於wls ldap為理解起來簡單,去掉限制的方法是修改bea\weblogic81\server\lib\acls.prop檔案後。修改方法:
在該檔案最後新增以下幾行。
[root]|entry#grant:s,r,o,w,c,m#[all]#public
[root]|subtree#grant:s,r,o,w,c,m#[all]#public:
[root]|subtree#grant:a,d,e,i,n,b,t#[entry]#public:
cn=schema|entry#grant:s,r,o,w,c,m#[all]#public:
cn=schema|entry#grant:a,d,e,i,n,b,t#[entry]#public:
注意,該檔案中這些行之間,以及其他行之間不能有空行,否則啟動wls會報錯的。修改好之後就可以啟動wls了,
啟動後進入console裡修改ldap server的密碼。密碼修改完後需要再重新啟動一次wls。
ldap剛上手的時候沒有方便的工具會很費勁。我看了csdn上「兔八哥」的文章,用jxplorer,感覺很不錯。
想看這篇文章,到csdn上搜一下「兔八哥」,系列中no.12就是關於jxplorer的配置和使用。我的連線引數如下:
host:localhost//根據實際修改
port:7001
protocol:ldap v3
base dn:dc=ldapdomain//根據實際修改
level:user+password
user dn:cn=admin
password:weblogic//根據實際修改
認識LDAP協議
ldap是lightweight directory access protocol的縮寫,顧名思義,它是指輕量級目錄訪問協議 這個主要是相對另一目錄訪問協議x.500而言的 ldap略去了x.500中許多不太常用的功能,且以tcp ip協議為基礎 目錄服務和資料庫很類似,但又有著很大的不同之處。資...
域滲透之ldap協議
ldap light directory access protocal 是乙個基於x.500標準的輕量級目錄訪問協議,ldap是支援跨平台的internet協議,只需要通過ldap做簡單的配置就可以與伺服器做認證互動。可以大大降低開發的成本。windows active diretcory就是乙個...
LDAP讀書筆記2 LDAP協議
ldap協議 ldap 協議的操作 1 查詢操作 search compare 2 更新操作 add delete modify modify dn rename 3 認證和控制操作 bind unbind abandon 乙個典型的 ldap 客戶端 伺服器之間的互動如下 1 客戶端通過 tcp ...