組織和基於角色的訪問控制:如何設計你的產品授權模型
本文提供了一份詳細指南,介紹如何為組織和基於角色的訪問控制設計授權模型,並為 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。