Authentication and Integration 第三篇:Oracle LDAP介紹

在Oracle中,LDAP是什麼?
LDAP的英文全稱是Lightweight Directory Access Protocol,一般都簡稱爲LDAP。它是基於X.500標準的,但是簡單多了並且可以根據需要定製。與X.500不同,LDAP支持TCP/IP,這對訪問Internet是必須的。LDAP的核心規範在RFC中都有定義,所有與LDAP相關的RFC都可以在LDAPman RFC網頁中找到。

  怎麼使用LDAP這個術語呢?
  在日常交談中,你可能會聽到有些人這麼說:“我們要把那些東西存在LDAP中嗎?”,或者“從LDAP數據庫中取出那些數據!”,又或者“我們怎麼把LDAP和關係型數據庫集成在一起?”。嚴格地說,LDAP根本不是數據庫而是用來訪問存儲在信息目錄(也就是LDAP目錄)中的信息的協議。更爲確切和正式的說法應該是象這樣的:“通過使用LDAP,可以在信息目錄的正確位置讀取(或存儲)數據”。但是,也沒有必要吹毛求疵,儘管表達得不夠準確,我們也都知道對方在說什麼。

  LDAP目錄是數據庫嗎?
  就象Sybase、Oracle、Informix或Microsoft的數據庫管理系統(DBMS)是用於處理查詢和更新關係型數據庫那樣,LDAP服務器也是用來處理查詢和更新LDAP目錄的。換句話來說LDAP目錄也是一種類型的數據庫,但是不是關係型數據庫。不象被設計成每分鐘需要處理成百上千條數據變化的數據庫,例如:在電子商務中經常用到的在線交易處理(OLTP)系統,LDAP主要是優化數據讀取的性能。

  LDAP目錄的優勢
  現在該說說LDAP目錄到底有些什麼優勢了。現在LDAP的流行是很多因數共同作用的結果。我在這裏說的不過是一些基本的原因,請你注意一下這不過是一小部分原因。

  可能LDAP最大的優勢是:可以在任何計算機平臺上,用很容易獲得的而且數目不斷增加的LDAP的客戶端程序訪問LDAP目錄。而且也很容易定製應用程序爲它加上LDAP的支持。

  LDAP協議是跨平臺的和標準的協議,因此應用程序就不用爲LDAP目錄放在什麼樣的服務器上操心了。實際上,LDAP得到了業界的廣泛認可,因爲它是Internet的標準。產商都很願意在產品中加入對LDAP的支持,因爲他們根本不用考慮另一端(客戶端或服務端)是怎麼樣的。LDAP服務器可以是任何一個開發源代碼或商用的LDAP目錄服務器(或者還可能是具有LDAP界面的關係型數據庫),因爲可以用同樣的協議、客戶端連接軟件包和查詢命令與LDAP服務器進行交互。與LDAP不同的是,如果軟件產商想在軟件產品中集成對DBMS的支持,那麼通常都要對每一個數據庫服務器單獨定製。

  不象很多商用的關係型數據庫,你不必爲LDAP的每一個客戶端連接或許可協議付費。

  大多數的LDAP服務器安裝起來很簡單,也容易維護和優化。

  LDAP服務器可以用“推”或“拉”的方法複製部分或全部數據,例如:可以把數據“推”到遠程的辦公室,以增加數據的安全性。複製技術是內置在LDAP服務器中的而且很容易配置。如果要在DBMS中使用相同的複製功能,數據庫產商就會要你支付額外的費用,而且也很難管理。

  LDAP允許你根據需要使用ACI(一般都稱爲ACL或者訪問控制列表)控制對數據讀和寫的權限。例如,設備管理員可以有權改變員工的工作地點和辦公室號碼,但是不允許改變記錄中其它的域。ACI可以根據誰訪問數據、訪問什麼數據、數據存在什麼地方以及其它對數據進行訪問控制。因爲這些都是由LDAP目錄服務器完成的,所以不用擔心在客戶端的應用程序上是否要進行安全檢查。

  LDAP對於這樣存儲這樣的信息最爲有用,也就是數據需要從不同的地點讀取,但是不需
要經常更新。例如,這些信息存儲在LDAP目錄中是十分有效的:

  l 公司員工的電話號碼簿和組織結構圖

  l 客戶的聯繫信息

  l 計算機管理需要的信息,包括NIS映射、email假名,等等

  l 軟件包的配置信息

  l 公用證書和安全密匙

  什麼時候該用LDAP存儲數據?
  大多數的LDAP服務器都爲讀密集型的操作進行專門的優化。因此,當從LDAP服務器中讀取數據的時候會比從專門爲OLTP優化的關係型數據庫中讀取數據快一個數量級。也是因爲專門爲讀的性能進行優化,大多數的LDAP目錄服務器並不適合存儲需要需要經常改變的數據。例如,用LDAP服務器來存儲電話號碼是一個很好的選擇,但是它不能作爲電子商務站點的數據庫服務器。

  如果下面每一個問題的答案都是“是”,那麼把數據存在LDAP中就是一個好主意。

  l 需要在任何平臺上都能讀取數據嗎?

  l 每一個單獨的記錄項是不是每一天都只有很少的改變?

  l 可以把數據存在平面數據庫(flat database)而不是關係型數據庫中嗎?換句話來說,也就是不管什麼範式不範式的,把所有東西都存在一個記錄中(差不多隻要滿足第一範式)。

  最後一個問題可能會唬住一些人,其實用平面數據庫去存儲一些關係型的數據也是很一般的。例如,一條公司員工的記錄就可以包含經理的登錄名。用LDAP來存儲這類信息是很方便的。一個簡單的判斷方法:如果可以把保數據存在一張張的卡片裏,就可以很容易地把它存在LDAP目錄裏。

LDAP和單點登錄的關係:

ORACLE ebs實現單點登錄,通過兩種類型的組件:每一種實現了不同的但是相關的功能。

第一種:LDAP(輕量級目錄訪問協議)directory,比如Oracle Internet Directory。

第二種:單點登錄產品,比如Oracle Access Manager ,這個用來和Oracle EBS AccessGate(這個是單獨部署在weblogic服務器上的j2ee應用,我們公司客戶就有用這個的)集成。

原貼文:https://blog.csdn.net/cymm_liu/article/details/17021991

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章