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模型中,角色是系统根据管理中相对稳定的职权和责任来划分,每种角色可以完成一定的职能。用户通过饰演不同的角色获得角色所拥有的权限,一旦某个用户成为某角色的成员,则此用户可以完成该角色所具有的职能。通过将权限指定给角色而不是用户,在权限分派上提供了极大的灵活性和极细的权限指定粒度。

SaaS系统用户权限设计讲解
图2-1 RBAC0模型图解

3、SaaS平台用户设计

一般SaaS平台基本角色由平台管理员、租户用户、租户管理员、租户其他角色组成。如图2-2以O2O业务的企业架构为例,图解系统角色关系。

SaaS系统用户权限设计讲解
图2-2 SaaS平台用户设计图解

平台管理员:负责平台的日常维护和管理,包括用户日志的管理、租户账号审核、租户状态管理、租户费用的管理,租户权限的管理,要注意的是平台管理员不能对租户的具体业务进行管理。如果租户数量大,还可以对平台管理员划分角色,可以按地域划分,比如西北地区、东北地区等,让平台管理员分别管理不同的租户;也可以根据业务进行划分,比如租户管理员,租费管理员等。

租户:指访问SaaS平台的用户企业,在SaaS平台中各租户之间信息是独立的。租户信息包括租户的名称、地址等租户企业的相关信息,主要用来区别各租户,并且由平台管理员对租户账号状态进行管理。各租户可根据需要自行选择SaaS平台功能模块并依此付费。

租户管理员:为租户角色分配权限和相关系统管理、维护。

租户用户:根据租户管理员分配的权限以及自己的角色进行相关的业务管理。各租户用户只能访问该租户选择的 SaaS 平台的功能模块。一个系统用户如果有多个角色,则他只能看到当前角色下的数据,通过角色切换,可以达到查看所属其他角色下的数据信息。

租户角色:根据业务功能分由租户管理员进行角色划分,划分好角色后,租户管理员可以对相应的角色进行权限分配。角色有上下级关系,上级可以查看下级的数据,下级不能访问上级的数据,平级之间不能相互访问。角色上层可再加入分组层(如分部门或团队等),不同组别的数据范围不同,资源、操作可以共享也可以隔离。 


原文发布时间为:2017-10-26

本文作者:佚名

本文来自云栖社区合作伙伴“51CTO”,了解相关信息可以关注。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于SAAS模式的多用户数据体系结构。 信任,或是缺乏充分信任,都是妨碍“软件即服务”(SaaS) 推广的首要问题。我们可以说,关于产 品、客户、雇员、供应商等的数据是商业运营中最重要的资产。当然,SaaS 的核心也是数据。SaaS 应用使客户能通过网络集中存取数据,成本低于使用本地安装的应用。不过,为了充分发挥 SaaS 的 优势,企业必须在一定程度上放弃对自身数据的控制,要在确保数据安全并避免泄密方面充分信赖 SaaS 服务商。 为了赢得客户的信任,希望开展 SaaS 业务的架构师首先应创建成熟稳定、安全可靠的 SaaS 数据体 系结构,使用户和客户都能够放心地将重要的商业数据交给第三方合伙伙伴进行管理和控制,而且该架 构还应该能够以极低成本实现高效管理和维护。 本文是我们介绍多用户应用设计系列文章中的第二篇。第一篇文章《抓住长尾市场的架构战略》从较高 层面介绍了 SaaS 模式及其挑战和优势。该文的网络版刊登在 MSDN 上,网址为: msdn.microsoft.com/library/en-us/dnbda/html/ArchStratCtchLngTail.asp。本系列的其他文 章将侧要于讨论工作流程、用户界面设计以及整体安全性等问题。 在本文中,我们将讨论如何处理从完全隔离的数据直到完全共享的数据,并根据不同地点的数据隔离和 共享情况指出创建数据体系结构的三种方法。随后,我们将探讨决定采用何种方法时应考虑的技术和商 业因素。最后,针对确保安全性、创建可扩展数据模型以及数据基础结构的可扩展性等方面,我们将提 出一些设计模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值