王偉,石綏祥,李四海,劉振民,顧云娟
(1. 國家海洋信息中心數(shù)字海洋實(shí)驗(yàn)室,天津 300171;2. 江蘇省海洋與漁業(yè)局信息中心,江蘇 南京 210003)
基于代理機(jī)制的“數(shù)字海洋”授權(quán)模型研究
王偉1,石綏祥1,李四海1,劉振民1,顧云娟2
(1. 國家海洋信息中心數(shù)字海洋實(shí)驗(yàn)室,天津 300171;2. 江蘇省海洋與漁業(yè)局信息中心,江蘇 南京 210003)
“數(shù)字海洋”用戶授權(quán)系統(tǒng)建設(shè)是整個(gè)信息基礎(chǔ)框架構(gòu)建的基礎(chǔ),是實(shí)現(xiàn)框架內(nèi)數(shù)據(jù)與應(yīng)用資源整合的前置條件。在對(duì)框架構(gòu)建授權(quán)需求進(jìn)行深入分析的基礎(chǔ)上,結(jié)合目前網(wǎng)絡(luò)授權(quán)方案的發(fā)展以及基于角色的用戶訪問控制技術(shù),本文給出了用于實(shí)現(xiàn)框架授權(quán)的基于代理機(jī)制的授權(quán)模型,有效解決了節(jié)點(diǎn)用戶授權(quán)的復(fù)雜需求。
數(shù)字海洋;代理;授權(quán);服務(wù)
依據(jù)中國近?!皵?shù)字海洋”信息基礎(chǔ)框架(以下簡稱框架)構(gòu)建總體實(shí)施方案,項(xiàng)目建設(shè)的最終目標(biāo)是要在“數(shù)字海洋”專網(wǎng)的基礎(chǔ)上,實(shí)現(xiàn)國家海洋局局屬單位、沿海省市共 23個(gè)節(jié)點(diǎn)上的各類海洋數(shù)據(jù)與業(yè)務(wù)應(yīng)用的集成與共享。然而,出于對(duì)數(shù)據(jù)與應(yīng)用資源安全性的考慮,運(yùn)行在節(jié)點(diǎn)上的各類系統(tǒng)實(shí)際上都會(huì)有自己相對(duì)獨(dú)立的用戶認(rèn)證和授權(quán)機(jī)制,這使得用戶必須面對(duì)安全機(jī)制的多樣性和異構(gòu)性,從而導(dǎo)致:存放在“數(shù)字海洋”專線網(wǎng)節(jié)點(diǎn)上的數(shù)據(jù)與應(yīng)用資源很難實(shí)現(xiàn)真正意義上的整合與共享,因?yàn)槿绻硞€(gè)節(jié)點(diǎn)欲將自己的某些資源共享,必須要知道其他所有節(jié)點(diǎn)的授權(quán)信息;一個(gè)用戶訪問其他節(jié)點(diǎn)共享資源時(shí),他在節(jié)點(diǎn)安全區(qū)將會(huì)擁有多個(gè)登錄密碼和訪問權(quán)限,因而記住每個(gè)安全區(qū)的密碼成為困難,在實(shí)際操作中也很難實(shí)現(xiàn);節(jié)點(diǎn)在開展各類特色系統(tǒng)開發(fā)的時(shí)候,必須要重復(fù)開發(fā)用戶管理、功能授權(quán)等功能模塊,這在一定程度上沒有很好實(shí)現(xiàn)“數(shù)字海洋”建設(shè)成果的可繼承性與可復(fù)用性,造成開發(fā)資源的浪費(fèi)。
因此,在面向整個(gè)“數(shù)字海洋”各級(jí)節(jié)點(diǎn)整體的分布式系統(tǒng)平臺(tái)內(nèi),需要有一個(gè)統(tǒng)一的、具有較高安全控制能力的用戶認(rèn)證和授權(quán)系統(tǒng),一方面保證數(shù)據(jù)安全和用戶操作方便,另一方面也可完全達(dá)到“數(shù)字海洋”建設(shè)的最終目標(biāo)。針對(duì)“數(shù)字海洋”信息基礎(chǔ)框架構(gòu)建項(xiàng)目的用戶認(rèn)證和授權(quán)問題,在對(duì)目前國內(nèi)外 IT廠商提供的代表性解決方案與技術(shù)進(jìn)行深入研究的基礎(chǔ)上,依據(jù)數(shù)字海洋授權(quán)具體需求,提出了一種基于代理機(jī)制的網(wǎng)格環(huán)境下對(duì)用戶集中認(rèn)證、分散授權(quán)的解決方案,從而實(shí)現(xiàn)了“數(shù)字海洋”集成框架真正意義上的單點(diǎn)登陸。
“數(shù)字海洋”用戶是指一個(gè)可以獨(dú)立訪問集成到“數(shù)字海洋”信息基礎(chǔ)框架中的計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)或者用數(shù)據(jù)表示的其它資源的主體,用戶分布在國家海洋局局屬單位、沿海省市等 23個(gè)節(jié)點(diǎn)上。角色由用戶自行定義,是指一個(gè)組織或任務(wù)中的工作或位置,它代表了一種資格、權(quán)利和責(zé)任。在“數(shù)字海洋”節(jié)點(diǎn)中,每一個(gè)節(jié)點(diǎn)都可以根據(jù)本節(jié)點(diǎn)的具體業(yè)務(wù)需求,指定用于該節(jié)點(diǎn)的用戶角色。根據(jù)用戶業(yè)務(wù)崗位不同,一個(gè)用戶可以擁有多個(gè)角色。
為實(shí)現(xiàn)框架建設(shè)目標(biāo),“數(shù)字海洋”任意節(jié)點(diǎn)上的任何用戶都要放到整體框架中來分析,在整個(gè)框架中由一個(gè)唯一的USERID來標(biāo)識(shí);框架必須為用戶提供一個(gè)統(tǒng)一的入口,采用單點(diǎn)登錄的方式,通過全局登錄界面(Portal)登錄節(jié)點(diǎn)系統(tǒng),能夠通過加密算法驗(yàn)證用戶身份和判斷用戶是否已經(jīng)登錄系統(tǒng),并可通過代理機(jī)構(gòu)來保存用戶的登錄狀態(tài);由于“數(shù)字海洋”節(jié)點(diǎn)職能、對(duì)國家建設(shè)系統(tǒng)的需求、特色系統(tǒng)建設(shè)情況各異,節(jié)點(diǎn)能夠利用國家主中心節(jié)點(diǎn)分配的管理員賬戶進(jìn)行組織機(jī)構(gòu)、角色的定義。機(jī)構(gòu)與角色編號(hào)在數(shù)字海洋全局中也都是唯一的。
在菜單控制方面,框架應(yīng)具有管理節(jié)點(diǎn)各類系統(tǒng)業(yè)務(wù)功能菜單的能力。依據(jù)用戶的角色,用戶在成功登錄系統(tǒng)后,框架中的授權(quán)模型能夠?yàn)楣?jié)點(diǎn)系統(tǒng)提供菜單數(shù)據(jù)信息服務(wù),為用戶加載與之角色相對(duì)應(yīng)的確切菜單元素。
為實(shí)現(xiàn)需求描述中的菜單控制功能,框架中的授權(quán)模型應(yīng)達(dá)到以下幾點(diǎn)具體要求:
a) 為了方便用戶進(jìn)行權(quán)限組織管理,框架中需要建立一張業(yè)務(wù)功能列表。任意節(jié)點(diǎn)中的任一業(yè)務(wù)系統(tǒng)菜單信息,都保存在業(yè)務(wù)功能列表中,這在用戶界面上表示為樹狀分層結(jié)構(gòu)。
b) 業(yè)務(wù)功能模塊以用戶定制菜單來體現(xiàn),仍然采用編號(hào)分層方式,編號(hào)的每兩位為一個(gè)層次。并標(biāo)明一個(gè)層次是子菜單還是業(yè)務(wù)模塊,子菜單只有一種可否被訪問的權(quán)限設(shè)置,業(yè)務(wù)模塊權(quán)限由系統(tǒng)管理員或授權(quán)用戶進(jìn)行設(shè)置。對(duì)每個(gè)業(yè)務(wù)模塊設(shè)置它的對(duì)象控制、記錄增刪改控制和記錄集控制。當(dāng)用戶擁有對(duì)業(yè)務(wù)模塊的某一權(quán)限時(shí),必需對(duì)處于它上級(jí)的子菜單有可被訪問的權(quán)限。刪除某一級(jí)子菜單時(shí)將提示用戶他的下級(jí)菜單與功能模塊都將被刪除掉。
c) 當(dāng)用戶同時(shí)充當(dāng)多個(gè)角色并且權(quán)限重復(fù)時(shí),重復(fù)的權(quán)限僅一次有效,用戶擁有他充當(dāng)?shù)乃薪巧臋?quán)限的并集。
對(duì)象是指應(yīng)用系統(tǒng)窗口中的可視對(duì)象,如菜單項(xiàng)、按鈕、下拉列表框、數(shù)據(jù)編輯控件及數(shù)據(jù)編輯控件的字段等。對(duì)象控制通過角色與用戶授權(quán)來實(shí)現(xiàn),包括對(duì)對(duì)象屬性的控制以及數(shù)據(jù)編輯控件中的數(shù)據(jù)記錄的維護(hù)等。對(duì)象屬性指對(duì)象的使能/禁止、可視/屏蔽;記錄維護(hù)指對(duì)記錄的增加、刪除、修改。
將每個(gè)業(yè)務(wù)模塊可進(jìn)行屬性設(shè)置的對(duì)象由程序員事先設(shè)定或由售后技術(shù)支持工程師指導(dǎo)用戶加入。在系統(tǒng)管理員或授權(quán)用戶進(jìn)行設(shè)置業(yè)務(wù)模塊的各種權(quán)限時(shí),設(shè)置用戶在擁有該業(yè)務(wù)模塊這種權(quán)限時(shí)的對(duì)象屬性。沒有設(shè)置屬性的對(duì)象在保存對(duì)象信息的時(shí)候,用戶權(quán)限信息中不被保存。
通過條件設(shè)置,用戶可以將特定記錄集中的全部或部分記錄與其他用戶共享。因此,框架授權(quán)模型必須能夠?yàn)閿?shù)據(jù)的所有者提供條件設(shè)置功能,確保數(shù)據(jù)只為已授權(quán)的用戶訪問。具體要求如下:
a) 在對(duì)用戶設(shè)置業(yè)務(wù)模塊權(quán)限時(shí),同時(shí)在過濾表中設(shè)置本模塊的數(shù)據(jù)編輯控件的數(shù)據(jù)篩選條件,篩選條件是組成SQL語句的WHERE條件子句迫使當(dāng)前訪問的模塊根據(jù)篩選條件對(duì)數(shù)據(jù)編輯控件的SQL語句進(jìn)行重組,并檢索數(shù)據(jù)。
b) 當(dāng)存在需要從數(shù)據(jù)庫中多個(gè)表取數(shù)據(jù)的情況時(shí),過濾表中存在多條記錄,每一條記錄記錄一個(gè)數(shù)據(jù)編輯控件取數(shù)的篩選條件。
c) SQL語句的WHERE子句的生成與校驗(yàn)可以通過SQL語法分析服務(wù),利用對(duì)象所提供的函數(shù)分析SQL語句,截取WHERE條件子句,校驗(yàn)新組合的SQL語句的合法性。
框架構(gòu)建是在服務(wù)總線的基礎(chǔ)上展開的,基于總線的服務(wù)發(fā)布與獲取都需要進(jìn)行必要的審批與控制。
上述提到的權(quán)限管理內(nèi)容應(yīng)該滿足既可集中管理,也可分散管理的目標(biāo):
a) 權(quán)限管理由系統(tǒng)管理員集中管理,系統(tǒng)管理員工作負(fù)擔(dān)過大,難對(duì)所有節(jié)點(diǎn)、所有崗位的分工有全面和具體的了解。對(duì)權(quán)限做出標(biāo)準(zhǔn)細(xì)致的劃分,對(duì)于“數(shù)字海洋”這樣大型的綜合系統(tǒng)適合于把一部分設(shè)置權(quán)限交由一些比較高級(jí)的用戶來進(jìn)行,有利于各崗位細(xì)致協(xié)調(diào)的工作。這就是權(quán)限的分散管理。
b) 要實(shí)現(xiàn)權(quán)限的分散管理,就須對(duì)授權(quán)模塊進(jìn)行一些授權(quán)管理,這要求整個(gè)系統(tǒng)的授權(quán)安全管理工作要做到細(xì)致,不要出現(xiàn)權(quán)限的漏洞使一些高級(jí)用戶擁有過大的權(quán)限。
c) “數(shù)字海洋”權(quán)限管理采用分級(jí)授權(quán)的方式實(shí)現(xiàn)。所謂分級(jí)授權(quán),是指國家主中心節(jié)點(diǎn)超級(jí)管理員向其他局屬節(jié)點(diǎn)、省級(jí)節(jié)點(diǎn)分配管理員權(quán)限;局屬、省級(jí)節(jié)點(diǎn)進(jìn)一步向市級(jí)節(jié)點(diǎn)分配管理員權(quán)限。任一節(jié)點(diǎn)的管理員不對(duì)節(jié)點(diǎn)內(nèi)部業(yè)務(wù)權(quán)限進(jìn)行分配,而是通過將管理員角色附加到節(jié)點(diǎn)內(nèi)部高級(jí)用戶的形式,來實(shí)現(xiàn)對(duì)節(jié)點(diǎn)具體業(yè)務(wù)權(quán)限的管理。
為了滿足基于網(wǎng)絡(luò)的授權(quán)要求,各大軟件廠商、研究機(jī)構(gòu)都提出了自己的解決方案。微軟提出的Passport方案[1],是由微軟運(yùn)行的一種web服務(wù),是.Net戰(zhàn)略的一部分。借助于瀏覽器Cookie以及URL攜帶認(rèn)證憑證的方式,能夠?qū)崿F(xiàn)用戶一次登錄,就可訪問多個(gè)聯(lián)盟網(wǎng)站的功能。然而,由于 Cookie以及URL攜帶認(rèn)證信息的限制,passport方案雖然能夠解決應(yīng)用系統(tǒng)“用戶是誰”的問題,但對(duì)解決登錄用戶在系統(tǒng)內(nèi)“能做什么”的問題卻顯得無能為力。
基于管理信息系統(tǒng)的要求,研究機(jī)構(gòu)提出了一種“基于角色”的授權(quán)模型(role-based access control,RBAC)。在該模型中,用戶與權(quán)限通過建立用戶與角色的關(guān)系、角色與權(quán)限的關(guān)系聯(lián)系起來,通過分配和取消角色來完成用戶權(quán)限的授予和取消。這樣整個(gè)系統(tǒng)分為兩個(gè)部分,即訪問權(quán)限與角色相關(guān)聯(lián),角色在與用戶關(guān)聯(lián),從而實(shí)現(xiàn)了用戶與訪問權(quán)限的邏輯分離[2,3]。其簡要模型圖如圖1所示。
基于角色的授權(quán)模型解決了Who,What,How問題,即哪一個(gè)用戶(who)對(duì)系統(tǒng)中的什么對(duì)象(what)做如何(How)操作的問題。然而,在“數(shù)字海洋”框架建設(shè)中,部署在節(jié)點(diǎn)的系統(tǒng)是異構(gòu)的,RBAC可以很好的解決一個(gè)節(jié)點(diǎn)的授權(quán)問題,但如果應(yīng)用到整個(gè)“數(shù)字海洋”全局,還不能滿足框架的要求。
圖1 基于角色的授權(quán)模型Fig. 1 Role-based authorization model
由框架對(duì)授權(quán)模型的復(fù)雜需求以及目前授權(quán)方案的研究狀況來看,無論是微軟的passport還是基于角色的授權(quán)模型RBAC都不能很好的解決框架對(duì)授權(quán)的需求。但是,Passport中基于網(wǎng)絡(luò)的服務(wù)授權(quán)模式以及RBAC的靈活性,卻為框架基于代理機(jī)制的授權(quán)模型的研究提供了極為有意義的參考。
代理(Agency)的概念最早由簡森(Jensen)和梅克林(Meckling)于 1976年提出[4],但是主要應(yīng)用在商業(yè)上。代理機(jī)制在商業(yè)上的成功應(yīng)用以及該機(jī)制內(nèi)涵思想的普遍適用性,使得代理理念很快在計(jì)算機(jī)領(lǐng)域得到了廣泛的應(yīng)用。所謂的代理就是利益雙方為達(dá)成某種目的需求,依據(jù)一定的規(guī)約而委托第三方行使一定權(quán)利的行為。
運(yùn)行在“數(shù)字海洋”上的各類系統(tǒng)是異構(gòu)的,有國家建設(shè)的,也有地方依據(jù)本身的特色需求而自行開發(fā)建設(shè)的,如何使這些系統(tǒng)在框架下安全、高效的運(yùn)行,實(shí)現(xiàn)“數(shù)字海洋”框架構(gòu)建的數(shù)據(jù)共享、應(yīng)用共享、服務(wù)海洋決策之目的,首先必須要構(gòu)建一套高效、合理、安全的授權(quán)模型。國家節(jié)點(diǎn)為系統(tǒng)建設(shè)創(chuàng)建用戶管理與授權(quán)的代理,為節(jié)點(diǎn)系統(tǒng)建設(shè)提供包括用戶與角色管理、菜單管理、對(duì)象控制、記錄集控制、服務(wù)控制等代理服務(wù),在底層為實(shí)現(xiàn)框架構(gòu)建目標(biāo)提供基礎(chǔ)保障。
圖2 授權(quán)代理服務(wù)框架示意圖Fig. 2 Diagram of authorized agent service framework
3.2.1 代理框架 借鑒Passport面向服務(wù)的分布式解決方案與基于角色授權(quán)模型的靈活性,“數(shù)字海洋”授權(quán)模型采用集中部署代理,節(jié)點(diǎn)分散定義相結(jié)合的方式,實(shí)現(xiàn)框架的授權(quán)。模型主要包含節(jié)點(diǎn)部門定義、對(duì)象定義、用戶定義、用戶組定義、角色定義、權(quán)限定義、權(quán)限配置、用戶委派、用戶加入到組等軟件構(gòu)件。這些構(gòu)件以服務(wù)的形式,部署在“數(shù)字海洋”主節(jié)點(diǎn)上,供其他各級(jí)節(jié)點(diǎn)管理員用戶調(diào)用。授權(quán)代理服務(wù)發(fā)布功能框架如圖2所示。
授權(quán)代理將信息化建設(shè)中的用戶授權(quán)模塊抽象出來,并以標(biāo)準(zhǔn)的WebService接口的形式,供節(jié)點(diǎn)信息化建設(shè)重用。采用這種方式,可以有效解決“數(shù)字海洋”眾多節(jié)點(diǎn)系統(tǒng)異構(gòu)、需求復(fù)雜而給總集成造成極大困難的問題,通過授權(quán)組件以服務(wù)的形式提供,使得節(jié)點(diǎn)精通業(yè)務(wù)人員能夠自由定義本節(jié)點(diǎn)業(yè)務(wù)系統(tǒng)的授權(quán)邏輯,解決了軟件功能單一與用戶需求多樣性的矛盾,實(shí)現(xiàn)了軟件產(chǎn)品的開發(fā)與用戶需求的無縫結(jié)合。
3.2.2 授權(quán)模型的運(yùn)行 總體上,代理框架分為授權(quán)代理預(yù)定義以及用戶的操作界面動(dòng)態(tài)生成兩個(gè)部分。其中在授權(quán)代理的預(yù)定義中,為用戶產(chǎn)生主體能力表,是授權(quán)模型的核心。授權(quán)模型的運(yùn)行流程如圖3所示。
節(jié)點(diǎn)用戶首先利用授權(quán)代理在代理服務(wù)器上創(chuàng)建節(jié)點(diǎn)的部門信息,在此基礎(chǔ)上完成本部門用戶的創(chuàng)建、可控對(duì)象的定義、角色定義以及角色配權(quán)、用戶委派等操作,其中可控對(duì)象的定義為節(jié)點(diǎn)系統(tǒng)建設(shè)的系統(tǒng)開發(fā)人員。授權(quán)模型依據(jù)用戶的定義數(shù)據(jù)生成節(jié)點(diǎn)用戶的主體能力表,供用戶登錄界面的初始化之用。
集成在“數(shù)字海洋”框架中的任何系統(tǒng),用戶的訪問均需通過統(tǒng)一的入口(Portal)登錄。用戶鑒別機(jī)構(gòu)通過對(duì)用戶提供的用戶名/密碼或者CA證書的甄別,判斷用戶是否是“數(shù)字海洋”框架的合法用戶。如合法,則通過調(diào)用該用戶的主體能力表,在總集成框架內(nèi)形成針對(duì)于該用戶的操作界面,完成該用戶的授權(quán)。
3.2.3 主要功能組件職責(zé) a) 節(jié)點(diǎn)部門定義工具:“數(shù)字海洋”節(jié)點(diǎn)包括局屬節(jié)點(diǎn)、沿海省市等共 23個(gè)節(jié)點(diǎn),為了使節(jié)點(diǎn)間的授權(quán)信息不會(huì)相互影響,造成授權(quán)紊亂,必須要首先進(jìn)行節(jié)點(diǎn)的部門定義。按照行政隸屬以及業(yè)務(wù)指導(dǎo)關(guān)系,數(shù)字海洋節(jié)點(diǎn)可采用樹狀結(jié)構(gòu)進(jìn)行管理,根節(jié)點(diǎn)為國家主節(jié)點(diǎn)。
圖3 基于代理機(jī)制的授權(quán)模型功能框架Fig. 3 Functional framework of agent-based authorization model
授權(quán)模型中的其他構(gòu)件,都是在部門基礎(chǔ)上展開的。比如,可控對(duì)象的定義、用戶的定義、角色的定義等都是針對(duì)于某一個(gè)特定部門的。部門內(nèi)的資源(包括角色、可控對(duì)象)分為公有和私有兩種,標(biāo)有公有屬性的,可以被下級(jí)部門使用,標(biāo)有私有屬性的資源只能為本部門所用。
b) 對(duì)象定義工具:節(jié)點(diǎn)系統(tǒng)中的各種功能模塊、數(shù)據(jù)、界面元素等對(duì)象,依據(jù)節(jié)點(diǎn)的具體業(yè)務(wù)情況,對(duì)象的機(jī)密程度是不一樣的,受到的保護(hù)程度亦有差別。系統(tǒng)中的對(duì)象均由程序員通過主節(jié)點(diǎn)授權(quán)代理提供的對(duì)象定義工具事先定義好,系統(tǒng)也只能控制這些事先已定義好的對(duì)象。因此,對(duì)象定義是整個(gè)系統(tǒng)的核心步驟,直接影響后面的各個(gè)安全控制環(huán)節(jié)。對(duì)象定義由系統(tǒng)開發(fā)程序員進(jìn)行初始化配置,包括如下幾步:
(1) 功能模塊定義:系統(tǒng)中除部分公用的界面、公用功能模塊外,其它均為業(yè)務(wù)功能模塊,是用戶完成各自不同業(yè)務(wù)功能的主要途徑,也是我們安全管理要保護(hù)的重點(diǎn)對(duì)象,所以我們必須對(duì)業(yè)務(wù)功能模塊定義。只有對(duì)功能模塊對(duì)象在代理上進(jìn)行定義,授權(quán)代理才能依據(jù)用戶需要完成用戶業(yè)務(wù)功能菜單的授權(quán)。
(2) 界面元素控制:除了功能模塊菜單要受到控制外,如要控制功能模塊里面的界面元素,這些界面元素也需定義。大部分界面元素均包含有相關(guān)的業(yè)務(wù)功能操作,所以對(duì)相應(yīng)操作的界面元素進(jìn)行定義是有必要的。
(3) 數(shù)據(jù)信息控制:業(yè)務(wù)功能模塊的大部分界面元素是顯示和操作數(shù)據(jù)內(nèi)容的基礎(chǔ),也是用戶對(duì)讀取數(shù)據(jù)和操作數(shù)據(jù)的主要途徑,為了數(shù)據(jù)信息的安全有必要對(duì)這些界面元素的操作數(shù)據(jù)采取安全保密措施。這就需要對(duì)這些界面元素定義相關(guān)的數(shù)據(jù)約束條件。
c) 權(quán)限定義:在定義好系統(tǒng)對(duì)象的前提下,基于不同情況的用戶安全需求,還需要定義不同的訪問類型,也就是要定義對(duì)象的權(quán)限。定義權(quán)限包括對(duì)象訪問控制和數(shù)據(jù)訪問控制兩方面。為了表述方便我們對(duì)權(quán)限用一個(gè)三元組符號(hào)來形式表示為:P(O,T,P),其中O表示訪問對(duì)象;T表示訪問類型;P表示謂詞。表示在謂詞P為真時(shí)對(duì)于對(duì)象O可進(jìn)行T類型的訪問。權(quán)限定義是系統(tǒng)安全管理基礎(chǔ)步驟之一,只有給各種對(duì)象定義好訪問權(quán)限,才能給角色配置權(quán)限,基于角色管理才能成為可能。
d) 角色定義:基于代理機(jī)制的授權(quán)模型吸收了基于角色的訪問控制方法的思想,把對(duì)用戶的授權(quán)分成兩部份,用角色來充當(dāng)用戶行使權(quán)限的中介。這樣,用戶與角色之間以及角色與權(quán)限之間就形成了兩個(gè)多對(duì)多的關(guān)系。授權(quán)代理提供角色定義工具允許用戶根據(jù)自己的需要(職權(quán)、職位以及分擔(dān)的權(quán)利和責(zé)任)定義相應(yīng)的角色。
圖4 角色的繼承Fig. 4 Inheritance of roles
角色之間有相應(yīng)繼承的關(guān)系,當(dāng)一個(gè)角色R1繼承另一個(gè)角色R2時(shí),R1就自動(dòng)擁有了R2公用的訪問權(quán)限。角色繼承關(guān)系自然的反映了一個(gè)組織內(nèi)部權(quán)利和責(zé)任的關(guān)系,為方便權(quán)限管理提供了幫助。角色繼承關(guān)系提供了對(duì)已有角色的擴(kuò)充和分類的手段,使定義新的角色可以在已有角色的基礎(chǔ)上進(jìn)行,擴(kuò)充就是通過增加父角色的權(quán)限去定義子角色,分類通過不同子角色繼承同一父角色來體現(xiàn)。另外還允許多繼承,即一個(gè)角色繼承多個(gè)父角色,多繼承體現(xiàn)對(duì)角色的綜合能力。
“數(shù)字海洋”節(jié)點(diǎn)總體結(jié)構(gòu)呈樹狀分布,在授權(quán)初始化時(shí),國家根節(jié)點(diǎn)管理員只向其他節(jié)點(diǎn)分配管理員角色,由節(jié)點(diǎn)管理員對(duì)本節(jié)點(diǎn)的具體角色情況進(jìn)行二次定義。換言之,各級(jí)節(jié)點(diǎn)管理員角色呈樹狀繼承關(guān)系(如圖 4所示),有效實(shí)現(xiàn)了“數(shù)字海洋”權(quán)限的分散管理。
e) 角色配置:角色是一組訪問權(quán)限的集合,一個(gè)用戶可以是很多角色的成員,一個(gè)角色也可以有很多個(gè)權(quán)限,而一個(gè)權(quán)限也可以重復(fù)配置于多個(gè)角色。權(quán)限配置工作是組織角色的權(quán)限的工作步驟之一,只有角色具有相應(yīng)的權(quán)限后用戶委派才能具有實(shí)際意義。
f ) 用戶與用戶組的定義:系統(tǒng)的最終使用者是用戶,因此必須建立用戶的鑒別機(jī)構(gòu),登記用戶的身份信息。任一用戶在“數(shù)字海洋”授權(quán)模型內(nèi)都有一個(gè)唯一標(biāo)識(shí),節(jié)點(diǎn)具有管理員角色的用戶可利用授權(quán)代理進(jìn)行本節(jié)點(diǎn)用戶的創(chuàng)建。“數(shù)字海洋”用戶鑒別機(jī)構(gòu)利用用戶名/密碼或者CA認(rèn)證的方式來確定登錄用戶是否合法。
為了實(shí)現(xiàn)代理授權(quán)模型滿足分散式權(quán)限管理的需要,加入了用戶組(指一群用戶的集合)的概念。用戶組也可以委派角色,當(dāng)用戶被加入用戶組時(shí),自動(dòng)對(duì)用戶所在用戶組擁有的角色進(jìn)行了委派。為了便于分散式權(quán)限管理,授權(quán)模型還同時(shí)支持對(duì)部分組的權(quán)限進(jìn)行下發(fā)方式處理,授權(quán)特定的用戶對(duì)用戶組的用戶權(quán)限進(jìn)行管理。
通過對(duì)基于代理機(jī)制的數(shù)字海洋授權(quán)模型功能框架的描述,該模型具有以下優(yōu)點(diǎn):
(1) 實(shí)現(xiàn)了框架內(nèi)用戶的統(tǒng)一管理,為框架內(nèi)實(shí)現(xiàn)數(shù)據(jù)資源、應(yīng)用資源的分發(fā)與共享創(chuàng)建了必備的基礎(chǔ)條件。實(shí)現(xiàn)數(shù)據(jù)的分發(fā)與共享,首要的前提條件是安全、簡便,用戶在全局的唯一性使得用戶可以將資源準(zhǔn)確的分發(fā)給指定用戶或群,更可以簡便獲取到其他用戶共享過了的資源。
(2) 實(shí)現(xiàn)了框架內(nèi)所有節(jié)點(diǎn)運(yùn)行系統(tǒng)在授權(quán)管理上的統(tǒng)一。框架內(nèi)的用戶只要記住自己的登錄密碼,或者是保管好自己的認(rèn)證證書,就可以訪問框架內(nèi)任何授權(quán)的資源或應(yīng)用,再不會(huì)因?yàn)檫M(jìn)入不同的安全區(qū)而必須適應(yīng)不同的認(rèn)證策略而發(fā)愁。
(3) 實(shí)現(xiàn)了資源重用,減少重復(fù)建設(shè),大大降低節(jié)點(diǎn)特色系統(tǒng)建設(shè)成本,提高開發(fā)建設(shè)效率。代理授權(quán)模型以標(biāo)準(zhǔn) webservie形式發(fā)布功能構(gòu)件,在框架內(nèi)是開放的。節(jié)點(diǎn)業(yè)務(wù)特色系統(tǒng)的建設(shè)者可以將主要精力放在本節(jié)點(diǎn)的業(yè)務(wù)功能實(shí)現(xiàn)上,直接利用框架授權(quán)模型。
(4) 實(shí)現(xiàn)了節(jié)點(diǎn)分級(jí)授權(quán)。由于各個(gè)節(jié)點(diǎn)的業(yè)務(wù)情況不同,需求各異,主節(jié)點(diǎn)管理員不可能為其他節(jié)點(diǎn)定制適用角色與權(quán)限。通過角色繼承的方式,主節(jié)點(diǎn)向下級(jí)節(jié)點(diǎn)分配管理員角色,節(jié)點(diǎn)管理員依據(jù)自身需求客戶化本地管理員角色,有效解決了主節(jié)點(diǎn)功能一般性與下級(jí)節(jié)點(diǎn)需求特殊性的矛盾。
(5) 實(shí)現(xiàn)了節(jié)點(diǎn)整體特殊性與框架內(nèi)一致性的統(tǒng)一。代理授權(quán)模型的使用是基于節(jié)點(diǎn)部門的,這就有效的保證了節(jié)點(diǎn)整體的特殊性。節(jié)點(diǎn)對(duì)代理授權(quán)模型的使用又是在統(tǒng)一的規(guī)約下進(jìn)行的,這又在框架內(nèi)維持了安全機(jī)制的一致性,使框架內(nèi)的資源分發(fā)與共享成為可能。
(6) 基于角色授權(quán)機(jī)制的引用與擴(kuò)充,使得基于代理機(jī)制的授權(quán)模型能夠輕松實(shí)現(xiàn)“數(shù)字海洋”眾多節(jié)點(diǎn)復(fù)雜的權(quán)限管理。
“數(shù)字海洋”信息基礎(chǔ)框架內(nèi)的各類海洋產(chǎn)品數(shù)據(jù)以及業(yè)務(wù)應(yīng)用數(shù)據(jù)的整合都離不開高效靈活的授權(quán)模型的支持,基于代理機(jī)制的授權(quán)模型為框架的構(gòu)建提供了一個(gè)開放的、靈活的、可定制的用戶授權(quán)環(huán)境,很好的解決了因節(jié)點(diǎn)眾多而使用戶管理與授權(quán)需求復(fù)雜化的問題。代理授權(quán)模型的可繼承、可復(fù)用性極大降低了信息管理系統(tǒng)的開發(fā)難度與建設(shè)成本,有效規(guī)范了框架內(nèi)的用戶管理,為未來框架內(nèi)節(jié)點(diǎn)特色信息系統(tǒng)建設(shè)提供了有力的系統(tǒng)用戶管理模型支撐。
[1] 蔣黎峰, 趙保華. 一種靈活的認(rèn)證授權(quán)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) [J]. 計(jì)算機(jī)工程與應(yīng)用, 2006, 18: 221-223.
[2] Epstein P, Sandhu R. A UML Based Approach to Role Engineering [C]. In Proceedings of the 4th ACMWorkshop on Role-Based AccessControl,Fairfax, VA, October 28-29, 1999: 135-142,
[3] Mohammed I, Dilts D M. Design for dynamic user-role-based security [J]. Computers & Security, 1994, 13(8): 661-671.
[4] 陳漢文. 審計(jì)理論 [M]. 北京: 機(jī)械工業(yè)出版社, 2009: 10-11.
Research on agent-based authorization model in “digital ocean”
WANG Wei1, SHI Sui-xiang1, LI Si-hai1, LIU Zhen-min1, GU Yun-juan2
(1. National Marine Data and Information Center, Tianjin 300171, China;2. Ocean and Fisheries Information Center of Jiangsu Province, Nanjing 21000, China)
The building of authorization system is not only the foundation of building “Digital Ocean” information infrastructure framework, but also the pre-condition for integrating data and application resources within the framework. Base on the in-depth analysis of authority needs, combined with the development of network authorization solution as well as role-based user access control technology, an agent-based authorization model has been given.
digital ocean; agent; authorization; service
TP392; P7
A
1001-6932(2010)02-0206-07
2009-03-10;
2009-10-26
國家海洋局908專項(xiàng)(908-03)
王偉 (1976-),男,河北寬城人,工程師,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)軟件與理論。電子郵箱:wangwei@mail.nmdis.gov.cn