組織和基於角色的存取控制:如何設計產品的授權模型
這篇文章詳細指南如何為組織和基於角色的存取控制設計授權模型,並提供在 Logto 平台中不同授權模型的最佳實踐。
什麼是組織
組織的定義
組織是一群使用者(身份),可以代表能存取你應用程式的團隊、商業客戶和合作公司。
組織在企業對企業 (B2B) 環境中特別有效。與個人消費者相比,企業客戶通常由整個團隊、組織或公司組成,而不僅僅是一個人。引入作為實體的組織很重要,因為它不僅能群組使用者,還能在多租戶應用程式中提供租戶隔離的背景。
組織的使用案例
有了這個基礎元素,你現在可以為你的 B2B 產品建立必備功能:
- 建立多 租戶架構來隔離客戶的資料和資源。
- 應用程式的存取層級由分配給組織成員的角色定義。
- 在邀請和即時基礎上提供成員。
- 每個組織都可以有單一登入(SSO)驗證體驗。
什麼是基於角色的存取控制?
基於角色的存取控制定義
基於角色的存取控制 (RBAC) 是一種根據角色為使用者分配權限的方法。基於角色的存取控制是定義於角色和特權周圍的政策中立存取控制機制。RBAC 的組件如角色權限、使用者角色和角色-角色關係使得執行使用者分配變得簡單。NIST 的一項研究顯示,RBAC 解決了商業和政府組織的許多需求。
基於角色的存取控制使用案例
之前,我們已經開發了一些指導來幫助你使用 RBAC 符合你的業務需求。查看這些簡單易懂的教程快速開始。
🔐 基於角色的存取控制 (RBAC) | Logto Docs
在 Logto 中使用不同的授權模型以獲得最佳實踐
基於角色的存取控制和組織是 Logto 授權功能的關鍵組件。作為一個綜合身份管理平台,Logto 提供針對各種情境和層次的定制解決方案,以滿足開發者和企業對不同產品架構的需求。
API 基於角色的存取控制
要保護不屬於任何組織的通用 API 資源,並且不需要上下文限制,API RBAC 功能是理想的。
只需註冊 API 並為每個資源分配權限。然後,通過角色與使用者之間的關係控制存取。
API 資源、角色和權限在這裡在統一的身份系統下“民主化”。這在 B2C 產品中相當常見,層次結構較少,不需要非常深層的資料隔離。
組織基於角色的存取控制
在 B2B 和多租戶環境中,租戶隔離是必需的。為了實現這一點,使用組織作為隔離的背景,這意味著 RBAC 只有 在使用者屬於特定組織時才有效。
組織 RBAC 著重於在組織層級而不是 API 層級控制存取。這提供了長期組織層級自我管理的靈活性,但仍在一個統一的身份系統中。
組織 RBAC 的一個關鍵特點是,角色和權限在默認情況下通常在所有組織中都是相同的,這使得 Logto 的“組織模板”對提高開發效率非常意義重大。
這與多租戶應用程式的共享理念一致,其中存取控制政策和身份是所有租戶(應用程式租戶)的公共基礎設施組件,這在 SaaS 產品中是一個常見的做法。
選擇和設計合適的授權模型
選擇合適的授權模型時,請考慮以下問題:
- 你是開發 B2C、B2B 還是兩者結合的產品?身份是否被視為商業身份?
- 你的應用程式是否需要多租戶架構?
- 你的應用程式是否需要基於商業單位的某種隔離等級?
- 在組織背景中需要定義哪些權限和角色,哪些則不需要?
一個 B2C 應用程式
讓我們以一個網絡應用程式為例:BookHarber,一個線上書店。BookHarber 為客戶和員工提供廣泛的功能,確保流暢和安全的購物體驗。
BookHarber 的關鍵功能包括:
- 瀏覽和購買書籍:使用者可以輕鬆搜尋和購買來自各種文類和作者的書籍。
- 訂單管理和物流追蹤:註冊客戶可以管理他們的訂單,追蹤運送並獲得購買的更新。
- 特別優惠和節日活動:BookHarber 提供專屬折扣和促銷活動,以在特殊活動和假日時吸引並獎勵其客戶群。
- 客戶支持:客戶可以開啟支持工單來處理任何可能遇到的問題,BookHarber 員工將及時提供協助。
- 客戶管理:具有不同角色的員工可以管理平台的各個方面,如客戶帳戶、訂單處理和問題解決。
角色
在 BookHarber 生態系統中,我們可以識別幾個關鍵使用者角色,如:
- 訪客:未註冊的使用者可以瀏覽網站、搜尋書籍和查看特別優惠。
- 客戶:註冊使用者可以購買書籍、管理訂單、追蹤物流並開啟支持工單。
- 商店管理員:負責監督平台整體管理和運營的員工。擁有完整存取權限。
- 書籍管理員:負責書籍和類別管理的員工。
- 客戶服務代理:負責回應支持工單的員工。
- 第三方物流供應商:負責管理和追蹤訂單運送和交付的外部合作夥伴。
- 行銷人員:負責推廣 BookHarber 的員工,負責管理特別優惠和活動。
之前,我們已經開發了一些指導來幫助你使用 RBAC 符合你的業務 需求。查看這些簡單易懂的教程快速開始。
一個 B2B 應用程式
多租戶應用程式經常在企業對企業 (B2B) 解決方案中找到他們的位置,例如生產力工具、企業資源規劃 (ERP) 系統和其他軟體即服務 (SaaS) 產品。在此背景下,每個“租戶”通常代表一個商業客戶,可能擁有多個使用者(其員工)。此外,一個商業客戶可能擁有多個租戶來代表不同的組織或商業部門。
創建一些組織
為組織級存取控制定義組織模板
混合 B2B 和 B2C 應用程式
B2B 應用程式超越 SaaS 產品,經常涉及使用多租戶應用程式。在 B2B 內容下,這些應用程式作為一個共同平台,供多個團隊、商業客戶和合作公司存取你的應用程式。
例如,考慮一家提供 B2C 和 B2B 應用程式的共乘公司。B2B 應用程式服務於多個商業客戶,使用多租戶架構可以幫助管理他們的員工和資源。為了說明,如果公司希望維持統一的使用者身份系統,可以設計如下的架構例子:
讓我們以 Sarah 為例。Sarah 既有個人身份也有商業身份。她作為乘客使用共乘服務,同時在空閒時也以司機的身份工作。在她的職業角色中,她還管理自己的個人業務,並使用該商業身份成為與企業 1 的合作夥伴。
在 Logto 中設定的實體
使用者的身份和角色圖
定義 API 資源,使用者角色
設定組織
Sarah 的個人資料
今天就建立你的授權。
Logto 提供基於角色的存取控制 (RBAC) 和組織功能以滿足你的授權需求。這些功能設計為易於整合到你的產品的各個部分中。要了解更多資訊,請查看我們的 組織 和 RBAC 部分,或者你 可以立即嘗試 Logto。