国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

RBAC:權限模型的初步理解

2shou / 2570人閱讀

摘要:近來部門接到一個外包項目,是基于現有的系統做一個知識文檔庫,類似于百度網盤一樣的功能,只是在角色和權限上與網盤不同,這個項目我們部門稱為,,難點就在于文件的權限管理。

??近來部門接到一個外包項目,是基于現有的系統做一個知識文檔庫,類似于百度網盤一樣的功能,只是在角色和權限上與網盤不同,這個項目我們部門稱為KM,Knowledge Manager ,難點就在于文件的權限管理。

??以下是與權限相關的一些功能點:

KM 有五類角色:KM 企業管理員, KM 部門管理員 ,KM團隊管理員 ,KM團隊成員 , KM成員,權限依次遞減

KM 有三個實體 : 網盤、文件夾、文件

KM 網盤的類型有:部門網盤,團隊網盤,個人網盤

KM 文件夾的操作:創建、修改、刪除、移動、分享、授權

KM 文件的操作:創建、修改、刪除、移動、分享、授權

歸根到底有兩點:

不同角色對不同實體的操作有不一樣的權限

高級別的角色可以改變低級別的角色對指定實體的操作權限

??我自己出來工作已經兩年,計劃五年內成為一名架構師,雖然這次不需要我對系統進行設計,但是我肯定不會放棄這次機會,在上級出方案之前,我足足把需求文檔看了四遍,去想如何才能設計一個好的架構進行開發,不過,最后的結果還是打擊到我了,實在沒想到還有如此簡單的方法。全文分解為兩部分:

我自己的設計:策略模式

上級的設計:RBAC權限模型

策略模式

??開始的想法是,架構必然和設計模式有關,考慮到實體執行的操作類型如上文所說基本有六種操作,結合五類角色,正好可以采用策略模式,基本的思路如下:

獲取用戶信息,基于不同網盤、文件夾、文件,實現對應的角色

根據角色,判斷對應的操作是否具相應的權限

若不滿足權限,則查詢權限表,判斷高級角色是否授權

最終返回是否具備權限的數據,以供前端進行響應式回顯

??這就是我最開始的思路,其實想到這套方案,心里還是挺開心的,原因在于:

用到了策略模式,剛學就能用上

解耦,以后不同角色對不同實體的操作的維護難度大大降低

不需要頻繁的查詢數據庫,畢竟有一部分業務邏輯是不需要通過查詢數據庫的,類似于KM 企業管理員,權限最大,對任何實體都具備操作權限

??然而當我把想法在早會上提出來時,上級告訴我說,現行有一種很成熟的權限模型:RBAC權限模型,他的設計能夠解決這個項目大部分的需求。方案不被采納固然有一點小失落,但是,我卻看到了一個很厲害的模型,足以讓我漲見識,以后遇到權限管理的時候,首先應該想到RBAC模型,結合項目的需求,對模型進行擴展。

RBAC權限模型

基本概念

基于角色的權限訪問控制(Role-Based Access Control)

權限授權實際上是Who、What、How的關系,三者構成了訪問權限三元組,也就是“Who對What(Which)進行How的操作

支持三個著名的安全原則

最小權限原則

責任分離原則

數據抽象原則

類圖

數據庫表:

個人理解

通過給角色授權,然后將附有權利的角色施加到某個用戶身上,這樣用戶就可以實施相應的權利

通過中間角色的身份,是權限管理更加靈活:角色的權利可以靈活改變,用戶的角色的身份可以隨著場所的不同而發生改變

這樣這套RBAC就幾乎可以運用到所有的權限管理的模塊上

??RBAC在使用的過程,被不斷地改進,進一步研發出更成熟的模型,以下的模型則是基于基本模型進行擴展:

RBAC1 :基于RBAC0模型,進行了角色的分層,也就是說角色上有了上下級的區別,存在了繼承包含關系,也就是前邊說過的適合于用樹展現的哪種自關聯的結構,這種模型合適于層次明確,包含明確的角色關系

類圖

RBAC2 :基于RBAC0模型的基礎上,進行了角色的訪問控制。

RBAC2中的一個基本限制時互斥角色的限制,互斥角色是指各自權限互相制約的兩個角色,對于這類角色一個用戶在某一次活動中只能被分配其中的一個角色,不能同時獲得兩個角色的使用權

角色的權利權利是有限的,用戶有用的角色也是有限的,當然分配用戶時也是有限的,不能進行無限制的分配用戶

要想獲得較高的權限,要首先擁有低一級的權限

類圖

RBAC3 : 最全面級的權限管理,基于RBAC0的基礎上,將RBAC1和RBAC2進行整合了,最全面,也最復雜

類圖

??任何的權限控制都可以基于 RBAC權限 進行擴展和實現,成熟的開發模型就能為開發者帶來足夠的便利,也很佩服勤勞、勇敢、智慧的工程師,能夠設計出如此出彩的模型。
??這次也深刻地意識到自己知識面的不足,自己閉門造車肯定會與這個社會脫節,與此同時,學習速度太慢,不會使用搜索引擎去找答案,也會被這個社會淘汰。謹記。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67456.html

相關文章

  • RBAC-基于角色權限管理

    摘要:基于角色的權限管理權限管理,基于角色的訪問控制,就是用戶通過角色與權限進行關聯。這樣,就構造成用戶角色權限的授權模型。角色可以理解為一定數量的權限的集合,權限的載體。版主可管理版內的帖子可管理版內的用戶等,這些是權限。 RBAC-基于角色的權限管理 RBAC權限管理 RBAC(Role-Based Access Control,基于角色的訪問控制),就是用戶通過角色與權限進行關聯。簡...

    dingding199389 評論0 收藏0
  • 途牛原創|大話權限中心PHP架構之道

    摘要:權限中心的依賴聲明聲明依賴關系檢查代碼規范聲明開發依賴命名空間檢查代碼規范,執行單元測試。單元測試持續交付一切都如此的完美,沒有測試,又如何可以證明這件事情的完美,又如何可以保障交付的質量。 序 權限管理是無線運營系統中的核心模塊,通過訪問控制策略的配置,來約定人與資源的訪問關系。 本文著重講解如何通過PHP來構建一個靈活、通用、安全的權限管理系統。 關于權限 首先我們來聊聊權限。 權...

    miracledan 評論0 收藏0
  • MySQL —— 簡單聊一聊數據庫設計

    摘要:數據庫設計的三大范式確保每列的原子性如果每列都是不可再分的最小單元信息,則滿足第一范式,比如下圖中,地址是由國家和城市組成的,顯然可以繼續在拆分成兩個列,國家和城市,是不滿足第一范式的,需要將地址列差分成國家和城市兩個列。 showImg(https://segmentfault.com/img/remote/1460000018997429?w=1100&h=546); 閱讀原文 ...

    dingding199389 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<