繁體中文(台灣)
CIAM 102: 授權與基於角色的存取控制
組織和租戶對於群組身份來說是很棒的,但它們導致了一種絕對民主狀態:每個人在這個系統中都可以做任何事。雖然烏托邦仍然是個謎,我們來看看存取治理:授權(AuthZ)。
背景
在 前一篇文章 中,我們介紹了認證(AuthN)和授權(AuthZ)的概念,以及一些令人頭疼的術語:身份、組織、租戶等。
組織和租戶對於群組身份來說是很棒的,但它們導致了一種絕對民主狀態:每個人在這個系統中都可以做任何事。雖然烏托邦仍然是個謎,我們來看看存取治理:授權(AuthZ)。
為什麼我們需要授權?
Notion 是一個很好的例子。對於你擁有的每個頁面,你可以選擇只讓自己看到、與朋友共享,甚至公開共享。
或者,對於一家線上書店,你希望每個人都可以看到所有書籍,但客戶只能看到自己的訂單,而賣家只能管理自己店鋪中的書籍。
AuthZ 和 AuthN 是複雜商業模式的基本組成部分。它們經常一起運作;AuthZ 驗證用戶的存取,而 AuthN 認證身份。兩者對於系統安全都很必要。
基本授權模型
這是最常見的 AuthZ 模型之一:如果 IDENTITY 在 RESOURCE 上執行 ACTION,則 ACCEPT 或 DENY。
在 Notion 的例子中,模型為 PERSON 在 PAGE 上執行 VIEW。
如果頁面是私密的:
- 當你在你的 PAGE 上執行 VIEW 時,你會收到 ACCEPT。
- 其他人在你的 PAGE 上執行 VIEW 時應該收到 DENY。
基於共識,業界開發了各種授權技術,如基於角色的存取控制(RBAC)、基於屬性的存取控制(ABAC)。今天,我們會專注於 NIST RBAC 模型 的第一級:扁平 RBAC。