两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于bpel的安全訪問(wèn)業(yè)務(wù)集成建模方法

文檔序號(hào):7755631閱讀:209來(lái)源:國(guó)知局
專利名稱:一種基于bpel的安全訪問(wèn)業(yè)務(wù)集成建模方法
技術(shù)領(lǐng)域
本發(fā)明屬于計(jì)算機(jī)技術(shù)和信息安全領(lǐng)域,涉及安全服務(wù)構(gòu)件的組裝開發(fā)模式,更 確切體現(xiàn)為一種基于BPEL (Business Process Execution Language)的安全訪問(wèn)業(yè)務(wù)集成 建模方法。
背景技術(shù)
長(zhǎng)期以來(lái),多數(shù)實(shí)際應(yīng)用系統(tǒng)的安全功能模塊基本上采用內(nèi)嵌業(yè)務(wù)模塊的方式開 發(fā)實(shí)現(xiàn),安全組件和業(yè)務(wù)組件耦合度過(guò)高,無(wú)論是過(guò)程式編程還是面向?qū)ο笫骄幊?,都無(wú)法 避免兩者交互關(guān)系繁雜、功能邏輯抽離性差的特點(diǎn);另外,安全系統(tǒng)涉及認(rèn)證、授權(quán)、訪問(wèn)控 制和責(zé)任認(rèn)定等領(lǐng)域,現(xiàn)有的集中開發(fā)模式?jīng)]有從軟件形態(tài)、邏輯形態(tài)以及最后的物理形 態(tài)上對(duì)安全組件進(jìn)行進(jìn)一步構(gòu)件化分離,造成部件功能劃分模糊重疊,不易開展安全功能 專有評(píng)測(cè),二次開發(fā)代價(jià)高、周期長(zhǎng)、風(fēng)險(xiǎn)大。隨著分布式網(wǎng)絡(luò)技術(shù)的應(yīng)用和企業(yè)系統(tǒng)對(duì)資 源集成和流程自動(dòng)化的持續(xù)關(guān)注,傳統(tǒng)安全開發(fā)模式、安全產(chǎn)品形態(tài)都無(wú)法滿足復(fù)用性、靈 活性、開放協(xié)作性等高層次的安全需求;同時(shí),網(wǎng)格技術(shù)、Web Service, S0A、云計(jì)算等新興 應(yīng)用架構(gòu)更是加速了安全軟件形態(tài)變化的趨勢(shì),使其向協(xié)作型、可插拔的中間件模式轉(zhuǎn)變。 近年來(lái),國(guó)際上已涌現(xiàn)出一批具有技術(shù)特色、在學(xué)術(shù)界和產(chǎn)業(yè)界都產(chǎn)生較大影響的安全中 間件項(xiàng)目。耶魯大學(xué)提出的統(tǒng)一認(rèn)證服務(wù)CAS是一個(gè)比較典型的認(rèn)證與應(yīng)用分離的解決方 案。它提供了一套獨(dú)立的,適用于分布式環(huán)境下的,兼容各種異構(gòu)平臺(tái)的單域認(rèn)證系統(tǒng)。它 在需要保護(hù)的應(yīng)用系統(tǒng)中插入CASH客戶端插件,由CAS服務(wù)器端作為認(rèn)證中心,通過(guò)票據(jù) 驗(yàn)證為多個(gè)應(yīng)用系統(tǒng)提供統(tǒng)一認(rèn)證服務(wù),讓用戶可以一次登錄多次訪問(wèn)。CAS的不足在于過(guò) 分依賴專有認(rèn)證協(xié)議(源自Kerberos思想),對(duì)認(rèn)證協(xié)議過(guò)程缺乏高層封裝性,從而不利于 引入其他新型協(xié)議和認(rèn)證方式,定制能力和延展空間有限。Internet2/MACE和IBM聯(lián)合開發(fā)了 Shibboleth中間件系統(tǒng),旨在為多組織(主要 是大學(xué)和科研機(jī)構(gòu))間建立信任關(guān)系和Web資源共享提供支撐平臺(tái)。其自身并不具有認(rèn)證 功能,而是結(jié)合CAS用來(lái)提供身份管理功能,利用安全斷言標(biāo)記語(yǔ)言SAML實(shí)現(xiàn)跨組織的單 點(diǎn)登錄,并具有隱私保護(hù)解決方案。其不足之處在于支持的認(rèn)證模式比較單一,擴(kuò)展開發(fā)需 要從代碼級(jí)別做起,同時(shí)配置復(fù)雜煩瑣,不利于使用。PERMIS是英國(guó)Kent大學(xué)面向特權(quán)管理基礎(chǔ)設(shè)施而開發(fā)的中間件項(xiàng)目,該項(xiàng)目采 用基于角色的訪問(wèn)控制模型,通過(guò)頒發(fā)屬性證書的方式對(duì)用戶權(quán)限和訪問(wèn)策略進(jìn)行管理集 成,主要關(guān)注分布式環(huán)境下用戶屬性(主要是角色屬性)的可信發(fā)布問(wèn)題。其不足之處在 于管理機(jī)制缺乏松耦合性,不符合構(gòu)件化的系統(tǒng)開發(fā)模式,不支持Web Service等遠(yuǎn)程調(diào)用 封裝機(jī)制,策略制定采用的是專有機(jī)制,缺乏對(duì)多種應(yīng)用場(chǎng)景的廣泛的支持,難以提供通用 的訪問(wèn)控制接口。Cardea是美國(guó)NASA開發(fā)了安全授權(quán)項(xiàng)目,主要負(fù)責(zé)組織內(nèi)用戶的訪問(wèn)控制判定, 實(shí)質(zhì)是針對(duì)業(yè)務(wù)應(yīng)用的授權(quán)網(wǎng)關(guān),實(shí)現(xiàn)過(guò)程采用了 SAML傳輸標(biāo)準(zhǔn)和XACML策略制定標(biāo)準(zhǔn)。其不足在于缺乏與各種跨域認(rèn)證機(jī)制進(jìn)行有效結(jié)合的接口和標(biāo)準(zhǔn),沒有考慮將認(rèn)證授權(quán)審 計(jì)實(shí)現(xiàn)整合的應(yīng)用場(chǎng)景,無(wú)法搭建一個(gè)完整的安全訪問(wèn)實(shí)施平臺(tái)。以上項(xiàng)目雖然采用了面向?qū)S邪踩δ荛_發(fā)的中間件形式,但其內(nèi)部構(gòu)件化和可 替換性還處在粗粒度、層次單一的發(fā)展階段,無(wú)法適應(yīng)企業(yè)應(yīng)用對(duì)安全功能定制的裁剪性 和敏捷性需求,基本上沒有提供面向安全開發(fā)人員或者業(yè)務(wù)設(shè)計(jì)人員進(jìn)行多次開發(fā)、自由 組裝的平臺(tái)和方法。還有一些旨在提供基礎(chǔ)性安全技術(shù)的開發(fā)包,例如Bouncy Castle Crypto、 Crypto++, JSBN Crypto、IAIK Crypto等,這些項(xiàng)目可以提供全面豐富的密碼算法具體實(shí) 現(xiàn)、公鑰/屬性證書生成器、密碼學(xué)相關(guān)數(shù)學(xué)工具,已經(jīng)在很多實(shí)際系統(tǒng)作為安全基礎(chǔ)設(shè)施 大量應(yīng)用,但其兩個(gè)基本不足在于開發(fā)包內(nèi)部結(jié)構(gòu)仍然比較復(fù)雜,即使面向?qū)I(yè)人員的學(xué) 習(xí)曲線仍然較高;缺乏構(gòu)建上層安全集成服務(wù)的組裝模式和開發(fā)模版,不能提供直接面向 業(yè)務(wù)安全的功能接口,后期的開發(fā)量仍然較大。而且現(xiàn)有的應(yīng)用系統(tǒng)的安全的研究往往是 先確定系統(tǒng)需要哪些安全功能來(lái)保證系統(tǒng)的安全,然后研究具體安全功能的實(shí)現(xiàn),很少會(huì) 關(guān)注具體的安全事務(wù)流程,單獨(dú)的安全功能的安全是不足以保證應(yīng)用系統(tǒng)業(yè)務(wù)的整體安全 性。

發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明提出了一種新的安全訪問(wèn)業(yè)務(wù)建模方 法,提供直接面向業(yè)務(wù)安全的功能接口,可以保證應(yīng)用系統(tǒng)業(yè)務(wù)的整體安全性。為了實(shí)現(xiàn)本發(fā)明的目的,采用的技術(shù)方案概述如下一種基于BPEL的安全訪問(wèn) 業(yè)務(wù)集成建模方法,其步驟包括1)從已有的應(yīng)用業(yè)務(wù)中提取出安全訪問(wèn)業(yè)務(wù),按照安 全處理過(guò)程依次包括安全認(rèn)證流程、授權(quán)與訪問(wèn)控制流程、審計(jì)與責(zé)任認(rèn)定流程,并且通 過(guò)集成的Web服務(wù)構(gòu)件提供安全訪問(wèn)業(yè)務(wù)流程需要實(shí)現(xiàn)的功能;2)安全訪問(wèn)業(yè)務(wù)通過(guò) BPEL-receive模塊接收用戶對(duì)于安全訪問(wèn)業(yè)務(wù)流程的調(diào)用請(qǐng)求,通過(guò)BPEL-Assign模塊設(shè) 定認(rèn)證狀態(tài)獲取服務(wù)構(gòu)件的輸入?yún)?shù)變量,通過(guò)BPEL-Invoke模塊,調(diào)用認(rèn)證狀態(tài)獲取服 務(wù)構(gòu)件,查看用戶的認(rèn)證狀態(tài);3)對(duì)經(jīng)過(guò)認(rèn)證的用戶,通過(guò)BPEL-Assign模塊設(shè)定認(rèn)證斷言 服務(wù)構(gòu)件的輸入?yún)?shù)變量,然后通過(guò)BPEL-Invoke模塊調(diào)用認(rèn)證斷言服務(wù)構(gòu)件為認(rèn)證結(jié)果 生成一個(gè)斷言,最后從認(rèn)證斷言服務(wù)構(gòu)件的返回值中獲取認(rèn)證斷言,結(jié)束認(rèn)證處理流程;4) 通過(guò)BPEL-Assign模塊設(shè)定授權(quán)評(píng)估服務(wù)構(gòu)件的輸入?yún)?shù)變量,通過(guò)BPEL-Invoke模塊調(diào) 用授權(quán)評(píng)估服務(wù)構(gòu)件,用來(lái)評(píng)估可否對(duì)用戶訪問(wèn)請(qǐng)求授權(quán);5)通過(guò)BPEL-Assign模塊設(shè)定 審計(jì)記錄服務(wù)構(gòu)件的輸入?yún)?shù)變量,通過(guò)BPEL-Invoke模塊異步調(diào)用審計(jì)記錄服務(wù)構(gòu)件; 通過(guò)BPEL-receive模塊,接受審計(jì)記錄服務(wù)構(gòu)件的返回值;6)通過(guò)BPEL-Assign模塊設(shè)定 安全訪問(wèn)業(yè)務(wù)流程的輸出參數(shù)變量,通過(guò)BPEL-Reply模塊,將值返回給安全訪問(wèn)業(yè)務(wù)調(diào)用 者,完成整個(gè)安全訪問(wèn)業(yè)務(wù)集成建模。所述步驟3)對(duì)未經(jīng)認(rèn)證的先進(jìn)行本地認(rèn)證,其步驟包括2_1)通過(guò)BPEL-Invoke 模塊同步調(diào)用認(rèn)證域選擇服務(wù),獲取用戶所屬域;2-2)通過(guò)BPEL-Assign模塊設(shè)定用戶 所屬域,通過(guò)BPEL-Invoke模塊同步調(diào)用用戶所屬域上的認(rèn)證服務(wù);2_3)認(rèn)證服務(wù)通過(guò) BPEL-Pick. . . OnMessage模塊根據(jù)用戶選擇的認(rèn)證方式,通過(guò)BPEL-Invoke調(diào)用認(rèn)證服務(wù) 構(gòu)件,并獲取認(rèn)證結(jié)果。
所述步驟2-1)獲取用戶所屬域?yàn)橥庥?,通過(guò)BPEL-Invoke調(diào)用身份聯(lián)合服務(wù)獲取 用戶假名;所述步驟2-3)認(rèn)證服務(wù)構(gòu)件包括口令認(rèn)證服務(wù)、證書認(rèn)證服務(wù)、基于身份的認(rèn) 證服務(wù)和令牌認(rèn)證服務(wù)。所述步驟4)通過(guò)BPEL-Assign模塊設(shè)定輸入?yún)?shù)變量后,通過(guò)BPEL_While模塊 循環(huán)處理策略集中的策略,直到所有策略都處理完畢,具體包括4-1)通過(guò)BPEL-Invoke 模塊調(diào)用策略緩存服務(wù),在緩存中檢索所需要的策略;4-2)如果檢索到策略,通過(guò) BPEL-Invoke模塊調(diào)用屬性緩存服務(wù),在緩存中檢索所需要的屬性;4_3)如果檢索到屬性, 根據(jù)策略和屬性值信息進(jìn)行訪問(wèn)控制判定,返回判定結(jié)果,訪問(wèn)控制處理流程結(jié)束。所述步驟4-2)如果沒有檢索到策略,通過(guò)BPEL-Invoke模塊調(diào)用策略獲取服務(wù), 接著通過(guò)BPEL-Pick. . . OnMessage模塊,根據(jù)系統(tǒng)配置選擇策略獲取服務(wù),獲取匹配的策 略。所述步驟4-3)如果沒有檢索到屬性,通過(guò)BPEL-Invoke模塊調(diào)用屬性獲取服務(wù), 接著通過(guò)BPEL-Pick. . . OnMessage模塊,根據(jù)系統(tǒng)配置選擇屬性獲取服務(wù),獲取匹配的屬 性值。所述策略獲取服務(wù)包括數(shù)據(jù)庫(kù)策略獲取服務(wù)或者文件略獲取服務(wù)。所述屬性獲取服務(wù)包括數(shù)據(jù)庫(kù)屬性獲取服務(wù)、LDAP屬性獲取服務(wù)或者感知器屬性 獲取服務(wù)。本發(fā)明相對(duì)于之前的技術(shù)的優(yōu)點(diǎn)a)松耦合性從以上的描述可以發(fā)現(xiàn),在本發(fā)明 的業(yè)務(wù)流程過(guò)程中,各組合服務(wù)構(gòu)件間沒有實(shí)際的聯(lián)系,只是在業(yè)務(wù)流程需要的時(shí)候發(fā)送 或者是接收信息,它們之間的耦合性是非常低的。b)互操作性BPEL業(yè)務(wù)流程的描述是基于Web Service的WSDL描述,而這個(gè)業(yè)務(wù) 流程本身的最終呈現(xiàn)形式也是Web Service,因此,它能夠繼承Web Service的互操作性。c)重用性重用性體現(xiàn)在兩個(gè)方面一個(gè)是集成過(guò)程中,具體安全功能實(shí)現(xiàn)的構(gòu)件 的重用,另一個(gè)是業(yè)務(wù)流程自身的重用,它可以看成是一個(gè)復(fù)雜的組合服務(wù)構(gòu)件,可以直接 納入到構(gòu)件體系中提供給其它業(yè)務(wù)進(jìn)行復(fù)用。重用性在總體和局部?jī)蓚€(gè)方面得到了很好的 體現(xiàn)。d)靈活性當(dāng)需要對(duì)業(yè)務(wù)流程進(jìn)行修改時(shí),只需要將相應(yīng)的組合服務(wù)構(gòu)件引入,更 改相應(yīng)的業(yè)務(wù)流程與具體的交互信息,然后重新部署此業(yè)務(wù)流程即可,可以很方便的對(duì)流 程進(jìn)行修改,靈活性強(qiáng)。e)敏捷性業(yè)務(wù)流程修改并重新部署之后,不需要額外的操作,新的業(yè)務(wù)更改就會(huì) 敏捷的反應(yīng)到實(shí)際業(yè)務(wù)流程中。f)目標(biāo)明確業(yè)務(wù)流程的實(shí)施過(guò)程是建?!伞渴稹芾?,可以發(fā)現(xiàn), 此過(guò)程從最頂層的模型出發(fā),是一個(gè)從目標(biāo)出發(fā)的自頂向下的過(guò)程,此過(guò)程可以保證業(yè)務(wù) 實(shí)施過(guò)程中開發(fā)工作與目標(biāo)的一致性。g)易于交流業(yè)務(wù)集成建模是在構(gòu)件層次之上進(jìn)行開發(fā),與實(shí)際業(yè)務(wù)結(jié)合,將抽象 的模型與業(yè)務(wù)結(jié)合,描述接近自然語(yǔ)言,簡(jiǎn)潔、易懂,能夠很方便的用于用戶與設(shè)計(jì)人員,設(shè) 計(jì)人員與開發(fā)人員之間的交流。h)經(jīng)驗(yàn)積累構(gòu)件是從經(jīng)驗(yàn)來(lái)判斷如何開發(fā)和復(fù)用,而BPEL從實(shí)際業(yè)務(wù)來(lái)判斷如 何開發(fā)和復(fù)用,可以從實(shí)際業(yè)務(wù)的實(shí)施來(lái)積累安全業(yè)務(wù)開發(fā)經(jīng)驗(yàn),用于指導(dǎo)構(gòu)件的開發(fā)。


圖1為本發(fā)明總體結(jié)構(gòu)圖;圖2為本發(fā)明安全訪問(wèn)業(yè)務(wù)流程圖;圖3為本發(fā)明認(rèn)證 服務(wù)流程圖;圖4為本發(fā)明訪問(wèn)控制服務(wù)流程圖;圖5為本發(fā)明策略獲取服務(wù)流程圖;圖6 為本發(fā)明屬性獲取服務(wù)流程圖。
具體實(shí)施例方式下面通過(guò)具體實(shí)施例和附圖對(duì)本發(fā)明作進(jìn)一步的描述。信息安全共性構(gòu)件的開發(fā)是從底層基礎(chǔ)構(gòu)件到中層功能設(shè)施構(gòu)件然后到上層的 集成服務(wù)構(gòu)件,而業(yè)務(wù)流程的開發(fā)是從上層的業(yè)務(wù)建模到中層的過(guò)程分析然后到底層的服 務(wù)集成。這是兩個(gè)不同方向的開發(fā),本發(fā)明利用BPEL編排將構(gòu)件開發(fā)與業(yè)務(wù)流程開發(fā)無(wú)縫 的結(jié)合起來(lái),形成完善的安全業(yè)務(wù)集成建模模式,如圖1所示。信息安全共性構(gòu)件集劃分為 三個(gè)層次,從底向上依次為安全基礎(chǔ)構(gòu)件技術(shù)層、安全功能設(shè)施構(gòu)件層和安全集成服務(wù)構(gòu) 件層。通過(guò)BPEL安全訪問(wèn)業(yè)務(wù)流程分析,可以確定安全集成服務(wù)構(gòu)件層的接口,以及需要 實(shí)現(xiàn)的功能,接口可以通過(guò)partner link和服務(wù)本身的wsdl描述來(lái)體現(xiàn);至于具體的功能 的實(shí)現(xiàn),即如何由安全基礎(chǔ)構(gòu)件和安全功能設(shè)施構(gòu)件來(lái)集成實(shí)現(xiàn)服務(wù)對(duì)應(yīng)的功能在本發(fā)明 內(nèi)不做規(guī)定,只在下面給出相關(guān)的說(shuō)明。信息安全共性構(gòu)件按實(shí)現(xiàn)功能的復(fù)雜程度劃分為基礎(chǔ)構(gòu)件,功能構(gòu)件和服務(wù)構(gòu)件 三個(gè)層次?;A(chǔ)構(gòu)件只實(shí)現(xiàn)信息安全過(guò)程中某個(gè)具體的算法或者定義某種具體的算法結(jié) 構(gòu);功能構(gòu)件使用基礎(chǔ)構(gòu)件搭建,能夠完成一定的功能。將信息安全任務(wù)中經(jīng)常用到的功能 封裝成為功能構(gòu)件,方便代碼重復(fù)使用,以提高代碼的利用率。服務(wù)構(gòu)件通常是由多個(gè)功能 構(gòu)件或者基礎(chǔ)構(gòu)件搭建而成,可以單獨(dú)為安全系統(tǒng)提供一種服務(wù)。本專利中所說(shuō)的安全集 成服務(wù)構(gòu)件則是指共性構(gòu)件最上層的服務(wù)構(gòu)件,所說(shuō)的web服務(wù)則是這些服務(wù)構(gòu)件以Web Service的形式提供的安全服務(wù)。例如,本專利中的認(rèn)證服務(wù)構(gòu)件中的公鑰證書認(rèn)證服務(wù)構(gòu) 件就會(huì)用到PKI基礎(chǔ)設(shè)施構(gòu)件,公鑰證書構(gòu)件等功能構(gòu)件,而公鑰證書構(gòu)件的實(shí)現(xiàn)又會(huì)用 到ASN. 1編解碼構(gòu)件,大整數(shù)運(yùn)算構(gòu)件等基礎(chǔ)構(gòu)件。每個(gè)層次上的構(gòu)件都會(huì)對(duì)外提供簡(jiǎn)單 地接口,并將復(fù)雜的運(yùn)算過(guò)程封裝起來(lái),方便外部調(diào)用者使用。本發(fā)明從已有的應(yīng)用業(yè)務(wù)中抽取并設(shè)計(jì)了一個(gè)完整的安全訪問(wèn)業(yè)務(wù)流程,這個(gè)安 全訪問(wèn)業(yè)務(wù)流程是一個(gè)通用的流程,應(yīng)用系統(tǒng)必須遵循此業(yè)務(wù)流程以保證系統(tǒng)的相關(guān)安全 性。本實(shí)施例中安全訪問(wèn)業(yè)務(wù)流程包括安全認(rèn)證,授權(quán)與訪問(wèn)控制,審計(jì)與責(zé)任認(rèn)定三大處 理流程,如圖2所示。在這些處理流程之下,具體集成了域定位服務(wù)、認(rèn)證服務(wù)、跨域身份聯(lián) 合服務(wù)、斷言服務(wù)、策略查詢服務(wù)、屬性查詢服務(wù)、審計(jì)記錄服務(wù)等跨域或單域訪問(wèn)過(guò)程中 需要的Web Service服務(wù),能夠提供一套完整的安全訪問(wèn)業(yè)務(wù)流程所需的各種功能。此外, 通過(guò)利用以上Web Service服務(wù)所提供的已獨(dú)立實(shí)現(xiàn)的功能,可以根據(jù)具體應(yīng)用場(chǎng)景的不 同,利用BPEL添加擴(kuò)充服務(wù),替換已有的Web Service功能的實(shí)現(xiàn)或者是重新設(shè)定安全訪 問(wèn)業(yè)務(wù)流程,從底層構(gòu)件到安全訪問(wèn)流程都可以進(jìn)行拆分、替換和復(fù)用,最大程度的減少了 重復(fù)開發(fā)。在安全訪問(wèn)業(yè)務(wù)流程定義過(guò)程中,需要根據(jù)對(duì)外提供的具體功能來(lái)定義這個(gè)流程 中需要的變量。安全訪問(wèn)業(yè)務(wù)流程實(shí)施時(shí)用到的不同具體Web服務(wù)也都需要明確定義自己需要的輸入輸出參數(shù)。在BPEL流程中,將這些輸入輸出參數(shù)定義為變量,為了方便記憶 和使用,變量名都是在流程或者Web服務(wù)的名字后面添加一個(gè)字段進(jìn)行標(biāo)識(shí),輸入?yún)?shù)用 “Request,,來(lái)標(biāo)識(shí),輸出字段用“Response ”。例如,整個(gè)安全訪問(wèn)業(yè)務(wù)流程的輸入?yún)?shù)為“AccessControlProcessRequest”,輸 出參數(shù)為“AccessControlProcessResponse”。這里的輸入和輸出參數(shù)并不是一個(gè)簡(jiǎn)單的 數(shù)據(jù),而是一個(gè)包含了所有需要的具體數(shù)據(jù)的。例如,”AccessControlProcessRequest” 中可以包括用戶名name (string類型),口令password (string類型),請(qǐng)求資源 resource (anyURI類型)。各個(gè)具體Web服務(wù)的輸入輸出參數(shù)是根據(jù)其功能在實(shí)現(xiàn)的時(shí)候 確定的,會(huì)在相應(yīng)的wsdl接口文件中給出說(shuō)明。這里假定對(duì)于流程中的每一個(gè)訪問(wèn)到的Web服務(wù),都事先定義好了輸入 和輸出變量,在后面可以直接使用。下面介紹安全訪問(wèn)業(yè)務(wù)流程的具體執(zhí)行步驟
1.安全訪問(wèn)業(yè)務(wù)流程通過(guò)〈receive〉模塊接受客戶輸入的數(shù)據(jù),將其保存到變量 AccessControlProcessRequest 變量中,接著要調(diào)用 AuthenticationStateViewService 來(lái) 查看用戶的認(rèn)證狀態(tài)。通過(guò)〈Assign〉賦值任務(wù),將AccessControlProcessRequest變量 中的 name 字段貝武值至lj AuthenticationStateViewServiceRequest 中的 name 字段。再通 過(guò)〈Invoke〉任務(wù),調(diào)用AuthenticationStateViewService服務(wù),用以查看用戶的認(rèn)證狀 態(tài)。由于AuthenticationStateViewService服務(wù)為一個(gè)同步調(diào)用服務(wù),在調(diào)用之后必須得 到其返回值才能繼續(xù)執(zhí)行下一步任務(wù),返回值為變量AuthenticationStateViewServiceRe sponse,其中包含一個(gè)boolean類型的值true或者false,表示該用戶是否已經(jīng)經(jīng)過(guò)認(rèn)證;
2.在調(diào)用過(guò)AuthenticationStateViewService服務(wù)之后,是一個(gè)<If>判定任務(wù),這里根 據(jù)AuthenticationStateViewServiceResponse中的不同認(rèn)證狀態(tài)信息形成兩個(gè)分支。若 已經(jīng)經(jīng)過(guò)認(rèn)證,則不需要再次調(diào)用認(rèn)證服務(wù),可直接轉(zhuǎn)到后續(xù)步驟3;否則,需要對(duì)用戶進(jìn) 行一個(gè)認(rèn)證過(guò)程。這個(gè)認(rèn)證過(guò)程需要執(zhí)行一些列相關(guān)的任務(wù),是一個(gè)任務(wù)序列,用〈Sequence〉來(lái)表 示。在認(rèn)證過(guò)程中,首先需要確認(rèn)用戶身份所在的域信息,所以需要調(diào)用LocationService。 執(zhí)行 <Assign>,將 AccessControlProcessRequest 中的 name 禾口 resource 字段傳給 LocationService 服務(wù)的輸入?yún)?shù) LocationServiceRequest,接著通過(guò)〈Invoke〉同步調(diào)用 服務(wù)LocationService,獲得返回值LocationServiceResponse,需要的域信息就包含在這 個(gè)變量中。下一步就是調(diào)用認(rèn)證服務(wù)AuthenticationEnforceService進(jìn)行認(rèn)證的過(guò)程。也 是通過(guò)〈Assign〉將相關(guān)參數(shù)name和password傳遞給認(rèn)證服務(wù)的參數(shù)AuthenticationE nforceServiceRequest,然后通過(guò) <Invoke> 任務(wù)調(diào)用 AuthenticationEnforceService 月艮 務(wù),并獲得其返回值。該服務(wù)的返回值也是一個(gè)boolean類型的值,true表示認(rèn)證通過(guò),相 應(yīng)地,false表示認(rèn)證沒有通過(guò)。需要提及的是,這里的AuthenticationEnforceService 其內(nèi)部實(shí)現(xiàn)也是一個(gè)BPEL流程,名字叫做AuthenticationEnforceProcess,為了使整 個(gè)安全訪問(wèn)業(yè)務(wù)流程說(shuō)明更加清晰,在這里暫時(shí)不對(duì)其進(jìn)行詳細(xì)介紹。后面會(huì)單獨(dú)介紹 AuthenticationEnforceProcess。在進(jìn)行過(guò)認(rèn)證之后,還需要對(duì)跨域的情況進(jìn)行一下特殊過(guò)程地處理。之前在調(diào)用 過(guò)LocationService之后,安全訪問(wèn)業(yè)務(wù)流程已經(jīng)得到了用戶身份所在的域和訪問(wèn)資源所在域信息。在這里需要對(duì)這些信息進(jìn)行處理。使用一個(gè)<If>結(jié)構(gòu),在其中對(duì)兩個(gè)域信息進(jìn) 行判定,看是否屬于跨域信息訪問(wèn),若是跨域需要執(zhí)行一個(gè)跨域聯(lián)合的操作序列,若不是跨 域訪問(wèn),則可以省去這一系列操作??缬蚵?lián)合的操作序列需要用到跨域身份聯(lián)合服務(wù)FederationService,將用戶 域身份映射到資源域的身份,該操作序列可以表述為首先是〈Assign〉為跨域聯(lián)合服務(wù) 輸入?yún)?shù)賦值,這個(gè)輸入?yún)?shù)應(yīng)該包含用戶以及其所訪問(wèn)資源所在的域信息。然后通過(guò) 〈Invoke〉同步調(diào)用跨域聯(lián)合Web服務(wù)FederationService,在調(diào)用過(guò)這個(gè)服務(wù)之后,得到跨 域聯(lián)合服務(wù)的返回值FederationServiceResponse,其中包含跨域聯(lián)合后的用戶假名等。3.在通過(guò)上面的認(rèn)證和跨域聯(lián)合之后,安全訪問(wèn)流程接下來(lái)需要做的就該是 生成斷言。斷言的作用就相當(dāng)于一個(gè)票據(jù),得到斷言表示認(rèn)證過(guò)程結(jié)束,該用戶已經(jīng) 經(jīng)過(guò)認(rèn)證。生成斷言的過(guò)程也可以通過(guò)調(diào)用相應(yīng)的web服務(wù)AssertionService來(lái)實(shí) 現(xiàn)。具體過(guò)程如下首先必須為AssertionService傳入?yún)?shù),同樣通過(guò)〈Assign〉任務(wù) 來(lái)完成,傳入?yún)?shù)應(yīng)該包括用戶名name和請(qǐng)求資源信息resource。將這兩項(xiàng)信息放入 AssertionServiceRequest 變量中之后,再通過(guò) <Invoke> 來(lái)調(diào)用 AssertionService 月艮務(wù)。 由于對(duì)AssertionService服務(wù)的調(diào)用是一個(gè)同步調(diào)用,所以可以直接得到斷言結(jié)果,可以 i—f String gM白勺{t,^-^^^fi AssertionService-Response 巾。4.接下來(lái)調(diào)用授權(quán)評(píng)估服務(wù) AuthorizationEvaluationService,用 來(lái)評(píng)估可否對(duì)用戶訪問(wèn)請(qǐng)求授權(quán)。傳入的參數(shù)中應(yīng)該包括用戶名,請(qǐng)求資源 信息。AuthorizationEvaluationService服務(wù)的實(shí)現(xiàn)是一個(gè)BPEL流程,名為 AuthorizationEvaluationProcess,其具體內(nèi)容將在后面單獨(dú)予以介紹。這里主要說(shuō)明整 個(gè)安全訪問(wèn)業(yè)務(wù)流程中,是怎樣將其作為一個(gè)服務(wù)進(jìn)行調(diào)用的。首先,仍然是〈Assign〉任 務(wù)將name,resource 從AccessControlProcessRequest 中賦值到 AuthorizationEvaluatio nServiceRequest 中,然后再通過(guò) <Invoke> 任務(wù),調(diào)用 AuthorizationEvaluationService。 該服務(wù)的返回值同樣為boolean類型,表示是否允許授權(quán)。5.接著,要通過(guò)異步調(diào)用AuditLogService服務(wù)記錄審計(jì)日志。這個(gè)服務(wù)需要的 輸入?yún)?shù)為用戶名name和請(qǐng)求訪問(wèn)的資源source。調(diào)用過(guò)程同其他服務(wù)一樣,先是通過(guò) 〈Assign〉任務(wù)對(duì)輸入?yún)?shù)進(jìn)行賦值,然后再通過(guò)〈Invoke〉任務(wù)進(jìn)行對(duì)服務(wù)的調(diào)用。由于 AuditLogService是異步調(diào)用,所以在該服務(wù)執(zhí)行完成之后,需要回調(diào)其調(diào)用者,即安全訪 問(wèn)流程。所以在調(diào)用完成之后,需要一個(gè)〈Receive〉任務(wù),來(lái)接受AuditLogService服務(wù)的 返回值。 6.最后需要通過(guò)〈Assign〉任務(wù),將需要返回給用戶的值,例如訪問(wèn)資源resource 等賦值到安全訪問(wèn)業(yè)務(wù)流程的返回值A(chǔ)ccessControlProcessResponse中。然后再通過(guò) 〈Reply〉,將值返回給其調(diào)用者,完成整個(gè)安全業(yè)務(wù)訪問(wèn)流程。前面介紹過(guò),在整個(gè)安全訪問(wèn)業(yè)務(wù)流程所調(diào)用到的web服務(wù)中,有兩個(gè)服務(wù) 也是基于BPEL的處理流程。這兩個(gè)流程分別為AuthenticationEnforceProcess和 AuthorizationEvaluationProcess。前者主要是完成認(rèn)證服務(wù),后者的功能是完成授權(quán)評(píng) 估服務(wù)。下面就對(duì)它們的處理流程進(jìn)行分別地介紹。AuthenticationEnforceProcess是認(rèn)證流程,屬于整個(gè)安全訪問(wèn)業(yè)務(wù)流程的子流 程,它封裝為一個(gè)服務(wù)構(gòu)件對(duì)外提供服務(wù)。該流程內(nèi)部其實(shí)包含的是具有不同類型的具體認(rèn)證功能服務(wù)構(gòu)件,根據(jù)不同的應(yīng)用場(chǎng)景可以配置選擇不同類型的認(rèn)證功能,例如基于口 令認(rèn)證或者基于身份認(rèn)證。AuthenticationEnforceProcess流程如圖3所示,具體步驟如下1.首先同其他 基于BPEL流程一樣,執(zhí)行一次〈Receive〉任務(wù)接受輸入?yún)?shù)并將其賦值到Authenticatio nEnforceProcessRequesst中,這里的參數(shù)中應(yīng)該包括用戶名name禾口口令password。之后 通過(guò)〈Assign〉任務(wù),將參數(shù)賦值到具體的認(rèn)證Web服務(wù)的輸入?yún)?shù)中去。在這里列舉了四 種具體的認(rèn)證Web服務(wù),每種服務(wù)通過(guò)不同的方法來(lái)進(jìn)行認(rèn)證,包括口令認(rèn)證,證書認(rèn)證, 基于身份認(rèn)證和基于標(biāo)識(shí)認(rèn)證。在實(shí)際應(yīng)用中還可以根據(jù)具體的系統(tǒng)來(lái)加入更多其他種類 的認(rèn)證服務(wù)。還需要說(shuō)明的一點(diǎn)是,這里假定可以給所有的認(rèn)證服務(wù)提供統(tǒng)一的接口,那么 就可以在上面的〈Assign〉任務(wù)中對(duì)其輸入?yún)?shù)進(jìn)行賦值了。如果不能規(guī)定統(tǒng)一的接口,則 需要在調(diào)用之前,對(duì)需要調(diào)用的Web服務(wù)的輸入?yún)?shù)進(jìn)行單獨(dú)的賦值過(guò)程。2.通過(guò)一個(gè)〈Pick. . . 0nMessage>任務(wù),根據(jù)用戶提供的信息選擇相應(yīng)的具體認(rèn) 證方式。選擇之后就可以通過(guò)一個(gè)執(zhí)行序列〈Sequence〉來(lái)完成具體的認(rèn)證過(guò)程了。在這 個(gè)序列中,由于前面假定在選擇認(rèn)證方式之前就對(duì)其輸入?yún)?shù)進(jìn)行了賦值,那么可以直接 使用〈Invoke〉任務(wù)來(lái)調(diào)用相應(yīng)的服務(wù)。這里的調(diào)用方法為同步調(diào)用,所以可以直接得到認(rèn) 證結(jié)果,為boolean類型的值,true或者false。3.在最后,流程將具體認(rèn)證服務(wù)的boolean類型返回值通過(guò)〈Assign〉任務(wù)賦值到 31011; AuthenticationEnforceProcessResponse 中,MMfflil <Reply>
給其調(diào)用者,結(jié)束認(rèn)證流程。AuthorizationEvaluationProcess是授權(quán)評(píng)估流程,他也是整個(gè)安全訪問(wèn)業(yè)務(wù)流 程中的一個(gè)子流程,屬于認(rèn)證過(guò)程之后的訪問(wèn)控制過(guò)程部分。授權(quán)評(píng)估流程主要作用是根 據(jù)系統(tǒng)配置的授權(quán)策略和為用戶頒發(fā)的授權(quán)屬性來(lái)為用戶的此次訪問(wèn)過(guò)程授權(quán),即決定是 否允許用戶訪問(wèn)資源,訪問(wèn)過(guò)程中有什么樣的權(quán)限。AuthorizationEvaluationProcess流程如圖4所示,具體步驟如下1.通過(guò) <Receive>AuthorizationEvaluationProcess-Request, ^c^I^i^ 包括用戶名name,請(qǐng)求訪問(wèn)的資源信息resource。2.接收到輸入?yún)?shù)之后,開始執(zhí)行一個(gè)〈While〉循環(huán)過(guò)程。使用循環(huán)的目的是 對(duì)策略集中的每一條策略進(jìn)行處理,直到所有策略處理完成之后,循環(huán)才能結(jié)束。而每一 次的循環(huán)過(guò)程中都是一個(gè)web服務(wù)的訪問(wèn)序列,這里用〈Sequence〉來(lái)表示它。在這個(gè) 〈Sequence〉中,要執(zhí)行一系列地操作。但從整體上來(lái)看,主要分成兩個(gè)階段,一個(gè)階段是策 略檢索階段,另一個(gè)階段是屬性檢索階段。在下面對(duì)其進(jìn)行詳細(xì)地介紹。a)進(jìn)行策略檢索過(guò)程,可以把它描述成兩個(gè)部分。首先是在Cache中進(jìn)行檢索, 即調(diào)用PolCacheService進(jìn)行檢索。在調(diào)用這個(gè)服務(wù)之前,同其他服務(wù)一樣,首先使用 〈Assign〉任務(wù)進(jìn)行輸入?yún)?shù)的賦值,然后通過(guò)〈Invoke〉任務(wù)進(jìn)行調(diào)用。Cache中策略檢索 服務(wù)需要的輸入?yún)?shù)為用戶名name和訪問(wèn)資源resource。返回結(jié)果就是與這個(gè)訪問(wèn)相對(duì) 應(yīng)的一條策略,若沒有檢索到,則會(huì)返回一條空記錄。b)然后接下來(lái)是一個(gè)<If>表示的分支結(jié)構(gòu),它根據(jù)PolCacheService是否檢索 到策略而執(zhí)行兩條不同的分支。若在Cache中檢索到了策略,則可以轉(zhuǎn)到步驟c)直接進(jìn) 行屬性檢索過(guò)程了,若沒有檢索到策略,則會(huì)執(zhí)行一個(gè)操作序列〈Sequence〉,調(diào)用一個(gè)名為
10PolRetrieveService的Web服務(wù),這個(gè)服務(wù)主要功能是在其他存儲(chǔ)策略的位置上檢索策 略。其實(shí)現(xiàn)也是一個(gè)BPEL流程,這個(gè)流程會(huì)在后面給出詳細(xì)說(shuō)明。調(diào)用這個(gè)策略檢索服務(wù) 首先也是〈Assign〉為其輸入?yún)?shù)賦值,然后用〈Invoke〉進(jìn)行調(diào)用。輸入?yún)?shù)和返回值類 型都跟 PolCacheService 一致。c)在前面,PolCacheService 或者 PolRetrieveService 檢索到了策略之后,下 一步需要進(jìn)行的是屬性檢索。首先是在Cache中檢索屬性,調(diào)用名為AttrCacheService 的屬性檢索服務(wù),通過(guò)〈Assign〉為其輸入?yún)?shù)AttrCacheServiceRequest賦值,再通過(guò) 〈Invoke〉進(jìn)行調(diào)用。這個(gè)Web服務(wù)的輸入?yún)?shù)中包含的應(yīng)該是策略檢索之后得到的策略, 其返回值應(yīng)該是boolean類型的值,表示是否在Cache中檢索到對(duì)應(yīng)于策略的屬性。d)緊接著AttrCacheService的是一個(gè)<If>分支結(jié)構(gòu),根據(jù)Cache中屬性檢索 的結(jié)果來(lái)執(zhí)行不同的后續(xù)流程。如果檢索到了屬性,可以直接進(jìn)行下一輪While循環(huán),否 則得話,必須通過(guò)一個(gè)執(zhí)行序列,來(lái)調(diào)用AttrRetrieveService在其他地方進(jìn)行屬性檢 索。這個(gè)AttrRetrieveService可以根據(jù)用戶的不同選擇,在磁盤或者其他地方進(jìn)行屬性 檢索。它的實(shí)現(xiàn)也是一個(gè)BPEL流程,在后面會(huì)對(duì)該流程進(jìn)行詳細(xì)介紹,這里只把它作為 一個(gè)普通的Web服務(wù)來(lái)調(diào)用。對(duì)這個(gè)檢索服務(wù)的調(diào)用是通過(guò)〈Assign〉對(duì)輸入?yún)?shù)進(jìn)行 賦值,通過(guò)〈Invoke〉進(jìn)行調(diào)用的。AttrRetrieveService的輸入?yún)?shù)和返回值類型都與 AttrCacheService是相同的。輸入?yún)?shù)為一條策略,返回值為boolean類型,表示是否檢索 到屬性。e)若檢索到屬性,則進(jìn)行下一輪while循環(huán),否則,根據(jù)具體的策略決定是進(jìn)行下 一輪循環(huán),還是直接退出流程。3.執(zhí)行〈Assign〉任務(wù),將授權(quán)評(píng)估結(jié)果賦值到 AuthorizationEvaluation-Proce ssResponse<Reply>AuthorizationEvaluationProcess 白勺ijfffi#, 完成這個(gè)流程。在AuthorizationEvaluationProcess 中,用至lj兩個(gè)Web月艮務(wù)PolRetrieveService 和AttrRetrieveService是基于BPEL的執(zhí)行流程,下面將對(duì)其內(nèi)部實(shí)現(xiàn)進(jìn)行詳細(xì)介紹 PolRetrieveProcess是策略檢索流程,他作為一個(gè)Web服務(wù)構(gòu)件向外提供服務(wù)。流程內(nèi)部 封裝了多個(gè)具體的策略檢索服務(wù)構(gòu)件,能夠根據(jù)系統(tǒng)配置來(lái)決定使用哪一種檢索方式來(lái)檢 索授權(quán)策略。PolRetrieveProcess流程如圖5所示,具體步驟如下1.首先,該過(guò)程通過(guò)一個(gè) 〈Receive〉任務(wù)接受外部調(diào)用者傳入的輸入?yún)?shù),其中應(yīng)該包括用戶名name和需要訪問(wèn)的 資源resource,然后通過(guò)〈Assign〉賦值給具體調(diào)用的策略檢索服務(wù)。這里假定所有的策略 檢索服務(wù)接口是相同的,所以可以統(tǒng)一對(duì)其輸入?yún)?shù)進(jìn)行賦值。否則若有不同的話,也可以 在確定了檢索類型之后,再對(duì)其進(jìn)行賦值。2.在對(duì)輸入?yún)?shù)賦值之后,執(zhí)行一個(gè)〈Pick. . . OnMessage〉任務(wù)。該任務(wù)可以通過(guò) 接受用戶參數(shù),來(lái)決定選擇使用哪種具體的檢索服務(wù)。在這里列舉兩個(gè)服務(wù)作為例子,比如 DB-PolRetrieveService 和 File-PolRetrieveService,前者在數(shù)據(jù)庫(kù)中檢索策略,后者在 文件中檢索策略。檢索服務(wù)的返回值應(yīng)該是檢索到的策略,可以用多個(gè)字符串的組合來(lái)表 示一個(gè)策略。3.在得到檢索服務(wù)的返回值之后,通過(guò)一個(gè)〈Assign〉任務(wù),將具體檢索服務(wù)返
11回值中的策略賦值到檢索流程的返回值PolRetrieveProcessResponse中,然后再調(diào)用 〈Reply〉任務(wù),將參數(shù)返回給其調(diào)用者,流程結(jié)束。AttrRetrieveService是授權(quán)屬性檢索流程,它作為一個(gè)Web服務(wù)構(gòu)件對(duì)外提供 服務(wù),流程內(nèi)部是使用具體的屬性檢索服務(wù)構(gòu)件實(shí)現(xiàn),封裝了多個(gè)不同類型的具體屬性檢 索服務(wù)構(gòu)件,根據(jù)系統(tǒng)配置來(lái)決定使用哪一個(gè)進(jìn)行屬性檢索。AttrRetrieveService流程如圖6所示,具體步驟如下1.首先也是通過(guò) 〈Receive〉接受外部調(diào)用者傳入的參數(shù),輸入?yún)?shù)中應(yīng)該包括需要為其檢索屬性的策略,可 以用多個(gè)字符串的組合來(lái)表示這個(gè)策略。在得到輸入?yún)?shù)之后,將其賦值給具體的屬性檢 索服務(wù)。根據(jù)不同的系統(tǒng),具體的屬性檢索服務(wù)也是不盡相同的,但是在這里假定其具有相 同的對(duì)外接口,所以可以統(tǒng)一對(duì)其進(jìn)行賦值。如果接口不一致,那么可以將賦值過(guò)程下移到 確定了具體的屬性檢索服務(wù)之后再進(jìn)行。2.然后使用一個(gè)〈Pick. . . OnMessage)任務(wù)來(lái)根據(jù)用戶提供的信息,選擇具體的 屬性檢索服務(wù)。這里可以列舉幾個(gè)不同的屬性檢索服務(wù),例如DB-AttrRetrieveService, Ldap-AttrRetrieveService, Sensor-RetrieveService。同樣,對(duì)于不同的環(huán)境禾口系統(tǒng),也 可以使用其他不同的屬性檢索服務(wù)。這些服務(wù)都是通過(guò)〈Invoke〉任務(wù)進(jìn)行的同步調(diào)用。每 個(gè)服務(wù)的輸入?yún)?shù)都應(yīng)該包含要檢索屬性的策略,而且都應(yīng)該提供檢索結(jié)果的返回值。3. AttrRetrieveProcess流程使用〈Assign〉將具體檢索服務(wù)的返回值賦值到自 己的返回值A(chǔ)ttrRetrieveProcessResponse中,再通過(guò)<R印ly>任務(wù)返回給其調(diào)用者,終止 整個(gè)流程。最后給出一個(gè)基于BPEL的業(yè)務(wù)集成建模過(guò)程,包括以下步驟a)從已有的應(yīng)用 業(yè)務(wù)中提取出安全訪問(wèn)業(yè)務(wù)流程;b)將業(yè)務(wù)流程按照流程先后順序依次分解為認(rèn)證、訪問(wèn) 控制、審計(jì)三個(gè)安全處理過(guò)程;c)安全訪問(wèn)業(yè)務(wù)通過(guò)BPEL-receive模塊接收用戶對(duì)于安 全訪問(wèn)業(yè)務(wù)流程的調(diào)用請(qǐng)求;其中,業(yè)務(wù)流程中的認(rèn)證處理過(guò)程負(fù)責(zé)解決用戶認(rèn)證、跨域認(rèn) 證以及認(rèn)證斷言發(fā)布等問(wèn)題,它主要包括以下幾個(gè)步驟d)執(zhí)行BPEL-Assign指令設(shè)定認(rèn) 證狀態(tài)獲取服務(wù)請(qǐng)求信息中的用戶名name字段;e)執(zhí)行BPEL-Invoke指令同步調(diào)用認(rèn)證 狀態(tài)獲取服務(wù),并根據(jù)返回的Response信息,調(diào)用BPEL-If指令判定任務(wù),如果是已認(rèn)證, 則跳過(guò)以下認(rèn)證步驟,直接進(jìn)入訪問(wèn)控制服務(wù)流程;如果未認(rèn)證,則繼續(xù)以下步驟;f)執(zhí) 行BPEL-Assign指令設(shè)定認(rèn)證域選擇服務(wù)請(qǐng)求信息;g)執(zhí)行BPEL-Invoke指令同步調(diào)用 認(rèn)證域選擇服務(wù)為用戶提供所屬認(rèn)證域選擇,并獲取選擇結(jié)果;h)執(zhí)行BPEL-Assign指令 設(shè)定所屬域的認(rèn)證服務(wù)請(qǐng)求信息;i)執(zhí)行BPEL-Invoke指令調(diào)用所屬域的認(rèn)證服務(wù),然后 與用戶交互,獲取認(rèn)證方式、用戶認(rèn)證信息(證書、用戶名和口令等),并執(zhí)行BPEL-Assign 指令設(shè)定具體的認(rèn)證方式的服務(wù)請(qǐng)求信息;j)接著執(zhí)行BPEL-Pick. . . OnMessage指令任 務(wù),根據(jù)認(rèn)證方式執(zhí)行BPEL-Invoke指令調(diào)用口令認(rèn)證服務(wù)、證書認(rèn)證服務(wù)、基于身份的 認(rèn)證服務(wù)或者是令牌認(rèn)證服務(wù),最后將認(rèn)證域、認(rèn)證方式、用戶假名、認(rèn)證結(jié)果等信息返回 本地域認(rèn)證處理流程;k)本地域認(rèn)證處理流程調(diào)用BPEL-If指令判定任務(wù),如果用戶是外 域用戶,則先執(zhí)行BPEL-Assign指令設(shè)定身份聯(lián)合服務(wù)請(qǐng)求信息,然后執(zhí)行BPEL-Invoke 指令調(diào)用身份聯(lián)合服務(wù),最后從身份聯(lián)合服務(wù)返回值中獲取用戶假名等相關(guān)信息;1)執(zhí) 行BPEL-Assign指令設(shè)定認(rèn)證斷言服務(wù)請(qǐng)求信息,然后執(zhí)行BPEL-Invoke指令調(diào)用認(rèn)證 斷言服務(wù)獲取用戶認(rèn)證狀態(tài)信息,最后從認(rèn)證斷言服務(wù)返回值中獲取認(rèn)證斷言,認(rèn)證處理流程結(jié)束;訪問(wèn)控制處理過(guò)程負(fù)責(zé)解決用戶授權(quán)、訪問(wèn)控制判定等問(wèn)題,它主要包括 以下幾個(gè)步驟m)執(zhí)行BPEL-Assign指令設(shè)定授權(quán)評(píng)估服務(wù)請(qǐng)求信息,主要包括用戶名 name、訪問(wèn)資源resource、認(rèn)證斷言等;η)執(zhí)行BPEL-While指令循環(huán)處理策略集中的策 略,直到所有策略都被處理完畢;ο)執(zhí)行BPEL-Assign指令設(shè)定策略緩存服務(wù)請(qǐng)求信息, 然后執(zhí)行BPEL-Invoke指令調(diào)用策略緩存服務(wù)返回當(dāng)前緩存的策略,并根據(jù)查詢結(jié)果執(zhí) 行BPEL-If指令任務(wù),如果未找到策略,則調(diào)用策略獲取服務(wù)查詢策略,如果找到策略, 則直接查詢用戶屬性;P)執(zhí)行BPEL-Assign指令設(shè)定策略獲取服務(wù)請(qǐng)求信息,主要包括 用戶名name、訪問(wèn)資源resource等,然后執(zhí)行BPEL-Invoke指令調(diào)用策略獲取服務(wù),接 著執(zhí)行BPEL-Pick. . . OnMessage指令任務(wù)根據(jù)服務(wù)配置選擇數(shù)據(jù)庫(kù)策略獲取服務(wù)或者 文件策略獲取服務(wù),最后從策略獲取服務(wù)返回值中獲取匹配此次訪問(wèn)請(qǐng)求的策略;q)執(zhí) 行BPEL-Assign指令設(shè)定屬性緩存服務(wù)請(qǐng)求信息,然后執(zhí)行BPEL-Invoke指令調(diào)用屬性 緩存服務(wù)返回當(dāng)前緩存的屬性,并根據(jù)查詢結(jié)果執(zhí)行BPEL-If指令任務(wù),如果未找到屬 性,則調(diào)用屬性獲取服務(wù)查詢屬性,如果找到策略,則直接根據(jù)匹配策略和用戶屬性信息 進(jìn)行訪問(wèn)控制判定;r)執(zhí)行BPEL-Assign指令設(shè)定屬性獲取服務(wù)請(qǐng)求信息,主要包括用 戶名name、訪問(wèn)資源resource等,然后執(zhí)行BPEL-Invoke指令調(diào)用策略獲取服務(wù),接著執(zhí) 行BPEL-Pick. . . OnMessage指令任務(wù)根據(jù)服務(wù)配置和匹配策略選擇數(shù)據(jù)庫(kù)屬性獲取服務(wù)、 LDAP屬性獲取服務(wù)或者感知器屬性獲取服務(wù),最后從屬性獲取服務(wù)返回值中獲取匹配此 次訪問(wèn)請(qǐng)求的屬性值;s)根據(jù)匹配策略和用戶屬性值進(jìn)行訪問(wèn)控制判定,根據(jù)判定結(jié)果執(zhí) 行BPEL-Assign指令任務(wù)設(shè)定授權(quán)評(píng)估服務(wù)返回信息;審計(jì)處理過(guò)程負(fù)責(zé)解決用戶訪問(wèn)記 錄、審計(jì)日志過(guò)濾等問(wèn)題,它主要包括以下幾個(gè)步驟t)執(zhí)行BPEL-Assign指令任務(wù)設(shè)定審 計(jì)記錄服務(wù)請(qǐng)求信息,主要包括但不僅限于用戶標(biāo)識(shí)(用戶名,假名ID)、認(rèn)證域、訪問(wèn)資 源標(biāo)識(shí)、訪問(wèn)操作(添力Π、刪除、瀏覽等)、訪問(wèn)結(jié)果、訪問(wèn)時(shí)間等;u)執(zhí)行BPEL-Invoke指令 異步調(diào)用審計(jì)記錄服務(wù),調(diào)用完成之后,需要一個(gè)BPEL-receive任務(wù),來(lái)接受審計(jì)記錄服 務(wù)的返回值;ν)通過(guò)BPEL-Assign指令設(shè)定安全訪問(wèn)響應(yīng)信息,主要包括認(rèn)證結(jié)果、訪問(wèn)控 制結(jié)果、訪問(wèn)資源resource等,最后通過(guò)BPEL-R印ly,將值返回給其調(diào)用者,完成整個(gè)安全 業(yè)務(wù)訪問(wèn)流程;w)根據(jù)上述認(rèn)證、訪問(wèn)控制、審計(jì)流程對(duì)相關(guān)服務(wù)進(jìn)行集成得到身份認(rèn)證 服務(wù)、訪問(wèn)控制服務(wù)、審計(jì)服務(wù),此時(shí)這些服務(wù)沒有實(shí)際的功能實(shí)現(xiàn),具體的功能實(shí)現(xiàn)通過(guò) 信息安全共性構(gòu)件來(lái)實(shí)現(xiàn)。
使用的流程說(shuō)明
明 說(shuō) 件 構(gòu)
務(wù)
艮 月
b e W
的 用 使
BPEL活動(dòng)模塊功能說(shuō)明
權(quán)利要求
一種基于BPEL的安全訪問(wèn)業(yè)務(wù)集成建模方法,其步驟包括1)從已有的應(yīng)用業(yè)務(wù)中提取出安全訪問(wèn)業(yè)務(wù),按照安全處理過(guò)程依次包括安全認(rèn)證流程、授權(quán)與訪問(wèn)控制流程、審計(jì)與責(zé)任認(rèn)定流程,并且通過(guò)集成的Web服務(wù)構(gòu)件提供安全訪問(wèn)業(yè)務(wù)流程需要實(shí)現(xiàn)的功能;2)安全訪問(wèn)業(yè)務(wù)通過(guò)BPEL receive模塊接收用戶對(duì)于安全訪問(wèn)業(yè)務(wù)流程的調(diào)用請(qǐng)求,通過(guò)BPEL Assign模塊設(shè)定認(rèn)證狀態(tài)獲取服務(wù)構(gòu)件的輸入?yún)?shù)變量,通過(guò)BPEL Invoke模塊,調(diào)用認(rèn)證狀態(tài)獲取服務(wù)構(gòu)件,查看用戶的認(rèn)證狀態(tài);3)對(duì)經(jīng)過(guò)認(rèn)證的用戶,通過(guò)BPEL Assign模塊設(shè)定認(rèn)證斷言服務(wù)構(gòu)件的輸入?yún)?shù)變量,然后通過(guò)BPEL Invoke模塊調(diào)用認(rèn)證斷言服務(wù)構(gòu)件為認(rèn)證結(jié)果生成一個(gè)斷言,最后從認(rèn)證斷言服務(wù)構(gòu)件的返回值中獲取認(rèn)證斷言,結(jié)束認(rèn)證處理流程;4)通過(guò)BPEL Assign模塊設(shè)定授權(quán)評(píng)估服務(wù)構(gòu)件的輸入?yún)?shù)變量,通過(guò)BPEL Invoke模塊調(diào)用授權(quán)評(píng)估服務(wù)構(gòu)件,用來(lái)評(píng)估可否對(duì)用戶訪問(wèn)請(qǐng)求授權(quán);5)通過(guò)BPEL Assign模塊設(shè)定審計(jì)記錄服務(wù)構(gòu)件的輸入?yún)?shù)變量,通過(guò)BPEL Invoke模塊異步調(diào)用審計(jì)記錄服務(wù)構(gòu)件;通過(guò)BPEL receive模塊,接受審計(jì)記錄服務(wù)構(gòu)件的返回值;6)通過(guò)BPEL Assign模塊設(shè)定安全訪問(wèn)業(yè)務(wù)流程的輸出參數(shù)變量,通過(guò)BPEL Reply模塊,將值返回給安全訪問(wèn)業(yè)務(wù)調(diào)用者,完成整個(gè)安全訪問(wèn)業(yè)務(wù)集成建模。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟3)對(duì)未經(jīng)認(rèn)證的先進(jìn)行本地認(rèn)證, 其步驟包括2-1)通過(guò)BPEL-Invoke模塊同步調(diào)用認(rèn)證域選擇服務(wù),獲取用戶所屬域;2-2)通過(guò)BPEL-Assign模塊設(shè)定用戶所屬域,通過(guò)BPEL-Invoke模塊同步調(diào)用用戶所 屬域上的認(rèn)證服務(wù);2-3)認(rèn)證服務(wù)通過(guò)BPEL-Pick. . . OnMessage模塊根據(jù)用戶選擇的認(rèn)證方式,通過(guò) BPEL-Invoke調(diào)用認(rèn)證服務(wù)構(gòu)件,并獲取認(rèn)證結(jié)果。
3.如權(quán)利要求2所述的方法,其特征在于,所述步驟2-1)獲取用戶所屬域?yàn)橥庥?,通過(guò) BPEL-Invoke調(diào)用身份聯(lián)合服務(wù)獲取用戶假名。
4.如權(quán)利要求2所述的方法,其特征在于,所述認(rèn)證服務(wù)構(gòu)件包括口令認(rèn)證服務(wù)、證 書認(rèn)證服務(wù)、基于身份的認(rèn)證服務(wù)和令牌認(rèn)證服務(wù)。
5.如權(quán)利要求1所述的方法,其特征在于,所述步驟4)通過(guò)BPEL-Assign模塊設(shè)定 輸入?yún)?shù)變量后,通過(guò)BPEL-While模塊循環(huán)處理策略集中的策略,直到所有策略都處理完 畢,具體包括4-1)通過(guò)BPEL-Invoke模塊調(diào)用策略緩存服務(wù),在緩存中檢索所需要的策略;4-2)如果檢索到策略,通過(guò)BPEL-Invoke模塊調(diào)用屬性緩存服務(wù),在緩存中檢索所需 要的屬性;4-3)如果檢索到屬性,根據(jù)策略和屬性值信息進(jìn)行訪問(wèn)控制判定,返回判定結(jié)果,訪問(wèn) 控制處理流程結(jié)束。
6.如權(quán)利要求5所述的方法,其特征在于,所述步驟4-2)如果沒有檢索到策略,通過(guò) BPEL-Invoke模塊調(diào)用策略獲取服務(wù),接著通過(guò)BPEL-Pick. . . OnMessage模塊,根據(jù)系統(tǒng)配 置選擇策略獲取服務(wù),獲取匹配的策略。
7.如權(quán)利要求5所述的方法,其特征在于,所述步驟4-3)如果沒有檢索到屬性,通過(guò) BPEL-Invoke模塊調(diào)用屬性獲取服務(wù),接著通過(guò)BPEL-Pick. . . OnMessage模塊,根據(jù)系統(tǒng)配 置選擇屬性獲取服務(wù),獲取匹配的屬性值。
8.如權(quán)利要求6所述的方法,其特征在于,所述策略獲取服務(wù)包括數(shù)據(jù)庫(kù)策略獲取服 務(wù)或者文件略獲取服務(wù)。
9.如權(quán)利要求7所述的方法,其特征在于,所述屬性獲取服務(wù)包括數(shù)據(jù)庫(kù)屬性獲取服 務(wù)、LDAP屬性獲取服務(wù)或者感知器屬性獲取服務(wù)。
全文摘要
本發(fā)明提供了一種安全訪問(wèn)業(yè)務(wù)集成建模方法,屬于信息安全技術(shù)領(lǐng)域,該方法針對(duì)系統(tǒng)中的安全訪問(wèn)業(yè)務(wù),將安全訪問(wèn)業(yè)務(wù)分為了認(rèn)證流程、訪問(wèn)控制流程和審計(jì)流程,在此基礎(chǔ)上,設(shè)計(jì)了基于BPEL并實(shí)施具體的安全訪問(wèn)業(yè)務(wù)流程,為安全訪問(wèn)業(yè)務(wù)流程中的認(rèn)證、訪問(wèn)控制和審計(jì)的詳細(xì)處理流程,提供了相關(guān)Web Service構(gòu)件實(shí)現(xiàn)具體的功能,通過(guò)BPEL實(shí)現(xiàn)安全訪問(wèn)業(yè)務(wù)與Web Service構(gòu)件的接口以及業(yè)務(wù)與Web Service間的交換信息。業(yè)務(wù)集成者通過(guò)BPEL可以很方便的將已有的信息安全構(gòu)件和Web Service進(jìn)行集成,快速的開發(fā)出一套適合應(yīng)用的安全訪問(wèn)業(yè)務(wù)流程;另外,也可以對(duì)業(yè)務(wù)流程中的Web Service進(jìn)行敏捷的替換,提高開發(fā)效率。
文檔編號(hào)H04L29/06GK101895555SQ20101024150
公開日2010年11月24日 申請(qǐng)日期2010年7月30日 優(yōu)先權(quán)日2010年7月30日
發(fā)明者馮登國(guó), 周濤, 張立武, 朱玉濤, 王雅哲 申請(qǐng)人:中國(guó)科學(xué)院軟件研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
西乌珠穆沁旗| 家居| 高阳县| 辽中县| 新兴县| 布拖县| 修武县| 镶黄旗| 双峰县| 茂名市| 尉犁县| 宿州市| 贵阳市| 海林市| 三明市| 潜江市| 新乐市| 新河县| 定西市| 虎林市| 田东县| 樟树市| 重庆市| 陕西省| 青神县| 梨树县| 融水| 中宁县| 二连浩特市| 延津县| 翁牛特旗| 巧家县| 湖北省| 高尔夫| 吉安市| 黄大仙区| 云南省| 新宁县| 潮安县| 温宿县| 芮城县|