开发平台之权限设计

开发平台之权限设计
背景
对于应⽤,⽆论⼤⼩或复杂,权限是⾮常基础的功能模块。在⼀些⽇常的⼩APP中,可能会有简单的普通⽤户、vip、管理员这三种普通的⾓⾊权限合集,⽽对于我们⽇常使⽤的企业应⽤,其权限的颗粒度与⾓⾊的划分更为微⼩、更为复杂,如:动态创建⾓⾊、分级管理员、权限转移等。如何设计可以⽀撑各种需求粒度的权限呢?
需求
1、不同的⼈具有不同的权限,不同的⼈拥有不同的⾝份(管理员、某个岗位权限、某个特定组、某个特定⾓⾊)。—⽤户权限⾝份多样性
2、权限的来源⽅式不同,⽐如某条记录的权限、页⾯的元素操作权限、菜单权限。—权限资源的多样性
微波杀青
3、复杂系统具有分级管理员的特征,权限的转移、临时授权与收回、⾓⾊权限的继承。—权限资源的灵活性
抽象与设计
在介绍灵活的核⼼设计前,先给⼤家普及⼀个⼊门的概念:RBAC(Role-Based Access Control,基于⾓⾊的访问控制),就是⽤户通过⾓⾊与权限进⾏关联。简单地说,⼀个⽤户拥有若⼲⾓⾊,每⼀个⾓⾊拥有若⼲权限。
RBAC其实是⼀种分析模型,主要分为:基本模型RBAC0(Core RBAC)、⾓⾊分层模型RBAC1(Hierarchal RBAC)、⾓⾊限制模型RBAC2(Constraint RBAC)和统⼀模型RBAC3(Combines RBAC)。
更多详情⼤家可以了解:
钢管在线双向推车核⼼UML
这是笔者通过多种业务场景后抽象的RBAC关系图无线通信系统
类说明
Group
或组,拥有⼀定数量权限的集合,亦可以是权限的载体。
⼦类:User(⽤户)、Role(⾓⾊)、Position(岗位)、Unit(部门),通过⽤户的特定构成,形成不同业务场景的或组,⽽通过对或组的⽗类授权,完成了⽤户的权限获取。
Permission
权限,拥有⼀定数量资源的集成,,亦可以是资源的载体。
权限下有资源,资源的来源有:Menu(菜单)、Option(动作权限)、页⾯元素(按钮、tab等)、数据权限等
Program
程序,相关权限控制的呈现载体,可以在多个菜单中挂载。
管理ip
常见web程序基本构成
羊毛鞋垫
核⼼逻辑
⼀个⽤户登录,只需检查其拥有哪些权限,根据当前访问的菜单来动态地渲染加载页⾯程序资源(动作权限、页⾯元素权限);当⽤户访问某些数据时,根据数据资源的配置约束获取对应权限的数据权限合集,从⽽对可见数据进⾏隔离。
上⽂我们提⾼的岗位权限、领导⼈权限、岗位权限,都可以在上述模型中关联出来。
请期待下⼀篇《企业应⽤之登录设计:单点登录、域登录》。

本文发布于:2024-09-24 13:11:59,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/100582.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:权限   资源   数据   登录
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议