組織和基於角色的存取控制:如何設計產品的授權模型
這篇文章詳細指南如何為組織和基於角色的存取控制設計授權模型,並提供在 Logto 平台中不同授權模型的最佳實踐。
這篇文章詳細指南如何為組織和基於角色的存取控制設計授權模型,並提供在 Logto 平台中不同授權模型的最佳實踐。
組織是一群使用者(身份),可以代表能存取你應用程式的團隊、商業客戶和合作公司。

組織在企業對企業 (B2B) 環境中特別有效。與個人消費者相比,企業客戶通常由整個團隊、組織或公司組成,而不僅僅是一個人。引入作為實體的組織很重要,因為它不僅能群組使用者,還能在多租戶應用程式中提供租戶隔離的背景。
有了這個基礎元素,你現在可以為你的 B2B 產品建立必備功能:
基於角色的存取控制 (RBAC) 是一種根據角色為使用者分配權限的方法。基於角色的存取控制是定義於角色和特權周圍的政策中立存取控制機制。RBAC 的組件如角色權限、使用者角色和角色-角色關係使得執行使用者分配變得簡單。NIST 的一項研究顯示,RBAC 解決了商業和政府組織的許多需求。
之前,我們已經開發了一些指導來幫助你使用 RBAC 符合你的業務需求。查看這些簡單易懂的教程快速開始。
🔐 基於角色的存取控制 (RBAC) | Logto Docs
基於角色的存取控制和組織是 Logto 授權功能的關鍵組件。作為一個綜合身份管理平台,Logto 提供針對各種情境和層次的定制解決方案,以滿足開發者和企業對不同產品架構的需求。
要保護不屬於任何組織的通用 API 資源,並且不需要上下文限制,API RBAC 功能是理想的。
只需註冊 API 並為每個資源分配權限。然後,通過角色與使用者之間的關係控制存取。

API 資源、角色和權限在這裡在統一的身份系統下“民主化”。這在 B2C 產品中相當常見,層次結構較少,不需要非常深層的資料隔離。
在 B2B 和多租戶環境中,租戶隔離是必需的。為了實現這一點,使用組織作為隔離的背景,這意味著 RBAC 只有在使用者屬於特定組織時才有效。

組織 RBAC 著重於在組織層級而不是 API 層級控制存取。這提供了長期組織層級自我管理的靈活性,但仍在一個統一的身份系統中。
組織 RBAC 的一個關鍵特點是,角色和權限在默認情況下通常在所有組織中都是相同的,這使得 Logto 的“組織模板”對提高開發效率非常意義重大。

這與多租戶應用程式的共享理念一致,其中存取控制政策和身份是所有租戶(應用程式租戶)的公共基礎設施組件,這在 SaaS 產品中是一個常見的做法。
選擇合適的授權模型時,請考慮以下問題:
讓我們以一個網絡應用程式為例:BookHarber,一個線上書店。BookHarber 為客戶和員工提供廣泛的功能,確保流暢和安全的購物體驗。
BookHarber 的關鍵功能包括:
在 BookHarber 生態系統中,我們可以識別幾個關鍵使用者角色,如:
之前,我們已經開發了一些指導來幫助你使用 RBAC 符合你的業務需求。查看這些簡單易懂的教程快速開始。
多租戶應用程式經常在企業對企業 (B2B) 解決方案中找到他們的位置,例如生產力工具、企業資源規劃 (ERP) 系統和其他軟體即服務 (SaaS) 產品。在此背景下,每個“租戶”通常代表一個商業客戶,可能擁有多個使用者(其員工)。此外,一個商業客戶可能擁有多個租戶來代表不同的組織或商業部門。



B2B 應用程式超越 SaaS 產品,經常涉及使用多租戶應用程式。在 B2B 內容下,這些應用程式作為一個共同平台,供多個團隊、商業客戶和合作公司存取你的應用程式。
例如,考慮一家提供 B2C 和 B2B 應用程式的共乘公司。B2B 應用程式服務於多個商業客戶,使用多租戶架構可以幫助管理他們的員工和資源。為了說明,如果公司希望維持統一的使用者身份系統,可以設計如下的架構例子:
讓我們以 Sarah 為例。Sarah 既有個人身份也有商業身份。她作為乘客使用共乘服務,同時在空閒時也以司機的身份工作。在她的職業角色中,她還管理自己的個人業務,並使用該商業身份成為與企業 1 的合作夥伴。

在 Logto 中設定的實體

使用者的身份和角色圖







Logto 提供基於角色的存取控制 (RBAC) 和組織功能以滿足你的授權需求。這些功能設計為易於整合到你的產品的各個部分中。要了解更多資訊,請查看我們的 組織 和 RBAC 部分,或者你可以立即嘗試 Logto。