ixCSP 店中店 RBAC 互動預覽 — 使用手冊
這份手冊帶你操作 https://ixcsp-rbac-preview.jefflinux.com/ 上的「多層經銷(二房東)租戶模型」整合預覽:巢狀租戶樹、子租戶開通、匯總可見性、委派代管(break-glass)整條流程。
0 這是什麼
「店中店」= 你向平台租算力,自用一部分、把剩下分租給你的客戶;你的客戶(若為經銷身分)還能再往下分租。這個預覽把該模型的 RBAC / 租戶樹 / 可見性 / 代管 做進真正的 ixCSP 畫面。
1 角色與登入(必讀:誰、登哪一端、做什麼)
第一關是 Cloudflare OTP(輸入你的 @infinitix.co email 收驗證碼);第二關是應用程式登入。兩種身分、兩個入口、兩組帳號,不可互用(最常見的「進不去」就是拿平台端帳號登租戶端)。
1.1 你是誰?→ 登哪一端
| 身分(story 對應) | 登入端 | 帳號 / 密碼 | 這一端的職責 |
|---|---|---|---|
| 平台營運 OP INFINITIX 內部人員 |
OC 平台端/operation-center/ |
ixcspadm@infinitix.co73EPqX2sFmJWMtEgFcbB |
開通 / 停用最上層經銷商;管理平台角色(super_admin / support…)與指派;檢視整棵租戶樹與各經銷商 rollup;平台側稽核 / 模擬器;(概念)OP 代客操作走同一套委派機制 |
| 租戶 / 經銷商管理者 story 裡的「你」= 二房東 客戶側 Dev / Admin |
DC 租戶端/dev-console/ |
seltestpods4@infinitix.coIxcsp@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 @ OC | OC → Tenants & Organizations → New Tenant(可選 Reseller) |
| 分租:開子租戶(story:把北京 GB200 分租給客戶) | 二房東 @ DC | DC → 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 | ✅ mock(租戶詳情「商務設定」卡) | |
| 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 → 依週期結算。✅ 已可在預覽操作(mock):側欄 Commerce 群組 → Pricing(定價+上限)/ Ledger(三腿帳本:客戶收費/批發成本/平台抽成,可按「記一筆示範交易」)/ Settlement(OC 可產生結算單,淨額 = 總額 − 批發 − 抽成)。誠實:資料為 in-memory mock、匯率為 seed 固定值;真金流通道(ECPay/Stripe per-tenant)與真匯率仍為後端未來項。
2.5.3 大房東客戶 vs 二房東客戶:註冊/登入怎麼分
核心原則(已拍板):帳號是全域的;「你是誰的客戶」不寫在帳號上,寫在 membership(帳號→租戶的綁定)上。
| 註冊路徑 | 歸屬判定 | 狀態 |
|---|---|---|
| 邀請制(主要) | 房東從自己 console 發邀請,連結自帶租戶歸屬:大房東發的=平台直客;二房東發的=二房東的客戶 | ✅ 設計主路;P4 接既有 invitation 流程 |
| 自助註冊 | 預設=大房東直客;要歸二房東填選填邀請碼欄(已拍板:邀請碼欄為主) | ✅ mock demo(Commerce → Join Demo;租戶詳情可「發出邀請」產生 INV- 碼) |
| 白牌網域(未來) | 在 portal.某二房東.com 註冊 → 自動歸該二房東 | 🔧 欄位已預留,有付費經銷商要求才建 |
登入階段不需要分辨:同一入口、同一全域帳號;登入後由 membership 決定你落在哪個租戶 context(只見自己子樹),多重歸屬 → tenant switcher。此為 Azure CSP 同款模式,並避開「每個二房東一套帳號系統」的合併地獄。
3 DC 租戶端功能導覽
3.1 Roles — 角色清單與權限矩陣
系統角色(owner/admin/member)+ 自訂角色。點任一角色進詳情:繼承鏈、有效權限矩陣(分類頁籤、繼承/gated 標示)、影響範圍。頂部的灰色條是 context-strip,隨時顯示你目前所在的租戶。

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

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

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

3.5 Permission Simulator / Audit Log
模擬器:選 帳號 × 動作 × 資源 × 範圍 → 引擎給出 Allow/Deny + 理由 + 繼承鏈(驗證「權限真的有生效」)。稽核:所有寫入動作(建租戶/角色/授權/委派使用)自動記錄,可依動作/結果/時間篩選。
4 委派代管完整流程(break-glass)
情境:下線租戶需要你(上線)進去幫忙看/處理 —— 但明細預設黑箱。做法:建立一張有期限的 Delegated Access grant → 進入代管 session → 明細解鎖 → 離開。全程稽核。

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


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

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