• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種擴展型RBAC電力交易系統(tǒng)權限模型設計與實現(xiàn)

    2018-03-19 11:58:18孫恒一
    網(wǎng)絡安全技術與應用 2018年3期
    關鍵詞:交易系統(tǒng)訪問控制云南

    ◆孫恒一

    ?

    一種擴展型RBAC電力交易系統(tǒng)權限模型設計與實現(xiàn)

    ◆孫恒一

    (昆明電力交易中心有限責任公司 云南 650011)

    基于角色的訪問控制(Role-Based Access Control,RBAC)是廣泛使用的系統(tǒng)權限訪問控制模型。本文設計并實現(xiàn)了一種擴展型RBAC電力交易系統(tǒng)權限模型,采用“資源-權限-角色-用戶-組織”模式的設計,在角色權限的基礎上引入用戶的正向和負向權限,并利用開源安全框架Shiro,在云南電力交易系統(tǒng)實現(xiàn)了基于RBAC和用戶授權的細粒度權限控制,滿足了系統(tǒng)針對多種類別市場參與者靈活的權限控制需求。

    擴展型RBAC;電力交易系統(tǒng)權限模型;Shiro

    0 引言

    云南電力交易系統(tǒng)作為承載云南省電力市場化交易業(yè)務的系統(tǒng)支撐平臺,系統(tǒng)用戶范圍涵蓋發(fā)電企業(yè)、用電企業(yè)、電力交易中心、政府監(jiān)管機構、電網(wǎng)公司及其下屬供電單位、售電公司等市場參與類型。由于系統(tǒng)中的交易申報和成交結果等數(shù)據(jù)涉及各市場參與者的敏感信息,同時為了滿足業(yè)務劃分的要求,電力交易系統(tǒng)需實現(xiàn)細粒度的權限訪問控制[1]。

    基于角色的訪問控制(Role-Based Access Control,RBAC)是廣泛使用的系統(tǒng)權限訪問控制模型。在實際中,角色通常根據(jù)某項工作或職責來創(chuàng)建,RBAC極大簡化了系統(tǒng)權限管理[2]。然而在程序代碼中,直接在操作前使用角色名稱來進行訪問控制的方法缺少權限配置的靈活性和擴展性,也增加了代碼變更的頻繁程度以及代碼維護的復雜程度。

    1 云南電力交易系統(tǒng)權限需求

    由于云南電力交易系統(tǒng)的用戶范圍涵蓋多種類型市場參與者,在電力交易中心內(nèi)部又按照業(yè)務劃分不同的業(yè)務部門,因此需要多種類型的系統(tǒng)用戶。通過控制不同類型用戶對不同功能或數(shù)據(jù)的訪問實現(xiàn)細粒度的權限控制。

    1.1權限劃分原則

    云南電力交易系統(tǒng)的權限劃分遵循“最小權限”原則,確保系統(tǒng)針對不同用戶具備相應合理規(guī)范的功能操作范圍和數(shù)據(jù)可視范圍,以保證市場運行的規(guī)范性和交易主體數(shù)據(jù)的安全性。嚴格限制核心明細數(shù)據(jù)的查詢權限,交易主體只能查詢自身核心明細數(shù)據(jù),交易中心與政府監(jiān)管部門以實際工作需要為原則配置核心明細數(shù)據(jù)的查詢權限。

    1.2權限設計需求

    按照權限劃分總體原則,表1列舉了云南電力交易系統(tǒng)部分主要功能的權限劃分需求,權限類別分為:具有全局操作和查詢權限、具有自身數(shù)據(jù)的操作和查詢權限、具有全局查詢權限、具有自身數(shù)據(jù)查詢權限、不具有權限。操作權限在實現(xiàn)時又可包含新增、修改等不同的操作,在功能上主要體現(xiàn)為申報、申請、審核等功能或流程。

    表1 云南電力交易系統(tǒng)部分主要功能的權限劃分需求表

    2 擴展RBAC的權限模型設計

    參照云南電力交易系統(tǒng)的權限設計需求,下文采用“資源-權限-角色-用戶-組織”模式,設計一種擴展型RBAC權限模型。

    2.1基于角色的訪問控制

    在RBAC模型中,系統(tǒng)權限與角色關聯(lián),用戶被賦予適當?shù)慕巧玫较鄳巧臋嘞?,角色實際上為一組權限的集合,一個角色對應多個用戶,一個用戶可以擁有多個角色。

    2.2擴展RBAC模型設計

    基于角色的訪問控制為系統(tǒng)用戶權限管理提供了一個有效的抽象層次。在實際系統(tǒng)使用過程中,角色一旦創(chuàng)建并分配給多個用戶之后,角色中的權限組合一般不會增減。為了滿足電力交易系統(tǒng)更加靈活的權限配置需求,適應業(yè)務管理的變化,本文對RBAC進行了以下擴展設計。

    (1)基于資源的權限定義。資源是指在應用中用戶可以訪問的數(shù)據(jù)、對象、頁面、查看、編輯操作等任何對象,權限則代表用戶可以訪問某個資源的權利,用戶在授權后才能訪問資源。此處,資源的概念已包含了數(shù)據(jù)和操作,通過這種定義將權限進行了統(tǒng)一設計。

    (2)引入用戶的負向和正向權限。在用戶所獲得角色權限的基礎上,減去負向權限,增加正向權限,最終構成用戶所擁有權限的組合。因此,用戶的負向和正向權限優(yōu)先級將大于角色權限。在實際應用中,由于業(yè)務要求需要對某些用戶進行特殊的權限控制時,即可配置用戶負向和正向權限。

    (3)通過增加用戶與組織的關系設置用戶默認角色。一般情況下,一個組織下的用戶具有一些相同的權限,將某些特定的角色與組織相關聯(lián),作為該組織下新增用戶的默認角色。

    基于以上擴展,設計了云南電力交易系統(tǒng)的權限模型。其中數(shù)據(jù)結構的設計如圖1所示。

    圖1系統(tǒng)權限模型數(shù)據(jù)結構設計圖

    3 擴展RBAC的權限模型實現(xiàn)

    基于上述擴展RBAC權限模型設計,采用開源的安全框架Shiro進行了實現(xiàn)。

    3.1 Shiro:一種Java安全框架

    Apache Shiro是Java的一個開源的安全框架,主要包含了身份認證(Authentication)、授權(Authorization)、會話管理(Session Manager)、加密(Cryptography)等功能,基于Shiro框架可以很容易的在應用中實現(xiàn)權限控制模型。Shiro的工作機制如圖2所示,主要包含以下核心部分:

    圖2 Shiro核心框架和概念圖

    (1)主體(Subject):代表了當前與應用交互的“用戶”,可以是一個具體的人,也可以是一個應用服務、自動程序等,是一個抽象概念。

    (2)安全管理器(SecurityManager):即所有與安全有關的操作都會與安全管理器交互;且它管理著所有主體,與主體的所有交互都會委托給安全管理器進行執(zhí)行。

    (3)域(Realm):Shiro從域獲取安全數(shù)據(jù)(如用戶、角色、權限),以判斷用戶身份和授權,可以把域看成Shiro的安全數(shù)據(jù)源。

    在一個簡單的Shiro應用中,應用代碼通過主體來進行認證和授權,而主體又委托給安全管理器進行執(zhí)行;Shiro將域的數(shù)據(jù)注入到安全管理器中,從而可以對合法的用戶及其權限進行判斷。具體授權流程如圖3所示:

    圖3 Shiro授權流程圖

    (1)首先調(diào)用Subject.isPermitted*/hasRole*接口,傳入需要判斷的權限或角色,其會委托給SecurityManager,而SecurityManager接著會委托給Authorizer;

    (2)Authorizer是真正的授權者,會將傳入的字符解析為角色/權限實例;

    (3)在進行授權之前,其會調(diào)用相應的Realm獲取Subject相應的角色/權限用于匹配傳入的角色/權限;

    (4)Authorizer會判斷Realm的角色/權限是否和傳入的匹配,如果有多個Realm,會委托給ModularRealmAuthorizer進行循環(huán)判斷。

    Shiro支持多種形式的Realm定義,可采用配置文件、jdbc或自定義Realm類的形式實現(xiàn)Realm。因此,通過在應用中重新實現(xiàn)Realm類,就可實現(xiàn)本文設計的權限控制模型。

    3.2 基于Shiro的擴展RBAC權限模型實現(xiàn)

    基于Shiro框架對上述的擴展RBAC權限模型進行了實現(xiàn)。在集成Shiro框架的基礎上,主要實現(xiàn)以下內(nèi)容:

    (1)實現(xiàn)如圖1所示的數(shù)據(jù)庫表結構,存儲用戶、角色、權限以及它們之間的關系。

    (2)采用“模塊、功能、操作”三元組的方式統(tǒng)一定義一個權限,權限標識符采用字符串“模塊名稱:功能名稱:操作名稱”,用“:”分割名稱,例如“system:user:update”表示系統(tǒng)用戶的修改權限。同時,采用通配符“*”替換某個位置的名稱來表示一組功能或一組操作;在權限標識符前增加“+/-”表示用戶的正向和負向權限。

    (3)實現(xiàn)自定義Realm類,從數(shù)據(jù)庫表獲取權限標識符并解析為權限的實例。

    (4)在程序代碼中使用Shiro的方法實現(xiàn)認證和授權機制。

    4 總結

    本文結合云南電力交易業(yè)務的需求,設計并實現(xiàn)了一種擴展型RBAC電力交易系統(tǒng)權限模型,并基于Shiro框架進行了實現(xiàn),既簡化了開發(fā),又滿足了系統(tǒng)針對細粒度權限的靈活控制。

    [1]昆明電力交易中心有限責任公司編著.電力市場:云南電力市場建設經(jīng)驗與探索[S].北京:中國電力出版社, 2017.

    [2]GB/T 25062-2010.信息安全技術鑒別與授權基于角色的訪問控制[S].北京:中國標準出版社, 2010.

    猜你喜歡
    交易系統(tǒng)訪問控制云南
    山東首套ETC匝道準自由流預交易系統(tǒng)正式運行
    ETC拓展應用場景下的多源異構交易系統(tǒng)
    云南茶,1200年的發(fā)現(xiàn)
    云南畫報(2021年11期)2022-01-18 03:15:40
    云南邀您來“吸氧”
    云南畫報(2020年12期)2021-01-18 07:19:20
    云南是你避暑的最佳選擇
    云南畫報(2020年9期)2020-10-27 02:03:16
    一圖讀懂云南兩新黨建
    下一代高性能交易所數(shù)據(jù)儲存和備份的探討
    ONVIF的全新主張:一致性及最訪問控制的Profile A
    動態(tài)自適應訪問控制模型
    通信學報(2016年11期)2016-08-16 03:20:32
    淺析云計算環(huán)境下等級保護訪問控制測評技術
    铜鼓县| 博罗县| 灵山县| 龙口市| 吴忠市| 东宁县| 岱山县| 西丰县| 利津县| 宜宾市| 安义县| 龙南县| 建始县| 防城港市| 罗甸县| 蓝田县| 无极县| 丹阳市| 奈曼旗| 西藏| 甘德县| 普兰县| 黄大仙区| 固原市| 体育| 子长县| 吉首市| 东丰县| 密云县| 平凉市| 贺州市| 柳江县| 遂平县| 平山县| 呈贡县| 于都县| 巫溪县| 读书| 孟州市| 出国| 禹城市|