发布时间:2021-11-9 分类: 行业资讯
作者之前的文章简要介绍了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平台用户设计图
平台管理员:负责平台的日常维护和管理,包括用户日志管理,租户帐户审计,租户状态管理,租户费用管理和租户权限管理。应该注意的是,平台管理员不能执行租户的特定业务。管理。如果租户数量很大,您还可以将角色分配给平台管理员,可以按地区划分,例如Northwest,Northeast等,以便平台管理员可以单独管理不同的租户;或者可以根据服务进行划分,例如租户管理员,租用费管理员等。
租户:指访问SaaS平台的用户企业。 SaaS平台中租户之间的信息是独立的。租户信息包括租户的名称,地址和有关租户企业的其他信息。它主要用于区分每个租户,平台管理员管理租户帐户状态。每个租户都可以选择SaaS平台功能模块并根据需要付费。
租户管理员:为租户角色分配权限以及相关的系统管理和维护。
租户用户:根据租户管理员分配的权限及其自己的角色执行相关的业务管理。每个租户用户只能访问租户选择的SaaS平台的功能模块。如果系统用户具有多个角色,则他只能看到当前角色下的数据。通过角色切换,您可以查看其他角色下的数据信息。
租户角色:根据服务功能,租户管理员划分角色。角色划分后,租户管理员可以为相应的角色分配权限。该角色具有从属关系。上级可以查看较低级别的数据。较低级别不能访问较高级别的数据,并且对等方不能相互访问。可以将角色的上层添加到分组层(例如子部门或团队)。不同组的数据范围不同。资源和操作可以共享或隔离。
4、小结
本文将简要介绍SaaS系统权限设计。后续文章将解释SaaS系统产品设计的其他方面。谢谢你的阅读。