配置許可權
許可權集
授予應用、物件、欄位以及系統許可權。
許可權集是授予能力的主要方式。它們可以直接分配給使用者,或通過崗位間接分配。分配可以帶有 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 |
除非 viewAllRecords 或 modifyAllRecords 繞過了行級邊界,記錄訪問仍然生效。把這些標誌保留給管理許可權集——它們實際上是對該物件的租戶級超級使用者授權。
系統許可權
系統許可權用於平臺級操作,例如:
- 訪問 Console;
- 管理使用者;
- 管理崗位和許可權集;
- 執行報表;
- 匯出報表;
- 管理整合;
- 檢視審計日誌。
讓系統許可權與業務物件許可權保持分離,便於管理員審計。
推薦的許可權集
從幾個具名許可權集開始:
| 許可權集 | 用途 |
|---|---|
| Basic User | 登入並訪問主應用 |
| Setup Administrator | 管理使用者、崗位、設定和診斷 |
| Report Viewer | 檢視報表和儀表盤 |
| Integration Operator | 管理 Webhook/API Key |
| Support User | 讀取/更新支援類物件 |
再為客戶的應用新增領域特定的許可權集。
將許可權集標記為 isDefault 會在其所屬軟體包安裝時建議分配(替代 13 之前的 isProfile 標誌)。
委託管理(Delegated Administration)
許可權集可以攜帶 adminScope,使其持有者成為限定範圍的管理員。該範圍宣告:
- 在哪裡可以操作——某個業務單元子樹;
- 能做什麼——
manageAssignments、manageBindings、authorEnvironmentSets; - 可以分發哪些許可權集(
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 Manager、Finance Read-only),而不是為每個欄位單獨建一套——更易審計。 - 合規場景下,把欄位安全與審計日誌保留期搭配使用,事後才能回答"誰看過這條記錄?"。