iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
Build on Google AI

將考國際證照的應用程式變成開源系列 第 47

ADR-006-role-based-access-control.md

  • 分享至 

  • xImage
  •  

ADR-006: 角色存取控制 (Role-Based Access Control)

狀態: 已接受 (Accepted)

日期: 2026-08-02

背景 (Context)

應用程式服務多種類型的使用者,從匿名訪客和付費客戶,到內部測試人員和系統管理員。簡單的布林值旗標 (isPremium) 不足以處理所需的權限。

決策 (Decision)

實作具備 6 種不同角色的細粒度角色存取控制 (RBAC) 系統:

  1. admin (系統管理員): 擁有所有功能、編輯和分析的完整存取權。
  2. viewer (檢視者): 一般已驗證使用者 (可根據其他屬性成為付費或免費)。
  3. pending (待審核): 等待人工核准的使用者。
  4. internalTester (內部測試人員): 無需付費即可存取未發布的功能/考試。
  5. publicTester (公開測試人員): 具有有限搶先體驗權限的 Beta 測試人員。
  6. guest (訪客): 受到高度限制的匿名使用者。

考慮過的替代方案 (Alternatives Considered)

  • 簡單的免費/付費二分法:
    • 優點:實作非常簡單。
    • 缺點:無法處理管理員、測試人員或待審核狀態。
  • 三層式 (免費/付費/管理員):
    • 優點:涵蓋基本業務需求。
    • 缺點:對於 Beta 測試群組和離線活動的臨時帳號不夠靈活。
  • 基於屬性的存取控制 (ABAC):
    • 優點:無限的彈性。
    • 缺點:對於目前的規模來說過於複雜,難以推論 UI 可見性。

後果 (Consequences)

  • 正面影響: 對 UI 可見性和功能存取進行細粒度控制,輕鬆安全地引導測試人員。
  • 負面影響: 複雜的權限矩陣,需要對每個角色狀態進行仔細的 UI 測試。

相關文件 (Related Documents)


上一篇
ADR-005-security-first-design.md
下一篇
開源文檔庫 (docs_opensource) 現況同步與全面升級計畫
系列文
將考國際證照的應用程式變成開源51
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言