2026年8月2日7 分鐘權限設計 · 內部工具 · AI 應用 · 系統設計 · 資訊安全 · 多伺服器管理

內部工具要給外人看的那一天 — 權限怎麼補、AI 生圖怎麼分流

內部工具最舒服的地方就是「登入即全開」——直到有一天它要給團隊成員、甚至客戶看。這篇講兩件事:權限怎麼補進一套原本沒有權限概念的系統(關鍵是隱藏而不是禁用), 以及我們把畫圖收進對話流時,為什麼一定要把「生照片」和「畫圖表」分成兩條路。

陳先生 (Henry)

內部工具要給外人看的那一天 — 權限怎麼補、AI 生圖怎麼分流 — 文章主視覺

內部工具最舒服的地方,就是不用想權限。反正用的人就那幾個,登入即全開。

直到有一天,它要給團隊以外的人看。

我們的多伺服器管理系統一開始純粹是自己用的:把幾台跨作業系統的機器收在一個瀏覽器分頁裡,自動巡檢、AI 排錯、跨機器派遣指令。工程團隊自己人用,沒有任何權限概念。

後來它開始要給團隊成員看、要給客戶看某些專案 —— 「所有人都看得到所有東西」立刻變成問題。別的客戶的專案、機群的維運細節,不該是誰登入都能翻。

這篇講我們補權限時學到的東西,以及另一個看似無關、實際上同樣是「開放給人用」才會浮現的問題:AI 生圖的路由。

一、補權限的第一個決定:隱藏,還是禁用? #

這是整件事最關鍵的一個選擇。

多數系統的做法是禁用:東西還在清單上,但點下去說你沒有權限。實作簡單,前端加個判斷就好。

我們選的是隱藏:沒被開放的專案,完全不出現在清單、也不出現在搜尋結果裡

差別在哪?

「看得到但點不開」本身就在洩漏資訊。 客戶 A 看到清單上有「客戶 B 的專案」這一列,即使點不進去,他已經知道客戶 B 是你的客戶、正在做什麼名字的專案。

對外開放的場景裡,專案名稱本身就是機密。禁用只擋住了內容,隱藏才擋住了存在。

這個決定的代價是:權限判斷必須做在資料查詢層,不能只做在畫面上。清單要過濾、搜尋要過濾、任何會回傳列表的 API 都要過濾。少做一個地方就漏一個。但這個成本是值得付的,因為「畫面上藏起來、API 還查得到」是最典型的假權限。

二、來源分級:不是每個使用者都要有帳號 #

補權限時很容易直接跳到「做完整的角色權限系統」—— 使用者、角色、權限矩陣、後台管理介面。

我們沒有這樣做,因為當時的實際需求根本不需要

實際的需求是:管理端要全開,其他來源只能看被開放的專案。所以我們用連線來源分級:依來源決定能力範圍,管理端全部功能,受限來源只看開放清單內的專案、而且是唯讀 —— 只能查,不能操作。

這個做法的好處是不用先建一套帳號體系就能把最危險的洩漏擋掉。等到真的出現「同一個來源要有不同權限的人」,再往上補角色也不遲。

補權限的順序建議:先擋住「不該被看到的東西」,再處理「誰是誰」。 反過來做的話,會在還沒擋住洩漏之前,先花好幾週做帳號管理。

三、能執行指令的系統,要有白名單 #

只讀的權限是一回事,能對機器下指令是另一回事。

這套系統可以跨機器派遣指令 —— 這是它最有價值的功能,也是最危險的功能。這裡我們的處理是目標主機走白名單:能被派遣的機器是列舉出來的,不在名單上的一律不接受。

這不只是防惡意,更多是防手滑。維運事故裡,誤操作的比例遠高於惡意攻擊。 一個明確的白名單,能擋掉「指令打對了但機器選錯了」這種代價很高的錯誤。

同樣的邏輯也用在管理面板:機群維運狀態、伺服器清單這類卡片只給管理端看。受限來源連「我們有幾台機器」都不需要知道。

四、另一個開放才會遇到的問題:AI 生圖產出中文亂碼 #

補完權限之後,我們把另一件每天在做的事也收進系統裡:畫圖。

工程團隊每天都要畫架構圖、流程圖、給客戶的說明圖。傳統流程是「另開繪圖軟體 → 手拉 → 匯出 → 貼回文件」,做一張圖比寫一段程式還久

把它收進對話流之後,馬上撞到一個問題:AI 生圖模型畫中文字,幾乎必然變成亂碼或錯字。

而且是不穩定的錯 —— 重生一次可能對了、再生一次又錯。架構圖上的專案名稱、版本號、欄位名稱,全部不能信。

解法:兩個指令,明確分流 #

我們沒有試圖「把生圖模型調教到會寫中文」(這條路走不通),而是把需求分成兩類,各走各的路:

指令 走哪條路 適合什麼
/image 影像生成模型 照片級視覺、產品情境、海報素材
/chart 先寫 HTML + CSS,再用瀏覽器轉成圖 含中文標籤的圖表、架構圖、流程圖

關鍵在第二條路:圖表不是「畫」出來的,是「排版」出來的。 文字交給瀏覽器渲染,中文字型、對齊、數字全部精確可控,而且要改內容就改 HTML 再轉一次,不用祈禱模型這次會生對。

這個分流讓中文圖表變成一次就對,而不是反覆重生撞運氣。你現在看到的這個網站上的架構圖,就是用這套流程做的。

附帶的好處:可維護 #

HTML 產出的圖有個生圖模型給不了的優點 —— 它可以被修改。數字更新了、產品名稱改了,改幾行 HTML 重轉即可,版面完全一致。生圖模型重畫一次,整張圖的構圖都會變。

五、回頭看:內部工具走向對外,會遇到的三件事 #

把這段經驗抽出來,任何內部工具要開放給外部時,大概都會遇到同樣三關:

關卡 內部工具的預設 對外要改成
可見範圍 登入即全開 隱藏而非禁用,且要做在查詢層
操作能力 誰都能執行 危險操作走白名單,唯讀是預設
產出品質 自己看懂就好 要能交付給客戶,細節不能出錯

第三點最容易被低估。內部用的時候,圖表上的字歪一點、錯一個,自己人看得懂就算了;要交到客戶手上,那就是品質問題


如果你手上也有這種「本來自己用、現在要給外面看」的系統,最值得先做的其實不是加功能,而是盤點一次:現在登入的人,實際上能看到什麼、能做到什麼。這份清單通常會比想像中長。

需要有人一起盤,或想聊聊多伺服器管理該怎麼收斂,歡迎直接找我們。

有類似的問題想解決?

先聊聊你的狀況,我們給你可執行的方向。諮詢免費,依工時報價。

3Q · 摩葳實業 / 牛寶創意科技社 / 倍新有限公司 — 企業 IT 系統,做了 23 年