第3章-SaaS-HRM系统用户权限设计
学习目标:
理解RBAC模型的基本概念及设计思路
了解SAAS-HRM中权限控制的需求及表结构分析
完成组织机构的基本CRUD操作
完成用户管理的基本CRUD操作
完成角色管理的基本CRUD操作
1 RBAC模型
1.1 什么是RBAC
RBAC(全称:Role-Based Access Control)基于角色的权限访问控制,作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。
访问控制是针对越权使用资源的防御措施,目的是为了限制访问主体(如用户等)对访问客体(如数据库资源等)的访问权限。企业环境中的访问控制策略大部分都采用基于角色的访问控制(RBAC)模型,是目前公认的解决大型企业的统一资源访问控制的有效方法
1.2 基于RBAC的设计思路
基于角色的访问控制基本原理是在用户和访问权限之间加入角色这一层,实现用户和权限的分离,用户只有通过激活角色才能获得访问权限。通过角色对权限分组,大大简化了用户权限分配表,间接地实现了对用户的分组,提高了权限的分配效率。且加入角色层后,访问控制机制更接近真实世界中的职业分配,便于权限管理。
在RBAC模型中,角色是系统根据管理中相对稳定的职权和责任来划分,每种角色可以完成一定的职能。用户通过饰演不同的角色获得角色所拥有的权限,一旦某个用户成为某角色的成员,则此用户可以完成该角色所具有的职能。通过将权限指定给角色而不是用户,在权限分派上提供了极大的灵活性和极细的权限指定粒度。
1.3 表结构分析
一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。
2 SAAS-HRM中的权限设计
2.1 需求分析
2.1.1 SaaS平台用户设计
一般SaaS平台基本角色由平台管理员、租户用户、租户管理员、租户其他角色组成。以O2O业务的企业架构为例,图解系统角色关系。
平台管理员:负责平台的日常维护和管理,包括用户日志的管理、租户账号审核、租户状态管理、租户费用的管理,租户权限的管理,要注意的是平台管理员不能对租户的具体业务进行管理。如果租户数量大,还可以对平台管理员划分角色,可以按地域划分,比如西北地区、东北地区等,让平台管理员分别管理不同的租户;也可以根据业务进行划分,比如租户管理员,租费管理员等。
租户:指访问SaaS平台的用户企业,在SaaS平台中各租户之间信息是独立的。租户信息包括租户的名称、地址等租户企业的相关信息,主要用来区别各租户,并且由平台管理员对租户账号状态进行管理。各租户可根据需要自行选择SaaS平台功能模块并依此付费。
租户管理员:为租户角色分配权限和相关系统管理、维护。
租户用户:根据租户管理员分配的权限以及自己的角色进行相关的业务管理。各租户用户只能访问该租户选择的 SaaS 平台的功能模块。一个系统用户如果有多个角色,则他只能看到当前角色下的数据,通过角色切换,可以达到查看所属其他角色下的数据信息。
租户角色:根据业务功能分由租户管理员进行角色划分,划分好角色后,租户管理员可以对相应的角色进行权限分配。角色有上下级关系,上级可以查看下级的数据,下级不能访问上级的数据,平级之间不能相互访问。角色上层可再加入分组层(如分部门或团队等),不同组别的数据范围不同,资源、操作可以共享也可以隔离。
2.1.2 需求分析
在应用系统中,权限是以什么样的形式展现出来的?对菜单的访问,页面上按钮的可见性,后端接口的控制,都要进行充分考虑
- 前端
前端菜单:根据是否有请求菜单权限进行动态加载
按钮:根据是否具有此权限点进行显示/隐藏的控制 - 后端
前端发送请求到后端接口,有必要对接口的访问进行权限的验证
3.2 权限设计
针对这样的需求,在有些设计中可以将菜单,按钮,后端API请求等作为资源,这样就构成了基于RBAC的另一种授权模型(用户-角色-权限-资源)。在SAAS-HRM系统的权限设计中我们就是才用了此方案
针对此种权限模型,其中权限究竟是属于菜单,按钮,还是API的权限呢?那就需要在设计数据库权限表的时候添加类型加以区分(如权限类型: 1为菜单 2为功能 3为API
)。
2.2 表结构分析
这里要注意的是,权限表与权限菜单表、页面元素表与API接口表都是一对一的关系
与传统的RBAC模型对比不难发现此种设计的好处:
- 不需要区分哪些是操作,哪些是资源
- 方便扩展,当系统要对新的东西进行权限控制时,我只需要建立一个新的资源表,并确定这类权限的权限类型标识即可。
第3章-SaaS-HRM系统用户权限设计相关推荐
- SAAS--03HRM系统用户权限设计概述
第3章-SaaS系统用户权限设计 学习目标: 理解RBAC模型的基本概念及设计思路 了解SAAS-HRM中权限控制的需求及表结构分析 完成组织机构的基本CRUD操作 完成用户管理的基本CRUD操作 完 ...
- SaaS-HRM--第3章-SaaS系统用户权限设计
学习目标: 理解RBAC模型的基本概念及设计思路 了解SAAS-HRM中权限控制的需求及表结构分析 完成组织机构的基本CRUD操作 完成用户管理的基本CRUD操作 完成角色管理的基本CRUD操作 1组 ...
- SaaS-系统用户权限设计(组织机构管理)
第3章-SaaS系统用户权限设计 1 组织机构管理 1.1 需求分析 1.1.1 需求分析 实现企业组织结构管理,实现部门的基本CRUD操作 1.1.2 数据库表设计 CREATE TABLE `co ...
- 若依系统用户权限模型分析
本文从本人博客搬运,原文格式更加美观,可以移步原文阅读:若依系统用户权限模型分析 用户-角色-菜单 1.基本使用 这是一个经典的用户-角色-权限的模型,其中菜单就代表了权限(因为权限就代表能否访问某个 ...
- 第2章 细说Linux系统用户/组管理(1)
2.1 用户和组的基本概念 用户和组是操作系统中一种身份认证资源. 每个用户都有用户名.用户的唯一编号uid(user id).所属组及其默认的shell,可能还有密码.家目录.附属组.注释信息等. ...
- SAP系统用户权限及岗位(复合)角色对应关系清单输出实例
近期遇到一个由审计引出的需求,需要在系统中导出用户与其所分配的角色权限的对应关系.笔者公司建立了以岗位为管理单位的复合角色.需要定期输出并检查用户对应的岗位权限是否合理.比如,一个用户有总账会计角色权 ...
- 开发标准化软件组件能让程序员在大城市过上体面的生活 -- 多系统用户权限管理标准件开发销售心得体会...
其实很多人都有顾虑,选择程序员这个行业是否有前途?是否可以长久?我是78年出生的,现在算算已经35岁了,虽然在同学里算不上最成功的,但是也足够不是最差的.生活中该有的都有了,虽然身体没往日那么强壮,但 ...
- 一文带你学习DWS数据库用户权限设计与管理
前言 本文将介绍DWS基于RBAC(Role-Based Access Control,基于角色的访问控制)的数据库用户权限管理.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成 ...
- 计算机化系统用户权限,GMP附录(2015):计算机化系统.doc
GMP附录(2015):计算机化系统.doc 附件1计算机化系统第一章 范 围第一条 本附录适用于在药品生产质量管理过程中应用的计算机化系统.计算机化系统由一系列硬件和软件组成,以满足特定的功能.第二 ...
最新文章
- MongoDB 分页查询的方法及性能
- Android文本框EditText显示为多行
- 微软EPG老大发给员工的mail
- 谷歌大数据三篇论文标题_抖音短视频标题怎么写才能上热门?起标题的3个实操步骤,大数据分析爆款标题的套路...
- 乐器演奏_深度强化学习代理演奏的蛇
- 计算机专业自然辩证法期末论文,清华大学自然辩证法-期末论文.docx
- centos7查看安装的是64位系统还是32位系统---linux工作笔记043
- oracle表空间管理sql,oracle表空间管理维护
- SciPy教程 - 常数constants和特殊函数库special
- Wine——在Linux上运行Windows软件
- 如何删除IE8收藏夹栏中的网址
- 【LInux入门手册】目录结构 常用指令与操作 vim与tmux
- Excel2010创建包含数据有效性的xls文件,再打开时有效性变无效
- emwin模拟器编译环境搭建及helloworld例程
- 疫情过后,这8个专业最有前景,快看看有你的专业吗?
- The Willpower Instinct
- Windows操作系统的日志分析
- 【机器学习】逻辑斯蒂回归原理推导与求解
- Google Play Store 应用无法安装解决方案
- 忘记密码怎么启动计算机,电脑忘记密码如何重装系统?
热门文章
- 基于百度AI的内容审核平台+Jsoup网络爬虫开发的一个自动审核小说程序(以纵横中文网为例)
- 化学中68个“不一定”
- Linux测试moxa串口,MOXA NPort 5410 4口RS232串口服务器 NPort5410
- TMS320C6678基础学习——初步了解TMDXEVM6678L EVM
- 白翔:复杂开放场景中的文本理解
- 微信小程序全面实战,架构设计 躲坑攻略(小程序入门捷径教程)
- win10退出登录微软账号,亲测有效可以成功(解决没有改用本地账户;解决没有删除选项)
- 微信小程序获取用户手机号授权
- 关于颈椎疼痛之疗疾法
- C++STL算法 mismatch 中string.c_str()无法直接放到容器中