如何利用TAM的API進行應(yīng)用的開發(fā)_第1頁
如何利用TAM的API進行應(yīng)用的開發(fā)_第2頁
如何利用TAM的API進行應(yīng)用的開發(fā)_第3頁
如何利用TAM的API進行應(yīng)用的開發(fā)_第4頁
如何利用TAM的API進行應(yīng)用的開發(fā)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、百度文庫1 TAM的結(jié)構(gòu)簡介21.1 TAM的授權(quán)模型21.1.1 用戶注冊庫二,、31.1.2 策略管理器 、 31.1.3 對象庫和規(guī)則 .Zf. 41.1.4 策略執(zhí)行者./. 42 TAM和應(yīng)用的集成52.1 TAM和應(yīng)用集成的優(yōu)勢 52.2 TAM和應(yīng)用集成的結(jié)構(gòu) 62.3 建立自己應(yīng)用的 Action 72.4 建立自己應(yīng)用的 ProtectedObject Space 72.5 在應(yīng)用中使用 TAM提供的認證和授權(quán) API 82.6 在應(yīng)用中使用 TAM提供的管理 API : 82.7 一個和應(yīng)用集成的配置實例 92.8 一個利用TAM提供的API進行開發(fā)的程序?qū)嵗?10在下面的

2、文早中,我們會介紹應(yīng)用如何利用 舊M Tivoli Access Manager (以下簡稱TAM)作為用戶認證和授權(quán)控制的平臺, 最為高效地把TAM和應(yīng)用開發(fā) 集成起來,從而為應(yīng)用的開發(fā)、部署和運行提供一個高效可靠的安全平臺。隨著電子商務(wù)時代的到來,各種各樣的業(yè)務(wù)已經(jīng)從傳統(tǒng)的面對面的運營方式變成了通過互聯(lián)網(wǎng),直接通過網(wǎng)絡(luò)進行交易的運營方式。 因此心如何更好地控制用戶對后臺關(guān)鍵應(yīng)用的訪問就顯得尤為重要。1 TAM的結(jié)構(gòu)簡介在這部分的章節(jié)中,我們會主要對 TAM做一個簡介,包括有:TAM的授權(quán)模型和TAM的主要概念介紹。1.1 TAM的授權(quán)模型信問象作 人訪對動返回結(jié)果Yes No如上圖所示,T

3、AM的授權(quán)模型來自于業(yè)界標準的ISO10181的授權(quán)模型,在 TAM的授權(quán)模型中,包括有幾個重要的功能模塊,他們分別是用戶注冊庫、策 略管理器、對象庫和規(guī)則、策略執(zhí)行者。下面我們分別對這幾個主要的功能模塊 進行詳細的介紹。/ 1.1.1 用戶注冊庫TAM中的用戶注冊庫需要建立在一個標準的 LDAP服務(wù)器上,他現(xiàn)在支持 業(yè)界中幾乎所有的 LDAP服務(wù)器,例如:IBM Directory Server、Lotus Domino Directory、MS Active Directory、SUN iPlanet Directory Server > Novell eDirectory ;或者任

4、何支持標準LDAP協(xié)議的LDAP服務(wù)器。TAM中的用戶注冊庫主要用于存儲用戶的相關(guān)信息,例如:用戶名、用戶密碼、郵件地址、電話、通信地址等和用戶相關(guān)的信息。j.1.2 策略管理器TAM中的策略管理器是TAM的核心部分。它負責(zé)和其它 TAM功能模塊的 通訊工作,其中主要包括以下幾個功能:維護TAM中的主要信息(例如:用戶信息、對象庫(Protected ObjectSpace )、訪問控制列表(ACL)等)保存著其它TAM功能模塊的位置信息/1.1.3 對象庫和規(guī)則user peterT-ncACL(for a page object)user micha&l -T-rxgroup en

5、gineering T-ncuri3Lith6nticsld ACL Entryu的 adamType IDRemissions1.1.4 策略執(zhí)行者TAM中的策略執(zhí)行者是用戶訪問TAM后臺資源的唯一渠道,所有用戶訪問 后臺資源的請求都必須通過策略執(zhí)行者,策略執(zhí)行者會對用戶的身份進行確認, 同時還會對用戶的訪問請求作授權(quán)的判斷。如果訪問請求得到批準的話,策略執(zhí) 行者會把用戶的請求轉(zhuǎn)發(fā)給后臺的應(yīng)用,并且把后臺應(yīng)用答復(fù)給用戶的信息轉(zhuǎn)發(fā) 給用戶。如果訪問請求沒有被批準的話, 他會直接拒絕用戶的訪問請求,并且不 做任何訪問請求的轉(zhuǎn)發(fā)。2 TAM和應(yīng)用的集成2.1 TAM和應(yīng)用集成的優(yōu)勢 應(yīng)用和TAM的

6、集成,或者說在應(yīng)用開發(fā)時利用TAM的安全平臺來做應(yīng)用安 全部分的開發(fā),有以下幾點優(yōu)勢:首先,TAM是一套非常成熟和完整的3A系統(tǒng)(認證、授權(quán)和審計), /它可以和幾乎所有的 Web服務(wù)器和Web應(yīng)用服務(wù)器進行無縫的集成。其次,TAM提供了一套完整的、應(yīng)用開發(fā)時需要的用戶認證、授權(quán)和管理API,(包括有C/C+和JAVA語言),因此在應(yīng)用開發(fā)時可以直接使 用這些API進行用戶認證和操作授權(quán)的操作,或者 TAM系統(tǒng)的管理工 作。第三,TAM有一套完整的用戶管理、資源管理的體系架構(gòu)。應(yīng)用開發(fā)時, 可以直接使用TAM提供的這套管理體系作為應(yīng)用的用戶管理和資源管'%理架構(gòu),而不需要自己另外建立一

7、套這樣的架構(gòu)。、第四,TAM有一套完整的用戶授權(quán)判定機制,他所提供的功能非常完備。包括了授權(quán)控制中的每一個細節(jié),應(yīng)用開發(fā)時,可以通過API直接使用TAM提供的這套授權(quán)判定機制作為自己應(yīng)用的授權(quán)判定模塊。/第五,和TAM的其他模塊(例如: WebSEAL、AMOS、AMBI等)的 共同使用可以為企業(yè)建立一套最為完整的安全框架結(jié)構(gòu),從操作系統(tǒng)的 每個文件、每個TCP連接到Web服務(wù)器上的一個靜態(tài)或者動態(tài)頁面,到Web應(yīng)用服務(wù)器上的每個Servlet ,甚至于Servlet中提供的某個方法,或者更為細化的授權(quán)判定,都可以通過TAM提供的安全平臺來實現(xiàn)。總而言之,通過和TAM的集成,應(yīng)用開發(fā)的步驟可以

8、大大地加快,應(yīng)用的 安全結(jié)構(gòu)會變得更為安全和可靠。應(yīng)用開發(fā)時只要關(guān)注和業(yè)務(wù)相關(guān)的部分就可以 了,安全部分的內(nèi)容可以全部交給 TAM的平臺進行管理和控制。2.2 TAM和應(yīng)用集成的結(jié)構(gòu)/ 當應(yīng)用使用C或者JAVA語言作為應(yīng)用的開發(fā)語言時,TAM可以使用用戶 的認證和授權(quán)API來對用戶作身份的確認和訪問權(quán)限的判定。當和Web環(huán)境共同存在時,為了更好地保護 Web環(huán)境中的資源以及和后 臺應(yīng)用的集成,WebSEAL發(fā)揮了極大的安全控制功能,作為一個策略執(zhí)行者, WebSEAL位于所有 Web服務(wù)器和Web應(yīng)用服務(wù)器之前,他會處理用戶身份 的認證和URL級別的訪問授權(quán)判定。同時,還會根據(jù)后臺web服務(wù)器

9、和web應(yīng)用服務(wù)器的要求,把用戶的相關(guān)信息(例如:用戶的郵件地址、用戶的聯(lián)系方 式等信息)通過HTTP Header傳到后臺的 Web服務(wù)器和Web應(yīng)用服務(wù)器, 以便后臺應(yīng)用的操作。后臺應(yīng)用(例如:WebSphere Application Server 上的 Servlet)、可以從HTTP Header中獲得用戶的信息,然后利用 TAM提供的授權(quán) API對用戶的訪問請求作出更為細化的授權(quán)判定。2.3 建立自己應(yīng)用的 Action用戶可以對應(yīng)用中的資源所作的操作在TAM中叫做Action 。TAM本身帶有 17 種默認得 Action 定義,例如:Add、Browse、Control、 De

10、lete、Delegate、Modify、Create、Read 等。為了滿足應(yīng)用開發(fā)的要求,應(yīng)用開發(fā)人員可以在TAM中定義自己應(yīng)用需要的 Action 定義,例如: Access、Forward、Pass 等。2.4 建立自己應(yīng)用的 Protected Object Space/ /Protected Object Space是一個邏輯的、能夠反映被保護資源的結(jié)構(gòu)定義。例如:對于Web服務(wù)器來說,它上面的資源就是每個靜態(tài)或者動態(tài)的頁面;對于操作系統(tǒng)來說,它上面的資源就是一些重要的文件、TCP端口等。對于應(yīng)用來說,Protected Object Space 實際上應(yīng)該根據(jù)具體的應(yīng)用資源結(jié)構(gòu)來

11、定義,它可以是數(shù)據(jù)庫中的某個表,或者應(yīng)用系統(tǒng)的某個紀錄等,這些資源結(jié)構(gòu)的定義 是一種邏輯上的定義,定義的對象可以實際存在,也可以完全不存在,它可以只 是一種虛擬的定義。2.5 在應(yīng)用中使用TAM提供的認證和授權(quán)APITAM提供了全面的用于應(yīng)用開發(fā)的認證和授權(quán) API,應(yīng)用的開發(fā)人員可以使 用這些認證和授權(quán)API作為系統(tǒng)的用戶認證和訪問授權(quán)架構(gòu)。當對用戶訪問權(quán)限 作判定時,它完全遵循TAM的授權(quán)模型提出授權(quán)請求并且得到授權(quán)判定的最終 結(jié)果。下面是幾個用于用戶認證和授權(quán)管理的方法,PDPrincipal whoIsIt = new PDPrincipal( _who , _pwd);- 獲得用戶信

12、息PDPermission whatTheyWant = new PDPermission( _object, _perms );- 獲得用戶想要訪問的對象和相應(yīng)的操作boolean haveAccess = whoIsIt.implies(whatTheyWant);- 提出授權(quán)判定的請求(誰_who想對對象_object作操作_perms ), 并且獲得授權(quán)判定的結(jié)果2.6 在應(yīng)用中使用TAM提供的管理 API /TAM除了提供了用于用戶身份認證和訪問授權(quán)管理的 API以外,還提供了 功能全面的TAM管理API,通過這些API可以對TAM的系統(tǒng)進行全方面的管理, 例如:用戶的添加、對象庫中

13、信息的修改、,訪問控制列表(ACL)的修改等功能。應(yīng)用開發(fā)人員甚至可以利用 TAM提供的管理API開發(fā)一套自己特有的TAM系 統(tǒng)的管理工具,以方便對TAM提供更為靈活和客戶話的管理工具。下面是幾個 用于管理用戶的方法,TAM提供的管理API多達幾百個,可以完全覆蓋所有的 TAM管理工作。/PDUser.createUserPDUser.importUserPDUser.deleteUserPDUser.listUsers 2.7 一個和應(yīng)用集成的配置實例下面我們介紹一個TAM和應(yīng)用開發(fā)集成的配置實例,在這個實例里,我們 會使用到 TAMeb、WebSEAL、IBM HTTP Server、We

14、bSphere ApplicationServer。在這個環(huán)境中,我們使用4臺硬件服務(wù)器,分別作為以上4個應(yīng)用的運 行環(huán)境。下面是這4臺硬件服務(wù)器的配置例子:服務(wù)器硬件配置軟件配置TAMeb服務(wù)器1CPU512MB內(nèi)存20G硬盤DB2/IBM Directory ServerTAM RuntimeZtAM Policy ServerWebSEAL服務(wù)器1CPU/512MB內(nèi)存20G硬盤TAM RuntimeTAM WebSEALIBM HIIP Server 服務(wù)器1CPU512MB內(nèi)存20G硬盤IBM HUP ServerWebSphere 服務(wù)器1CPU1GB內(nèi)存20G硬盤WASTAM R

15、untimeTAM Java RuntimeTAM ADK2.8 一個利用TAM提供的API進行開發(fā)的程序?qū)嵗?#39;在安裝完TAM和相應(yīng)的ADK模塊之后,在TAM的安裝目錄下會有幾個XC 和JAVA的實例可以作為參考。另外,TAM的電子文檔里有4本書專門介紹如 何利用TAM提供的API進行應(yīng)用開發(fā),以及TAM提供的API的使用方法。下面是我利用TAM提供的API做的一個Servlet ,可以作為大家應(yīng)用開發(fā)的import javax.servlet.*;import javax.servlet.http.*;import java.util.*;import java.io.*;impor

16、t .URL;import com.tivoli.pd.jutil.PDContext;import com.tivoli.pd.jutil.PDMessage;import com.tivoli.pd.jutil.PDMessages;import com.tivoli.pd.jutil.PDRgyUserName;import com.tivoli.pd.jutil.PDRgyGroupName;import com.tivoli.pd.jutil.PDException;import com.tivoli.pd.jadmin.*;import com.tivoli.pd.nls.pdbj

17、amsg;import com.tivoli.mts.*;public class AMServlet extends HttpServlet /*/* init( ServletConfig config )*public void init( ServletConfig config ) throws ServletExceptionsuper.init( config );/*/* destroy()/*public void destroy() super.destroy();/*/* doGet( HttpServletRequest req, HttpServletResponse

18、 resp )/*public void doGet( HttpServletRequest req, HttpServletResponse resp )throws ServletException, IOException processRequest( req, resp );/*/* doPost( HttpServletRequest req, HttpServletResponse resp )/*public void doPost( HttpServletRequest req, HttpServletResponse resp )throws ServletExceptio

19、n, IOException processRequest( req, resp );/*/* processRequest( HttpServletRequest req, HttpServletResponse resp )/*public void processRequest( HttpServletRequest req, HttpServletResponse resp )throws ServletException, IOException PrintWriter pw = resp.getWriter();pw.println( "<HTML>"

20、;);pw.println( " <BODY>");tryPDMessages msgs = new PDMessages();String adminName = "sec_master”;String adminPwd = "passw0rd”;char adminPassword = adminPwd.toCharArray();String configURLStr = "file:/E:/WebSphere/AppServer/java/jre/PdPperties"String rgySuffix

21、 = "dc=zk,dc=com”;Locale locale = new Locale("ENGLISH", "US");URL configURL = new URL(configURLStr);pw.println("<H1>Tivoli Access Manager Admin API Example</H1>");pw.println("<H3>Creating a context.n</H3>");pw.println("<BR&

22、gt;");PDContext ctxt = new PDContext (locale,adminName,adminPassword,configURL);pw.println("<H3>Listing the users.n</H3>");pw.println("<BR>");ArrayList userList =PDUser.listUsers(ctxt,PDUser.PDUSER_ALLPATTERN,PDUser.PDUSER_MAXRETURN,false,msgs);pw.println(u

23、serList);pw.println("<BR>");pw.println("<H3>Showing the user sec_master.n</H3>");pw.println("<BR>");String name="sec_master"PDUser pdUser = new PDUser(ctxt,name,msgs);pw.println("<H3>Account Valid: </H3>" + pdUser.

24、isAccountValid();pw.println("<BR>");pw.println("<H3>Account Description: </H3>" + pdUser.getDescription();pw.println("<BR>");pw.println("<H3>Account Registry Name: </H3>" + pdUser.getRgyName();pw.println("<BR>&quo

25、t;);pw.println("<H3>Account ID: </H3>" + pdUser.getId();pw.println("<BR>");pw.println("<H3>Account First Name: </H3>" + pdUser.getFirstName();pw.println("<BR>");pw.println("<H3>Account Last Name: </H3>"

26、 + pdUser.getLastName();pw.println("<BR>");pw.println("<H3>Account Policy: </H3>" + pdUser.getPolicy();pw.println("<BR>");pw.println("<H3>Account Group: </H3>" + pdUser.getGroups();pw.println("<BR>");pw.println("<H3>Account PD User: </H3>" + pdUser.isPDUser();pw.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論