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