ObjectOS
配置許可權

許可權集

授予應用、物件、欄位以及系統許可權。

許可權集是授予能力的主要方式。它們可以直接分配給使用者,或通過崗位間接分配。分配可以帶有 valid_from / valid_until 時間視窗——過期的授權會立即失效。

許可權集控制什麼

許可權型別示例
應用訪問使用者可以開啟 CRM 或 Console
物件許可權建立、讀取、更新、刪除記錄
欄位許可權讀取或更新指定欄位
系統許可權訪問 Console、執行報表、匯出資料
整合許可權使用 API Key、Webhook 或管理操作

物件許可權

物件許可權回答:

Can this user perform this operation on this object at all?

許可權集授權使用以下標誌名(由 security 外掛的許可權求值器強制執行):

標誌含義
allowRead讀取記錄訪問規則允許的記錄
allowCreate建立記錄
allowEdit更新記錄訪問規則允許的記錄
allowDelete刪除記錄訪問規則允許的記錄
viewAllRecords讀取該物件的每一條記錄,繞過記錄訪問
modifyAllRecords更新或刪除該物件的每一條記錄,繞過記錄訪問;讀取上隱含 viewAllRecords

除非 viewAllRecordsmodifyAllRecords 繞過了行級邊界,記錄訪問仍然生效。把這些標誌保留給管理許可權集——它們實際上是對該物件的租戶級超級使用者授權。

系統許可權

系統許可權用於平臺級操作,例如:

  • 訪問 Console;
  • 管理使用者;
  • 管理崗位和許可權集;
  • 執行報表;
  • 匯出報表;
  • 管理整合;
  • 檢視審計日誌。

讓系統許可權與業務物件許可權保持分離,便於管理員審計。

推薦的許可權集

從幾個具名許可權集開始:

許可權集用途
Basic User登入並訪問主應用
Setup Administrator管理使用者、崗位、設定和診斷
Report Viewer檢視報表和儀表盤
Integration Operator管理 Webhook/API Key
Support User讀取/更新支援類物件

再為客戶的應用新增領域特定的許可權集。

將許可權集標記為 isDefault 會在其所屬軟體包安裝時建議分配(替代 13 之前的 isProfile 標誌)。

委託管理(Delegated Administration)

許可權集可以攜帶 adminScope,使其持有者成為限定範圍的管理員。該範圍宣告:

  • 在哪裡可以操作——某個業務單元子樹;
  • 能做什麼——manageAssignmentsmanageBindingsauthorEnvironmentSets
  • 可以分發哪些許可權集(assignablePermissionSets)。

被委託者只能針對白名單內的許可權集逐行寫入,且每條授權都會記錄 granted_by 供審計。授予或編寫本身帶有 adminScope 的許可權集,要求授予者持有嚴格包含的範圍。租戶級管理員完全繞過此閘門。

欄位安全(附錄)

許可權集也承載欄位級授權。即使使用者能讀取一條記錄,單獨的欄位也可以被隱藏或設為只讀。

兩種模式

模式效果
隱藏欄位從 API 響應和 Console 檢視中完全剝離
只讀欄位返回,但寫入被拒絕

在哪裡強制執行

檢查物件許可權的同一求值器在每條路徑上都應用欄位規則——REST、ObjectQL、生成的 Console 表單、匯出。沒有"繞過"它的低層 API。

典型模式

用例建議
sys_user 上的 HR 資料(薪資、SSN)對除 HR 許可權集外的所有人隱藏
外部系統識別符號對支援只讀,對整合運維可寫
product 的內部成本 vs 客戶價格對銷售隱藏 cost,對財務呈現
含 PHI 的備註欄位除包含相關臨床職能的許可權集外一律隱藏

編寫建議

  • 當欄位承載敏感資料時,預設選擇隱藏而非只讀 —— 只讀仍然會把值洩漏到響應和日誌中。
  • 欄位許可權鍵必須帶物件限定(寫 crm_lead.budget,不要寫 budget)——自 ObjectStack 14.4 起,security-fls-unqualified-key 校驗會在編譯期拒絕裸鍵,因為裸鍵會靜默匹配不到任何欄位。
  • 把欄位規則打包到匹配真實職能的許可權集(HR ManagerFinance Read-only),而不是為每個欄位單獨建一套——更易審計。
  • 合規場景下,把欄位安全與審計日誌保留期搭配使用,事後才能回答"誰看過這條記錄?"。

On this page