ixCSP 店中店 RBAC 互動預覽 — 使用手冊

這份手冊帶你操作 https://ixcsp-rbac-preview.jefflinux.com/ 上的「多層經銷(二房東)租戶模型」整合預覽:巢狀租戶樹、子租戶開通、匯總可見性、委派代管(break-glass)整條流程。

真 ixCSP UI 整合(非獨立原型)資料層 mock(後端 API 未接)DC + OC 雙端branch build

0 這是什麼

「店中店」= 你向平台租算力,自用一部分、把剩下分租給你的客戶;你的客戶(若為經銷身分)還能再往下分租。這個預覽把該模型的 RBAC / 租戶樹 / 可見性 / 代管 做進真正的 ixCSP 畫面。

1 角色與登入(必讀:誰、登哪一端、做什麼)

第一關是 Cloudflare OTP(輸入你的 @infinitix.co email 收驗證碼);第二關是應用程式登入。兩種身分、兩個入口、兩組帳號,不可互用(最常見的「進不去」就是拿平台端帳號登租戶端)。

1.1 你是誰?→ 登哪一端

身分(story 對應)登入端帳號 / 密碼這一端的職責
平台營運 OP
INFINITIX 內部人員
OC 平台端
/operation-center/
ixcspadm@infinitix.co
73EPqX2sFmJWMtEgFcbB
開通 / 停用最上層經銷商;管理平台角色(super_admin / support…)與指派;檢視整棵租戶樹與各經銷商 rollup;平台側稽核 / 模擬器;(概念)OP 代客操作走同一套委派機制
租戶 / 經銷商管理者
story 裡的「你」= 二房東
客戶側 Dev / Admin
DC 租戶端
/dev-console/
seltestpods4@infinitix.co
Ixcsp@User123
自家角色 / 成員 / 部門(組織/專案);開子租戶(分租,New Tenant);看下線的 Scope Rollup(恆可見匯總);對下線建立 / 使用委派代管;自家稽核 / 模擬器。只見自己子樹

1.2 「登入帳號」vs「RBAC 角色」是兩件事(別混)

  • 登入帳號(入口)決定你站在哪一端:OC = 平台視角(看全樹)、DC = 租戶視角(只看自己子樹)。
  • RBAC 角色(owner / admin / member / super_admin / 自訂角色)決定在該視角內「能做什麼」:這是畫面裡 Roles / 綁定 / 模擬器管的東西。
  • ⚠ 預覽限制:RBAC 角色資料是 mock —— 登入帳號不會真的綁到某個 RBAC 角色;要驗證「某角色能不能做某事」,用 Permission Simulator(選帳號 × 動作 × 資源 → Allow/Deny + 理由)。

1.3 常用操作 × 誰做 × 在哪裡

操作誰做在哪裡
開通最上層經銷商(如「宏碁雲算經銷」)OP @ OCOC → Tenants & Organizations → New Tenant(可選 Reseller)
分租:開子租戶(story:把北京 GB200 分租給客戶)二房東 @ DCDC → Tenants & Organizations → New Tenant(本層只可選 Customer = 2 層 cap 守則)
建內部部門 / 專案二房東 @ DC同頁 → New Organization
建 / 編自訂角色、綁定成員各自管各自:OP @ OC(平台角色)/ 二房東 @ DC(租戶角色)Roles → New Role / 列尾選單
看下線營運匯總(Rollup)上線(OP 看經銷商、二房東看下線)樹點進該租戶 → Scope Rollup 卡
看下線明細(成員 / 角色)需先取得委派(見 §4)Delegated Access → Enter Session → 該租戶詳情
OP 代客操作(concierge)OP @ OC(同一套委派機制)OC → Delegated Access
驗證「某角色可否做某事」任一端Permission Simulator
查誰做過什麼任一端(各自 scope)Audit Log

登入後,RBAC 功能都在左側選單的 Access Control 群組:Roles / Tenants & Organizations / Permission Simulator / Audit Log / Delegated Access。

2 核心概念 3 分鐘

  • Scope 樹(在哪)vs 角色(能幹嘛)是兩種階層:scope 是容器樹 platform → tenant → organization → project;角色是繼承鏈(owner ⊃ admin ⊃ member)。
  • 店中店 = tenant 可以包 tenant:經銷商(reseller)租戶底下可再開子租戶(子經銷或終端客戶)。上線政策預設 最多 2 層租戶(平台→經銷商→終端),超過會被擋(depth cap)。
  • 可見性三層:① 匯總恆可見 —— 上線永遠看得到下線的 Scope Rollup(子租戶數/啟停/配額/結算,治理與分潤所需);② 明細預設黑箱 —— 下線的成員名單/角色是它的商業機密,看不到;③ 委派破例 —— 有效的 Delegated Access grant 才解鎖明細,且全程稽核、有期限(GDAP 式)。
  • 隔離走血緣(ancestry):你只看得到自己子樹;直接輸入別家租戶的網址會得到 not found。

2.5 帳號生命週期 × 金流 × 客戶歸屬(DC/OC 分工總表)

從「創建帳號」到「收錢」,每個動作歸哪一端。圖例:✅ 預覽已可操作 · 🔧 設計已拍板、待後續子專案 · ❓ 尚未拍板

2.5.1 生命週期:誰在哪一端做什麼

階段動作狀態
0 平台開店開通最上層經銷商(New Tenant @ platform,Kind=Reseller)OC
指定二房東第一位管理員(First Admin → owner 綁定)OC✅ mock;真邀請信 P4
設該經銷商 policy(子租戶名額 / 審核旗標)OC✅ enforce 會動;編輯 UI 待補
設商務條件(結算幣別區 / 批發折扣 / take-rate / markup 上限 / 結算週期)OC🔧 SP-3
1 二房東自家管理員經邀請完成註冊、首次登入DC✅ 概念在;真接線 P4
建部門/專案、自訂角色、綁定成員DC
設自己對客的幣別(核准清單內)與定價(≤ markup 上限)DC🔧 SP-3
2 分租開子租戶(Kind 鎖 Customer = 2 層 cap)+ 邀請客戶管理員DC
看下線 Rollup / 對下線委派代管DC
持續營運全樹檢視、停用經銷商、平台角色、OP 代客(委派)OC
終端客戶用自己的組織/角色/專案DC(他自己的視角)

一句話:「開店、管店東、抽成」在 OC;「開自己的店、分租、管自己人」在 DC。

2.5.2 二房東金流怎麼設(🔧 SP-3,設計已定)

誰設設什麼
OC(平台→二房東,onboard 時)① 結算幣別區(依 region:日本鏈 JPY / 台灣鏈 TWD,跨區內部歸一 USD 帳本)② 批發折扣 ③ take-rate %(對他下游每筆抽成)④ markup 上限(×N)+ 結算週期
DC(二房東→他的客戶)⑤ 從平台核准清單選對客顯示/收款幣別(匯率快照/鎖定由平台管,不可自訂匯率)⑥ 在 markup 上限內設對客定價、發票資訊

資金流:客戶付二房東(在地幣別)→ 平台 USD 帳本記帳 + 匯率快照 → 平台抽 take-rate → 依週期結算現況誠實:ixCSP 既有金流為平台級單租戶設定;per-經銷商金流整套為 SP-3 新建,目前預覽沒有。

2.5.3 大房東客戶 vs 二房東客戶:註冊/登入怎麼分

核心原則(已拍板):帳號是全域的;「你是誰的客戶」不寫在帳號上,寫在 membership(帳號→租戶的綁定)上。

註冊路徑歸屬判定狀態
邀請制(主要)房東從自己 console 發邀請,連結自帶租戶歸屬:大房東發的=平台直客;二房東發的=二房東的客戶✅ 設計主路;P4 接既有 invitation 流程
自助註冊預設=大房東直客;要歸二房東需帶推薦碼 / 租戶參數❓ 細節未拍板
白牌網域(未來)portal.某二房東.com 註冊 → 自動歸該二房東🔧 欄位已預留,有付費經銷商要求才建

登入階段不需要分辨:同一入口、同一全域帳號;登入後由 membership 決定你落在哪個租戶 context(只見自己子樹),多重歸屬 → tenant switcher。此為 Azure CSP 同款模式,並避開「每個二房東一套帳號系統」的合併地獄。

3 DC 租戶端功能導覽

3.1 Roles — 角色清單與權限矩陣

系統角色(owner/admin/member)+ 自訂角色。點任一角色進詳情:繼承鏈、有效權限矩陣(分類頁籤、繼承/gated 標示)、影響範圍。頂部的灰色條是 context-strip,隨時顯示你目前所在的租戶。

DC Roles
DC · Access Control 首頁:角色清單 + 頂部 context-strip(Current Tenant)。

3.2 Tenants & Organizations — 檔案總管式租戶/組織樹

你子樹的階層總覽:子經銷(Tenant)、部門(Organization)、專案(Project)可展開收合;點任一列下鑽進該 scope 的詳情。注意「子經銷 A-停用」帶 Suspended 標籤 —— 狀態一目瞭然。

scope tree
DC · 租戶與組織:巢狀樹(子經銷 A → 子經銷 A-停用;工程組 → Alpha 專案)。

3.3 New Tenant — 開通子租戶(店中店的「開店」)

樹頁右上 New Tenant 開通子租戶:名稱、Kind(Reseller 可再往下分租 / Customer 終端)、配額引用、第一位管理員。平台守則在服務端強制:depth cap(2 層)、單一經銷商的子租戶數上限、審核旗標(開啟時新租戶為 pending)——超限會被擋並顯示原因。旁邊的 New Organization 則是建內部部門/專案。

onboard drawer
Onboard Tenant drawer:Kind 選 Reseller/Customer;到達層數上限時 Reseller 選項會被鎖住。

3.4 Scope Detail — 下鑽詳情 + Scope Rollup(恆可見匯總)

點進任一租戶:Overview(父層/子 scope/角色/綁定數)、Child Scopes、Scope Rollup 匯總卡(子租戶數、啟用/停用、配額、結算、事件 —— 配額與結算目前為 demo 佔位數字,已標註)。租戶明細區(成員/角色)預設顯示「Detail is protected」上鎖卡 —— 這就是可見性模型的黑箱層,要解鎖請看下一章。

scope detail
子經銷 A 詳情:Overview + Child Scopes + Scope Rollup;明細區預設上鎖(頁面下方)。

3.5 Permission Simulator / Audit Log

模擬器:選 帳號 × 動作 × 資源 × 範圍 → 引擎給出 Allow/Deny + 理由 + 繼承鏈(驗證「權限真的有生效」)。稽核:所有寫入動作(建租戶/角色/授權/委派使用)自動記錄,可依動作/結果/時間篩選。

4 委派代管完整流程(break-glass)

情境:下線租戶需要你(上線)進去幫忙看/處理 —— 但明細預設黑箱。做法:建立一張有期限的 Delegated Access grant → 進入代管 session → 明細解鎖 → 離開。全程稽核。

delegated page
Delegated Access:grant 清單(對象/權限/到期/狀態)+ 建立新 grant 表單。
  1. 左側選單進 Delegated Access。清單已有一張示範 grant(對象 op-concierge,Active)。也可自建:選對象、勾權限、給到期日 → Grant Access。
  2. 對 Active 的 grant 按列尾 Enter Session。頂部立即出現黃色代管條:「Acting as 〈租戶名〉 · Expires: 〈到期〉 · Exit Delegation」——只要在代管中,這條在每一頁都提醒你「你正站在別人的租戶裡」。
  3. 代管中回到 租戶與組織 → 點進 子經銷 A:原本上鎖的明細區已解鎖(顯示成員/自訂角色)。每次解鎖讀取都會寫入 delegated_use 稽核。
  4. 按代管條右側 Exit Delegation 離開:黃條消失,再看明細 → 重新上鎖。
acting banner
進入代管後:黃色 Acting-as 條(租戶名 + 到期 + Exit)。
in-session detail
代管中檢視子租戶詳情:黃條跨頁持續;頁面下方的明細區此時為解鎖狀態。

5 OC 平台端(INFINITIX 視角)

同一組畫面掛在 /system/access-control,差別是視角:平台看整棵樹(所有經銷商),角色/稽核/模擬器都是 platform scope。

OC tree
OC · 租戶與組織:平台全樹(宏碁雲算經銷含子經銷 + 環宇智算代理)。
  • OC 開最上層經銷商(New Tenant @ platform,可選 Reseller)。
  • DC 只見自己子樹;OC 全見 —— 對照著開兩個分頁看,隔離語意最直觀。

6 建議 Demo 動線(10 分鐘)

  1. 登入 DC(seltestpods4)→ Access Control → Roles:看角色 + 點進 owner 看繼承鏈與矩陣。
  2. Tenants & Organizations:展開樹,認出「Tenant 包 Tenant」的巢狀(子經銷 A)。
  3. New Tenant 建一個終端客戶(例:北京GB200分租客)→ 樹上立即出現。注意 drawer 的 Kind 只剩 Customer 可選 —— 你在第 2 層,再往下開經銷商會超過 2 層 cap,守則直接反映在選項上。
  4. 連開幾個子租戶到達你的名額上限 → 會跳「無法建立租戶:已達子租戶數量上限」—— maxChildren 守則生效。
  5. 點進 子經銷 A:看 Scope Rollup(恆可見)與下方上鎖的明細區(黑箱)。
  6. Delegated Access → 對示範 grant Enter Session → 黃色代管條出現。
  7. 回到 子經銷 A → 明細解鎖
  8. Exit Delegation → 再看 → 重新上鎖。Audit Log 裡找到整串紀錄。
  9. Permission Simulator:任挑一組帳號×動作×資源,看 Allow/Deny + 理由。
  10. OC(ixcspadm)→ 租戶與組織:平台全樹對照。

7 Mock 邊界與已知限制(誠實清單)

  • RBAC 資料 in-memory:重新整理(F5)會重置新建租戶/grant/代管 session(需重按 Enter Session)。後端 RBAC API 就緒後換真資料、畫面不變(API-shaped)。
  • 配額 / 結算為佔位數字(已在畫面標註)—— 屬 SP-1 / SP-3 後續子專案。
  • 解鎖後的明細目前顯示成員/角色「數量」,完整名單表格為 follow-up。
  • 角色/綁定的 per-scope 過濾為 follow-up(詳情頁有註記)。
  • 此為 branch build(未併 main),請勿當正式環境操作依據。

8 疑難排解

症狀原因 / 解法
登入按了沒反應 / 帳密錯誤九成是帳號用錯門:DC 用 seltestpods4、OC 用 ixcspadm(見 §1 表格),兩邊不可互用。
代管條不見了 / 明細又上鎖你重新整理過頁面(in-memory session 被重置)→ 回 Delegated Access 重按 Enter Session。
新建的租戶不見了同上,mock 資料不落庫;重整即重置(這是預覽的預期行為)。
直接貼別家租戶的網址顯示 not found —— 這是隔離(ancestry)正確運作,非 bug。
整站打不開(502/timeout)預覽 server 在 VM80,主機重開後需重啟;找 Jeff(或依 memory reference_ixcsp_rbac_preview_tunnel 重啟)。
預覽:https://ixcsp-rbac-preview.jefflinux.com/(CF OTP @infinitix.co)· branch feat/rbac-access-control @ 9e00f09 · 2026-07-02
設計文檔:https://ixcsp-store-in-store.jefflinux.com/ · 手冊源檔:~/Documents/claude-outputs/ixCSP/ixcsp-rbac-guide-site/
內部使用 · 介面為 branch 預覽,RBAC 資料為 mock。