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