成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

權限系統就該這么設計,yyds

開發 項目管理
權限管控可以通俗的理解為權力限制,即不同的人由于擁有不同權力,他所看到的、能使用的可能不一樣。對應到一個應用系統,其實就是一個用戶可能擁有不同的數據權限(看到的)和操作權限(使用的)。

最近《Spring Cloud Alibaba實戰》在加更OAuth2.0、社交登錄相關內容涉及到權限時,有些朋友提出了一些疑問,看來對權限系統的設計有些不太理解:

圖片

這篇文章就來解答介紹一下權限系統的設計以及主流的五種權限模型。

權限管控可以通俗的理解為權力限制,即不同的人由于擁有不同權力,他所看到的、能使用的可能不一樣。對應到一個應用系統,其實就是一個用戶可能擁有不同的數據權限(看到的)和操作權限(使用的)。

主流的權限模型主要分為以下五種:

  • ACL模型:訪問控制列表
  • DAC模型:自主訪問控制
  • MAC模型:強制訪問控制
  • ABAC模型:基于屬性的訪問控制
  • RBAC模型:基于角色的權限訪問控制

ACL模型:訪問控制列表

Access Control List,ACL是最早的、最基本的一種訪問控制機制,是基于客體進行控制的模型,在其他模型中也有ACL的身影。為了解決相同權限的用戶挨個配置的問題,后來也采用了用戶組的方式。

原理:每一個客體都有一個列表,列表中記錄的是哪些主體可以對這個客體做哪些行為,非常簡單。

例如:當用戶A要對一篇文章進行編輯時,ACL會先檢查一下文章編輯功能的控制列表中有沒有用戶A,有就可以編輯,無則不能編輯。再例如:不同等級的會員在產品中可使用的功能范圍不同。

缺點:當主體的數量較多時,配置和維護工作就會成本大、易出錯。

DAC模型:自主訪問控制

Discretionary Access Control,DAC是ACL的一種拓展。

原理:在ACL模型的基礎上,允許主體可以將自己擁有的權限自主地授予其他主體,所以權限可以任意傳遞。

例如:常見于文件系統,LINUX,UNIX、WindowsNT版本的操作系統都提供DAC的支持。

缺點:對權限控制比較分散,例如無法簡單地將一組文件設置統一的權限開放給指定的一群用戶。主體的權限太大,無意間就可能泄露信息。

MAC模型:強制訪問控制

Mandatory Access Control,MAC模型中主要的是雙向驗證機制。常見于機密機構或者其他等級觀念強烈的行業,如軍用和市政安全領域的軟件。關注公眾號:“碼猿技術專欄”,回復關鍵詞:“081“ 獲取阿里內部的Spring Cloud Alibaba進階教程!

原理:主體有一個權限標識,客體也有一個權限標識,而主體能否對該客體進行操作取決于雙方的權限標識的關系。

例如:將軍分為上將>中將>少將,軍事文件保密等級分為絕密>機密>秘密,規定不同軍銜僅能訪問不同保密等級的文件,如少將只能訪問秘密文件;當某一賬號訪問某一文件時,系統會驗證賬號的軍銜,也驗證文件的保密等級,當軍銜和保密等級相對應時才可以訪問。

缺點:控制太嚴格,實現工作量大,缺乏靈活性。

ABAC模型:基于屬性的訪問控制

Attribute-Based Access Control,能很好地解決RBAC的缺點,在新增資源時容易維護。

原理:通過動態計算一個或一組屬性是否滿足某種機制來授權,是一種很靈活的權限模型,可以按需實現不同顆粒度的權限控制。

屬性通常有四類:

  1. 主體屬性,如用戶年齡、性別等;
  2. 客體屬性,如一篇文章等;
  3. 環境屬性,即空間限制、時間限制、頻度限制;
  4. 操作屬性,即行為類型,如讀寫、只讀等。

例如:早上9:00,11:00期間A、B兩個部門一起以考生的身份考試,下午14:00,17:00期間A、B兩個部門相互閱卷。

缺點:規則復雜,不易看出主體與客體之間的關系,實現非常難,現在應用的很少。

RBAC,基于角色的權限訪問控制

Role-Based Access Control,核心在于用戶只和角色關聯,而角色代表對了權限,是一系列權限的集合。

RBAC三要素:

  1. 用戶:系統中所有的賬戶
  2. 角色:一系列權限的集合(如:管理員,開發者,審計管理員等)
  3. 權限:菜單,按鈕,數據的增刪改查等詳細權限。

RBAC中,權限與角色相關聯,用戶通過成為適當角色的成員而得到這些角色的權限。

角色是為了完成各種工作而創造,用戶則依據它的責任和資格來被指派相應的角色,用戶可以很容易地從一個角色被指派到另一個角色。關注公眾號:“碼猿技術專欄”,回復關鍵詞:“081“ 獲取阿里內部的Spring Cloud Alibaba進階教程!

角色可依新的需求和系統的合并而賦予新的權限,而權限也可根據需要而從某角色中回收。角色與角色的關系同樣也存在繼承關系防止越權。

優點:便于角色劃分,更靈活的授權管理;最小顆粒度授權;

圖片圖片

RBAC的深度拓展

RBAC模型可以分為:RBAC0RBAC1RBAC2RBAC3 四個階段,一般公司使用RBAC0的模型就可以。另外,RBAC0相當于底層邏輯,后三者都是在RBAC0模型上的拔高。

我先簡單介紹下這四個RBAC模型:

1. RBAC0模型

用戶和角色、角色和權限多對多關系。

簡單來說就是一個用戶擁有多個角色,一個角色可以被多個用戶擁有,這是用戶和角色的多對多關系;同樣的,角色和權限也是如此。

RBAC0模型如下圖:沒有畫太多線,但是已經能夠看出多對多關系。

圖片圖片

2. RBAC1模型

相對于RBAC0模型,增加了角色分級的邏輯,類似于樹形結構,下一節點繼承上一節點的所有權限,如role1根節點下有role1.1role1.2兩個子節點

圖片圖片

角色分級的邏輯可以有效的規范角色創建(主要得益于權限繼承邏輯),我之前做過BD工具(類CRM),BD之間就有分級(經理、主管、專員),如果采用RBAC0模型做權限系統,我可能需要為經理、主管、專員分別創建一個角色(角色之間權限無繼承性),極有可能出現一個問題,由于權限配置錯誤,主管擁有經理都沒有權限。關注公眾號:“碼猿技術專欄”,回復關鍵詞:“081“ 獲取阿里內部的Spring Cloud Alibaba進階教程!

而RBAC1模型就很好解決了這個問題,創建完經理角色并配置好權限后,主管角色的權限繼承經理角色的權限,并且支持針對性刪減主管權限。

3. RBAC2模型

基于RBAC0模型,對角色增加了更多約束條件。

圖片圖片

角色互斥,比較經典的案例是財務系統中出納不得兼管稽核,那么在賦予財務系統操作人員角色時,同一個操作員不能同時擁有出納和稽核兩個角色。

角色數量限制,例如:一個角色專門為公司CEO創建的,最后發現公司有10個人擁有CEO角色,一個公司有10個CEO?這就是對角色數量的限制,它指的是有多少用戶能擁有這個角色。

RBAC2 模型主要是為了增加角色賦予的限制條件,這也符合權限系統的目標:權責明確,系統使用安全、保密。

4. RBAC3模型

同樣是基于RBAC0模型,但是綜合了RBAC1RBAC2的所有特點

這里就不在多描述,讀者返回去看RBAC1RBAC2模型的描述即可。

RBAC 權限管理的在實際系統中的應用

RBAC 權限模型由三大部分構成,即用戶管理角色管理權限管理

用戶管理按照企業架構或業務線架構來劃分,這些結構本身比較清晰,擴展性和可讀性都非常好。

角色管理一定要在深入理解業務邏輯后再來設計,一般使用各部門真實的角色作為基礎,再根據業務邏輯進行擴展。

權限管理是前兩種管理的再加固,做太細容易太碎片,做太粗又不夠安全,這里我們需要根據經驗和實際情況來設計。

1.用戶管理

用戶管理中的用戶,是企業里每一位員工,他們本身就有自己的組織架構,我們可以直接使用企業部門架構或者業務線架構來作為線索,構建用戶管理系統。

圖片圖片

需要特殊注意:實際業務中的組織架構可能與企業部門架構、業務線架構不同,需要考慮數據共享機制,一般的做法為授權某個人、某個角色組共享某個組織層級的某個對象組數據。關注公眾號:“碼猿技術專欄”,回復關鍵詞:“081“ 獲取阿里內部的Spring Cloud Alibaba進階教程!

2.角色管理

在設計系統角色時,我們應該深入理解公司架構、業務架構后,再根據需求設計角色及角色內的等級。

一般角色相對于用戶來說是固定不變的,每個角色都有自己明確的權限和限制,這些權限在系統設計之處就確定了,之后也輕易不會再變動。

(1)自動獲得基礎角色

當員工入職到某部門時,該名員工的賬號應該自動被加入該部門對應的基礎角色中,并擁有對應的基礎權限。這種操作是為了保證系統安全的前提下,減少了管理員大量手動操作。使新入職員工能快速使用系統,提高工作效率。

(2)臨時角色與失效時間

公司業務有時需要外援來支持,他們并不屬于公司員工,也只是在某個時段在公司做支持。此時我們需要設置臨時角色,來應對這種可能跨多部門協作的臨時員工。

如果公司安全級別較高,此類賬號默認有固定失效時間,到達失效時間需再次審核才能重新開啟。避免臨時賬號因為流程不完善,遺忘在系統中,引起安全隱患。

(3)虛擬角色

部門角色中的等級,可以授權同等級的員工擁有相同的權限,但某些員工因工作原因,需要調用角色等級之外的權限,相同等級不同員工需要使用的權限還不相同。

這種超出角色等級又合理的權限授予,我們可以設置虛擬角色。這一虛擬角色可集成這一工作所需的所有權限,然后將它賦予具體的員工即可。這樣即不用調整組織架構和對應的角色,也可以滿足工作中特殊情況的權限需求。

(4)黑白名單

白名單:某些用戶自身不擁有某部門的頂級角色,但處于業務需求,需要給他角色外的高級權限,那么我們可以設計限制范圍的白名單,將需要的用戶添加進去即可。

在安全流程中,我們僅需要對白名單設計安全流程,即可審核在白名單中的特殊用戶,做到監控擁有特殊權限的用戶,減少安全隱患。

黑名單:比較常見的黑名單場景是某些犯了錯誤的員工,雖然在職,但已經不能給他們任何公司權限了。這種既不能取消角色關聯,也不能完全停用賬號的情況,可以設置黑名單,讓此類用戶可以登錄賬號,查看基本信息,但大多數關鍵權限已經被黑名單限制。

3. 權限管理

權限管理一般從三個方面來做限制。頁面/菜單權限操作權限數據權限

圖片圖片

(1)頁面/菜單權限

對于沒有權限操作的用戶,直接隱藏對應的頁面入口或菜單選項。這種方法簡單快捷直接,對于一些安全不太敏感的權限,使用這種方式非常高效。

(2)操作權限

操作權限通常是指對同一組數據,不同的用戶是否可以增刪改查。對某些用戶來說是只讀瀏覽數據,對某些用戶來說是可編輯的數據。

(3)數據權限

對于安全需求高的權限管理,僅從前端限制隱藏菜單,隱藏編輯按鈕是不夠的,還需要在數接口上做限制。如果用戶試圖通過非法手段編輯不屬于自己權限下的數據,服務器端會識別、記錄并限制訪問。

(4)數據權限如何管控

數據權限可以分為行權限和列權限。行權限控制:看多少條數據。列權限控制:看一條數據的多少個字段

簡單系統中可以通過組織架構來管控行權限,按照角色來配置列權限,但是遇到復雜情況,組織架構是承載不了復雜行權限管控,角色也更不能承載列的特殊化展示。

目前行業的做法是提供行列級數據權規則配置,把規則當成類似權限點配置賦予某個角色或者某個用戶。

圖片圖片

圖片圖片

用戶管理系統權限設計中的更多實踐細節

1.超級管理員

超級管理員是用來啟動系統,配置系統的賬號。這個賬號應該在配置好系統,創建管理員之后被隱藏起來。超級管理員賬號擁有系統中全部權限,可穿梭查看各部門數據,如果使用不恰當,是系統管理的安全隱患。

2.互斥角色如何處理

當用戶已經有用的角色和即將添加的角色互相互斥時,應該在添加新角色時,提示管理員因角色互斥的原因,無法進行新角色添加。如需添加,要先撤銷掉前一個角色,再添加新角色。

3.用戶管理權限系統設計一定要簡單清晰

在設計權限系統之處,一定要理清思路,一切從簡,能不增加的多余角色和權限邏輯,就一定不要增加。因為隨著公司業務的擴大,權限和角色也會隨之增多,如果初期設計思路不嚴謹,那么權限系統會隨著業務的擴大而無限混亂下去,此時再來整理權限,已經太晚了。所以初期設計就一定要條理清晰,簡單明了,能避免后續非常多不必要的麻煩。

4.無權提示頁

有時員工 A 會直接給員工 B 分享他當下正在操作的頁面,但有可能員工 B 無權查看。此時我們應該在這里考慮添加「無權提示頁」,避免粗暴的 404 頁面讓員工 B 以為是系統出錯了。

責任編輯:武曉燕 來源: 碼猿技術專欄
相關推薦

2022-07-18 08:39:18

ACL訪問控制機制

2023-07-05 13:58:10

權限模型設計模式

2023-06-27 08:58:03

2025-02-03 08:16:56

2022-09-15 08:41:16

數據異構分庫分表

2024-09-09 00:02:00

2020-04-03 17:32:11

戴爾

2017-10-31 15:40:36

Linux學習步驟

2022-02-16 23:58:41

Spring過濾器驗證碼

2016-01-05 13:44:39

2024-09-18 00:03:00

項目OpenAI前端

2022-12-05 09:08:12

微服務灰度發布

2022-12-14 09:06:58

接口Spring解密

2017-08-11 14:21:33

軟件開發前端框架

2017-10-26 12:26:45

云計算SaaS平臺管理

2019-04-16 15:26:47

監控系統

2025-04-29 05:00:00

2025-03-27 03:55:00

2019-12-05 15:45:51

SpringSecur權限系統

2022-06-13 21:52:02

CDN網絡節點
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草视频在线播放 | 波多野结衣中文字幕一区二区三区 | 久久蜜桃精品 | 国产精品夜夜夜一区二区三区尤 | 天天射视频 | h在线免费观看 | 午夜寂寞影院在线观看 | 成人免费看片 | 亚洲色欧美另类 | 精品国产乱码久久久久久1区2区 | 国产成人网| 正在播放国产精品 | 激情网站 | 91社区在线观看高清 | 久干网 | 欧美专区在线视频 | 亚洲精品视频一区二区三区 | 一区二区三区四区国产精品 | 中文天堂在线观看 | 久久久av | 欧洲精品在线观看 | 亚洲精品在线看 | h片在线免费看 | 亚洲成人av一区二区 | 亚洲精品乱码久久久久久久久 | 国产精品久久国产精品 | 精品国产乱码久久久久久牛牛 | 亚洲综合在线一区 | 午夜在线视频 | 97成人精品 | 欧美日韩综合视频 | 国产精品揄拍一区二区 | 日屁视频 | 久久久久久久久毛片 | 国产女人与拘做受视频 | 亚洲欧洲一区 | 欧美精品一区二区在线观看 | 亚洲一区二区三区视频 | 国产成人99久久亚洲综合精品 | 成人亚洲网站 | h在线免费观看 |