论文部分内容阅读
随着网络技术的发展和普及,应用软件逐渐成熟,越来越多的企业进行企业信息化建设。中小型企业的信息管理具有很多相同之处,如果为每个企业单独开发一套系统,就有很多重复性工作,消耗人力物力财力,此时,SaaS模式应运而生。SaaS,软件即服务,通过Internet提供软件服务,使得企业不需要购买硬件设备和软件,只需通过网上租赁的方式即可搭建自己的企业的平台,还可以根据需要进行个性化定制。SaaS运营模式的典型特点是”单实例多租赁、租户自定制”。为满足租户的个性化需求,SaaS应用的配置特性体现在页面、数据、流程、访问控制等方面。为了满足数据定制的需求,数据存储方式发生改变,例如有基本表加扩展表,宽表等。本文以大宽表存储模式为基础,讨论SaaS模式下的访问控制。数据库实现方式的改变、SaaS的多租户、可定制性使得SaaS模式下使用传统的访问控制存在以下不足或挑战:(1)传统的细粒度访问控制的两种实施方法:在应用程序中实施和在数据库实施在SaaS模式下都不适用。首先,ISV开发应用时,无法获得SaaS应用数据定制信息和数据访问控制定制信息,使得访问控制在应用程序中实施的方式不具有灵活性和扩展性。其次,数据存储模式发生改变,以大宽表为例,大宽表存储一个应用所有表的业务数据,大宽表每一列的存储含义都不同,这使得直接在业务数据上定义ACL或授权视图具有很大难度,因此在数据库实施访问控制的方式也不适用。(2)传统应用中没有租户概念,因此,租户访问隔离和跨租户访问的需求是SaaS模式下数据细粒度访问控制的新的需求。租户访问隔离是SaaS应用正常运行的基本保证,指租户下用户只允许看到租户自己的数据,包括租户间访问控制信息隔离和访问数据隔离。跨租户访问是SaaS应用的一个重要需求,它使得来自一个租户的用户经过授权访问别的租户的数据成为可能。(3)利用添加谓词隐式修改SQL语句实施数据访问控制的方式可能会改变原有SQL语义,返回错误的结果,给用户造成误解。本文针对SaaS模式下多租户访问控制管理机制的上述问题和挑战,从访问控制架构,多租户特性及访问控制实施等几方面着手,提出了SaaS应用访问控制架构,多租户访问配置模型,和多租户访问控制实施机制。本文的主要工作及成果包括:(1)提出了在SaaS应用交付平台进行访问控制的架构,SaaS应用的业务数据和访问控制数据均存储在SaaS应用交付平台上,用户进行系统操作提交的数据请求在SaaS应用交付平台进行访问判断。(2)给出SaaS应用交付平台数据访问控制的配置模型,配置模型描述了用户、角色、数据对象、访问策略之间的关系。这个模型可以有效的实现租户访问隔离、跨租户访问、同一租户下用户的跨系统访问。(3)给出SaaS应用访问控制实施方法,利用策略判断SQL语句访问是否有效,有效则执行,无效则拒绝。这个方法能够保证所有执行的SQL都是有效的,所有返回的结果都是正确的。针对基于传统访问控制在SaaS模式下存在的不足和挑战,我们提出了相应的解决机制-面向SaaS的多租户访问控制机制,提出基于租户定制的访问控制配置模型,解决租户隔离和跨租户访问控制的问题,并提出有效的访问控制实施方法,减少访问控制消耗的时间。