全部場數

077 · 舊授權模型接不住 agent

從一次延遲異常追出根本問題:agent 既不是人、也不是決定性的程式,舊的身份驗證模型完全撐不住。

2026-07-1912:50Ravi Madabhushi(Scalekit)Agent安全開發工具看原片

原標題:You Didn't Ship a Bug. You Just Wrote It for a Human. - Ravi Madabhushi, Scalekit

重點摘要

  • 從延遲異常查出架構盲點ScaleKit 發現效能每 15 分鐘規律尖峰,追根究柢是身份系統原本只為人類設計,agent 打 API 的頻率遠超預期,逼出更深的架構問題。
  • 舊有身份模型只有兩種,都不是為 agent 設計不管是使用者帶 API key 的應用程式,還是走 OAuth/SPIFFE 的服務帳號,核心假設都是認證者就是行動者,權限在註冊當下就固定死。
  • 這套假設在 agent 身上站不住腳agent 常常代替使用者行動,principal 與 actor 因此分離,而且行為不像人類寫的程式那樣有決定性,今天沒問題不代表明天也一樣。
  • 多數 MCP server 把權限管理丟給 agent 自己判斷它們往往曝露全部工具,而不是依授權使用者限制存取範圍,安全邊界等於交給 agent 自由心證。
  • 解法是更細粒度、動態的授權,而不是加大 OAuth scopeagent 應該有自己的身份、綁定 principal,預設最小權限,需要更高權限時走即時授權。
  • 這不是理論問題已經有 agent 誤刪 production 資料庫的真實案例,講者也用客戶 ref.tools 限縮 coding agent context 的做法當範例。

時間軸

時碼點下去會跳到影片的那一段。

時碼段落重點
00:00開場Ravi 自我介紹身分,點出要談的是為人類設計的架構為何不適用於 agent。
00:17效能異常追蹤ScaleKit 觀察到延遲每 15 分鐘規律尖峰,決定深入排查原因。
01:07找到病灶agent 打 API 的頻率是人類的 60 倍,讓原本為人類設計的 last-seen 時間戳機制不堪負荷,雖然好修,卻點出更深的疑慮。
01:56講者背景Ravi 曾在 Freshworks 打造服務千萬使用者的身份驗證平台,累積十年經驗。
02:28權限過大是常態開發者給 agent 的權限普遍超出其工作所需,不是粗心,而是現有做法下的預設結果。
03:11兩種舊身份模型不管是使用者帶 API key 的應用程式,還是服務帳號走 OAuth/SPIFFE,都不是針對 agent 設計。
04:24核心假設:認證者=行動者傳統模型裡權限在註冊當下就固定,之後每次行動都照那組權限走。
06:04為何過去行得通因為程式是人寫的、行為可預期,甚至能像 Google 審查敏感 scope 一樣被檢查。
07:13agent 打破假設agent 不是人寫的決定性程式,代替使用者行動時,principal 與 actor 也不再是同一個。
08:18MCP 曝露過多工具多數 MCP server 不會依授權使用者限制工具存取,而是把全部工具丟給 agent 自己判斷。
09:15解法:agent 專屬身份agent 該有自己的身份並綁定 principal,權限要細到屬性與情境層級,不只是套用現成 OAuth scope。
11:00不是未來式的問題已經有 agent 誤刪 production 資料庫的真實案例,講者以客戶 ref.tools 限縮 coding agent context 為例。
11:51結語:可視性與防護沒有完整可視性與決定性防護,等於只能祈禱 agent 不出包,而祈禱不是策略。

值得記的話

名詞與人物

ScaleKit講者共同創立的新創,做的是身份與存取管理基礎設施。
Freshworks講者先前任職的公司,曾在此打造服務千萬級使用者的身份驗證平台。
OAuth讓程式或 agent 代表使用者取得授權的協定,是這場討論的重心之一。
SPIFFE用來給機器與服務帳號建立身分的開放標準。
MCP讓 agent 存取外部工具與資料的協定,這場點出它常曝露過多工具給 agent。
ref.tools講者舉的客戶案例,限縮給 coding agent 的 context 範圍以避免過度授權。

延伸

  • Google 開發者帳號申請敏感 scope 時會做安全審查,這場只提了一句,沒有展開細節。
  • OAuth 的 client credentials 模式在 agent 場景下實際怎麼運作,講者沒有進一步說明。
  • ref.tools 具體怎麼判斷「overscoping」、怎麼收斂權限,這場沒有講細節。