跳到內容

實作二:撤權之後,Agent 必須停下來

**目標:**把「我認得你」與「你可以做什麼」分開。

本課登入證明你是哪位學員。OpenFGA 另外判斷 user:studentXX 對 order:own 是否有 viewer 關係。每位學員擁有獨立 store;另外設一筆未授權資源 order:restricted 作為拒絕案例。

type user
type order
relations
define viewer: [user]
  1. 先在「完整任務」查詢自己的訂單,記下成功結果。
  2. 選「存取授權」,按「撤銷我的查看權」。
  3. 重新執行訂單查詢。預期 OpenFGA 拒絕,流程停止,沒有發出資料庫憑證。
  4. 恢復查看權,再次查詢,預期成功。
  5. 按「嘗試未授權訂單」。即使自己有權看 own,仍不能看 restricted。
測試 預期
有 viewer 關係 allowed=true,繼續下一步
撤銷 viewer 關係 allowed=false,不發證、不查資料
未授權訂單 永遠拒絕,不因另一筆訂單有權限而通過

學員可以改自己的教學授權,是為了實驗。正式環境中,Agent 不應能修改決定自己權限的政策。資料庫仍有自己的權限,不能只靠前端隱藏按鈕。

閱讀對照:Authorization in Action 與 OpenFGA 官方文件。本課採最小的直接關係模型;群組繼承、組織邊界、委派和時間條件可作進階練習。