已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
救限管理組件詛:s p r i n g 框架下的設(shè)計(jì)與實(shí)現(xiàn) 中文摘要 訪問(wèn)控制是信息安全保障機(jī)制的核心內(nèi)容,是實(shí)現(xiàn)數(shù)據(jù)保密性和完 整性機(jī)制的主要手段。 本文首先介紹了訪問(wèn)控制的現(xiàn)狀,隨之總結(jié)自主訪問(wèn)控制和強(qiáng)制訪 問(wèn)控制兩種傳統(tǒng)訪問(wèn)控制方法的不足,然后研究分析基于角色的訪問(wèn)控 制( r b a c ) 技術(shù)。r b a c 通過(guò)分配和取消角色來(lái)完成用戶權(quán)限的授予 和取消,實(shí)現(xiàn)了用戶與訪問(wèn)權(quán)限的邏輯分離,極大的方便了權(quán)限管理。 本文圍繞權(quán)限管理組件的設(shè)計(jì)及實(shí)現(xiàn),首先分析權(quán)限管理的需求, 接著設(shè)計(jì)一跨平臺(tái)、可復(fù)用性高、可維護(hù)性好、授權(quán)靈活的權(quán)限管理組 件,然后在s p r i n g 框架下開(kāi)發(fā)實(shí)現(xiàn)。持久層用h i b e r n a t e ;所有對(duì)數(shù)據(jù) 源的訪問(wèn)用數(shù)據(jù)訪問(wèn)對(duì)象來(lái)抽象和封裝,這樣就將底層數(shù)據(jù)訪問(wèn)邏輯與 業(yè)務(wù)邏輯分離開(kāi):業(yè)務(wù)層中使用聲明式事務(wù)管理優(yōu)化數(shù)據(jù)操作、提高組 件的效率;且提供服務(wù)定位器供外部應(yīng)用程序使用。最后用一個(gè)具體的 應(yīng)用項(xiàng)目來(lái)進(jìn)一步驗(yàn)證該組件的有效性和可復(fù)用性。 關(guān)鍵詞:r b a c 、權(quán)限管理、組件、s p r i n g 、h i b e r n a t e 作者:趙國(guó)輝 指導(dǎo)老師:孫涌 a b s t r a c a b s t r a c t t h ea c c e s sc o n t r o l si st h ek e yc o n t e n to ft h es e c u r i t ym e c h a n i s mo ft h e i n f o r m a t i o ns a f e t y ,i ti sm a i nm e a n st h a t r e a l i z e st h em e c h a n i s mo ft h e p r i v a c ya n dt h ei n t e g r a l i t yo f t h ed a t a t h i st h e s i si n t r o d u c e st h ec u r r e n ts i t u a t i o no fa c c e s sc o n t r o l ,t h e n a n a l y z e s t h e d i s a d v a n t a g e s o fd a c ( d i s c r e t i o n a r ya c c e s sc o n t r 0 1 ) a n d m a c ( m a n d a t o r ya c c e s sc o n t r 0 1 ) r b a c ( r o l e - b a s e da c c e s sc o n t r 0 1 ) f i n i s h e s g r a n t i n g a n dc a n c e l l a t i o no fu s e r s a u t h o r i t yt h r o u g ha s s i g n i n g a n d c a n c e l l i n gt h er o l e ,s ou s e r sa n dp e r m i s s i o n sa r es e p a r a t e dl o g i c a l l y t h i st h e s i s sk e yp o i n ti st h ed e s i g na n di m p l e m e n to ft h ea u t h o r i t y m a n a g e m e n tc o m p o n e n t f i r s t l y , a n a l y z et h ed e m a n do ft h ea u t h o r i t y m a n a g e m e n t ,t h e nd e s i g na na u t h o r i t ym a n a g e m e n tc o m p o n e n t ,w h i c hc a l l s u p p o r tm a n yp l a t f o r m ,r e u s eh i g h l y , h a v ee f f e c t i v em a i n t e n a n c e ,h a v e f l e x i b l ea u t h o r i t y , a n dr e a l i z ei tb a s e do ns p r i n gf r a m e w o r k t h e p e r s i s t e n c e l a y e ru s e sh i b e m a t e ,d a oa b s t r a c ta n de n c a p s u l a t et h eo p e r a t i o no fd a t a s o u r c e ,t h ed e t a i lo fd a t as o u r c ea n db u s i n e s sl o g i cl a y e ra r et o t a l l ys e p a r a t e d , f h eb u s i n e s sl a y e ru s e sd e c l a r i n gt r a n s a c t i o nm a n a g e m e n tt oo p t i m i z et h e o p e r a t i o no fd a t a ,i m p r o v et h ee f f i c i e n c yo ft h ec o m p o n e n t ,a n do f f e r s e r v i c el o c a t o rf o rt h eo u t s i d ea p p l i c a t i o np r o g r a mt ou s e v e i l f yt h ev a l i d i t y a n dt h er e u s a b i l i t yo f t h i sc o m p o n e n tw i t ha l la p p l i c a t i o np r o j e c t f i n a l l y k e y w o r d :r b a c ,a u t h o r i t ym a n a g e m e n t ,c o m p o n e n t ,s p r i n g ,h i b e r n a t e w r i t t e nb yz h a og u o h u i s u p e r v i s e db ys u ny o n g 救耀管理組件垂:s p r i n g 稚架下的設(shè)計(jì)與實(shí)現(xiàn) 第一章緒論 信息技術(shù)滲透到各行各業(yè),加速了社會(huì)向信息社會(huì)發(fā)展。各種信息 系統(tǒng)給人們的生活、工作帶來(lái)了便利的同時(shí),信息安全問(wèn)題也接踵而至。 而且信息安全觸及的不僅僅是個(gè)人和企業(yè)利益,在更高層面,它還涉及 政府和國(guó)家的安全。 為此,國(guó)際標(biāo)準(zhǔn)化組織i s o 頒布了計(jì)算機(jī)信息系統(tǒng)互連標(biāo)準(zhǔn)設(shè)計(jì)標(biāo)準(zhǔn) i s 0 7 4 9 8 2 標(biāo)準(zhǔn)【”( 我國(guó)將其作為g b t 9 3 8 7 2 標(biāo)準(zhǔn)) 。該標(biāo)準(zhǔn)定義了五大類(lèi) 安全服務(wù):身份認(rèn)證服務(wù)、訪問(wèn)控制服務(wù)、數(shù)據(jù)保密性服務(wù)、數(shù)據(jù)完整 性服務(wù)、不可否認(rèn)服務(wù)。 1 1 研究背景 訪問(wèn)控制作為信息系統(tǒng)安全的重要功能構(gòu)件,其主要目的是對(duì)抗涉 及計(jì)算機(jī)或通信系統(tǒng)非授權(quán)操作的威脅。這些威脅可以被細(xì)分為非授權(quán) 使用、泄露、修改、破壞和拒絕服務(wù)等。 信息系統(tǒng)中所有可控制的資源均可抽象為客體或?qū)ο? o b j e c t ) 。對(duì) 客體實(shí)施操作的實(shí)體稱(chēng)為主體( s u b j e c t ) ,主體對(duì)客體所實(shí)施的操作需要 授權(quán)。這些授權(quán)對(duì)于主體可以表示為訪問(wèn)權(quán)限,而對(duì)于客體則可表示為 訪問(wèn)模式,訪問(wèn)權(quán)限是訪問(wèn)模式的一個(gè)子集。訪問(wèn)控制用于限定主體在 信息系統(tǒng)內(nèi)對(duì)客體所允許執(zhí)行的操作。于是用戶在通過(guò)了鑒別之后,還 要通過(guò)訪問(wèn)控制,才能在信息系統(tǒng)內(nèi)執(zhí)行特定的操作。 訪問(wèn)控制是為了限制訪問(wèn)主體對(duì)訪問(wèn)客體的訪問(wèn)權(quán)限,從而使計(jì)算 機(jī)系統(tǒng)在合法范圍內(nèi)使用。訪問(wèn)控制機(jī)制決定用戶及代表一定用戶利益 的程序能做什么,及做到什么程度。訪問(wèn)控制是信息安全保障機(jī)制的核 心內(nèi)容,它是實(shí)現(xiàn)數(shù)據(jù)保密性和完整性機(jī)制的主要手段。 1 2 研究現(xiàn)狀 當(dāng)今最著名的美國(guó)計(jì)算機(jī)安全標(biāo)準(zhǔn)是可信計(jì)算機(jī)系統(tǒng)評(píng)估標(biāo)準(zhǔn)| 2 j ( t c s e c ,t r u s t e dc o m p u t e rs y s t e me v a l u a t i o nc r i t e r i a ) 。其中一個(gè)內(nèi)容就 是要阻止未被授權(quán)而測(cè)覽機(jī)密信息。t c s e c 規(guī)定了兩個(gè)訪問(wèn)控制類(lèi)型: 自主訪問(wèn)控$ l j ( d a c ,d i s c r e t i o n a r y a c c e s sc o n t r 0 1 ) 和強(qiáng)制訪問(wèn)控制( m a c 第一營(yíng)緒論投限管理組件往s p r i n g 框梨下的設(shè)計(jì)與實(shí)現(xiàn) m a n d a t o r ya c c e s sc o n t r 0 1 ) 。 1 2 1 自主訪問(wèn)控制 自主訪問(wèn)控制【3 】是指如果某一主體是某一客體的擁有者,那么他對(duì) 誰(shuí)有權(quán)訪問(wèn)這個(gè)客體以及以什么樣的權(quán)限訪問(wèn),可以完全隨意設(shè)置。自 主訪問(wèn)控制中,用戶可以針對(duì)被保護(hù)對(duì)象制定自己的保護(hù)策略: 每個(gè)主體擁有一個(gè)用戶名并屬于一個(gè)組或具有一個(gè)角色。 每個(gè)客體都擁有一個(gè)限定主體對(duì)其訪問(wèn)權(quán)限的訪問(wèn)控制列表( a c l , a c c e s sc o n t r o ll i s t ) 。 每次訪問(wèn)發(fā)生時(shí)都會(huì)基于訪問(wèn)控制列表檢查用戶標(biāo)志以實(shí)現(xiàn)對(duì)其 訪問(wèn)權(quán)限的控制。 由于自主訪問(wèn)控制通過(guò)訪問(wèn)控制列表來(lái)限定哪些主體針對(duì)哪些客體 可以執(zhí)行什么操作。如此將可以非常靈活地對(duì)策略進(jìn)行調(diào)整。由于其易 用性與可擴(kuò)展性,自主訪問(wèn)控制機(jī)制經(jīng)常被用于商業(yè)和政府的安全需要, 以及單級(jí)軍事應(yīng)用。大多數(shù)系統(tǒng)僅基于自主訪問(wèn)控制機(jī)制來(lái)實(shí)現(xiàn)訪問(wèn)控 制,如主流操作系統(tǒng)( w i n d o w sn ts e r v e r , u n i x 系統(tǒng)1 ,防火墻( a c l s ) 等。 自主訪問(wèn)控制的的缺點(diǎn)是:信息比較容易擴(kuò)散、不易管理。譬如:甲 把關(guān)于文件f 的訪問(wèn)賦給乙,但無(wú)法控制乙是否把這種權(quán)限賦給其它人: 另外,自主訪問(wèn)控制無(wú)法抵御特洛伊木馬的攻擊,特洛伊木馬是嵌入在 合法應(yīng)用程序中的一段以竊取或破壞信息為目的的惡意代碼,在自主訪 問(wèn)控制系中,一旦帶有特洛伊木馬的應(yīng)用程序被激活,系統(tǒng)無(wú)法辨別出 哪些是用戶所需的正常操作,哪些操作是特洛伊木馬在起作用,解決辦 法就是通過(guò)強(qiáng)加一些不可逾越的訪問(wèn)限制。因此,又提出了一種更強(qiáng)有 力的訪問(wèn)控制手段,即強(qiáng)制訪問(wèn)控制。 1 2 2 強(qiáng)制訪問(wèn)控制 強(qiáng)制訪問(wèn)控制4 1 通過(guò)無(wú)法回避的存取控制來(lái)防止各種直接和間接 的攻擊。在強(qiáng)制訪問(wèn)控制中,系統(tǒng)給主體和客體分配了不同的安全屬性, 這些屬性在組織的安全策略沒(méi)有改變之前是不可能被輕易改變的。系統(tǒng) 權(quán)限管理組件存s p r i n g 框架下的設(shè)計(jì)與實(shí)現(xiàn)笙二。至塹堡 通過(guò)對(duì)主體和客體安全屬性匹配的比較來(lái)確定是否允許訪問(wèn)繼續(xù)進(jìn)行。 用戶以及代表用戶的程序進(jìn)程等都不能以任何方式修改自身或任何客 體的安全屬性。顯然用戶無(wú)權(quán)將任何數(shù)據(jù)資源,哪怕是屬于自己的數(shù)據(jù) 資源的訪問(wèn)權(quán)“贈(zèng)送”給其他用戶,因此就不能簡(jiǎn)單的分配數(shù)據(jù)的訪問(wèn) 權(quán)了。 強(qiáng)制訪問(wèn)控制的經(jīng)典代表是貝爾拉帕( b e l l l a p a d u l a ) 模型【5 】,其核 心思想是在系統(tǒng)中設(shè)置多個(gè)安全等級(jí),安全等級(jí)中的主體和客體都按照 各自的作用、所處的范圍和等級(jí)特性進(jìn)行分級(jí),并要求系統(tǒng)中所有的存 取操作必須遵守模型給出的保護(hù)信息安全的規(guī)則,低安全級(jí)別的主體不 能直接或間接的獲取高安全級(jí)別的客體信息。為了保持系統(tǒng)穩(wěn)定,在 m a c 模型中規(guī)定除了安全級(jí)別的管理員以外,誰(shuí)都不能改變系統(tǒng)中客 體和主體的安全標(biāo)識(shí)。 強(qiáng)制訪問(wèn)控制適用于用戶和客體分為多級(jí)安全級(jí)別的運(yùn)行環(huán)境,它 提供了基于標(biāo)識(shí)的高級(jí)安全認(rèn)證,對(duì)于諸如特洛伊木馬之類(lèi)的問(wèn)題提供 了某種類(lèi)型的保護(hù),但也有不足和缺點(diǎn)。 強(qiáng)制訪問(wèn)控制的不足主要表現(xiàn)在兩個(gè)方面:應(yīng)用領(lǐng)域比較窄,使用 不靈活,一般只用于軍方等具有明顯的等級(jí)觀念的行業(yè)或領(lǐng)域,在經(jīng)濟(jì) 領(lǐng)域中,m a c 的應(yīng)用并不是很多;完整性方面控制不夠,它重點(diǎn)強(qiáng)調(diào)信 息的向高安全級(jí)別的方向流動(dòng),對(duì)高安全級(jí)別信息的完整性保護(hù)強(qiáng)調(diào)不 夠。 現(xiàn)如今人們?cè)趍 a c 基礎(chǔ)上提出基于角色的訪問(wèn)控制( r b a c , r o l e - b a s e da c c e s sc o n t r 0 1 ) ,它是一種強(qiáng)制訪問(wèn)控制形式,其策略是根據(jù)用 戶在組織內(nèi)部的角色制定的,但它不是基于多級(jí)安全需求;用戶不能任 意的將訪問(wèn)權(quán)限傳遞給其他用戶,這是r b a c 和d a c 之間最基本的不同。 1 2 3 基于角色的訪問(wèn)控制 在r b a c 中,在用戶( u s e r ) 和訪問(wèn)權(quán)限( p e m i s s i o n ) 之間引入角色( t o l e ) 的概念,用戶與特定的一個(gè)或多個(gè)角色相關(guān)聯(lián),角色同一個(gè)或多個(gè)訪問(wèn) 權(quán)限相關(guān)聯(lián),角色可以根據(jù)實(shí)際的工作需要生成或取消,而且登錄到系 統(tǒng)中的用戶可以根據(jù)自己需要來(lái)動(dòng)態(tài)激活自己擁有的角色。除此之外, 角色之間、權(quán)限之間、角色和權(quán)限之間定義了一些關(guān)系,比如繼承關(guān)系, 第一囂緒論救齦管理組件在s p r i n g 框架下的設(shè)計(jì)與實(shí)現(xiàn) 而且也可以按需要定義各種約束條件,比如:定義出納和會(huì)計(jì)兩個(gè)角色 為互斥角色,則這兩角色不能分配給一個(gè)用戶。 基于角色訪問(wèn)控制模型是目前國(guó)際上流行的先進(jìn)的安全訪問(wèn)控制方 法。它通過(guò)分配和取消角色來(lái)完成用戶權(quán)限的授予和取消,并且提供角 色分配規(guī)則。安全管理人員根據(jù)需要定義各種角色,并設(shè)置合適的訪問(wèn) 權(quán)限,而用戶根據(jù)其責(zé)任和資歷再被指派為不同的角色 6 j 。這樣,整個(gè)訪 問(wèn)控制過(guò)程就分成兩個(gè)部分,即訪問(wèn)權(quán)限與角色相關(guān)聯(lián),角色與用戶關(guān) 聯(lián),從而實(shí)現(xiàn)了用戶與訪問(wèn)權(quán)限的邏輯分離。 由于實(shí)現(xiàn)了用戶與訪問(wèn)權(quán)限的邏輯分離,基于角色的策略極大的方 便r 權(quán)限管理。例如,如果一個(gè)用戶的職位發(fā)生變化,只要將用戶當(dāng)前 的角色關(guān)聯(lián)去掉,加入代表新職務(wù)或新任務(wù)的角色關(guān)聯(lián)即可。 研究表明,角色權(quán)限之間的變化比角色用戶關(guān)系之間的變化相對(duì)要 慢得多,并且給用戶分配角色不需要很多技術(shù),可以由行政管理人員來(lái) 執(zhí)行;而給角色配置權(quán)限的工作比較復(fù)雜,需要一定的技術(shù),可以由專(zhuān) 門(mén)的技術(shù)人員來(lái)承擔(dān),但是不允許他們擁有給用戶分配角色的權(quán)限,這 與現(xiàn)實(shí)中的情況正好一致?;诮巧L問(wèn)控制可以很好的描述角色層次 關(guān)系,實(shí)現(xiàn)最小特權(quán)原則和職責(zé)分離原則【7 j 。因此我們選取基于角色的訪 問(wèn)控制作為我們研究的重點(diǎn)。 1 3 本文的研究?jī)?nèi)容和組織結(jié)構(gòu) 本論文的后續(xù)章節(jié)按如下方式組織: 第二章基于角色的訪問(wèn)控制:研究基于角色訪問(wèn)控制的參考模型及 其中的層次關(guān)系和約束條件,并給出以集合論為基礎(chǔ)的一個(gè)數(shù)學(xué)模型。 第三章權(quán)限管理組件的設(shè)計(jì):分析權(quán)限管理組件的需求,設(shè)計(jì)一 個(gè)可以靈活授權(quán)的權(quán)限管理組件和該組件的開(kāi)發(fā)體系結(jié)構(gòu),實(shí)現(xiàn)了組件 的跨平臺(tái)性,提高了組件的可復(fù)用性和可維護(hù)性。 第四章權(quán)限管理組件的實(shí)現(xiàn):用s p r i n g 這個(gè)2 0 0 3 年新推出的j 2 e e 框架開(kāi)發(fā)實(shí)現(xiàn)該組件,組件的持久層由h i b e r n a t e 來(lái)完成,再用數(shù)據(jù)訪問(wèn) 對(duì)象抽象和封裝對(duì)數(shù)據(jù)源的訪問(wèn),然后在業(yè)務(wù)層中用s p r i n g 來(lái)管理 h i b e r n a t es e s s i o n 、事務(wù)處理和業(yè)務(wù)服務(wù)類(lèi)等,并且提供服務(wù)定位器供外 部應(yīng)用程序使用。 權(quán)限管理組件在s p 打n g 框架下的設(shè)汁與實(shí)現(xiàn) 第毫塑堡 第五章應(yīng)用實(shí)例:概要的描述了使用該組件的一個(gè)具體的應(yīng)用項(xiàng) 目,并實(shí)現(xiàn)組件的服務(wù)定位器,使基于s t r u t s 框架的表示層方便的使用該 組件服務(wù)定位器提供的服務(wù),從而進(jìn)一步驗(yàn)證組件的可復(fù)用性及有效性。 第六章總結(jié)與展望:對(duì)本文工作加以總結(jié)并展望了今后需要研究和 改進(jìn)的方向。 望二塞苧三塑魚(yú)塑墮塑堡型 堅(jiān)堡笪堡塑! 壟! 竺! ! 墨堡鯊! 竺壁望:蘭蘭坐 第二章基于角色的訪問(wèn)控制 r b a c 系統(tǒng)模型在7 0 年代就有人提出,9 0 年代在r a v i s a n d h u 等人的提 倡和推動(dòng)下又有了很大的發(fā)展。它有多種描述方式,區(qū)別在于約束描述 療式的不同,但其本質(zhì)是一致的。其中的n i s tr b a c 模型,是一個(gè)比較 成熟和標(biāo)準(zhǔn)的模型。它是f 1 n i s t ( n a t i o n a li n s t i t u t eo f s t a n d a r d sa n d f e c h n o l o g y ) 組織中的d a v i d f f e r r a i o l o 等總結(jié)提出來(lái)的。 在r b a c 社區(qū)的不斷努力下,r b a c 在2 0 0 4 年2 月被美國(guó)國(guó)家標(biāo)準(zhǔn)委 員會(huì)( a n s i ,a m e r i c a nn a t i o n a ls t a n d a r d si n s t i t u t e ) 和i t 國(guó)際標(biāo)準(zhǔn)委員會(huì) ( i n c i t s ,c o m m i t t e ef o ri n f o r m a t i o nt e c h n o l o g ys t a n d a r d s ) 接納為a n s i i n c i t s3 5 9 2 2 0 4 標(biāo)準(zhǔn)。 r b a c 標(biāo)準(zhǔn)包括兩個(gè)主要的部分:r b a c 的參考模型和r b a c 的功能 描述。砌j a c 的參考模型定義了r b a c 的基本語(yǔ)義和基本元素集合,并通 過(guò)集合論給出了一套r b a c 的數(shù)學(xué)模型。r b a c 的功能的描述定義了 r b a c 系統(tǒng)必須的特性。下面主要研究分析r b a c 的參考模型1 8 】 2 1 核心r b a c 圖2 i核, i 二, r b a c 圖 在圖2 1 中給出了核- , r b a c 構(gòu)成。核心r b a c 由五個(gè)基本要素構(gòu)成。 即用p ( u s e r s ) 、角色( r o l e s ) 、對(duì)象( o b j e c t s ) 、操作( o p e r a t i o n s ) 、許可 ( p e r m i s s i o n s ) 。 用戶( u ) 代表人,但也可以是一臺(tái)機(jī)器,a g e n t ,或其他任何智能型物 品。 角色( r ) 表示一個(gè)工作職責(zé),該職責(zé)可以關(guān)聯(lián)一些關(guān)于權(quán)力利責(zé)任的 語(yǔ)義。 極限管理組件在s p f i n g 框架下的設(shè)計(jì)與實(shí)現(xiàn) 對(duì)象也就是平時(shí)所說(shuō)的資源,任何訪問(wèn)機(jī)制都是為了保護(hù)系統(tǒng)的資 源。對(duì)象可能包括文件,目錄,數(shù)據(jù)庫(kù)的表、行、字段,甚至于磁盤(pán)空 間,打印機(jī),c p u 周期等。 操作是程序可執(zhí)行的反映,被用戶調(diào)用和執(zhí)行。操作的類(lèi)型取決于 實(shí)現(xiàn)系統(tǒng)的類(lèi)型。例如文件系統(tǒng)可能的操作有讀、寫(xiě)、執(zhí)行等,數(shù)據(jù)庫(kù) 系統(tǒng)則可能有創(chuàng)建、查詢、修改、刪除等。 許可是對(duì)在一個(gè)或多個(gè)對(duì)象上執(zhí)行操作的權(quán)限。一條新聞、刪除, 都不是權(quán)限,只有對(duì)新聞的刪除才是權(quán)限。另外,r b a c 標(biāo)準(zhǔn)中定義的權(quán) 限是正向權(quán)限( 正向授權(quán)在開(kāi)始時(shí)假定主體沒(méi)有任何權(quán)限,然后根據(jù)需 要授予權(quán)限,適合于權(quán)限要求嚴(yán)格的系統(tǒng)) ,但是并沒(méi)有禁止負(fù)向權(quán)限 ( 負(fù)向授權(quán)在開(kāi)始時(shí)假定主體有所有權(quán)限,然后將某些特殊權(quán)限收回) , 因此也可以自己實(shí)現(xiàn)。 核心r b a c 主要是用戶、角色、權(quán)限三者之間的關(guān)系,分別是用戶 指派( u a ,u s e ra s s i g n m e m ) 和授權(quán)指派( p a ,p e r m i s s i o na s s i g n m e m ) 。 個(gè) 用戶可以被賦予多個(gè)角色,一個(gè)角色也可以被賦予多個(gè)用戶,用戶和角 色之間是多對(duì)多的關(guān)系。同樣,一個(gè)角色可以擁有多個(gè)權(quán)限,一個(gè)權(quán)限 也可以被賦予多個(gè)角色,角色和權(quán)限之間也是多對(duì)多的關(guān)系。訪問(wèn)權(quán)限 與角色相關(guān)聯(lián),角色再與用戶關(guān)聯(lián),這樣通過(guò)分配和取消角色來(lái)完成用 戶權(quán)限的授予和取消,從而實(shí)現(xiàn)了用戶與訪問(wèn)權(quán)限的邏輯分離,極大的 方便了權(quán)限管理。 會(huì)話( s e s s i o n ) 在核心r b a c 中是一個(gè)比較隱晦的元素。標(biāo)準(zhǔn)上說(shuō)一個(gè) 會(huì)話就是一個(gè)映射,一個(gè)用戶到多個(gè)角色的映射。當(dāng)一個(gè)用戶激活他所 有角色的一個(gè)子集的時(shí)候,建立一個(gè)會(huì)話。每個(gè)會(huì)話和單個(gè)用戶關(guān)聯(lián), 并且每個(gè)用戶可以關(guān)聯(lián)到一個(gè)或多個(gè)會(huì)話。 這里的會(huì)話與我們平常所說(shuō)的w e bs e r v e r 中會(huì)話不同,當(dāng)一個(gè), j 戶 執(zhí)行一段過(guò)程或動(dòng)作的時(shí)候,就建立了一個(gè)會(huì)話。舉例來(lái)說(shuō),用戶遞交 一個(gè)刪除新聞的請(qǐng)求,驗(yàn)證權(quán)限,系統(tǒng)刪除該新聞,返回結(jié)果。這個(gè)過(guò) 程勢(shì)必用到相關(guān)的角色,這里用到的角色是所有角色的子集。這段過(guò)程 就稱(chēng)為一個(gè)會(huì)話。 在r b a c 模型的存取控制系統(tǒng)中,每個(gè)用戶進(jìn)入系統(tǒng)時(shí),就得到了一 個(gè)會(huì)話,每個(gè)會(huì)話都是動(dòng)態(tài)產(chǎn)生的,從屬于一個(gè)用戶,只要靜態(tài)定義過(guò) 這些角色與該用戶的關(guān)系,會(huì)話就根據(jù)用戶的要求負(fù)責(zé)將它所代表的1 _ j 簍三蘭莖主壟壘望墮塑絲型 堡堡篁型型蘭蘭壟塑:! 矍堡墼! 塑壟生! 壅盥 戶映射到多個(gè)角色。一個(gè)會(huì)話可能激活的角色是該用戶的全部角色的 個(gè)二f 集。對(duì)于該用戶而言,在一個(gè)會(huì)話內(nèi)可以獲得全部被激活的角色所 代表的授權(quán),這樣的安全機(jī)制可以得到的好處是顯然的。例如,統(tǒng)一用 戶在進(jìn)入系統(tǒng)時(shí)打開(kāi)適當(dāng)?shù)臅?huì)話就可以以最小的系統(tǒng)代價(jià)得到最靈活的 系統(tǒng)安全服務(wù)功能。在工作站環(huán)境下,一個(gè)用戶還可以同時(shí)打開(kāi)多個(gè)會(huì) 話,每個(gè)會(huì)話置于一個(gè)窗口內(nèi),用戶獲得非常大的機(jī)動(dòng)靈活性,同時(shí)又 獲得可靠的數(shù)據(jù)安全,因?yàn)橄到y(tǒng)可以方便地限制安全級(jí)別較低的活動(dòng)不 會(huì)打開(kāi)一個(gè)安全級(jí)別較高的會(huì)話。因?yàn)橐肓藭?huì)話概念,使得在一個(gè)系 統(tǒng)中并存兩個(gè)以上存取控制機(jī)制的靈活性也大大提高了。角色和會(huì)話的 設(shè)置帶來(lái)的好處是容易實(shí)施最小特權(quán)原則,即在一個(gè)成熟的安全系統(tǒng)內(nèi) 部應(yīng)當(dāng)絕不會(huì)給予用戶以超過(guò)執(zhí)行任務(wù)所需2 ( o e s 。o b s ) 個(gè)特權(quán)以外的特權(quán)。 核心r b a c 的形式定義如下: 定義2 1 核, d , r b a c 的組成包括下列幾個(gè)部分: u s e r s ,r o l e s ,o p s 以及o b s ( 用戶,角色,操作和對(duì)象) u a _ c u s e r s x u s e r s ,u a 是用戶到角色的指派的多對(duì)多的關(guān)系。 指派用戶:( r :r o l e s ) 一2 一,角色瘴0 一個(gè)用戶集合的映射。形式 地:a s s i g n e du s e r s ( r ) = u u s e r s ( u ,r ) u a ) p r m s = 2 ( o p s ”b s ) ,授權(quán)的集合。 p a c _ p e r m s r o l e s ,p a 是授權(quán)到角色的多對(duì)多的關(guān)系。 a s s i g n e d,角色r到一個(gè)授權(quán)集合的映_permissions(r:roles)-*2p” 射。形式地:a s s i g n e d _ p e r m i s s i o n ( r ) = p p r m s i ( p ,r ) ep a ) o p ( p :p r m s ) - - - - o p c _ o p s ) ,授權(quán)到操作的映射,給出與授權(quán)p 相關(guān) 的操作集合。 o b 0 :p e m s ) - - - ,( o b _ _ _ o b s ) ,授權(quán)到對(duì)象的映射,給出與授權(quán)p 相關(guān)的 對(duì)象集合。 s e s s l 0 n s = 會(huì)話的集合。 u s e rs e s s i o n s ( u :u s e r s ) - - - 2 ,用戶u 到一個(gè)會(huì)話集合的映射。 s e s s i o n 2“,會(huì)話s到一個(gè)角色集合的映射。_roles(s:sessions)-+ 形式地:s e s s i o nr o l e s ( s , ) r e r o l e s 一( s e s s i o n ( ) r ) u s e r s u a a v a i ls e s s i o nj ) e r m s ( s :s e s s i o n s ) - - - 2 p ,一個(gè)用戶在一個(gè)會(huì)話巾能夠 獲得地授權(quán)集合= u a s s i g n e dp e r m i s s i o n ( r ) 敬般管理組件在s p 打n g 框架下的設(shè)計(jì),實(shí)現(xiàn) 第二章基于角色豹訪問(wèn)控制 2 2 層次r b a c ( 1 l h ) 角色層次 圖2 2 層次r b a c 圖 角色層次關(guān)系是r b a c 模型的一個(gè)關(guān)鍵方面,層次r b a c 的結(jié)構(gòu)如圖 2 2 所示。角色層次關(guān)系是一種反映一個(gè)組織中權(quán)力和責(zé)任的自然構(gòu)造角 色方法,它定義了角色之間繼承的關(guān)系。如圖2 3 a 2 3 c 1 9 1 所示。 產(chǎn)晶 柏二 入夕弋 第一孽基于角色的訪問(wèn)控制 投煨管理維件在s p r i n g 框架下的設(shè)計(jì)與實(shí)現(xiàn) 產(chǎn)品v 穰師1 產(chǎn)描工絮:二夕程師 工稷舜1 工程師2 | 工程部 圖2 3 c 格 所謂繼承指的是,如果角色r 2 中所有的權(quán)限都包含在r 1 的權(quán)限中,就 稱(chēng)為角色r l 繼承了r 2 。對(duì)于一些分布式環(huán)境的r b a c 的實(shí)現(xiàn)而言,角色的 權(quán)限管理并沒(méi)有被集中管理,但角色繼承是被集中管理的。對(duì)于這些系 統(tǒng)來(lái)說(shuō),角色的層次關(guān)系根據(jù)用戶之間的聯(lián)系定義為:如果被授予角色r 1 的所有用戶也是被授予角色r 2 的用戶,那么角色r 1 包含角色r 2 。用戶包含 關(guān)系表示r 1 的一個(gè)用戶至少擁有r 2 的所有權(quán)限,但是權(quán)限在r l * d r 2 之間的 繼承并不包括任何的用戶分配。 角色繼承用于解決復(fù)雜組織機(jī)構(gòu)之間的權(quán)限關(guān)系,它是一種很自然 的對(duì)組織機(jī)構(gòu)層次中權(quán)限和責(zé)任的映射。例如:總經(jīng)理一部門(mén)經(jīng)理一程 序員,角色繼承方向和用戶的關(guān)系方向是相反的,即權(quán)限最小的在頂端, 程序員一部門(mén)經(jīng)理一總經(jīng)理。 角色的層次關(guān)系包括兩種類(lèi)型:一般性角色層次關(guān)系和限制性角色 層次關(guān)系。限制性層次關(guān)系簡(jiǎn)化了一般性層次關(guān)系,它規(guī)定角色可以有 多個(gè)角色繼承者,但只能從一個(gè)角色繼承而來(lái)。我們先來(lái)對(duì)一般性層次 二是系做出定義: 定義2 2 :g e n e r a lr o l eh i e r a r c h i e s - r i d - r ( p ,r ) p a ) 。 一般性角色層次關(guān)系支持多重繼承的概念,即可以從兩個(gè)或更多的 角色中繼承權(quán)限同時(shí)繼承用戶集合。多重繼承體現(xiàn)了很重要的層次屬性; 限制性層次關(guān)系中的角色被限定為只能由一個(gè)角色繼承而來(lái)。雖然限制 性層次關(guān)系不支持多重繼承,但是它使得核心r b a c 的管理更清晰。 模型中使用r l 卜卜r 2 來(lái)表示r 2 為r l 的直接繼承者,且1 r l 與r 2 之間不存在 其他的角色。這樣限制性層次關(guān)系即可得到下面的定義: 定義2 3 :l i m i t e dr o l eh i e r a r c h i e s 對(duì)定義2 2 有如下約束: v r ,r l ,r 2 e r o l e s ,( r r 1 ) a ( r r 2 ) j r l = r 2 。 假設(shè)有一個(gè)會(huì)計(jì)的角色使用這種限制性的層次關(guān)系,如圖2 4 所示。 圖中雙橢圓代表用戶,單橢圓代表角色,角色只能從一個(gè)角色繼承而來(lái), 但是可以擁有多個(gè)繼承者a c c o u n t i n g 這個(gè)角色有:a c c t r e c , a u d i t i n g ,c a s h i e r ,b i l l i n g 四個(gè)繼承者,a c c t r e c 的繼承者a c c t r e c s p v 只能從 a c c t r e c 這一個(gè)角色繼承??梢钥吹剑@種限制關(guān)系只是限制了角色的繼 承,用戶仍然能繼承多個(gè)角色的權(quán)限。 第二章基于角色的訪問(wèn)控制 投齦管理組件在s p n n g 框槳下的設(shè)計(jì)l 孑望胤 2 3 約束r b a c 圖2 4 會(huì)計(jì)角色 有約束條件的r b a c 是在r b a c 模型中加入了責(zé)權(quán)分離,責(zé)權(quán)分離可 以防止用戶超越他們職位的授權(quán)層次,加強(qiáng)組織內(nèi)的安全性。 作為一個(gè)安全準(zhǔn)則,責(zé)權(quán)分離已在商業(yè)、工業(yè)、政府部門(mén)廣泛應(yīng)用, 它的目的是確保一個(gè)組織內(nèi)由于不同個(gè)體的勾結(jié)引起的授權(quán)和委托不能 成功。為了使共謀的可能性最小,有不同技能和不同利益的個(gè)體被分配 給商業(yè)運(yùn)行所必須的單獨(dú)任務(wù)。其動(dòng)機(jī)是確保沒(méi)有多個(gè)蓄意勾結(jié),不會(huì) 發(fā)生欺騙和重大錯(cuò)誤。r b a c 的約束包括靜態(tài)責(zé)權(quán)關(guān)系分離( s t a t i c s e p a r a t i o no f d u t y ) 和動(dòng)態(tài)責(zé)權(quán)關(guān)系分離( d y n a m i cs e p a r a t i o no f d u t y ) 。 2 3 1 靜態(tài)責(zé)權(quán)關(guān)系分離 在角色系統(tǒng)中利益的沖突可能是因?yàn)橐粋€(gè)用戶獲得了沖突角色的權(quán) 限許可。防止這種形式的利益沖突的一個(gè)方法是通過(guò)靜態(tài)責(zé)權(quán)分離,也 就是在給角色分配用戶時(shí)加強(qiáng)約束。這就意味著如果一個(gè)用戶被分配到 一個(gè)角色,那么這個(gè)用戶就被禁止分配到互斥的角色。例如,出納和會(huì) 計(jì)是兩個(gè)互相排斥的角色,則一個(gè)用戶分配到出納角色,那么他就不能 再被分配會(huì)計(jì)角色。一個(gè)靜態(tài)責(zé)權(quán)分離能夠集中描述并同意在具體角色 上實(shí)施。從方針觀點(diǎn)來(lái)看,靜態(tài)約束關(guān)系提供一個(gè)加強(qiáng)利益間沖突的強(qiáng) 有力的方法和在r b a c 模型組件集合上的其它分離原則。靜態(tài)約束般將 約束條件設(shè)置在有潛力破壞較高級(jí)別組織的責(zé)權(quán)分離方針的管理操作 杖限管理組件在s p d n g 框架下的設(shè)計(jì)與實(shí)現(xiàn) 第二章基十角色的訪問(wèn)控制 i :。一句話,責(zé)權(quán)分離作為一。個(gè)安全準(zhǔn)則,基本的目的是通過(guò)分散任務(wù) 和聯(lián)合權(quán)力,防止錯(cuò)誤發(fā)生。 r b a c 已經(jīng)定義了關(guān)于用戶一角色分配的靜態(tài)責(zé)權(quán)分離( 如:沒(méi)有用 戶能夠同時(shí)分配兩個(gè)在s s d 中定義的角色) 。盡管現(xiàn)實(shí)世界中存在靜態(tài)責(zé) 權(quán)分離的例子,但責(zé)衩分離的定義在兩個(gè)重要方面上還是過(guò)于受限制: 一方面是在靜態(tài)責(zé)權(quán)分離中的角色集合大?。涣硪环矫媸窃谟脩舴峙浣?色有嚴(yán)格限制的角色集合中的角色合并。 如圖2 5 所示,是在有層次關(guān)系的r b a c 靜態(tài)責(zé)權(quán)分離( s s d ) 關(guān)系。 當(dāng)在一個(gè)角色層次關(guān)系的場(chǎng)合應(yīng)用靜態(tài)責(zé)權(quán)分離關(guān)系,特別注意的是確 保用戶的層次關(guān)系并不破壞靜態(tài)責(zé)權(quán)分離的原則。這樣,角色層次關(guān)系 就定義了包括靜態(tài)責(zé)權(quán)分離的約束。為了描述這種潛在的矛盾,我們定 義靜態(tài)責(zé)權(quán)分離是一個(gè)有靜態(tài)責(zé)權(quán)分離聯(lián)系的角色在用戶一角色分配時(shí) 的約束。 圖2 5 在層次r b a c 上的s s d 靜態(tài)責(zé)權(quán)分離的形式定義如下: 定義2 4 :靜態(tài)責(zé)權(quán)分離( s s d l s s d ( 2 “8 ) ,表示在靜態(tài)責(zé)權(quán)分離中的二元組( r s ,n ) 這里每個(gè)r s 為一個(gè)角色集合,n 為一個(gè)大于等于2 的自然數(shù),對(duì)于( r s ,n ) e s s d ,沒(méi)有 個(gè)用戶能分配到角色集合r s 中的n 個(gè)或n 個(gè)以上的角色。形式化為: v ( r s ,n ) s s d ,v t 互坶:l 雉 ja s s i g n e d u s e r s ( r ) = o r e f 定義2 5 :在存在層次關(guān)系中的靜態(tài)責(zé)權(quán)分離 在存在層次關(guān)系中的靜態(tài)責(zé)權(quán)分離的定義是基于授權(quán)用戶而不是分 第,。章基于角色的訪問(wèn)控制 權(quán)限管理組件在s p r i n g 框架下豹設(shè)計(jì),實(shí)州 配用戶的,如下所示: v ( r s ,n ) s s d ,v t 瑚:i t i ”j n a u t h o r i z e d u s e r s ( r ) 2 a ,e f 互3 2 動(dòng)態(tài)責(zé)權(quán)關(guān)系分離 通過(guò)在能被分配到角色集合的用戶上放置約束,靜態(tài)責(zé)權(quán)分離關(guān)系減 少了潛在的對(duì)用戶有用的權(quán)限。像靜態(tài)責(zé)權(quán)分離關(guān)系一樣,動(dòng)態(tài)責(zé)權(quán)分 離的目的也是限制用戶有用的權(quán)限,然而動(dòng)態(tài)責(zé)權(quán)分離關(guān)系與靜態(tài)責(zé)權(quán) 分離關(guān)系不同,是通過(guò)將限制條件加在上下文中進(jìn)行的。s s d 的定義是在 一個(gè)用戶的整個(gè)權(quán)限范圍內(nèi)設(shè)置約束,而模型組件所定義的d s d ,是通 過(guò)在用戶會(huì)話內(nèi)和會(huì)話中能激活的角色上設(shè)置約束,在一個(gè)用戶權(quán)限范 圍內(nèi)限制權(quán)限的可用性。d s d 特性提供了對(duì)最小權(quán)限原則的擴(kuò)展支持, 每個(gè)用戶在不同時(shí)刻根據(jù)所扮演的角色,有不同級(jí)別的權(quán)限。這些特性 確保超過(guò)他們需要執(zhí)行任務(wù)時(shí)問(wèn)的權(quán)限并不存在。最小權(quán)限經(jīng)常表現(xiàn)為 實(shí)時(shí)回收職責(zé)( t i m e l yr e v o c a t i o no f t r u s t ) 。沒(méi)有動(dòng)態(tài)責(zé)權(quán)分離,動(dòng)態(tài)回收權(quán) 限是一個(gè)更復(fù)雜的問(wèn)題。 靜態(tài)責(zé)權(quán)分離關(guān)系描述了在一個(gè)用戶分配一個(gè)角色的時(shí)候,標(biāo)識(shí)潛在 的利益沖突問(wèn)題的能力,動(dòng)態(tài)責(zé)權(quán)分離允許一個(gè)用戶分配兩個(gè)或兩個(gè)以 上的角色,這些角色在單獨(dú)執(zhí)行時(shí),并不會(huì)產(chǎn)生利益沖突,但是提供 個(gè)策略來(lái)解決在這些角色同時(shí)激活時(shí)所引起的沖突。例如:一個(gè)用戶可 以被授權(quán)為出納角色和出納監(jiān)督角色,其中出納監(jiān)督角色是核實(shí)出納打 開(kāi)保險(xiǎn)箱。如果一個(gè)扮演出納角色的人想轉(zhuǎn)換為出納監(jiān)督者角色,r b a c 將要求用戶退出出納角色,在扮演出納監(jiān)督角色之前必須關(guān)上保險(xiǎn)箱。 只要相同的用戶不允許同時(shí)扮演這些角色,沖突就不會(huì)發(fā)生。盡管這個(gè) 效果可以通過(guò)靜態(tài)責(zé)權(quán)分離關(guān)系來(lái)實(shí)現(xiàn),但是動(dòng)態(tài)責(zé)權(quán)分離關(guān)系給企業(yè) 提供了更大的操作靈活性。 我們定義動(dòng)態(tài)責(zé)權(quán)分離關(guān)系是一個(gè)能夠在用戶會(huì)話中被激活的角色 集合上的約束,如圖2 6 所示。 杈硪管璀組件在s p r i n g 框架下的設(shè)計(jì)與實(shí)現(xiàn) 圖2 6 一動(dòng)態(tài)責(zé)權(quán)分離關(guān)系( d s d ) 動(dòng)態(tài)責(zé)權(quán)分離的形式化定義如下: 定義2 6 :動(dòng)態(tài)責(zé)權(quán)分離 d s d ( 2 ?!? ) ,表示在動(dòng)態(tài)責(zé)權(quán)分離中的二元組( r s ,n ) ,這里每個(gè) r s 為一個(gè)角色集合,n 為一個(gè)大于等于2 的自然數(shù),對(duì)于,n ) d s d ,在角 色集合r s 中的n 個(gè)或n 個(gè)以上的角色不可能被同時(shí)激活。形式化為: v r s e 2 舢,l i ,( r s ,囂) d s d月2 , 1 r s l ”,且 v s s e s s i o n s ,v r s e 2 2 0 l 酷,v r o l e s u b j e c t 2 烈?jiàn)?,聆n ,( r s ,仃) d s d , r o l e s u b j e c tc _ r s ,r o l e s u b j e c tc _ s e s s i o n r o l e s ( s ) r o l e s u b j e c l i 月 2 4 本章小結(jié) 本章詳細(xì)的介紹了基于角色訪問(wèn)控制的參考模型,首先給出模型的 結(jié)構(gòu)圖,并進(jìn)行文字描述,接著用形式化語(yǔ)言描述了該模型的所有組成 部分,然后討論基于角色訪問(wèn)控制中的角色層次關(guān)系,包括一般角色層 次關(guān)系和有限制條件的角色層次關(guān)系,最后論述基于角色訪問(wèn)控制的約 束,即責(zé)權(quán)分離關(guān)系約束,分為靜態(tài)責(zé)權(quán)關(guān)系分離和動(dòng)態(tài)責(zé)權(quán)關(guān)系分離 兩種約束。 第= 章權(quán)限管理組件的設(shè)計(jì)權(quán)限管理組件在s p r i n g 框絮下的設(shè)汁1 j 實(shí)現(xiàn) 第三章權(quán)限管理組件的設(shè)計(jì) 上一章研究并分析了基于角色的訪問(wèn)控制技術(shù),根據(jù)企業(yè)信息系統(tǒng) 的特點(diǎn),為了更好的保障系統(tǒng)的安全性,下面將從組件的需求分析、開(kāi) 發(fā)體系結(jié)構(gòu)和訪問(wèn)控制策略等幾方面對(duì)組件的總體設(shè)計(jì)進(jìn)行闡述。 3 1 組件的需求分析 現(xiàn)階段各種管理信息系統(tǒng)使工作人員能在巨大的信息庫(kù)中取到所 需的信息,提高了管理的工作效率,然而在使工作便利化和高效化的同 時(shí)也帶來(lái)了信息的安全性問(wèn)題,即如何保護(hù)信息以防止其非法泄露、修 改或破壞,同時(shí)保證用戶在他們的職權(quán)范圍內(nèi)做相應(yīng)的操作。如公司資 源的訛誤、信息的未授權(quán)泄漏或者失竊,以及被非法篡改都是因?yàn)闆](méi)有 保證信息的機(jī)密性和完整性而引起的。它們不僅破壞了組織的操作,并 有可能涉及到金融、法律、人員安全、個(gè)人隱私和國(guó)家機(jī)密方面,而造 成重大的損失。 訪問(wèn)控制是信息安全保障機(jī)制的核心內(nèi)容,它是實(shí)現(xiàn)數(shù)據(jù)保密性和 完整性機(jī)制的主要手段。但是傳統(tǒng)的訪問(wèn)控制:自主型訪問(wèn)控制和強(qiáng)制 型已無(wú)法滿足新系統(tǒng)的需求,因?yàn)閭鹘y(tǒng)安全系統(tǒng)的訪問(wèn)機(jī)制都是對(duì)系統(tǒng) 中的所有用戶進(jìn)行直接的權(quán)限管理,這樣權(quán)限操作復(fù)雜、授權(quán)方式不靈 活,對(duì)日益膨脹的數(shù)據(jù)信息的處理能力有限。 而基于角色的訪問(wèn)控制通過(guò)分配和取消角色來(lái)完成用戶權(quán)限的授 予和取消,實(shí)現(xiàn)了用戶與訪問(wèn)權(quán)限的邏輯分離。這樣極大的方便了權(quán)限 管理?;诮巧L問(wèn)控制還可以很好的描述角色層次關(guān)系,實(shí)現(xiàn)最小特 權(quán)原則和責(zé)權(quán)分離原則。 從根本上講,基于角色的訪問(wèn)控制仍然屬于基于主客體觀點(diǎn)的訪問(wèn) 控制體系i lo j 的范疇。在基于主客體訪問(wèn)控制的觀點(diǎn)中,基本實(shí)體是主體、 客體和權(quán)限,主體通過(guò)權(quán)限獲得對(duì)不同客體的訪問(wèn)能力。這種模式執(zhí)行 的訪問(wèn)控制規(guī)則非常簡(jiǎn)單,可以表述為:如果主體要對(duì)客體進(jìn)行訪問(wèn)操 作,并且主體擁有這個(gè)操作的權(quán)限,那么就允許訪問(wèn)。 這種模式適合對(duì)集中的資源進(jìn)行訪問(wèn)控制,常見(jiàn)于信息集中型應(yīng)用 系統(tǒng),如b s 和c s 應(yīng)用系統(tǒng)。r b a c 的最大優(yōu)勢(shì)是便于授權(quán)管理,它 轂限管理組件在s p r i n g 框架下的設(shè)計(jì)與實(shí)現(xiàn) 適合多種管理模式,比如集中式、分級(jí)式等。 但傳統(tǒng)的權(quán)限管理部分都是固化到某應(yīng)用系統(tǒng)中,無(wú)法復(fù)用,造 成了大量重復(fù)性勞動(dòng)。為了提高軟件的復(fù)用性和可維護(hù)性,把權(quán)限管理 部分做成組件,提供一定的權(quán)限管理服務(wù)接口,供其它應(yīng)用程序調(diào)用, 可以節(jié)省不必要的重復(fù)編碼。 3 2 組件的設(shè)計(jì)原則 組件【11 1 是可執(zhí)行軟件的一個(gè)可分離的部分,作為一個(gè)單元來(lái)說(shuō)也是 有意義的,可以與其他組件實(shí)現(xiàn)互操作,需要某種環(huán)境的支持,且只能 通過(guò)組件的接口來(lái)訪問(wèn)。 為了提高組件的可維護(hù)性和可復(fù)用性,應(yīng)采用如下設(shè)計(jì)原則: 1 組件符合一個(gè)整體的概念或框架 定義一個(gè)組件,使它符合一個(gè)整體的概念或框架,這樣做所帶來(lái)的 復(fù)用機(jī)會(huì)比用任意的方式定義的組件復(fù)用機(jī)會(huì)要大的多。 2 組件的設(shè)計(jì)應(yīng)該做到上下文無(wú)關(guān) 組件應(yīng)該這樣設(shè)計(jì),當(dāng)它用于一個(gè)新的上下文環(huán)境中時(shí),不需要把 使用它的組件一起拖過(guò)來(lái)。組件不應(yīng)該知道它自己是如何被使用的,它 提供一組接口和服務(wù),可供所有用戶使用。 3 盡量保持組件中每個(gè)服務(wù)的目標(biāo)單一 最好不要定義一個(gè)服務(wù)來(lái)執(zhí)行附加的處理,目標(biāo)僅僅是為了減少被 調(diào)用的次數(shù)。多重目的服務(wù)也增加了維護(hù)開(kāi)銷(xiāo),因?yàn)槿魏蔚母膭?dòng)都將不 僅影響到要改變的功能,也會(huì)影響到其他被捆綁在一起的功能,這增加 了出錯(cuò)的可能性和測(cè)試的費(fèi)用。 4 組件的服務(wù)接口保持很小 不要為了考慮將來(lái)而加上目前并不需要的參數(shù),因?yàn)槲磥?lái)總是善變 的。 5 對(duì)組件服務(wù)的命名應(yīng)該清楚地表明它所做的事 盡管動(dòng)詞后面接賓語(yǔ)的形式使代碼更好讀,但是賓語(yǔ)后面跟動(dòng)詞讓 我們更能找到相關(guān)的服務(wù),如u s e r m a n a g e 。 扳限管理組件存s p r i n g 框架下的設(shè)計(jì)1 j 實(shí)現(xiàn) 3 3 組件的設(shè)計(jì)目標(biāo) 根據(jù)組件的需求分析和設(shè)計(jì)原則,我們就要實(shí)現(xiàn)組件的如下設(shè)計(jì)目 標(biāo): 1 跨操作系統(tǒng)平臺(tái): 各種應(yīng)用系統(tǒng)存在于各種操作系統(tǒng)平臺(tái)上( o h :w i n d o w s 、u n i x 、 l i n u x 等系統(tǒng)) ,為了使權(quán)限管理組件可以應(yīng)用在不同平臺(tái)的應(yīng)用中,可 以與不同平臺(tái)上的組件進(jìn)行互操作,組件的平臺(tái)無(wú)關(guān)性就成為必備的特 性。 這里我們可以使用j a v a b e a n s 組件模型,由于j a v a 有很好的跨平 臺(tái)性,這樣我們的組件就可以很方便的在各種平臺(tái)之間移植,實(shí)現(xiàn)平臺(tái) 無(wú)關(guān)性。 2 跨關(guān)系數(shù)據(jù)庫(kù)平臺(tái): 各種應(yīng)用系統(tǒng)不僅存在予各種系統(tǒng)平臺(tái)之上,而且后臺(tái)的關(guān)系數(shù)據(jù) 庫(kù)( o r a c l e 、s q ls e r v e r 、m y s q l 等) 也更是千差萬(wàn)別,而權(quán)限管理組件也 需要某種數(shù)據(jù)庫(kù)的支持,為了更好的使組件和各種應(yīng)用系統(tǒng)交互集成, 組件的持久層框架必須能保證組件不用做太大修改就可以支持多種關(guān) 系數(shù)據(jù)庫(kù)平臺(tái)。 這里我們使用數(shù)據(jù)訪問(wèn)對(duì)象( d a o ,d a t aa c c e s so b j e c t ) 模型抽象和 封裝所有對(duì)數(shù)據(jù)源的訪問(wèn),很容易的分開(kāi)數(shù)據(jù)持久邏輯與業(yè)務(wù)邏輯,這 樣當(dāng)數(shù)據(jù)源發(fā)生改變時(shí),業(yè)務(wù)邏輯無(wú)需做任何改動(dòng)。只須改動(dòng)數(shù)據(jù)源配 置,花極少的代價(jià)即可支持多種關(guān)系數(shù)據(jù)庫(kù)。 3 靈活授權(quán)機(jī)制: 每個(gè)企業(yè)根據(jù)企業(yè)自身的特點(diǎn)建立起的應(yīng)用系統(tǒng),權(quán)限管理部分都 有自己不同的特點(diǎn),為了讓權(quán)限管理組件能更好的應(yīng)用到這些系統(tǒng)之 中,必須采用靈活的授權(quán)機(jī)制,才能滿足不同企業(yè)權(quán)限管理方面的需求。 這里我們使用基于角色的訪問(wèn)控制機(jī)制,由于基于角色的訪問(wèn)控制 通過(guò)分配和取消角色來(lái)完成用戶權(quán)限的授予和取消,實(shí)現(xiàn)了用戶與訪問(wèn) 權(quán)限的邏輯分離。這樣極大的方便了權(quán)限管理。而且基于角色訪問(wèn)控制 還可以很好的描述角色層次關(guān)系,實(shí)現(xiàn)最小特權(quán)原則和職責(zé)分離原則。 壬) c 艱管理組件在s p r i n g 框架下的設(shè)計(jì)與實(shí)現(xiàn) 第三章權(quán)跟管理紐件的世計(jì) 3 4 組件開(kāi)發(fā)體系結(jié)構(gòu)設(shè)計(jì) 3 4 1 基礎(chǔ)概念 1 控制反轉(zhuǎn)和依賴注入1 1 2 l 控制反轉(zhuǎn)( i o c ,i n v e r s i o no f c o n t r 0 1 ) ,就是由容器控制程序之問(wèn)的 關(guān)系,而非傳統(tǒng)實(shí)現(xiàn)中,由程序代碼直接操控。這也就是所謂“控制反 轉(zhuǎn)”的概念所在:控制權(quán)由應(yīng)用代碼中轉(zhuǎn)到了外部容器,控制權(quán)的轉(zhuǎn)移, 是所謂反轉(zhuǎn)。 正在業(yè)界為i o ( 2 爭(zhēng)吵不休時(shí),大師級(jí)人物m a r t i nf o w l e r 也站出來(lái)發(fā)話, 以一篇經(jīng)典文章i n v e r s i o no f c o n t r o lc o n t a i n e r sa n dt h ed e p e n d e n c y i n j e c t i o np a t t e r n ) ) 為i o c 正名,這樣,i o c 又獲得了 個(gè)新的名字:“依賴注入( d i 。d e p e n d e n c yi n j e c t i o n ) ”。 相對(duì)i o c 而言,“依賴注入”的確更加準(zhǔn)確的描述了這種古老而又 時(shí)興的設(shè)計(jì)理念。從名字上理解,所謂依賴注入,即組件之間的依賴關(guān) 系由容器在運(yùn)行期決定,形象的來(lái)說(shuō),即由容器動(dòng)態(tài)的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年專(zhuān)業(yè)攝影器材及配件銷(xiāo)售代理合同范本9篇
- 2025年度不良資產(chǎn)債權(quán)轉(zhuǎn)讓與債務(wù)置換法律服務(wù)合同3篇
- 2024計(jì)算機(jī)機(jī)房設(shè)備采購(gòu)合同
- 2025年牛場(chǎng)租賃及糞便處理合同示范文本3篇
- 上海離婚協(xié)議書(shū)范文(2024版)
- 2025年度文化遺址保護(hù)承包經(jīng)營(yíng)權(quán)抵押融資合同3篇
- 2024年道路樓體亮化工程合同
- 2024幼兒園法制副校長(zhǎng)校園法律知識(shí)普及與教育活動(dòng)合同3篇
- 2024年生態(tài)農(nóng)業(yè)用地聯(lián)合出讓競(jìng)買(mǎi)協(xié)議3篇
- 2025年度體育健身場(chǎng)地使用權(quán)轉(zhuǎn)讓及會(huì)員服務(wù)合同2篇
- 物理學(xué)家伽利略課件
- 車(chē)險(xiǎn)理賠全解析
- 陜西省西安市英語(yǔ)中考試卷與參考答案(2025年)
- 中山市2023-2024八年級(jí)上學(xué)期期末考試數(shù)學(xué)試卷
- Unit10l'mten!(練)新概念英語(yǔ)青少版StarterA
- 臨高后水灣開(kāi)放式海洋養(yǎng)殖項(xiàng)目可行性研究報(bào)告
- GB/T 44143-2024科技人才評(píng)價(jià)規(guī)范
- 產(chǎn)業(yè)園區(qū)開(kāi)發(fā)全流程實(shí)操解析
- 流感防治技術(shù)方案
- 羽毛球比賽對(duì)陣表模板
- 對(duì)醫(yī)院領(lǐng)導(dǎo)的批評(píng)意見(jiàn)怎么寫(xiě)更合適范文(6篇)
評(píng)論
0/150
提交評(píng)論