ixCSP 店中店 RBAC 互動預覽 — 使用手冊
這份手冊帶你操作 https://ixcsp-rbac-preview.jefflinux.com/ 上的「多層經銷(二房東)租戶模型」整合預覽:巢狀租戶樹、子租戶開通、匯總可見性、委派代管(break-glass),以及金流(定價/三腿帳本/結算)與邀請碼客戶歸屬的整條業務流程。
0 這是什麼
「店中店」= 你向平台租算力,自用一部分、把剩下分租給你的客戶;你的客戶(若為經銷身分)還能再往下分租。這個預覽把該模型的 RBAC / 租戶樹 / 可見性 / 代管 做進真正的 ixCSP 畫面。
1 痛點與解法(業務面)
先講生意,再講畫面。「店中店」要解的是四種人的痛;每個痛都對應平台的一個內建機制,並且都能在這個預覽裡實際點到。
1.1 四種人、四種痛
| 誰 | 痛點 | 沒有店中店的現況 |
|---|---|---|
| 平台(INFINITIX) 大房東 | 大客戶想「整租一批算力再分租」,平台只有單層租戶模型 | 要嘛拒單,要嘛放任線下轉售 —— 鏈路看不到、抽成收不到、出事算不清 |
| 系統商 / 區域代理 二房東 | 想轉售 GPU 算力,但計費、帳務、客戶管理、隔離全要自建 | 自建一套 billing + 帳號系統動輒數月;或用 Excel 對帳,規模一大就崩 |
| 終端客戶 分租客 | 掛在上游帳號底下混用,成員名單/用量被上游看光 | 沒有自治的組織/角色;要隱私只能另開全新帳號,資源又接不回來 |
| 平台財務 | 多層轉售 × 跨幣別(TWD/JPY/USD) | 對帳地獄:匯損無主、分潤口徑不一、退款沿鏈無法回溯 |
1.2 五個機制對症下藥
| 痛 | 平台機制 | 預覽哪裡看 |
|---|---|---|
| 轉售失控、鏈路不透明 | 遞迴租戶樹:tenant 可包 tenant,上線 policy 卡 2 層;名額上限 + 審核旗標,超限直接被擋 | §5.2–5.3 |
| 二房東自建系統成本 | 開箱即用的店中店:組織/角色/成員、定價、帳本、邀請歸屬全部內建,開通即用 | §5、§6 |
| 下游隱私 vs 上游治理 | GDAP 式可見性:匯總(rollup)恆可見給治理與分潤;明細預設黑箱;委派授權才破例、全程稽核 | §5.4、§7 |
| 跨幣別對帳地獄 | USD 單一帳本(SSOT):在地幣別只收付與顯示;每筆交易匯率快照 + 三腿分錄(收費/批發/抽成),結算單自動算淨額 | §6.3–6.4 |
| 「這客戶算誰的?」 | 全域帳號 + membership 歸屬:邀請碼自帶租戶歸因;無碼=平台直客 —— 歸屬寫在綁定,不寫在帳號 | §6.5 |
2 業務操作流程圖
四張圖看懂整條生意:開店鏈(誰先做什麼)→ 錢怎麼流 → 客戶歸誰 → 代管怎麼破例。圖中數字與 §6 截圖裡的 demo 數字一致,可對照實際畫面。
F1 · 端到端開店鏈(OC 平台 → DC 二房東 → 終端客戶)
F2 · 金流:一筆交易的三腿與結算(USD 單一帳本)
F3 · 客戶歸屬:這個新客戶算誰的?
F4 · 委派代管(GDAP 式 break-glass)生命週期
3 角色與登入(必讀:誰、登哪一端、做什麼)
第一關是 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 卡 |
| 看下線明細(成員 / 角色) | 需先取得委派(見 §7) | 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。
4 核心概念 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。
4.5 帳號生命週期 × 金流 × 客戶歸屬(DC/OC 分工總表)
從「創建帳號」到「收錢」,每個動作歸哪一端。圖例:✅ 預覽已可操作 · 🔧 設計已拍板、待後續子專案 · ❓ 尚未拍板。
4.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。
4.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)與真匯率仍為後端未來項。
4.5.3 大房東客戶 vs 二房東客戶:註冊/登入怎麼分
核心原則(已拍板):帳號是全域的;「你是誰的客戶」不寫在帳號上,寫在 membership(帳號→租戶的綁定)上。
| 註冊路徑 | 歸屬判定 | 狀態 |
|---|---|---|
| 邀請制(主要) | 房東從自己 console 發邀請,連結自帶租戶歸屬:大房東發的=平台直客;二房東發的=二房東的客戶 | ✅ 設計主路;P4 接既有 invitation 流程 |
| 自助註冊 | 預設=大房東直客;要歸二房東填選填邀請碼欄(已拍板:邀請碼欄為主) | ✅ mock demo(Commerce → Join Demo;租戶詳情可「發出邀請」產生 INV- 碼) |
| 白牌網域(未來) | 在 portal.某二房東.com 註冊 → 自動歸該二房東 | 🔧 欄位已預留,有付費經銷商要求才建 |
登入階段不需要分辨:同一入口、同一全域帳號;登入後由 membership 決定你落在哪個租戶 context(只見自己子樹),多重歸屬 → tenant switcher。此為 Azure CSP 同款模式,並避開「每個二房東一套帳號系統」的合併地獄。
5 DC 租戶端功能導覽
5.1 Roles — 角色清單與權限矩陣
系統角色(owner/admin/member)+ 自訂角色。點任一角色進詳情:繼承鏈、有效權限矩陣(分類頁籤、繼承/gated 標示)、影響範圍。頂部的灰色條是 context-strip,隨時顯示你目前所在的租戶。

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

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

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

5.5 Permission Simulator / Audit Log
模擬器:選 帳號 × 動作 × 資源 × 範圍 → 引擎給出 Allow/Deny + 理由 + 繼承鏈(驗證「權限真的有生效」)。稽核:所有寫入動作(建租戶/角色/授權/委派使用)自動記錄,可依動作/結果/時間篩選。
6 Commerce 金流操作導覽(SP-3,mock)
錢的四件事:平台設條件 → 二房東定價 → 交易進帳本 → 週期結算;外加「客戶歸屬」的邀請碼演示。左側選單 Commerce 群組:Pricing / Ledger / Settlement / Join Demo。以下截圖全部是預覽真畫面、真互動產生的數字,與 §2 流程圖同一組。
6.1 商務條件 — OC 對每家經銷商設(商務設定卡)
OC → Tenants & Organizations → 點進經銷商(例:宏碁雲算經銷)→ Commercial Profile 卡:幣別區(tw)、批發折扣(20%)、take-rate(5%)、markup 上限(3x)、結算週期(monthly)。只有平台端能編輯(Edit);DC 看同一張卡是唯讀 —— 條件是平台開給你的,不是你自己填的。

6.2 定價 — DC 在上限內自訂對客價
DC → Commerce → Pricing:幣別由幣別區限定(tw → TWD);每個 SKU 顯示牌價(USD)與 Cap(對客售價上限)= 牌價 × 匯率 × markup 上限。例:gpu-hour-nvl72 牌價 10 USD × 32.5 × 3x = 975 TWD。輸入超過上限會即時標「Over cap」且不能儲存 —— 護欄在服務層 enforce,不是只有前端提示。

6.3 帳本 — 每筆交易自動拆三腿(USD SSOT)
DC → Commerce → Ledger → 按「Record demo transaction」記一筆示範交易:客戶付 TWD 500,帳本立即出現三條 USD 分錄 —— Charge +15.384615(匯率快照 32.5)、Wholesale cost −8(牌價 10 × 80%)、Platform take −0.769231(5%)。在地幣別只是收付與顯示,分潤與對帳一律以 USD 帳本為準。

6.4 結算 — OC 出結算單、算應付淨額
OC → Commerce → Settlement → 「Generate statement (demo period)」:把本期帳本彙總成結算單,淨額 = 總額 − 批發 − 抽成 = 15.384615 − 8 − 0.769231 = 6.615384 USD(應付二房東)。結算單 immutable,產生後不可改。

6.5 客戶歸屬 — 發邀請碼 → 憑碼加入(歸因演示)
兩步看懂「這客戶算誰的」:
- DC → Tenants & Organizations → 點進 子經銷 A → Invite Management 卡按 Issue Invite → 得到邀請碼(例:
INV-1)。 - DC → Commerce → Join Demo:填顯示名稱 / Email / 邀請碼 → Join → 成功頁顯示「Tenant: 子經銷 A」—— 憑碼歸屬到發碼租戶。不填碼則歸平台直客;碼無效或過期會被退回、不會誤歸。


7 委派代管完整流程(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 離開:黃條消失,再看明細 → 重新上鎖。


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

- OC 開最上層經銷商(New Tenant @ platform,可選 Reseller)。
- DC 只見自己子樹;OC 全見 —— 對照著開兩個分頁看,隔離語意最直觀。
9 建議 Demo 動線(15 分鐘)
- 登入 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)→ 租戶與組織:平台全樹對照;點進 宏碁雲算經銷 看 Commercial Profile(20% / 5% / 3x / monthly,platform-only 編輯)。
- 回 DC → Commerce → Pricing:把 500 改成 1000 → 標「Over cap」不能存(上限 975);改回合法值儲存。
- DC → Ledger 按「Record demo transaction」→ 看三腿分錄;換 OC 同樣記一筆 → Settlement 按 Generate → 淨額 6.615384 USD。
- DC → 子經銷 A 詳情 → Issue Invite 得 INV- 碼 → Commerce → Join Demo 憑碼加入 → 成功歸屬 子經銷 A。
10 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),請勿當正式環境操作依據。
11 疑難排解與常見問題
11.1 常見問題(業務 / 設計)
| 問題 | 回答 |
|---|---|
| 二房東可以把算力再租給其他企業用戶嗎?他們能不能再往下轉租? | 可以租:DC → New Tenant(Kind=Customer)開客戶的店,客戶是完整自治的租戶(自己的組織/角色/成員),且受可見性保護(二房東只恆見匯總,明細黑箱)。預設不能再轉租:2 層 cap 下客戶開店時 Reseller 選項被鎖(§5.3、Demo 第 3 步可親見)。cap 是平台可調 policy(資料模型支援 n 層遞迴),商業需求驗證後可對特定經銷商放寬,畫面與隔離語意不用動。見流程圖 F1。 |
| 登入頁面沒看到邀請碼欄位,正常嗎? | 正常,設計如此。邀請碼屬「註冊」不屬「登入」:帳號是全域的、歸屬寫在 membership(帳號→租戶綁定),登入永遠單一入口,登入後由 membership 決定你落在哪個租戶(§4.5.3、流程圖 F3)。邀請碼只在加入那一刻用一次做歸因。預覽的歸因演示在 §6.5(Commerce → Join Demo);把邀請碼欄接進真註冊頁是 P4 後端接線工作(目前真註冊頁沒有此欄,已標 🔧)。 |
| 二房東怎麼發邀請碼給客戶? | 進目標租戶詳情 → Invite Management 卡 → Issue Invite → 得 INV- 碼 → 交給客戶,註冊時填入(預覽走 Commerce → Join Demo)。防呆:無效/過期碼退回不誤歸、不填碼=平台直客、跨子樹保護;發碼與憑碼加入都寫稽核。完整步驟與截圖見 §6.5。註:開店時的「First Admin」是指定該店第一位管理員(owner 級),Issue Invite 是後續拉客戶成員 —— 兩條路都綁進該租戶,層級不同。 |
| 二房東租給企業用戶後,企業用戶也有 OC 和 DC 嗎?怎麼分辨誰是誰? | OC 只有一個,是平台(INFINITIX)營運專用 —— 二房東和企業用戶都沒有 OC。所有租戶側的人(二房東、他的企業客戶、客戶的客戶)走同一個 DC 入口;分辨不靠「不同網站」,靠登入後的租戶 context:帳號是全域的,membership 決定你落在哪家店(頂部 context-strip 常駐顯示 Current Tenant),scope + RBAC 角色決定你能做什麼 —— 二房東的 DC 看得到子租戶 rollup、New Tenant、Commerce 定價;企業客戶的 DC 只看自己的店(組織/專案/成員),依 policy 開不了 Reseller。同一人有多重身分 → tenant switcher 切換。未來白牌網域(portal.二房東.com)也是同一個 DC 換皮,不是第二套平台。見 §3(1.2)、§4 隔離、流程圖 F3。 |
| 委派代管到底解什麼痛點? | 解「上線要能幫忙,下線要能藏客」的矛盾。沒有它只剩兩種做法:共享帳密/永久後門(名單被看光、權限收不回、稽核不清)或完全不給看(客服救火做不到)。委派代管 = 平時明細黑箱(下線客戶名單是商業機密),需要時由下線發一張顆粒化+有時效的 grant,上線進場有黃條防呆、每次讀取寫稽核,結束(Exit/到期/Revoke)立即上鎖。OP 代客操作共用同一套,平台不用做第二套後門。見 §1.2、§7、流程圖 F4。 |
11.2 操作疑難
| 症狀 | 原因 / 解法 |
|---|---|
| 登入按了沒反應 / 帳密錯誤 | 九成是帳號用錯門: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 @ 8eaf88a · 2026-07-03設計文檔:https://ixcsp-store-in-store.jefflinux.com/ · 手冊源檔:
~/Documents/claude-outputs/ixCSP/ixcsp-rbac-guide-site/內部使用 · 介面為 branch 預覽,RBAC 資料為 mock。