Skip to Content
Organizations角色及權限範圍

角色及權限範圍

OpenFactory儲存組織、單位和團隊中的獨立角色 水平。角色名稱描述了一個範圍;這不是一個普遍的許可 自動套用於每個 API 或產品功能。

範圍模型

organization membership: owner | admin | member └── unit membership: unit_admin | base_creator | base_approver | member └── team membership: team_lead | variant_creator | variant_deployer | variant_user

組織成員資格是外部邊界。使用者必須是組織 管理員可以將他們添加到其單位或團隊之一之前。 每個級別的會員資格都經過獨立檢查;不要推斷一個單位或團隊 來自另一個上下文中顯示的組織角色的角色。

組織角色

目前的組織管理 API 強制執行這些權限:

營運業主管理員會員
查看組織、成員、群組、單位和團隊是的是的
編輯組織名稱或描述是的是的沒有
建立、編輯或刪除群組並管理群組成員是的是的沒有
邀請或刪除普通會員是的是的沒有
更改普通成員/管理員角色是的是的沒有
邀請或提升業主是的沒有沒有
更改或刪除現有所有者是的沒有沒有
建立或刪除單位是的是的沒有
刪除組織是的沒有沒有
離開組織是的,除非唯一的所有者是的是的

一個組織可以有多個所有者。 API 防止唯一所有者 直到存在其他所有者或組織被刪除為止。那裡 此 API 中沒有單獨的「轉讓所有權」操作;一個所有者改變了另一個所有者 成员的角色为 owner,然后可以按预期更改或删除先前的所有者。

單位角色

組織所有者和管理員可以管理每個單位。在一個單位內, 当前的组织管理 API 授予 unit_admin 以下功能 行政運作:

  • 編輯單位;
  • 新增、刪除和更改單位成員角色;
  • 建立、編輯和刪除該單元中的團隊;
  • 新增和管理該單位的團隊成員。

只有組織所有者或管理員才能刪除單位本身。

base_creatorbase_approver 和单元 member 是存储的角色标签 基礎映像工作流程策略。組織 CRUD 路由本身並不 證明其他地方的每個創建、批准或部署操作都會強制執行這些操作 標籤。驗證特定建置或核准的授權行為 工作流程,然後再依賴它作為控制項。

團隊角色

组织所有者/管理员和上级单位的 unit_admin 可以管理团队 會員資格。 team_lead 可以:

  • 編輯團隊的名稱或描述;
  • 新增和刪除團隊成員;
  • 改變團隊成員的角色。

team_lead 无法通过当前组织 API 删除团队; 此操作是為組織所有者/管理員或家長保留的 unit_admin

variant_creatorvariant_deployervariant_user 表示预期的 變體工作流程職責。它們不應被視為證明每個 變體端點強制執行完整的建立/編輯/部署矩陣。測試準確 已部署版本中的工作流程和拒絕路徑。

群組不同

群組是組織層級的共享集合,而不是另一個角色層次結構。 擁有者和管理員建立群組並管理群組成員資格;所有組織 成員可以列出群組及其成員。團體成員資格並不意味著 使用者轉變為組織管理員、單位管理員或團隊領導。

安全地改變角色

  1. 確認目標組織、單位或團隊。
  2. 記錄使用者目前在所有三個範圍的有效會員資格。
  3. 應用一項角色變更。
  4. 使用該使用者自己的操作測試允許的操作和拒絕的操作 會議。
  5. 檢查快取的 UI 狀態和現有會話是否反映了變更。
  6. 如果您的策略需要的話,請在角色標籤之外保留審核記錄。

在沒有拒絕路徑測試的情況下更改標籤並不足以證明 強制執行最小特權。

常見的邊緣狀況

  • 管理員無法將任何人提升為擁有者或更改現有所有者的角色。
  • 使用者無法新增到某個單位或團隊,除非他們屬於該單位或團隊 組織。
  • 單位和團隊成員可以自行撤離;組織成員資格仍然存在 除非單獨移除。
  • 刪除組織會員資格時應檢查陳舊的單位、團隊、 版本中的分組、分享和會話效果。
  • UI 徽章顏色用於展示,而不是安全控制。永遠依靠 伺服器端授權和拒絕路徑測試。