架构设计-权限系统之权限系统设计方案

本文详细探讨了权限管理在后台系统中的重要性,特别是RBAC模型(Role-BasedAccessControl)的应用,包括RBAC0、RBAC1、RBAC2和RBAC3的不同扩展,以及在微服务架构中的设计策略。作者还介绍了授权流程、表结构和常用的权限框架,强调了在实际项目中灵活运用和定制化的必要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

权限管理是所有后台系统的都会涉及的一个重要组成部分,主要目的是对不同的人访问资源进行权限的控制,避免因权限控制缺失或操作不当引发的风险问题,如操作错误,隐私数据泄露等问题。

目前在公司负责权限这块,所以对权限这块的设计比较熟悉,公司采用微服务架构,权限系统自然就独立出来了,其他业务系统包括商品中心,订单中心,用户中心,仓库系统,小程序,多个 APP 等十几个系统和终端。

1、权限模型

迄今为止最为普及的权限设计模型是 RBAC 模型,基于角色的访问控制(Role-Based Access Control)

1.1 RBAC0 模型

RBAC0 模型如下:

这是权限最基础也是最核心的模型,它包括用户 / 角色 / 权限,其中用户和角色是多对多的关系,角色和权限也是多对多的关系。

用户是发起操作的主体, 按类型分可分为 2B 和 2C 用户,可以是后台管理系统的用户,可以是 OA 系统的内部员工,也可以是面向 C 端的用户,比如阿里云的用户。

角色起到了桥梁的作用,连接了用户和权限的关系,每个角色可以关联多个权限,同时一个用户关联多个角色,那么这个用户就有了多个角色的多个权限。

有人会问了为什么用户不直接关联权限呢?在用户基数小的系统,比如 20 个人的小系统,管理员可以直接把用户和权限关联,工作量并不大,选择一个用户勾选下需要的权限就完事了。

但是在实际企业系统中,用户基数比较大,其中很多人的权限都是一样的,就是个普通访问权限,如果管理员给 100 人甚至更多授权,工作量巨大。

这就引入了 "角色 (Role)" 概念,一个角色可以与多个用户关联,管理员只需要把该角色赋予用户,那么用户就有了该角色下的所有权限,这样设计既提升了效率,也有很大的拓展性。

  • 权限:

是用户可以访问的资源,包括页面权限,操作权限,数据权限:

  • 页面权限:

即用户登录系统可以看到的页面,由菜单来控制&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeBe@r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值