Samgao0312 / Blog

MIT License
1 stars 1 forks source link

后台用户权限管理系统实现模型 #82

Open Samgao0312 opened 4 years ago

Samgao0312 commented 4 years ago

1. RBAC权限设计模型

BAC(Role-Based Access Control,基于角色的访问控制),简单点说就是用户通过角色与权限进行关联 获得某些功能的使用权限。权限被赋予给角色,而不是用户。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般是多对多的关系, 即:

2. 三大模块

我们可以把 后台的用户角色权限系统大概的分为三个大的模块:用户管理、角色管理、权限管理。

考验: 权限设计考验了一个产品对业务理解能力 和 对自己后台功能模块熟悉程度。做角色权限系统之前一定要先深度了解业务流程以及后台的所有功能模块,在不了解的情况下,多向相关同事请教,避免角色权限系统设计过程中出差错和逻辑漏洞。

3、 FAQs

3.1. 一个用户拥有多个角色,多角色之间如果存在互斥关系如何处理?

如果,一个用户已经被添加到某一角色,那么,当给该用户添加一个与当前角色存在权限互斥关系的角色时,系统会进行互斥性判断,后面的角色就无法给该用户添加成功;

3.2. 业务发展过程中,如何保证不同角色之间权限拆分清晰?

随着业务的快速发展,一定会不断新增不同的角色和更多的功能模块,而且这些角色和功能权限之间的关系也会变得越来越混乱,这个时候需要产品经理和业务方一起,及时的面对业务的发展变化,及时、快速的梳理业务调整范围,作出对应的改变;

3.3. 用户权限管理系统核心难点是前期的产品设计吗?

用户权限管理系统核最难的不是前期的产品设计,而是后续的运营维护。因为,权限系统的结构往往不会随意变更,但是随着业务发展快速出现的角色和功能模块,为了防止角色和功能权限之间的关系变得混乱,在建立新的角色和分配权限的时候需要思路清晰且慎重调整。