基於角色的權限控制理論

2021-01-08 學而論術

本文的論述範圍限定於計算機應用軟體系統方向。對於某一個應用系統,每個用戶扮演什麼樣的角色,即該用戶享有什麼樣的訪問權限,對於某一個單位或者機構在進行信息化辦公(確切的說是使用應用軟體辦公)來說,至關重要:明確的角色產生了明確的權限,明確的權限界定了每一個工作人員(用戶)的工作職能,使得該單位或機構的高效運行。

用戶在成為某單位的一員後,該用戶將被賦予工作上的內容即工作範圍,例如醫院的不同科室的醫生需要完成其應該完成的工作:在自己所擅長的科室坐診以及對應科室的住院部以及手術室相關工作等,但因醫生的專業的不同方向性就決定了不同的醫生屬於不同的門診科室,在不同的科室裡診斷患有不同疾病的病人,根據病情的需要醫生會安排檢查、住院和手術等醫學救治流程,在這樣的系統流程中反應出不同科室醫生的角色以及角色中的權限使用。反應在軟體系統上,就是用戶根據註冊的帳戶登陸系統,根據其所具有的權限,對工作對象進行數據的採集錄入,根據工作對象的反饋,對錄入系統的數據進行查詢,更新和刪除等操作。對於用戶的基本操作,因其被系統所賦予的角色,而限定了其操作的範圍(權限)。

在系統中,用戶的屬性有:用戶的基本信息、用戶的單位信息(一般情況下,用戶所在單位決定用戶角色的方向)、用戶的角色信息、用戶的權限信息。這些基本的信息構成了用戶登陸系統後系統根據這些基本信息的組成而分配給用戶的可訪問的資源(權限)。用戶的基本信息即包含用戶的唯一ID,一般情況下該用戶僅可在一個單位中任職,因此用戶信息與單位信息形成多對一的數據關係。而用戶信息與角色信息的關係是多對多的關係,即一個用戶可以擁有多重角色,而某一角色下可以賦予多個用戶。角色信息與權限信息亦是多對多的關係,即某一角色包含多個權限條目,而某一權限條目可被多個角色所訪問。梳理完用戶、單位、角色、權限之間的關係,也就確定了用戶在特定角色特定單位下的權限了。

我們再看應用系統如何進行權限的控制。用戶根據自己唯一的ID(帳戶名和密碼或指紋驗證、虹膜驗證、刷臉驗證等等)登陸系統,向系統發出登陸請求,系統讀取用戶的驗證信息,確認該用戶的身份,獲取用戶的基本信息、單位信息、角色信息以及對於角色的權限信息,根據權限信息所指向的可訪問資源,通過數據的整合將可訪問的資源信息返回到終端,即登陸成功以及顯示了這個用戶在賦予了某種角色的可訪問的資源,進而該用戶可以進行賦權下的相關業務操作。

對於具體的實現,根據不同的技術手段有不同的實現方式。這裡以JavaWeb為主要技術手段進行分析:控制權限即控制用戶可以訪問的資源,這裡的資源是什麼呢?簡而言之就是眾多不同功能的可訪問的和可展現的JSP頁面,當然也可以是頁面中某一操作功能的區域或按鈕,這就引出了一個我們必須在技術上做出選擇的問題:如何控制權限基本條目的粒度大小,是以一個Web頁面作為基本權限粒度,還是以Web頁面中的某些功能區域或按鈕作為權限粒度呢?對於如何選擇粒度的大小應更具具體系統的實現為準,在此不做闡述。由此我們可以得到一個抽象的結論:用戶的可訪問資源的實現過程中需要控制基本權限粒度的大小。

任何抽象的理論在成為理論之前都應該進行實際的驗證。以上論述是我從事相關工作的一些見解,希望對從事相關工作的朋友有所幫助。

基於角色的權限控制理論

相關焦點

  • 基於OA系統中基於角色的安全訪問控制設計
    對基於Web 的B/S 結構的OA 系統結構和安全需求進行了分析,為了增強用戶身份鑑別和授權控制的安全性,分析了基於角色的安全訪問控制的核心思想和模型。在OA 系統中進行了基於角色的安全訪問控制設計,給出用戶、角色和權限的劃分,提出安全訪問控制流程。
  • springboot整合shiro:基於前、後端的權限控制
    解決方法:基於前端的權限控制:前端某個按鈕的隱藏或顯示可以通過shiro的頁面標籤來控制,當用戶擁有該權限時,我們就讓該按鈕顯示,否則隱藏;基於後端的權限控制:後端的某個接口我們可以通過shiro的註解來控制是否允許訪問,當用戶擁有該權限時,我們就允許訪問,否則不允許訪問;一、基於前端的權限控制
  • Spring Security基於表達式的權限控制
    Spring Security源碼分析十三:Spring Security 基於表達式的權限控制Spring Security是一個能夠為基於Spring的企業應用系統提供聲明式的安全訪問控制解決方案的安全框架。
  • Kubernetes RBAC角色權限控制
    Kubernetes RBAC權限控制Kubernetes在Kubernetes中所有的API對象都保存在ETCD裡,可是,對這些API對象的操作,卻一定是通過訪問kube-apiserver實現的。我們需要APIServer來幫助我們授權工作,而在Kubernetes項目中,負責完成授權(Authorization)的工作機制就是RBQC:基於角色的訪問控制 (Role-Based Access Control)RBAC是基於角色的訪問控制 (Role-Based Access Control) 在RBAC中,權限與角色相關聯。
  • 基於Sentry實現數據訪問權限控制
    Sentry初識Sentry是適用於Hadoop生態環境、基於角色的授權管理系統,可以模塊化集成到HDFS、Hive、Impala。它是一個策略引擎,運行定義授權規則,以校驗用戶對數據模型的訪問請求。授權對象和操作級別的組合模式提供了不同特權級別的訪問控制。在某些場景下,管理員可以使用視圖的方式限制對行或列的訪問,能一定程度上減少權限設置的工作量。Role角色是一個權限集合,定義授權規則的基本單位。角色的概念允許將多個授權規則集合到一起,然後再把權限相同的用戶分到一個角色裡,很方便後續權限管理維護。
  • django RBAC角色權限
    RBAC(Role-Based Access Control,基於角色的訪問控制),就是用戶通過角色與權限進行關聯。簡單地說,一個用戶擁有若干角色,每一個角色擁有若干權限。這樣,就構造成「用戶-角色-權限」的授權模型。在這種模型中,用戶與角色之間,角色與權限之間,一般者是多對多的關係。
  • go語言基於角色訪問的權限管理模型插件
    處理訪問控制模型及其策略的存儲。管理角色用戶映射和角色角色映射(RBAC中的角色層次結構)。支持內置的超級用戶,例如root或administrator。超級用戶可以在沒有顯式權限的情況下執行任何操作。多個內置運算符支持規則匹配。例如,keyMatch可以將資源鍵映射/foo/bar到模式/foo*。
  • [Rust][權限控制][Casbin] Rust 下成熟好用的權限控制庫
    Casbin是基於 Go 語言的權限控制庫。
  • sap 權限與角色分配方法
    SAP的權限控制是控制到欄位級的,換句話說,其權限控制機制可以檢查你是否有權限維護某張透明表的某一個欄位。 用戶(User):具體操作SAP系統的用戶,即登陸SAP Logon輸入的用戶。使用事物碼SU01創建一個新的用戶ID,默認的權限是空白的,不允許任何操作。
  • 復盤大集中模式下的角色權限設計
    為了解決信息系統中訪問控制管理的問題,適當簡化授權工作量,提高權限管理效率,需要建立基於角色的多單位授權管理模型,其業務管理模式如下:由系統管理員負責角色的權限及用戶分配。而系統中的權限,是用戶在現實工作中的權限或工作範疇在系統中的映射。為了簡化角色與職位之間的關係,定義現實中用戶職位或職務中包含的權限,在系統上均通過角色進行管理設置。四、角色權限的設計角色設計主要分為角色管理、分配用戶及分配權限3個模塊,通過對這3個模塊的控制,實現多區域管理模型下的權限設計。1.
  • SpringSecurity+JWT之基於RBAC模型的權限管理系統
    1.什麼是權限管理系統?權限管理是一個幾乎所有後臺系統的都會涉及的一個重要組成部分,可以說是後臺項目的基本功,主要目的是對整個後臺管理系統進行權限的控制,而針對的對象是員工,避免因權限控制缺失或操作不當引發的風險問題,如操作錯誤,數據洩露等問題。
  • 小知識:軟體開發的權限控制和權限驗證
    在軟體開發中,經常會用到帳號體系,涉及到帳號體系的話就不可避免的會用到權限控制或者叫權限管理。有時候,權限控制與權限驗證很容易搞混,很多人以為在前端頁面隱藏了某個按鈕就控制好權限了,其實用戶可以直接發送一個接口請求服務端來完成這個操作。
  • Hive權限管理:基於存儲授權
    Hive的默認權限模式Hive的默認授權模式支持基於用戶、組和角色的傳統RDBMS風格的授權,並授予他們在資料庫或表上執行操作的權限,詳細描述在hive授權(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Authorization)和hive廢棄的權限模式。
  • 基於業務中臺的多租戶權限管理設計方案
    文章是基於業務中臺多租戶權限管理設計的整體方案,筆者梳理了後臺系統權限管理設計的一般方法、需要解決的問題以及總結了具體的設計方案。,也就是看這個用戶關聯的所有的角色囊括的資源是否包涵當前要訪問的資源,如此就完成了用戶權限管理的控制。
  • 基於Springboot的權限管理系統
    今天給大家分享一個基於springboot的權限系統。基於SpringBoot框架的權限管理系統,支持操作權限和數據權限,後端採用SpringBoot、Mybatis、Shiro,前端採用adminLTE、vue.js、
  • 漫談PetaBase-i的基於角色的細粒度授權系統
    數據授權能力弱:數據使用缺乏細粒度授權方式和精細化的權限控制保護機制。方案:基於角色的細粒度授權系統針對上述問題,億信華辰實時大數據平臺PetaBase-i中加入了加強的細粒度的基於角色的授權系統。它使用了粗粒度的、基於Kerberos統一身份認證的安全機制與細粒度級、基於角色的授權以及多租戶的管理模式相結合的多重安全授權。Kerberos是目前Hadoop生態中非常流行且成熟的統一身份認證機制,在Hive、HDFS、YARN等開源組件的權限認證方面有著廣泛的應用。
  • k8s之RBAC-基於角色的訪問控制
    Object_URL: /apis/<GROUP>/<VERSION>/namespaces/<NAMESPACE_NAME>/<KIND>[OJJECT_ID]role based access control,將權限授權給角色
  • 國雙GVP:動態授權、無限繼承且多級管理的行級權限控制是什麼體驗?
    現在很多系統都實現了頁面權限、操作權限和簡單的數據權限此類粗粒度(功能級)的權限控制。一個組織應用功能級的粗粒度的權限管理可能影響業務效率,因權限控制缺失或者操作不當還可能引發如數據洩露等風險問題。諸如前文所提到的需求,就對數據權限管理提出了更高的要求,即數據級的權限控制。然而,依靠傳統手段實現數據級的權限控制,操作複雜且工作量繁重。
  • 基於ASP.NET MVC4+Extjs通用權限框架
    一、系統介紹本框架前端使用extjs4.2框架,基於模塊的架構設計,不同模塊間的數據可相互調用。方便維護、方便擴展。多資料庫支持 Sqlserver、Oracle、MySql等,數據底層可同時操作多個資料庫。可廣泛適用於OA、網站、電子政務、ERP、CRM等基於B/S架構的應用軟體系統的快速開發。特色功能:1.
  • 文件訪問控制權限
    l inux文件中的一般權限、特殊權限、隱藏權限有一個共性——權限是針對某一類用戶設置的。如果希望對某個指定的用戶進行單獨的權限控制,就需要用到文件的訪問控制列表(ACL)了。通俗的說,基於普通文件或目錄設置ACL其實就是針對指定的用戶或用戶組設置文件或目錄的操作權限。另外,如果針對某個目錄設置了ACL,則目錄中的文件會繼承其ACL;若針對文件設置了ACL,則文件不再繼承其所在目錄的ACL。