【認證與授權】Authorization策略 — RBAC模型介紹

更新於 發佈於 閱讀時間約 3 分鐘

前一篇的「Authentication、Authorization,傻傻分不清楚?」主要在介紹認證與授權的差異之處,而本章節著重於授權這部分,也使用了經典的RBAC模型進行說明。

概述

圖片來源

RBAC模型(Role-Based Access Control:基於角色的訪問控制), 認為可以抽象的表示:

Who是否可以對What進行How的訪問操作

並針對這樣的邏輯進行求解的過程。

當然這樣的概念不僅限於軟體世界,套用到真實世界也是非常適合的,就以公司組織來說,RBAC的公式就是非常貼近生活化的例子了。

誰可以對財務報表進行修改?

誰可以對公司規章進行新增?


基本模型的組成元素: RBAC0

根據權限的複雜程度, 又區分為RBAC0RBAC1RBAC2RBAC3, 但是不論如何都脫離不了以下的三個元素(用戶、角色、權限)來進行延伸, 也就是基礎的RBAC0

  • 用戶(User): 每個使用者可以被賦予不同角色。
  • 角色(Role): 每個角色具有不同的存取權限。
  • 許可權(Permission): 訪問許可權。

圖片來源

實際案例

假設我們有管理者跟一般使用者, 分別操作權限有所不同, 如下圖,管理者具有所有的操作權限, 而一般使用者只有查看個人訊息、修改個人用戶名稱的權限。

圖片來源

角色分層模型: RBAC1

主要在角色中引入繼承的概念, 也就是替角色分組並區分等級, 每個等級所對應的權限也有所不同。

圖片來源

角色限制模型: RBAC2

RBAC2是基於RBAC0擴展的, 增加了一些限制, 分別為:

  • 靜態職責分離(SSD): 約束於用戶與角色之間。
  1. 同一使用者不能擁有多個會發生權責衝突的角色。
  2. 互斥角色: 同一個用戶不能授予互斥關係的角色, 例如: 同一個員工不能同時為會計及研發。
  3. 基數約束: 一個用戶所被賦予的角色是有限的。
  4. 先決條件約束: 用戶想要擁有更高權限之前必須先具有前一級的權限。
  • 動態職責分離(DSD):
  1. 同一使用者可以擁有多個會發生權責衝突的角色。
  2. 實際執行時只能選擇其中一個角色來擔任。

RBAC 3

RBAC3 = RBAC1 + RBAC2,因此除了具備角色分層的概念,亦能增加限制,適用於非常大型的複雜系統,一般中小型系統較少使用。

留言
avatar-img
留言分享你的想法!
avatar-img
阿Han的沙龍
129會員
283內容數
哈囉,我是阿Han,是一位 👩‍💻 軟體研發工程師,喜歡閱讀、學習、撰寫文章及教學,擅長以圖代文,化繁為簡,除了幫助自己釐清思路之外,也希望藉由圖解的方式幫助大家共同學習,甚至手把手帶您設計出高品質的軟體產品。
阿Han的沙龍的其他內容
2023/06/30
什麼是零知識證明(Zero-knowledge proof) 是一種密碼學的概念,用於在不揭示具體信息的情況下,證明某個主張的正確性。它允許一方(稱為證明者)向另一方(稱為驗證者)證明某個陳述的真實性,而無需透露任何關於陳述的具體細節..., 這根本文字天書啊,底下讓我們用白話文來說一下唄! 「我必
Thumbnail
2023/06/30
什麼是零知識證明(Zero-knowledge proof) 是一種密碼學的概念,用於在不揭示具體信息的情況下,證明某個主張的正確性。它允許一方(稱為證明者)向另一方(稱為驗證者)證明某個陳述的真實性,而無需透露任何關於陳述的具體細節..., 這根本文字天書啊,底下讓我們用白話文來說一下唄! 「我必
Thumbnail
2023/06/09
上一篇我們介紹了「【認證與授權】Open Policy Agent 授權策略」, 相信都已經初步了解了OPA(Open Policy Agent)主要在做什麼, OPA簡單來說就是一個授權的政策管理規範, 有點像我們的法律系統, 提供開發者在上面制定法條, 以約束授權對象可以進行什麼樣的操作, 讓各
Thumbnail
2023/06/09
上一篇我們介紹了「【認證與授權】Open Policy Agent 授權策略」, 相信都已經初步了解了OPA(Open Policy Agent)主要在做什麼, OPA簡單來說就是一個授權的政策管理規範, 有點像我們的法律系統, 提供開發者在上面制定法條, 以約束授權對象可以進行什麼樣的操作, 讓各
Thumbnail
2023/06/06
上一篇我們有介紹什麼是OPA以及一些基本概念「【資訊軟體知識】Open Policy Agent 授權策略」,接下來我們就來介紹如何架設並以API的方式進行授權檢查。 這種方式的好處是可以跨語言, 不侷限於Go, 透過標準RESTFUL API的方式來與OPA Server相互溝通。 使用Docke
Thumbnail
2023/06/06
上一篇我們有介紹什麼是OPA以及一些基本概念「【資訊軟體知識】Open Policy Agent 授權策略」,接下來我們就來介紹如何架設並以API的方式進行授權檢查。 這種方式的好處是可以跨語言, 不侷限於Go, 透過標準RESTFUL API的方式來與OPA Server相互溝通。 使用Docke
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
帳號權限管理一直是產品系統的重要議題,近期規劃權限功能時發現 RBAC 這套模型,才開始了解為什麼要有 User-Role-Permission 的架構,隨著系統規模的擴大和複雜度的增加,傳統的權限管理模式已經無法滿足需求,而基於角色的訪問控制(Role-Based Access Control,簡
Thumbnail
帳號權限管理一直是產品系統的重要議題,近期規劃權限功能時發現 RBAC 這套模型,才開始了解為什麼要有 User-Role-Permission 的架構,隨著系統規模的擴大和複雜度的增加,傳統的權限管理模式已經無法滿足需求,而基於角色的訪問控制(Role-Based Access Control,簡
Thumbnail
延續先前的筆記,「網路請求」是瀏覽器和伺服器的溝通橋梁,目的是為了取得資料庫內的資源,除了 CORS 這種瀏覽器本身的阻擋機制,伺服器也會需要進行「身分驗證或授權」這道阻擋,並不是使用者有帶上 header 告知身分,就一定可以把資料 response 回來的。
Thumbnail
延續先前的筆記,「網路請求」是瀏覽器和伺服器的溝通橋梁,目的是為了取得資料庫內的資源,除了 CORS 這種瀏覽器本身的阻擋機制,伺服器也會需要進行「身分驗證或授權」這道阻擋,並不是使用者有帶上 header 告知身分,就一定可以把資料 response 回來的。
Thumbnail
除了電腦與網路技術方面的人才,完整的資安架構還必須包含資安法遵師。我甚至認為,多數企業對於資安法遵的需求,高於資安技術。企業面對資安威脅,必須採取風險控管的角度,將實際的防禦技術工作外包給專門的資安公司進行,企業內部僅需評估與控制風險。而控制風險正是法遵的核心職能。期待法律人才能一同為資安盡一份力。
Thumbnail
除了電腦與網路技術方面的人才,完整的資安架構還必須包含資安法遵師。我甚至認為,多數企業對於資安法遵的需求,高於資安技術。企業面對資安威脅,必須採取風險控管的角度,將實際的防禦技術工作外包給專門的資安公司進行,企業內部僅需評估與控制風險。而控制風險正是法遵的核心職能。期待法律人才能一同為資安盡一份力。
Thumbnail
這次來介紹軟體世界中很常遇到的授權策略,而有沒有比較好的一種策略方式,讓開發者可以遵循一套標準呢? 答案是有的,就來介紹一下新寵兒,Open Polocy Agent吧! 首先我們先搞懂什麼是認證? 什麼又是授權? 還懵懵懂懂的朋友們可以請先參考這一篇「Authentication、Authoriz
Thumbnail
這次來介紹軟體世界中很常遇到的授權策略,而有沒有比較好的一種策略方式,讓開發者可以遵循一套標準呢? 答案是有的,就來介紹一下新寵兒,Open Polocy Agent吧! 首先我們先搞懂什麼是認證? 什麼又是授權? 還懵懵懂懂的朋友們可以請先參考這一篇「Authentication、Authoriz
Thumbnail
前一篇的「Authentication、Authorization,傻傻分不清楚?」主要在介紹認證與授權的差異之處,而本章節著重於授權這部分,也使用了經典的RBAC模型進行說明。 RBAC模型(Role-Based Access Control:基於角色的訪問控制), 認為可以抽象的表示: Who是
Thumbnail
前一篇的「Authentication、Authorization,傻傻分不清楚?」主要在介紹認證與授權的差異之處,而本章節著重於授權這部分,也使用了經典的RBAC模型進行說明。 RBAC模型(Role-Based Access Control:基於角色的訪問控制), 認為可以抽象的表示: Who是
Thumbnail
認證(authentication)跟授權(authorization)這兩個名詞常常被混淆,但本質上是完全不同的兩個概念,在數位化的時代下,為了確保每位使用者的安全性,每個系統幾乎都具備認證(authentication)與授權(authorization)這兩大功能,而這些概念也常常出現在我們生
Thumbnail
認證(authentication)跟授權(authorization)這兩個名詞常常被混淆,但本質上是完全不同的兩個概念,在數位化的時代下,為了確保每位使用者的安全性,每個系統幾乎都具備認證(authentication)與授權(authorization)這兩大功能,而這些概念也常常出現在我們生
Thumbnail
新冠疫情爆發後,為了防疫,部分公司開始實施遠端工作,員工可以透過更多設備、網路和程式連接工作,也促使公司更新資訊軟體,採取更靈活的資安軟體。不只一般公司,與資產相關、重視資安的金融業,也在科技日新月異的發展下推動無密碼與多因子認證登入。
Thumbnail
新冠疫情爆發後,為了防疫,部分公司開始實施遠端工作,員工可以透過更多設備、網路和程式連接工作,也促使公司更新資訊軟體,採取更靈活的資安軟體。不只一般公司,與資產相關、重視資安的金融業,也在科技日新月異的發展下推動無密碼與多因子認證登入。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News