笔者之前的文章简单介绍了SaaS系统的概念以及SaaS的成熟度模型。 随着云计算的发展,越来越多的企业产品和业务正在向软件服务平台转型。 其中,系统权限设计是非常关键和重要的部分。 本文以O2O业务为例,讲解SaaS系统权限设计。
1. 系统要求
平台管理员只能管理租户账户及相关信息,无法操作租户内部业务。 每个租户都有自己的角色和权限,不能互相影响。 不同租户的数据和服务物理上共享,逻辑上完全隔离。 对于每个租户来说,这个系统似乎只为自己服务。 为了保证系统数据的安全,使用户能够安全地使用系统上的业务数据,SaaS系统的权限管理成为系统设计中尤为重要的一环。
2.RBAC权限模型
访问控制是防止未经授权使用资源的防御措施。 目的是限制访问主体(如用户等)对访问客体(如数据库资源等)的访问权限。 企业环境中通常存在三种类型的访问控制策略:自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)。 其中自主访问和强制访问工作量大,管理不方便。 基于角色的访问控制是目前公认的解决大型企业统一资源访问控制的有效方法。
基于角色的访问控制的基本原理是在用户和访问权限之间添加角色层,实现用户和权限的分离。 用户只有激活角色才能获得访问权限。 通过角色对权限进行分组,大大简化了用户权限分配表,间接实现了用户的分组,提高了权限分配的效率。 并且添加角色层后,访问控制机制更接近现实世界中的职业分配,更容易管理权限。
RBAC模型是典型的基于角色的访问控制模型,包括四个不同级别的模型:RBAC0、RBAC1、RBAC2和RBAC3。 RBAC0是基础模型,定义了支持RBAC的最低要求,如用户、角色、权限、会话等概念。RBAC0模型图如图2-1所示。 RBAC1增加了角色继承关系游戏角色,可以根据组织内的权责结构构建角色之间的层级关系; RBAC2增加了各种用户和角色之间、权限和角色之间、角色之间的继承关系。 约束关系,如角色互斥、角色成员最大数量等。RBAC3是RBAC1和RBAC2的集成。 它不仅包括角色的层级关系,还包括约束关系。
在RBAC模型中,系统根据相对稳定的管理权限和职责来划分角色。 每个角色都可以完成一定的功能。 用户通过扮演不同的角色来获得该角色所拥有的权限。 一旦用户成为某个角色的成员,该用户就可以完成该角色的功能。 通过将权限分配给角色而不是用户游戏策划,在权限分配方面提供了极大的灵活性和细粒度。
图2-1 RBAC0模型图
3. SaaS平台用户设计
一般来说,SaaS平台的基本角色由平台管理员、租户用户、租户管理员和其他租户角色组成。 如图2-2所示,以O2O业务的企业架构为例来说明系统角色关系。
图2-2 SaaS平台用户设计图
平台管理员:负责平台的日常维护和管理,包括用户日志管理、租户账户审核、租户状态管理、租户费用管理、租户权限管理等。 需要注意的是角色权限设计,平台管理员无法对租户进行具体的业务操作。 管理。 如果租户数量较多,还可以对平台管理员进行角色划分。 可以按区域划分,例如西北区域、东北区域等,以便平台管理员可以分别管理不同的租户。 还可以根据业务来划分,如租户管理员、承租人、费用管理员等。
租户:指接入SaaS平台的用户企业。 在SaaS平台中,各个租户之间的信息是独立的。 租户信息包括租户的名称、地址以及与租户企业相关的其他信息。 主要用于区分各个租户,平台管理员管理租户账户状态。 每个租户可以根据自己的需求选择SaaS平台功能模块并相应付费。
租户管理员:为租户角色分配权限以及相关的系统管理和维护。
租户用户:根据租户管理员分配的权限和自身角色进行相关业务管理。 每个租户用户只能访问该租户选择的SaaS平台的功能模块。 如果系统用户有多个角色,则只能看到当前角色下的数据。 通过切换角色角色权限设计,他可以查看其他角色下的数据信息。
租户角色:租户管理员根据业务功能划分角色。 划分角色后,租户管理员可以为相应的角色分配权限。 角色之间存在上下级关系。 上级可以查看下级的数据,但下级不能访问上级的数据。 对等体不能互相访问。 上层角色可以添加到分组层(如部门或团队等)。 不同的组有不同的数据范围,资源和操作可以共享或隔离。
4. 总结
本文简单阐述了SaaS系统权限的设计。 后续文章将会讲解SaaS系统产品设计的其他方面。 感谢您的阅读。