【摘要】根據(jù)訪問控制系統(tǒng)的實(shí)際需求,在可行的統(tǒng)一訪問控制方案的基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了基于角色的統(tǒng)一權(quán)限系統(tǒng),以解決單位內(nèi)部應(yīng)用系統(tǒng)統(tǒng)一而有效的用戶管理和訪問控制。
【關(guān)鍵詞】統(tǒng)一權(quán)限系統(tǒng);基于角色訪問控制;面向服務(wù)
1引言
隨著信息化建設(shè)的逐步深入,校園內(nèi)部、企事業(yè)的信息管理部門所面臨的環(huán)境越來越復(fù)雜。為了滿足不同業(yè)務(wù)部門的需要,投入應(yīng)用了各式各樣的軟件系統(tǒng)。這些系統(tǒng)往往各自獨(dú)立、封閉運(yùn)行。為了保證數(shù)據(jù)的安全,用戶管理、身份認(rèn)證和權(quán)限控制在這些應(yīng)用系統(tǒng)中占有很重要的地位,不同的系統(tǒng)擁有互不兼容的訪問控制模塊。
應(yīng)用集成是消除“信息孤島”、提高信息化效率的關(guān)鍵之一,而網(wǎng)絡(luò)應(yīng)用正從面向?qū)ο蟮募軜?gòu)向面向服務(wù)的架構(gòu)(Service-OrientedArchitecture,SOA)方向發(fā)展。在當(dāng)今以松耦合、跨平臺(tái)、動(dòng)態(tài)集成為特點(diǎn)的新一代分布式計(jì)算環(huán)境中,將單位內(nèi)部不同系統(tǒng)的用戶認(rèn)證和訪問控制模塊剝離出來重新進(jìn)行有效的分析和設(shè)計(jì),為單位內(nèi)的異構(gòu)系統(tǒng)提供統(tǒng)一、集中、有效、安全的訪問控制服務(wù)成為值得研究的課題。
2相關(guān)技術(shù)分析
2.1基于角色的訪問控制模型
基于角色的訪問控制(RBAC)的概念是伴隨著70年代多用戶和多應(yīng)用聯(lián)機(jī)系統(tǒng)不斷發(fā)展而出現(xiàn)的。RBAC作用于應(yīng)用級(jí),在用戶和權(quán)限之間加入角色作為溝通橋梁,如圖1所示。其基本思想是讓權(quán)限與角色相映射,在系統(tǒng)中根據(jù)應(yīng)用的需要?jiǎng)?chuàng)建相應(yīng)的角色,并且將用戶分派到相應(yīng)的角色集合中。利用角色作為**將用戶與權(quán)限聯(lián)系起來,用戶通過獲得適當(dāng)?shù)慕巧玫较鄳?yīng)的權(quán)限?梢钥闯,RBAC實(shí)現(xiàn)了用戶與訪問權(quán)限的邏輯分離,而不是象傳統(tǒng)訪問控制技術(shù)那樣將訪問權(quán)限直接分配給用戶。
圖1基于角色訪問控制關(guān)系圖
將RBAC權(quán)限控制模型應(yīng)用到大型的、結(jié)構(gòu)化的信息系統(tǒng)集成開發(fā)中是非常理想的。
1.角色和角色層次可以很簡(jiǎn)單的就把單位的結(jié)構(gòu)映射到信息系統(tǒng)中,更加直觀,易于應(yīng)用。
2.一旦權(quán)限初始設(shè)置好之后,就不再需要做大的調(diào)整。因?yàn)闄?quán)限是直接與角色相對(duì)應(yīng),而不是用戶。即使單位的人員調(diào)動(dòng)頻繁,但是工作崗位本身卻很少變化。由于權(quán)限是基于工作崗位,而不是基于職員的,所以人員的調(diào)動(dòng)并不會(huì)太多的影響到權(quán)限控制機(jī)制。
3.RBAC本身自然的就支持訪問權(quán)限的委托機(jī)制。比如說科室的負(fù)責(zé)人需要休假,它可以將它所擁有的管理權(quán)限臨時(shí)交給另一個(gè)人代理。只需要簡(jiǎn)單地將系統(tǒng)中的負(fù)責(zé)人這個(gè)角色分配給其他用戶,而無需其他任何多余的操作就能實(shí)現(xiàn)。
以上的這些特點(diǎn)表明RBAC非常適合應(yīng)用于校園內(nèi)、大型的企業(yè)組織中。
2.2Web服務(wù)技術(shù)分析
Web服務(wù)是描述一些操作(利用標(biāo)準(zhǔn)化的XML消息傳遞機(jī)制可以通過網(wǎng)絡(luò)訪問這些操作)的接口。Web服務(wù)使用標(biāo)準(zhǔn)的、規(guī)范的XML概念描述,稱為Web服務(wù)的服務(wù)描述。Web服務(wù)可以單獨(dú)履行一項(xiàng)特定的任務(wù),也可以同其他Web服務(wù)一起用于實(shí)現(xiàn)復(fù)雜的聚集或商業(yè)交易。
Web服務(wù)提供了在不同體系結(jié)構(gòu)下構(gòu)建的系統(tǒng)之間相互提供應(yīng)用接口服務(wù)、數(shù)據(jù)的一種方案。Web服務(wù)技術(shù)的主要目標(biāo)就是在現(xiàn)有各種異種平臺(tái)的基礎(chǔ)上構(gòu)筑一個(gè)通用的平臺(tái)無關(guān)、語(yǔ)言無關(guān)的技術(shù)層,各種不同平臺(tái)之上的應(yīng)用依靠這個(gè)技術(shù)層來實(shí)施彼此的連接和集成。標(biāo)準(zhǔn)的簡(jiǎn)單對(duì)象訪問協(xié)議(SimpleObjectAccessProtocol,SOAP)、HTTP協(xié)議以及可擴(kuò)展標(biāo)記語(yǔ)言(eXtensibleMarkupLanguage,XML)就可以把原本互不相干、各自獨(dú)立的系統(tǒng)服務(wù)整合成一套分布式、自動(dòng)化和智能化的網(wǎng)絡(luò)應(yīng)用。Web服務(wù)不但充分地利用了己有的網(wǎng)絡(luò)資源和開發(fā)資源,還大大減輕了程序員的開發(fā)工作量。傳統(tǒng)的Web應(yīng)用技術(shù)解決如何讓人來使用Web應(yīng)用所提供的服務(wù),而Web服務(wù)則需要解決如何讓計(jì)算機(jī)系統(tǒng)來使用Web應(yīng)用所提供的服務(wù)。
Microsoft.NET平臺(tái)內(nèi)建了對(duì)Web服務(wù)的支持。從.NET框架角度來看,所有組件都可以是Web服務(wù),而Web服務(wù)也是一種組件。.NET框架提取出微軟組件對(duì)象模型(COM)的精華,將它們與松散耦合計(jì)算的概念結(jié)合在一起,生成了強(qiáng)大、高效的Web組件系統(tǒng)。.NET平臺(tái)簡(jiǎn)化了程序員創(chuàng)建Web服務(wù)的操作,而深入集成的安全性則極大地改善了所創(chuàng)建服務(wù)的可靠性和可擴(kuò)展性。論文中所敘述的統(tǒng)一權(quán)限系統(tǒng)就是基于.NET平臺(tái)設(shè)計(jì)開發(fā)的。
3統(tǒng)一權(quán)限系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
3.1總體架構(gòu)
權(quán)限系統(tǒng)的總體結(jié)構(gòu)模型如圖2所示。
完整的統(tǒng)一權(quán)限系統(tǒng)由3個(gè)部分組成:○1用戶管理;○2權(quán)限分配;○3權(quán)限驗(yàn)證。權(quán)限數(shù)據(jù)庫(kù)為關(guān)系型數(shù)據(jù)庫(kù),存放所有的用戶及權(quán)限信息。數(shù)據(jù)庫(kù)可以與Web服務(wù)器放在同一臺(tái)主機(jī)上,也可以由單獨(dú)的數(shù)據(jù)庫(kù)服務(wù)器承擔(dān)。
1.用戶管理面向系統(tǒng)管理人員。它的定義完全從公司的員工考慮,管理著全公司的部門及人員信息。用戶管理模塊還負(fù)責(zé)用戶口令的設(shè)置與修改,用戶口令由用戶個(gè)人掌握,即使是系統(tǒng)管理員也無從知曉。
2.權(quán)限分配是整個(gè)系統(tǒng)的核心,它也是面向系統(tǒng)管理人員的。主要負(fù)責(zé)系統(tǒng)訪問控制策略的設(shè)置,同時(shí)建立與維護(hù)權(quán)限管理系統(tǒng)中的基本元素(諸如用戶、角色、功能項(xiàng)等)。特別當(dāng)應(yīng)用系統(tǒng)的功能發(fā)生變化后,系統(tǒng)管理人員可以根據(jù)需要,隨時(shí)調(diào)整系統(tǒng)的訪問控制策略。
3.權(quán)限驗(yàn)證面向系統(tǒng)開發(fā)人員,主要負(fù)責(zé)權(quán)限的判斷,為系統(tǒng)開發(fā)人員提供編程接口。系統(tǒng)開發(fā)人員進(jìn)行業(yè)務(wù)系統(tǒng)功能設(shè)計(jì)時(shí)在所需要控制的關(guān)鍵點(diǎn)處進(jìn)行調(diào)用,以便確定業(yè)務(wù)的執(zhí)行邏輯。
用戶信息的齊全、正確是進(jìn)行訪問控制策略設(shè)置的基本前提;應(yīng)用系統(tǒng)中用戶具有的訪問權(quán)限則依賴于其在統(tǒng)一權(quán)限系統(tǒng)中所分配的相應(yīng)角色具有的權(quán)限。
圖2權(quán)限系統(tǒng)的總體結(jié)構(gòu)模型
3.2用戶訪問系統(tǒng)的過程
用戶訪問系統(tǒng)的UML協(xié)作圖如圖3所示。
圖3用戶訪問系統(tǒng)的UML協(xié)作圖
用戶訪問系統(tǒng)的流程如下:
1.用戶首先向WEB服務(wù)器提出認(rèn)證請(qǐng)求。
2.WEB服務(wù)器把用戶的認(rèn)證請(qǐng)求轉(zhuǎn)發(fā)給認(rèn)證服務(wù)器。
3.認(rèn)證服務(wù)器在驗(yàn)證了用戶的身份后把認(rèn)證結(jié)果返回給WEB服務(wù)器,若認(rèn)證服務(wù)器返回結(jié)果為認(rèn)證失敗,則WEB服務(wù)器將拒絕為用戶提供下一步服務(wù)。
4.WEB服務(wù)器把認(rèn)證結(jié)果返回給用戶。
5.用戶在身份得到證實(shí)后可向WEB服務(wù)器發(fā)送角色請(qǐng)求,角色請(qǐng)求中應(yīng)該包含能夠唯一標(biāo)識(shí)用戶的信息,即用戶標(biāo)識(shí)(如用戶名)。
6.WEB服務(wù)器把用戶發(fā)來的角色請(qǐng)求轉(zhuǎn)發(fā)給角色服務(wù)器。
7.角色服務(wù)器根據(jù)用戶標(biāo)識(shí)把屬于該用戶的當(dāng)前活動(dòng)角色返回給WEB服務(wù)器。
8.WEB服務(wù)器在對(duì)角色信息進(jìn)行處理后,把角色信息以安全Cookie的形式返回給用戶,詳細(xì)處理過程將在第四章描述。
9.用戶把取得的角色信息保存在自己的機(jī)器中,現(xiàn)在用戶可以向WEB服務(wù)器發(fā)出服務(wù)請(qǐng)求(如瀏覽頁(yè)面,操作,系統(tǒng)管理等)。在發(fā)送請(qǐng)求時(shí),瀏覽器會(huì)自動(dòng)把安全Cookie發(fā)送給WEB服務(wù)器。WEB服務(wù)器在驗(yàn)證用戶角色信息的有效性后,根據(jù)用戶提供的角色信息來控制用戶對(duì)站內(nèi)資源的訪問。
在整個(gè)過程中,用戶只用提交一次認(rèn)證信息。在以后的訪問過程中都由瀏覽器自動(dòng)發(fā)送安全Cookie來為用戶提供身份認(rèn)證。因此,系統(tǒng)的訪問控制過程對(duì)用戶來說是完全透明的。
4小結(jié)
本文在對(duì)訪問控制相關(guān)技術(shù)分析的基礎(chǔ)上,對(duì)統(tǒng)一權(quán)限系統(tǒng)進(jìn)行了總體設(shè)計(jì)。統(tǒng)一權(quán)限系統(tǒng)采用基于角色的訪問控制策略,運(yùn)用Web服務(wù)來包裝對(duì)外接口。系統(tǒng)被分為用戶管理、權(quán)限分配和權(quán)限驗(yàn)證三大模塊。用戶管理負(fù)責(zé)管理人員信息;權(quán)限分配是整個(gè)系統(tǒng)的核心,主要負(fù)責(zé)訪問控制策略的設(shè)置;權(quán)限驗(yàn)證對(duì)外提供服務(wù)接口。統(tǒng)一權(quán)限系統(tǒng)采
轉(zhuǎn)載請(qǐng)注明來自:http://www.jinnzone.com/tongxinlw/1007.html
上一篇:沒有了