范叶亮写智能体、模型和数据系统时,习惯先把定义和边界钉死。把「toB 产品用户权限」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。
Role-Based Access Control
用户权限在产品中是一个最基础的功能,它决定了用户在产品中能做些什么。虽然用户对权限的感知并不是很明显,但作为一个系统的基础功能,用户权限可以说会影响产品设计和实现的方方面面。对于不同类型的产品,用户权限的设计也略有差异,ToC 产品中用户之间相对独立,所需要考虑的问题会比 ToB 产品简单不少,本文仅针对 ToB 产品的用户权限给出一些思考。
RBAC (Role-Based Access Control,基于角色的访问控制) 是一种已经广泛应用于各种管理系统的权限管理模型 1 。在 RBAC 中,操作权限与角色之间建立关联,再通过在角色与用户之间建立关联来完成对用户的授权,大大提高了权限控制的灵活性。在 RBAC 中包含几个关键的概念:
RBAC0
「资源」和「权限」之间为多对多的关系,「权限」和「角色」之间为多对多的关系,「角色」和「用户」之间亦为多对多的关系。
用户,角色和权限之间都可以是多对多的关系,在系统分工简单权限清晰明确的情况下,用户和角色之间也可能是多对一的关系。
RBAC1
RBAC1 在 RBAC0 的基础上引入了角色继承的概念,添加了「子角色」,上级角色可以继承下级角色所有的权限。
例如,一个公司的不同人力资源副总监分管不同的职能,因此具有不同的权限,而人力资源总监则应该具有所有人力资源副总监的权限。同时,人力资源总监也可能具有其他人力资源副总监都不具有的权限。
RBAC2
RBAC2 在 RBAC0 的基础上增加了一些限制,引入了 SSD (Static Separation of Duty,静态职责分离) 和 DSD (Dynamic Separation of Duty,动态职责分离)。
DSD 主要应用于会话和角色之间动态地限制用户及其拥有的角色和相应的权限。例如:一个用户在系统中拥有两个不同的角色,但在使用系统时只能激活其中一个角色。
RBAC3
接下来我们探讨在 RBAC 的基础上在真实的 ToB 产品中又有哪些权限扩展,这里有时我会以「种植」业务的 SaaS 为例进行简略分析。我们将权限又分为「功能权限」和「数据权限」两个部分,如下图所示:
功能权限就是指我们具体能够干些什么,例如:育苗,除草,施肥等等。数据权限是指我们是对谁做这些事情,例如:是对北京的实验大棚除草,还是河北的生产大棚施肥。
权限扩展
对于一个组织,我们设置有「功能池」和「数据池」。功能池即组织购买的产品的功能集合,一个组织的用户所能够使用的功能受限与此,并由组织的系统管理员分配功能池中的功能。数据池即组织自己的相关数据集合,由组织的管理员对不同的员工进行分配。
功能的层级和菜单的层级有一定的对应关系,层级不易过深,这部分将在下文菜单部分详细介绍。数据的层级则需要根据产品涉及的具体业务做出相应的规范要求,例如:「根」-「种植场」-「种植区」-「种植大棚」-「种植地块」。同时,为了方便层级的扩充,在实现层面上不建议提前把所有层级固定死,可以采用父子层级的形式循环关联。
值得单独记下的点
- 基数约束:一个用户拥有的角色是有限的,一个角色拥有的权限是有限的。
- 先决条件约束:用户在获取更高的角色之前需先拥有低级的角色。
- 客户需求。ToB 产品吗,最终是要拿来卖的,跪添甲方爸爸就好,甲方爸爸的需求就是合理的需求,无需质疑。说的有点过了,意思其实就是尽可能满足合理客户需求的前提下,制定合适的权限管理系统。
- 成本合算。有的时候客户也不是很清楚到底需不需要精细化的权限管理,那么问题就又抛回给了产品经理,那么我们需要考虑更多的是当下的实现成本和后期的改造成本。这是一个很现实的考虑,如果业务 KPI 压力比较大,有时候我们宁可承担更高的改造成本也会先实现一套简单的权限管理先用着。但是我个人认为,在研发资源相对充足的前提下还是尽量将权限系统设计完善,因为这是一个系统很底层的部分,甚至会影响后续所有的业务功能逻辑的设计和实现。
- Ferraiolo, David, Janet Cugini, and D. Richard Kuhn. “Role-based access control (RBAC): Features and motivations.” Proceedings of 11th annual computer security application conference . 1995. ↩︎
落地时建议先做的 5 件事
- 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。
- 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。
- 多智能体只在单智能体触到上下文或专业边界时再拆。
- Token、微调和压缩都要有对照数字,避免口号式优化。
- 结论写成可检查清单:接口、超时、评测集、回滚版本。
和智能体产品怎么接
龙虾PRO做 OpenClaw 落地时,最该拿走的是「单智能体先做好工具和提示,再谈编排」。数字员工、技能市场和网关应共用同一套评测与权限,而不是各写一套角色人设。
本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源
常见问题 FAQ
什么是AI智能系统?
「AI智能系统」可概括为:用户权限在产品中是一个最基础的功能,它决定了用户在产品中能做些什么。虽然用户对权限的感知并不是很明显,但作为一个系统的基础功能,用户权限可以说会影响产品设计和实现的方方面面。对于不同类型的产品,用户权限的设计也略有差异,ToC 产品中用户之间相对独立,所需要考虑的问题会比 ToB 产品简单不少,本文仅针对 ToB 产品的用户权限给出一些思考。 本文从定义、方法与实践要点展开说明。
为什么要关注AI智能系统?
关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:用户权限在产品中是一个最基础的功能,它决定了用户在产品中能做些什么。虽然用户对权限的感知并不是很明显,但作为一个系统的基础功能,用户权限可以说会影响产品设计和实现的方方面面。对于不同类型的产品,用户权限的设计也略有差异,ToC 产品中用户之间相对独立,所需要考虑的问题会比 ToB 产品简单不少,本文仅针对 ToB 产品的用户权限给出一些思考。
如何落地AI智能系统?有哪些关键步骤?
建议按以下路径推进AI智能系统:1) 基数约束:一个用户拥有的角色是有限的,一个角色拥有的权限是有限的。;2) 先决条件约束:用户在获取更高的角色之前需先拥有低级的角色。;3) 客户需求。ToB 产品吗,最终是要拿来卖的,跪添甲方爸爸就好,甲方爸爸的需求就是合理的需求,无需质疑。说的有点过了,意思其实就是尽可能满足合理客户需求的前提下…;4) 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。;5) 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。。细节见正文对应章节。
AI智能系统适合哪些人或团队?
AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。
关于「Role-Based Access Control」,本文给出了什么结论?
在「Role-Based Access Control」部分,要点是:用户权限给出一些思考。 RBAC (Role-Based Access Control,基于角色的访问控制) 是一种已经广泛应用于各种管理系统的权限管理模型 1 。在 RBAC 中,操作权限与角色之间建立关联,再通过在角色与用户之间建立关联来完成对用户的授权,大大提高了权限控制的灵活性。在 RBAC 中包含几个关键的概念: RBAC0 「资源」和「权限」之间为多对多的关系,「权限」和「角色」之间为多对多的关系,「角色」和「用户」之间亦为
关于「RBAC0」,本文给出了什么结论?
在「RBAC0」部分,要点是:能池即组织购买的产品的功能集合,一个组织的用户所能够使用的功能受限与此,并由组织的系统管理员分配功能池中的功能。数据池即组织自己的相关数据集合,由组织的管理员对不同的员工进行分配。 功能的层级和菜单的层级有一定的对应关系,层级不易过深,这部分将在下文菜单部分详细介绍。数据的层级则需要根据产品涉及的具体业务做出相应的规范要求,例如:「根」-「种植场」-「种植区」-「种植大棚」-「种植地块」。同时,为了方便层级的扩充,在实现层面上不建议提前