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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rè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提供的認(rèn)證和授權(quán) API 82.6 在應(yīng)用中使用 TAM提供的管理 API : 82.7 一個和應(yīng)用集成的配置實例 92.8 一個利用TAM提供的API進(jìn)行開發(fā)的程序?qū)嵗?10在下面的

2、文早中,我們會介紹應(yīng)用如何利用 舊M Tivoli Access Manager (以下簡稱TAM)作為用戶認(rèn)證和授權(quán)控制的平臺, 最為高效地把TAM和應(yīng)用開發(fā) 集成起來,從而為應(yīng)用的開發(fā)、部署和運行提供一個高效可靠的安全平臺。隨著電子商務(wù)時代的到來,各種各樣的業(yè)務(wù)已經(jīng)從傳統(tǒng)的面對面的運營方式變成了通過互聯(lián)網(wǎng),直接通過網(wǎng)絡(luò)進(jìn)行交易的運營方式。 因此心如何更好地控制用戶對后臺關(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è)界標(biāo)準(zhǔn)的ISO10181的授權(quán)模型,在 TAM的授權(quán)模型中,包括有幾個重要的功能模塊,他們分別是用戶注冊庫、策 略管理器、對象庫和規(guī)則、策略執(zhí)行者。下面我們分別對這幾個主要的功能模塊 進(jìn)行詳細(xì)的介紹。/ 1.1.1 用戶注冊庫TAM中的用戶注冊庫需要建立在一個標(biāo)準(zhǔn)的 LDAP服務(wù)器上,他現(xiàn)在支持 業(yè)界中幾乎所有的 LDAP服務(wù)器,例如:IBM Directory Server、Lotus Domino Directory、MS Active Directory、SUN iPlanet Directory Server > Novell eDirectory ;或者任

4、何支持標(biāo)準(zhǔn)LDAP協(xié)議的LDAP服務(wù)器。TAM中的用戶注冊庫主要用于存儲用戶的相關(guān)信息,例如:用戶名、用戶密碼、郵件地址、電話、通信地址等和用戶相關(guān)的信息。j.1.2 策略管理器TAM中的策略管理器是TAM的核心部分。它負(fù)責(zé)和其它 TAM功能模塊的 通訊工作,其中主要包括以下幾個功能:維護(hù)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í)行者會對用戶的身份進(jìn)行確認(rèn), 同時還會對用戶的訪問請求作授權(quán)的判斷。如果訪問請求得到批準(zhǔn)的話,策略執(zhí) 行者會把用戶的請求轉(zhuǎn)發(fā)給后臺的應(yīng)用,并且把后臺應(yīng)用答復(fù)給用戶的信息轉(zhuǎn)發(fā) 給用戶。如果訪問請求沒有被批準(zhǔn)的話, 他會直接拒絕用戶的訪問請求,并且不 做任何訪問請求的轉(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)(認(rèn)證、授權(quán)和審計), /它可以和幾乎所有的 Web服務(wù)器和Web應(yīng)用服務(wù)器進(jìn)行無縫的集成。其次,TAM提供了一套完整的、應(yīng)用開發(fā)時需要的用戶認(rèn)證、授權(quán)和管理API,(包括有C/C+和JAVA語言),因此在應(yīng)用開發(fā)時可以直接使 用這些API進(jìn)行用戶認(rèn)證和操作授權(quán)的操作,或者 TAM系統(tǒng)的管理工 作。第三,TAM有一套完整的用戶管理、資源管理的體系架構(gòu)。應(yīng)用開發(fā)時, 可以直接使用TAM提供的這套管理體系作為應(yīng)用的用戶管理和資源管'%理架構(gòu),而不需要自己另外建立一

7、套這樣的架構(gòu)。、第四,TAM有一套完整的用戶授權(quán)判定機(jī)制,他所提供的功能非常完備。包括了授權(quán)控制中的每一個細(xì)節(jié),應(yīng)用開發(fā)時,可以通過API直接使用TAM提供的這套授權(quán)判定機(jī)制作為自己應(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中提供的某個方法,或者更為細(xì)化的授權(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的平臺進(jìn)行管理和控制。2.2 TAM和應(yīng)用集成的結(jié)構(gòu)/ 當(dāng)應(yīng)用使用C或者JAVA語言作為應(yīng)用的開發(fā)語言時,TAM可以使用用戶 的認(rèn)證和授權(quán)API來對用戶作身份的確認(rèn)和訪問權(quán)限的判定。當(dāng)和Web環(huán)境共同存在時,為了更好地保護(hù) Web環(huán)境中的資源以及和后 臺應(yīng)用的集成,WebSEAL發(fā)揮了極大的安全控制功能,作為一個策略執(zhí)行者, WebSEAL位于所有 Web服務(wù)器和Web應(yīng)用服務(wù)器之前,他會處理用戶身份 的認(rèn)證和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對用戶的訪問請求作出更為細(xì)化的授權(quán)判定。2.3 建立自己應(yīng)用的 Action用戶可以對應(yīng)用中的資源所作的操作在TAM中叫做Action 。TAM本身帶有 17 種默認(rèn)得 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是一個邏輯的、能夠反映被保護(hù)資源的結(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)的某個紀(jì)錄等,這些資源結(jié)構(gòu)的定義 是一種邏輯上的定義,定義的對象可以實際存在,也可以完全不存在,它可以只 是一種虛擬的定義。2.5 在應(yīng)用中使用TAM提供的認(rèn)證和授權(quán)APITAM提供了全面的用于應(yīng)用開發(fā)的認(rèn)證和授權(quán) API,應(yīng)用的開發(fā)人員可以使 用這些認(rèn)證和授權(quán)API作為系統(tǒng)的用戶認(rèn)證和訪問授權(quán)架構(gòu)。當(dāng)對用戶訪問權(quán)限 作判定時,它完全遵循TAM的授權(quán)模型提出授權(quán)請求并且得到授權(quán)判定的最終 結(jié)果。下面是幾個用于用戶認(rèn)證和授權(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除了提供了用于用戶身份認(rèn)證和訪問授權(quán)管理的 API以外,還提供了 功能全面的TAM管理API,通過這些API可以對TAM的系統(tǒng)進(jìn)行全方面的管理, 例如:用戶的添加、對象庫中

13、信息的修改、,訪問控制列表(ACL)的修改等功能。應(yīng)用開發(fā)人員甚至可以利用 TAM提供的管理API開發(fā)一套自己特有的TAM系 統(tǒng)的管理工具,以方便對TAM提供更為靈活和客戶話的管理工具。下面是幾個 用于管理用戶的方法,TAM提供的管理API多達(dá)幾百個,可以完全覆蓋所有的 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進(jìn)行開發(fā)的程序?qū)嵗?#39;在安裝完TAM和相應(yīng)的ADK模塊之后,在TAM的安裝目錄下會有幾個XC 和JAVA的實例可以作為參考。另外,TAM的電子文檔里有4本書專門介紹如 何利用TAM提供的API進(jìn)行應(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論