APP下载

基于代理机制的“数字海洋”授权模型研究

2010-12-28王伟石绥祥李四海刘振民顾云娟

海洋通报 2010年2期
关键词:代理框架定义

王伟,石绥祥,李四海,刘振民,顾云娟

(1. 国家海洋信息中心数字海洋实验室,天津 300171;2. 江苏省海洋与渔业局信息中心,江苏 南京 210003)

基于代理机制的“数字海洋”授权模型研究

王伟1,石绥祥1,李四海1,刘振民1,顾云娟2

(1. 国家海洋信息中心数字海洋实验室,天津 300171;2. 江苏省海洋与渔业局信息中心,江苏 南京 210003)

“数字海洋”用户授权系统建设是整个信息基础框架构建的基础,是实现框架内数据与应用资源整合的前置条件。在对框架构建授权需求进行深入分析的基础上,结合目前网络授权方案的发展以及基于角色的用户访问控制技术,本文给出了用于实现框架授权的基于代理机制的授权模型,有效解决了节点用户授权的复杂需求。

数字海洋;代理;授权;服务

引 言

依据中国近海“数字海洋”信息基础框架(以下简称框架)构建总体实施方案,项目建设的最终目标是要在“数字海洋”专网的基础上,实现国家海洋局局属单位、沿海省市共 23个节点上的各类海洋数据与业务应用的集成与共享。然而,出于对数据与应用资源安全性的考虑,运行在节点上的各类系统实际上都会有自己相对独立的用户认证和授权机制,这使得用户必须面对安全机制的多样性和异构性,从而导致:存放在“数字海洋”专线网节点上的数据与应用资源很难实现真正意义上的整合与共享,因为如果某个节点欲将自己的某些资源共享,必须要知道其他所有节点的授权信息;一个用户访问其他节点共享资源时,他在节点安全区将会拥有多个登录密码和访问权限,因而记住每个安全区的密码成为困难,在实际操作中也很难实现;节点在开展各类特色系统开发的时候,必须要重复开发用户管理、功能授权等功能模块,这在一定程度上没有很好实现“数字海洋”建设成果的可继承性与可复用性,造成开发资源的浪费。

因此,在面向整个“数字海洋”各级节点整体的分布式系统平台内,需要有一个统一的、具有较高安全控制能力的用户认证和授权系统,一方面保证数据安全和用户操作方便,另一方面也可完全达到“数字海洋”建设的最终目标。针对“数字海洋”信息基础框架构建项目的用户认证和授权问题,在对目前国内外 IT厂商提供的代表性解决方案与技术进行深入研究的基础上,依据数字海洋授权具体需求,提出了一种基于代理机制的网格环境下对用户集中认证、分散授权的解决方案,从而实现了“数字海洋”集成框架真正意义上的单点登陆。

1 需求分析

1.1 用户与角色

“数字海洋”用户是指一个可以独立访问集成到“数字海洋”信息基础框架中的计算机系统中的数据或者用数据表示的其它资源的主体,用户分布在国家海洋局局属单位、沿海省市等 23个节点上。角色由用户自行定义,是指一个组织或任务中的工作或位置,它代表了一种资格、权利和责任。在“数字海洋”节点中,每一个节点都可以根据本节点的具体业务需求,指定用于该节点的用户角色。根据用户业务岗位不同,一个用户可以拥有多个角色。

为实现框架建设目标,“数字海洋”任意节点上的任何用户都要放到整体框架中来分析,在整个框架中由一个唯一的USERID来标识;框架必须为用户提供一个统一的入口,采用单点登录的方式,通过全局登录界面(Portal)登录节点系统,能够通过加密算法验证用户身份和判断用户是否已经登录系统,并可通过代理机构来保存用户的登录状态;由于“数字海洋”节点职能、对国家建设系统的需求、特色系统建设情况各异,节点能够利用国家主中心节点分配的管理员账户进行组织机构、角色的定义。机构与角色编号在数字海洋全局中也都是唯一的。

1.2 菜单控制

在菜单控制方面,框架应具有管理节点各类系统业务功能菜单的能力。依据用户的角色,用户在成功登录系统后,框架中的授权模型能够为节点系统提供菜单数据信息服务,为用户加载与之角色相对应的确切菜单元素。

为实现需求描述中的菜单控制功能,框架中的授权模型应达到以下几点具体要求:

a) 为了方便用户进行权限组织管理,框架中需要建立一张业务功能列表。任意节点中的任一业务系统菜单信息,都保存在业务功能列表中,这在用户界面上表示为树状分层结构。

b) 业务功能模块以用户定制菜单来体现,仍然采用编号分层方式,编号的每两位为一个层次。并标明一个层次是子菜单还是业务模块,子菜单只有一种可否被访问的权限设置,业务模块权限由系统管理员或授权用户进行设置。对每个业务模块设置它的对象控制、记录增删改控制和记录集控制。当用户拥有对业务模块的某一权限时,必需对处于它上级的子菜单有可被访问的权限。删除某一级子菜单时将提示用户他的下级菜单与功能模块都将被删除掉。

c) 当用户同时充当多个角色并且权限重复时,重复的权限仅一次有效,用户拥有他充当的所有角色的权限的并集。

1.3 对象控制

对象是指应用系统窗口中的可视对象,如菜单项、按钮、下拉列表框、数据编辑控件及数据编辑控件的字段等。对象控制通过角色与用户授权来实现,包括对对象属性的控制以及数据编辑控件中的数据记录的维护等。对象属性指对象的使能/禁止、可视/屏蔽;记录维护指对记录的增加、删除、修改。

将每个业务模块可进行属性设置的对象由程序员事先设定或由售后技术支持工程师指导用户加入。在系统管理员或授权用户进行设置业务模块的各种权限时,设置用户在拥有该业务模块这种权限时的对象属性。没有设置属性的对象在保存对象信息的时候,用户权限信息中不被保存。

1.4 记录集控制

通过条件设置,用户可以将特定记录集中的全部或部分记录与其他用户共享。因此,框架授权模型必须能够为数据的所有者提供条件设置功能,确保数据只为已授权的用户访问。具体要求如下:

a) 在对用户设置业务模块权限时,同时在过滤表中设置本模块的数据编辑控件的数据筛选条件,筛选条件是组成SQL语句的WHERE条件子句迫使当前访问的模块根据筛选条件对数据编辑控件的SQL语句进行重组,并检索数据。

b) 当存在需要从数据库中多个表取数据的情况时,过滤表中存在多条记录,每一条记录记录一个数据编辑控件取数的筛选条件。

c) SQL语句的WHERE子句的生成与校验可以通过SQL语法分析服务,利用对象所提供的函数分析SQL语句,截取WHERE条件子句,校验新组合的SQL语句的合法性。

1.5 服务控制

框架构建是在服务总线的基础上展开的,基于总线的服务发布与获取都需要进行必要的审批与控制。

1.6 权限的分散管理

上述提到的权限管理内容应该满足既可集中管理,也可分散管理的目标:

a) 权限管理由系统管理员集中管理,系统管理员工作负担过大,难对所有节点、所有岗位的分工有全面和具体的了解。对权限做出标准细致的划分,对于“数字海洋”这样大型的综合系统适合于把一部分设置权限交由一些比较高级的用户来进行,有利于各岗位细致协调的工作。这就是权限的分散管理。

b) 要实现权限的分散管理,就须对授权模块进行一些授权管理,这要求整个系统的授权安全管理工作要做到细致,不要出现权限的漏洞使一些高级用户拥有过大的权限。

c) “数字海洋”权限管理采用分级授权的方式实现。所谓分级授权,是指国家主中心节点超级管理员向其他局属节点、省级节点分配管理员权限;局属、省级节点进一步向市级节点分配管理员权限。任一节点的管理员不对节点内部业务权限进行分配,而是通过将管理员角色附加到节点内部高级用户的形式,来实现对节点具体业务权限的管理。

2 研究现状

2.1 Passport解决方案

为了满足基于网络的授权要求,各大软件厂商、研究机构都提出了自己的解决方案。微软提出的Passport方案[1],是由微软运行的一种web服务,是.Net战略的一部分。借助于浏览器Cookie以及URL携带认证凭证的方式,能够实现用户一次登录,就可访问多个联盟网站的功能。然而,由于 Cookie以及URL携带认证信息的限制,passport方案虽然能够解决应用系统“用户是谁”的问题,但对解决登录用户在系统内“能做什么”的问题却显得无能为力。

2.2 基于角色的授权模型

基于管理信息系统的要求,研究机构提出了一种“基于角色”的授权模型(role-based access control,RBAC)。在该模型中,用户与权限通过建立用户与角色的关系、角色与权限的关系联系起来,通过分配和取消角色来完成用户权限的授予和取消。这样整个系统分为两个部分,即访问权限与角色相关联,角色在与用户关联,从而实现了用户与访问权限的逻辑分离[2,3]。其简要模型图如图1所示。

基于角色的授权模型解决了Who,What,How问题,即哪一个用户(who)对系统中的什么对象(what)做如何(How)操作的问题。然而,在“数字海洋”框架建设中,部署在节点的系统是异构的,RBAC可以很好的解决一个节点的授权问题,但如果应用到整个“数字海洋”全局,还不能满足框架的要求。

图1 基于角色的授权模型Fig. 1 Role-based authorization model

3 基于代理机制的授权模型

由框架对授权模型的复杂需求以及目前授权方案的研究状况来看,无论是微软的passport还是基于角色的授权模型RBAC都不能很好的解决框架对授权的需求。但是,Passport中基于网络的服务授权模式以及RBAC的灵活性,却为框架基于代理机制的授权模型的研究提供了极为有意义的参考。

3.1 代理机制

代理(Agency)的概念最早由简森(Jensen)和梅克林(Meckling)于 1976年提出[4],但是主要应用在商业上。代理机制在商业上的成功应用以及该机制内涵思想的普遍适用性,使得代理理念很快在计算机领域得到了广泛的应用。所谓的代理就是利益双方为达成某种目的需求,依据一定的规约而委托第三方行使一定权利的行为。

运行在“数字海洋”上的各类系统是异构的,有国家建设的,也有地方依据本身的特色需求而自行开发建设的,如何使这些系统在框架下安全、高效的运行,实现“数字海洋”框架构建的数据共享、应用共享、服务海洋决策之目的,首先必须要构建一套高效、合理、安全的授权模型。国家节点为系统建设创建用户管理与授权的代理,为节点系统建设提供包括用户与角色管理、菜单管理、对象控制、记录集控制、服务控制等代理服务,在底层为实现框架构建目标提供基础保障。

图2 授权代理服务框架示意图Fig. 2 Diagram of authorized agent service framework

3.2 “数字海洋”授权模型

3.2.1 代理框架 借鉴Passport面向服务的分布式解决方案与基于角色授权模型的灵活性,“数字海洋”授权模型采用集中部署代理,节点分散定义相结合的方式,实现框架的授权。模型主要包含节点部门定义、对象定义、用户定义、用户组定义、角色定义、权限定义、权限配置、用户委派、用户加入到组等软件构件。这些构件以服务的形式,部署在“数字海洋”主节点上,供其他各级节点管理员用户调用。授权代理服务发布功能框架如图2所示。

授权代理将信息化建设中的用户授权模块抽象出来,并以标准的WebService接口的形式,供节点信息化建设重用。采用这种方式,可以有效解决“数字海洋”众多节点系统异构、需求复杂而给总集成造成极大困难的问题,通过授权组件以服务的形式提供,使得节点精通业务人员能够自由定义本节点业务系统的授权逻辑,解决了软件功能单一与用户需求多样性的矛盾,实现了软件产品的开发与用户需求的无缝结合。

3.2.2 授权模型的运行 总体上,代理框架分为授权代理预定义以及用户的操作界面动态生成两个部分。其中在授权代理的预定义中,为用户产生主体能力表,是授权模型的核心。授权模型的运行流程如图3所示。

节点用户首先利用授权代理在代理服务器上创建节点的部门信息,在此基础上完成本部门用户的创建、可控对象的定义、角色定义以及角色配权、用户委派等操作,其中可控对象的定义为节点系统建设的系统开发人员。授权模型依据用户的定义数据生成节点用户的主体能力表,供用户登录界面的初始化之用。

集成在“数字海洋”框架中的任何系统,用户的访问均需通过统一的入口(Portal)登录。用户鉴别机构通过对用户提供的用户名/密码或者CA证书的甄别,判断用户是否是“数字海洋”框架的合法用户。如合法,则通过调用该用户的主体能力表,在总集成框架内形成针对于该用户的操作界面,完成该用户的授权。

3.2.3 主要功能组件职责 a) 节点部门定义工具:“数字海洋”节点包括局属节点、沿海省市等共 23个节点,为了使节点间的授权信息不会相互影响,造成授权紊乱,必须要首先进行节点的部门定义。按照行政隶属以及业务指导关系,数字海洋节点可采用树状结构进行管理,根节点为国家主节点。

图3 基于代理机制的授权模型功能框架Fig. 3 Functional framework of agent-based authorization model

授权模型中的其他构件,都是在部门基础上展开的。比如,可控对象的定义、用户的定义、角色的定义等都是针对于某一个特定部门的。部门内的资源(包括角色、可控对象)分为公有和私有两种,标有公有属性的,可以被下级部门使用,标有私有属性的资源只能为本部门所用。

b) 对象定义工具:节点系统中的各种功能模块、数据、界面元素等对象,依据节点的具体业务情况,对象的机密程度是不一样的,受到的保护程度亦有差别。系统中的对象均由程序员通过主节点授权代理提供的对象定义工具事先定义好,系统也只能控制这些事先已定义好的对象。因此,对象定义是整个系统的核心步骤,直接影响后面的各个安全控制环节。对象定义由系统开发程序员进行初始化配置,包括如下几步:

(1) 功能模块定义:系统中除部分公用的界面、公用功能模块外,其它均为业务功能模块,是用户完成各自不同业务功能的主要途径,也是我们安全管理要保护的重点对象,所以我们必须对业务功能模块定义。只有对功能模块对象在代理上进行定义,授权代理才能依据用户需要完成用户业务功能菜单的授权。

(2) 界面元素控制:除了功能模块菜单要受到控制外,如要控制功能模块里面的界面元素,这些界面元素也需定义。大部分界面元素均包含有相关的业务功能操作,所以对相应操作的界面元素进行定义是有必要的。

(3) 数据信息控制:业务功能模块的大部分界面元素是显示和操作数据内容的基础,也是用户对读取数据和操作数据的主要途径,为了数据信息的安全有必要对这些界面元素的操作数据采取安全保密措施。这就需要对这些界面元素定义相关的数据约束条件。

c) 权限定义:在定义好系统对象的前提下,基于不同情况的用户安全需求,还需要定义不同的访问类型,也就是要定义对象的权限。定义权限包括对象访问控制和数据访问控制两方面。为了表述方便我们对权限用一个三元组符号来形式表示为:P(O,T,P),其中O表示访问对象;T表示访问类型;P表示谓词。表示在谓词P为真时对于对象O可进行T类型的访问。权限定义是系统安全管理基础步骤之一,只有给各种对象定义好访问权限,才能给角色配置权限,基于角色管理才能成为可能。

d) 角色定义:基于代理机制的授权模型吸收了基于角色的访问控制方法的思想,把对用户的授权分成两部份,用角色来充当用户行使权限的中介。这样,用户与角色之间以及角色与权限之间就形成了两个多对多的关系。授权代理提供角色定义工具允许用户根据自己的需要(职权、职位以及分担的权利和责任)定义相应的角色。

图4 角色的继承Fig. 4 Inheritance of roles

角色之间有相应继承的关系,当一个角色R1继承另一个角色R2时,R1就自动拥有了R2公用的访问权限。角色继承关系自然的反映了一个组织内部权利和责任的关系,为方便权限管理提供了帮助。角色继承关系提供了对已有角色的扩充和分类的手段,使定义新的角色可以在已有角色的基础上进行,扩充就是通过增加父角色的权限去定义子角色,分类通过不同子角色继承同一父角色来体现。另外还允许多继承,即一个角色继承多个父角色,多继承体现对角色的综合能力。

“数字海洋”节点总体结构呈树状分布,在授权初始化时,国家根节点管理员只向其他节点分配管理员角色,由节点管理员对本节点的具体角色情况进行二次定义。换言之,各级节点管理员角色呈树状继承关系(如图 4所示),有效实现了“数字海洋”权限的分散管理。

e) 角色配置:角色是一组访问权限的集合,一个用户可以是很多角色的成员,一个角色也可以有很多个权限,而一个权限也可以重复配置于多个角色。权限配置工作是组织角色的权限的工作步骤之一,只有角色具有相应的权限后用户委派才能具有实际意义。

f ) 用户与用户组的定义:系统的最终使用者是用户,因此必须建立用户的鉴别机构,登记用户的身份信息。任一用户在“数字海洋”授权模型内都有一个唯一标识,节点具有管理员角色的用户可利用授权代理进行本节点用户的创建。“数字海洋”用户鉴别机构利用用户名/密码或者CA认证的方式来确定登录用户是否合法。

为了实现代理授权模型满足分散式权限管理的需要,加入了用户组(指一群用户的集合)的概念。用户组也可以委派角色,当用户被加入用户组时,自动对用户所在用户组拥有的角色进行了委派。为了便于分散式权限管理,授权模型还同时支持对部分组的权限进行下发方式处理,授权特定的用户对用户组的用户权限进行管理。

4 模型优点

通过对基于代理机制的数字海洋授权模型功能框架的描述,该模型具有以下优点:

(1) 实现了框架内用户的统一管理,为框架内实现数据资源、应用资源的分发与共享创建了必备的基础条件。实现数据的分发与共享,首要的前提条件是安全、简便,用户在全局的唯一性使得用户可以将资源准确的分发给指定用户或群,更可以简便获取到其他用户共享过了的资源。

(2) 实现了框架内所有节点运行系统在授权管理上的统一。框架内的用户只要记住自己的登录密码,或者是保管好自己的认证证书,就可以访问框架内任何授权的资源或应用,再不会因为进入不同的安全区而必须适应不同的认证策略而发愁。

(3) 实现了资源重用,减少重复建设,大大降低节点特色系统建设成本,提高开发建设效率。代理授权模型以标准 webservie形式发布功能构件,在框架内是开放的。节点业务特色系统的建设者可以将主要精力放在本节点的业务功能实现上,直接利用框架授权模型。

(4) 实现了节点分级授权。由于各个节点的业务情况不同,需求各异,主节点管理员不可能为其他节点定制适用角色与权限。通过角色继承的方式,主节点向下级节点分配管理员角色,节点管理员依据自身需求客户化本地管理员角色,有效解决了主节点功能一般性与下级节点需求特殊性的矛盾。

(5) 实现了节点整体特殊性与框架内一致性的统一。代理授权模型的使用是基于节点部门的,这就有效的保证了节点整体的特殊性。节点对代理授权模型的使用又是在统一的规约下进行的,这又在框架内维持了安全机制的一致性,使框架内的资源分发与共享成为可能。

(6) 基于角色授权机制的引用与扩充,使得基于代理机制的授权模型能够轻松实现“数字海洋”众多节点复杂的权限管理。

5 结束语

“数字海洋”信息基础框架内的各类海洋产品数据以及业务应用数据的整合都离不开高效灵活的授权模型的支持,基于代理机制的授权模型为框架的构建提供了一个开放的、灵活的、可定制的用户授权环境,很好的解决了因节点众多而使用户管理与授权需求复杂化的问题。代理授权模型的可继承、可复用性极大降低了信息管理系统的开发难度与建设成本,有效规范了框架内的用户管理,为未来框架内节点特色信息系统建设提供了有力的系统用户管理模型支撑。

[1] 蒋黎峰, 赵保华. 一种灵活的认证授权系统的设计与实现 [J]. 计算机工程与应用, 2006, 18: 221-223.

[2] Epstein P, Sandhu R. A UML Based Approach to Role Engineering [C]. In Proceedings of the 4th ACMWorkshop on Role-Based AccessControl,Fairfax, VA, October 28-29, 1999: 135-142,

[3] Mohammed I, Dilts D M. Design for dynamic user-role-based security [J]. Computers & Security, 1994, 13(8): 661-671.

[4] 陈汉文. 审计理论 [M]. 北京: 机械工业出版社, 2009: 10-11.

Research on agent-based authorization model in “digital ocean”

WANG Wei1, SHI Sui-xiang1, LI Si-hai1, LIU Zhen-min1, GU Yun-juan2

(1. National Marine Data and Information Center, Tianjin 300171, China;2. Ocean and Fisheries Information Center of Jiangsu Province, Nanjing 21000, China)

The building of authorization system is not only the foundation of building “Digital Ocean” information infrastructure framework, but also the pre-condition for integrating data and application resources within the framework. Base on the in-depth analysis of authority needs, combined with the development of network authorization solution as well as role-based user access control technology, an agent-based authorization model has been given.

digital ocean; agent; authorization; service

TP392; P7

A

1001-6932(2010)02-0206-07

2009-03-10;

2009-10-26

国家海洋局908专项(908-03)

王伟 (1976-),男,河北宽城人,工程师,硕士研究生,主要研究方向为计算机软件与理论。电子邮箱:wangwei@mail.nmdis.gov.cn

猜你喜欢

代理框架定义
框架
广义框架的不相交性
代理圣诞老人
代理手金宝 生意特别好
WTO框架下
复仇代理乌龟君
成功的定义
一种基于OpenStack的云应用开发框架
一种基于OpenStack的云应用开发框架
修辞学的重大定义