technine.io
一只手拿着屏幕亮起但没有显示内容的智能手机,伸向混凝土墙上一个亮着红灯的黑色小型读卡器;背景是空荡的楼梯间和一扇深色的门。

指南

基于角色的访问控制(RBAC)是什么?按岗位分配权限

基于角色的访问控制(RBAC)按岗位角色分配系统权限,而不是给每个用户单独设置。本文介绍用户、角色和权限之间的关系,RBAC 的好处和常见误区,以及为新系统规划角色时要注意的事项和可以向开发商提的问题。

更新于

基于角色的访问控制(Role-Based Access Control,简称 RBAC)是按岗位角色管理系统权限的方法:先定义“销售”“财务”“系统管理员”等角色,确定每个角色能查看和操作哪些内容,再把员工分配到角色中,而不是逐个给人设置权限。员工入职、转岗或离职时,只需调整其角色,不必从头重新配置访问权限。

从网站 CMS、ERP 到定制的管理后台,大多数业务软件都采用某种形式的 RBAC。了解它的原理,既有助于规划新系统,也便于管好现有系统。

RBAC 的原理:用户、角色和权限

RBAC 由三个部分组成:

  • 权限:对某类数据执行的具体操作,例如“查看订单”“办理退款”“修改商品价格”“导出客户名单”。
  • 角色:一组带名称的权限,对应实际岗位,例如“客服”或“门店经理”。
  • 用户:员工的实际账号。每个用户被分配一个或多个角色,并获得这些角色包含的权限。

以下示例仅用于说明:在网店管理后台中,“客服”角色可以查看订单、更新配送备注;“门店经理”角色还可以修改价格、审批退款;只有“系统管理员”角色能创建新账号或更改系统设置。新入职的客服只要分配到这个角色,第一天就能拿到合适的权限。

RBAC 对成长型企业的意义

  • 最小权限原则:每个人只拿到工作所需的权限。即使账号被滥用或密码被盗,影响范围也更小。
  • 入职和离职处理更快:分配或移除一个角色,比逐项勾选几十个设置更快,也更不容易出错。
  • 减少误操作:员工无法修改或删除本不该接触的数据。
  • 便于核查:查一查“谁有财务角色”,比逐个账号检查简单得多。

RBAC 的常见误区

  • 人人都是管理员:小团队里很常见的省事做法,会让 RBAC 的大部分保护作用失效。
  • 角色越建越多:每遇到一个例外就新建一个角色,最后谁也看不懂角色列表。角色数量应尽量少,并与真实岗位对应。
  • 共用账号:多人共用一个登录账号,就无法分清是谁做了什么操作。
  • 权限只增不减:员工转岗后,旧权限仍然保留,又叠加了新权限。
  • 忘记清理离职人员和供应商:前员工、外包人员或以前合作的代理公司,账号依然可以登录。
  • 只在界面上做限制:按钮在界面上被隐藏了,但后台服务器或 API 并没有校验权限,有人仍然可以直接触发该操作。

为新系统规划角色

如果你准备委托开发网站、App 或内部平台,最好在设计页面之前就把角色定下来:

  • 列出会使用系统的人员和团队,包括代理商、加盟商、供应商等外部人员。
  • 列出敏感操作,例如审批付款、办理退款、导出个人数据、修改价格、删除记录。
  • 做一张简单的表格,行是角色,列是操作,标明谁可以做什么。
  • 确定由谁分配角色,以及敏感操作是否需要第二人审批。
  • 要求系统为关键操作和角色变更保留审计日志。
  • 在用户验收测试(UAT)阶段逐个测试每个角色,包括确认角色无法执行不该执行的操作。

RBAC 与 SSO、MFA、零信任的关系

这几个概念相互关联,但解决的问题不同。单点登录(SSO)和多重身份验证(MFA)解决的是“你是谁”;RBAC 解决的是登录后“你能做什么”。零信任是更宏观的安全思路,针对每项资源评估访问请求,角色通常是其中一个判断依据。

RBAC 也有局限。如果规则取决于门店、记录负责人或时间段等细节,系统通常会在角色之外再加上基于属性的规则;这些规则同样需要写进文档。

持续管好角色

  • 根据风险定期复核角色分配,员工转岗时也要及时复核。
  • 员工或供应商离开后,尽快收回其访问权限。
  • 系统管理员账号要少,必须实名,并启用 MFA。

technine.io 在业务系统与云平台项目中会一并规划权限、身份认证和审计日志,也可以通过网络安全与合规服务检查访问控制。

常见问题

RBAC 只适合大公司吗?

不是。即使只有五个人的团队,把负责更新网站内容的人和能修改支付设置的人分开,也有实际好处。小型系统可能只需要三四个角色。

一个人可以同时拥有多个角色吗?

大多数系统都支持。用户的权限通常是所有角色权限的合集,所以要检查角色组合是否冲突,例如同一个人既能创建又能审批同一笔付款。

现有系统能加上 RBAC 吗?

很多情况下可以,但取决于系统的开发方式。如果系统从未在服务器端校验权限,加入 RBAC 可能需要修改应用代码和 API,而不只是新增配置。确定方案前,应先请开发人员评估。

多久复核一次访问权限比较合适?

没有统一标准。不少企业会定期复核,并在有人入职、转岗或离职时再检查。存有支付数据或个人数据的系统,通常值得更频繁地检查。

咨询WhatsApp