一种基于属性的访问控制方法及系统与流程

文档序号:12493551阅读:952来源:国知局
一种基于属性的访问控制方法及系统与流程

本发明属于访问控制技术领域,更具体地,涉及一种基于属性的访问控制方法及系统。



背景技术:

访问控制技术主要用于保护共享在大型系统上的数据,防止被未授权的非法用户访问。随着信息技术的发展,特别是互联网的高速发展,访问控制技术也得到了长足的发展。

根据授权方式的不同可以将访问控制方式分为:自主访问控制(Discretionary Access Control,DAC)、强制访问控制(Mandatory Access Control,MAC)以及基于角色的访问控制(Role-Based Access Control,RBAC)。自主访问控制由客体的属主对自己的客体进行管理,由属主自己决定是否将自己的客体访问权或部分访问权授予其他主体,这种控制方式是自主的,用户可以按自己的意愿,有选择地与其他用户共享他的文件。但是这种方法会导致严重的安全问题,权限传递问题,例如,A拥有资源R,A把访问权限传递给B,而B又把访问权限传递给C,这样C也有了资源R的访问权限,会导致数据的泄露;强制访问控制通过无法回避的访问限制来阻止直接或间接地非法入侵,强制访问的主体和客体都有一定的安全等级,通过主客体的安全等级来决定是否允许主体访问客体,虽然由于MAC方式的严格明确的等级划分以及权限管理严格而非常受军方的欢迎,但是该方式缺乏灵活性;基于角色的访问控制作为传统访问控制(如自主访问,强制访问)的有前景的代替而受到广泛的关注,在RBAC中,用户可以拥有多个不同的角色方便对用户权限的管理,其中,角色是用户和访问权限的桥梁,但是随着信息技术尤其是互联网技术的发展,很多企业的网络资源开始变得分散,而且数据的数量和种类也在不停的增加,因此现有的访问控制技术已经很难满足企业的需求。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种基于属性的访问控制方法及系统,其目的在于为不停增长的具有分散性的互联网资源提供一种高效的访问控制方法,使资源访问控制统一一致,由此解决传统访问控制不灵活,粒度大,难管理的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种基于属性的访问控制方法,包括:

(1)数据提供方判断待访问用户是否属于已经认证了的用户,若不是,则将待访问用户的访问请求重定向到服务提供方;

(2)服务提供方将重定向的访问请求解释成认证请求和获取属性信息的请求,并将所述认证请求和获取属性信息的请求重定向到身份提供方;

(3)身份提供方进行初步认证,若认证成功,则获取主体属性信息;

(4)身份提供方将待访问用户的认证请求重定向到属性权威进行进一步的认证;

(5)属性权威在接收到进一步的认证请求后,产生一个预警值,并判断所述预警值是否超过预警阈值,若超过,则由身份提供方进行辅助认证,并执行步骤(6),若没有超过,则直接进入步骤(6);

(6)若进一步的认证成功,则向身份提供方返回进一步认证成功指令,由身份提供方查询环境属性日志获取环境属性信息;

(7)身份提供方产生安全断言标记语言SAML指令,并将所述SAML指令重定向到服务提供方,其中,所述SAML指令中包含主体属性信息和环境属性信息;

(8)服务提供方在接收到所述SAML指令后,向数据提供方发送应答指令,由数据提供方给待访问用户的浏览器发送一个认证cookie和待访问用户的浏览器之间建立会话,其中,所述应答指令中包含主体属性信息和环境属性信息;

(9)策略实施点捕获认证了的待访问用户的访问请求,收集存储在标准申明文件中的主体属性信息、环境属性信息和数据提供方的客体属性信息,然后向策略决策器发送待访问用户的访问请求;

(10)策略决策器判断策略实施点提供的主体属性信息、环境属性信息以及客体属性信息是否能够做出访问判决决定,若是,则执行步骤(12),若否,则执行步骤(11);

(11)由运行态属性获取插件进行辅助性的属性信息获取请求,并执行步骤(12);

(12)根据从策略管理中心产生的策略来决定是允许还是拒绝待访问用户的访问请求;

(13)策略决策器将访问判决结果返回给策略实施点,由策略实施点执行访问判决结果。

优选地,在步骤(11)中具体包括以下子步骤:

(11-1)运行态属性获取插件获取进行访问判决决定需要的属性名,然后在本地缓存中查找所述属性名在预设时间内是否被请求过,若是,则执行步骤(11-2),否则,执行步骤(11-3);

(11-2)将所述属性名对应的属性值返回给策略决策器;

(11-3)由运行态属性获取插件向协议中间方发送请求,获取所述属性名对应的属性值;

(11-4)协议中间方获取所述属性名后,向服务提供方发送查询请求;

(11-5)服务提供方在接收到协议中间方发送的查询请求后,通过属性查询插件向及时缓存发出查询请求,以确认及时缓存中是否存在所述属性名对应的属性值,若不存在,则执行步骤(11-6),否则,服务提供方获取属性查询插件从及时缓存中取得的属性值,并执行步骤(11-9);

(11-6)属性查询插件将所述属性名发送给服务提供方进行属性值获取请求;

(11-7)服务提供方在接收到属性查询插件发送的属性值获取请求后,向身份提供方发送属性值查询请求;

(11-8)身份提供方响应服务提供方发送的属性值查询请求,向服务提供方发送查询到的属性值;

(11-9)服务提供方验证属性值的有效性,并在验证通过后,执行步骤(11-10);

(11-10)服务提供方向协议中间方发送属性值响应指令,所述属性值响应指令中包括获取到的有效的属性值;

(11-11)协议中间方把收到的属性值发送给运行态属性获取插件,由运行态属性获取插件将属性值发送给策略决策器。

按照本发明的另一方面,提供了一种基于属性的访问控制系统,包括:数据提供方、服务提供方、身份提供方、属性权威、环境属性日志、策略实施点、标准申明文件、策略决策器、运行态属性获取插件以及策略管理中心;

所述数据提供方,用于判断待访问用户是否属于已经认证了的用户,若不是,则将待访问用户的访问请求重定向到所述服务提供方;

所述服务提供方,用于将重定向的访问请求解释成认证请求和获取属性信息的请求,并将所述认证请求和获取属性信息的请求重定向到所述身份提供方;

所述身份提供方,用于进行初步认证,若认证成功,则获取主体属性信息;

所述身份提供方,还用于将待访问用户的认证请求重定向到所述属性权威进行进一步的认证;

所述属性权威,用于在接收到进一步的认证请求后,产生一个预警值,并判断所述预警值是否超过预警阈值,若超过,则由所述身份提供方进行辅助认证;

所述属性权威,还用于在进一步的认证成功时,向所述身份提供方返回进一步认证成功指令,由所述身份提供方查询所述环境属性日志获取环境属性信息;

所述身份提供方,用于产生安全断言标记语言SAML指令,并将所述SAML指令重定向到所述服务提供方,其中,所述SAML指令中包含主体属性信息和环境属性信息;

所述服务提供方,还用于在接收到所述SAML指令后,向所述数据提供方发送应答指令,由所述数据提供方给待访问用户的浏览器发送一个认证cookie和待访问用户的浏览器之间建立会话,其中,所述应答指令中包含主体属性信息和环境属性信息;

所述策略实施点,用于捕获认证了的待访问用户的访问请求,收集存储在所述标准申明文件中的主体属性信息、环境属性信息和所述数据提供方的客体属性信息,然后向所述策略决策器发送待访问用户的访问请求;

所述策略决策器,用于判断所述策略实施点提供的主体属性信息、环境属性信息以及客体属性信息是否能够做出访问判决决定;

所述运行态属性获取插件,用于在所述策略决策器利用所述策略实施点提供的主体属性信息、环境属性信息以及客体属性信息不能够做出访问判决决定时,进行辅助性的属性信息获取请求;

所述策略决策器,还用于在利用所述策略实施点提供的主体属性信息、环境属性信息以及客体属性信息能够做出访问判决决定或者在所述运行态属性获取插件进行辅助性的属性信息获取请求后,根据从策略管理中心产生的策略来决定是允许还是拒绝待访问用户的访问请求;

所述策略决策器,还用于将访问判决结果返回给所述策略实施点,由所述策略实施点执行访问判决结果。

优选地,所述系统还包括:协议中间方、及时缓存、属性查询插件;

所述运行态属性获取插件与所述协议中间方、所述服务提供方、所述身份提供方、所述属性查询插件以及所述及时缓存配合进行辅助性的属性信息获取请求:

所述运行态属性获取插件,用于获取进行访问判决决定需要的属性名,然后在本地缓存中查找所述属性名在预设时间内是否被请求过,若是,则将所述属性名对应的属性值返回给策略决策器,否则,向所述协议中间方发送请求,获取所述属性名对应的属性值;

所述协议中间方,用于在获取所述属性名后,向所述服务提供方发送查询请求;

所述服务提供方,用于在接收到协议中间方发送的查询请求后,通过所述属性查询插件向所述及时缓存发出查询请求,以确认所述及时缓存中是否存在所述属性名对应的属性值,若存在,则由所述服务提供方获取所述属性查询插件从所述及时缓存中取得的属性值;

所述属性查询插件,用于在所述及时缓存中不存在所述属性名对应的属性值时,将所述属性名发送给所述服务提供方进行属性值获取请求;

所述服务提供方,还用于在接收到所述属性查询插件发送的属性值获取请求后,向所述身份提供方发送属性值查询请求;

所述身份提供方,用于响应所述服务提供方发送的属性值查询请求,向所述服务提供方发送查询到的属性值;

所述服务提供方,还用于验证属性值的有效性,并在验证通过后,向所述协议中间方发送属性值响应指令,所述属性值响应指令中包括获取到的有效的属性值;

所述协议中间方,还用于把收到的属性值发送给所述运行态属性获取插件,由所述运行态属性获取插件将属性值发送给所述策略决策器。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,由于通过主客体属性和环境属性的控制来实现访问控制,能够取得下列有益效果:

(1)基于主客体属性和环境属性针对云存储数据分散和类别多设计的一种访问控制机制,可以兼顾传统访问控制的能力,还能在更多复杂的环境下有很好的适应性。

(2)本发明涉及如下几个核心部分,包括主体属性和具体主体的授予与撤销,环境属性的收集,策略的创建,策略的实施,运行态属性获得和这些部分统一的数据请求应答方式。

(3)本发明中策略的定义方完全实现自主访问控制,强制访问控制,角色访问控制的方式,还具有灵活变化的策略创建与删除功能。

(4)运行态属性的获取基于本地缓存,可以方便策略决策器更快的做出决策。

附图说明

图1为本发明实施例公开的一种基于属性的访问控制方法的流程示意图;

图2为本发明实施例公开的一种基于属性的访问控制系统中各模块的交互结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

图1所示为本发明实施例公开的一种基于属性的访问控制方法的流程示意图,其中,在图1所示的方法中,包括以下步骤:

(1)数据提供方判断待访问用户是否属于已经认证了的用户,若不是,则将待访问用户的访问请求重定向到服务提供方;

其中,数据提供方可以通过查看待访问用户的超文本传输协议(Hyper Text Transfer Protocol,HTTP)内容来确定当前待访问的用户是否是已经认证过的用户。

(2)服务提供方将重定向的访问请求解释成认证请求和获取属性信息的请求,并将所述认证请求和获取属性信息的请求重定向到身份提供方;

(3)身份提供方进行初步认证,若认证成功,则获取主体属性信息;

其中,主体属性信息可以由身份管理仓库提供。身份管理仓库是为身份提供方提供主体属性信息管理的,它具有授予和撤销主体身份的功能,同时也具有创建修改删除主体属性信息的功能,包括针对具体主体的属性的授予和撤销,是主体属性信息的来源。

(4)身份提供方将待访问用户的认证请求重定向到属性权威进行进一步的认证;

(5)属性权威在接收到进一步的认证请求后,产生一个预警值,并判断所述预警值是否超过预警阈值,若超过,则由身份提供方进行辅助认证,并执行步骤(6),若没有超过,则直接进入步骤(6);

(6)若进一步的认证成功,则向身份提供方返回进一步认证成功指令,由身份提供方查询环境属性日志获取环境属性信息;

(7)身份提供方产生安全断言标记语言SAML指令,并将所述SAML指令重定向到服务提供方,其中,所述SAML指令中包含主体属性信息和环境属性信息;

(8)服务提供方在接收到所述SAML指令后,向数据提供方发送应答指令,由数据提供方给待访问用户的浏览器发送一个认证cookie和待访问用户的浏览器之间建立会话,其中,所述应答指令中包含主体属性信息和环境属性信息;

其中,来自身份提供方的主体属性信息和环境属性信息存储在标准声明文件中。

(9)策略实施点捕获认证了的待访问用户的访问请求,收集存储在标准申明文件中的主体属性信息、环境属性信息和数据提供方的客体属性信息,然后向策略决策器发送待访问用户的访问请求;

(10)策略决策器判断策略实施点提供的主体属性信息、环境属性信息以及客体属性信息是否能够做出访问判决决定,若是,则执行步骤(12),若否,则执行步骤(11);

(11)由运行态属性获取插件进行辅助性的属性信息获取请求,并执行步骤(12);

(12)根据从策略管理中心产生的策略来决定是允许还是拒绝待访问用户的访问请求;

(13)策略决策器将访问判决结果返回给策略实施点,由策略实施点执行访问判决结果。

优选地,在步骤(11)中具体包括以下子步骤:

(11-1)运行态属性获取插件获取进行访问判决决定需要的属性名,然后在本地缓存中查找所述属性名在预设时间内是否被请求过,若是,则执行步骤(11-2),否则,执行步骤(11-3);

(11-2)将所述属性名对应的属性值返回给策略决策器;

(11-3)由运行态属性获取插件向协议中间方发送请求,获取所述属性名对应的属性值;

(11-4)协议中间方获取所述属性名后,向服务提供方发送查询请求;

(11-5)服务提供方在接收到协议中间方发送的查询请求后,通过属性查询插件向及时缓存发出查询请求,以确认及时缓存中是否存在所述属性名对应的属性值,若不存在,则执行步骤(11-6),否则,服务提供方获取属性查询插件从及时缓存中取得的属性值,并执行步骤(11-9);

(11-6)属性查询插件将所述属性名发送给服务提供方进行属性值获取请求;

(11-7)服务提供方在接收到属性查询插件发送的属性值获取请求后,向身份提供方发送属性值查询请求;

(11-8)身份提供方响应服务提供方发送的属性值查询请求,向服务提供方发送查询到的属性值;

(11-9)服务提供方验证属性值的有效性,并在验证通过后,执行步骤(11-10);

(11-10)服务提供方向协议中间方发送属性值响应指令,所述属性值响应指令中包括获取到的有效的属性值;

(11-11)协议中间方把收到的属性值发送给运行态属性获取插件,由运行态属性获取插件将属性值发送给策略决策器。

图2所示为本发明实施例公开的一种基于属性的访问控制系统中各模块的交互结构示意图,具体包括:

数据提供方,用于判断待访问用户是否属于已经认证了的用户,若不是,则将待访问用户的访问请求重定向到服务提供方;

服务提供方,用于将重定向的访问请求解释成认证请求和获取属性信息的请求,并将所述认证请求和获取属性信息的请求重定向到身份提供方;

身份提供方,用于进行初步认证,若认证成功,则获取主体属性信息;

其中,主体属性信息可以由身份管理仓库提供。身份管理仓库是为身份提供方提供主体属性信息管理的,它具有授予和撤销主体身份的功能,同时也具有创建修改删除主体属性信息的功能,包括针对具体主体的属性的授予和撤销,是主体属性信息的来源。

身份提供方,还用于将待访问用户的认证请求重定向到属性权威进行进一步的认证;

属性权威,用于在接收到进一步的认证请求后,产生一个预警值,并判断所述预警值是否超过预警阈值,若超过,则由身份提供方进行辅助认证;

其中,属性权威(Attribute Authority,AA)是来收集环境属性信息和用户登录时用户的系统信息,例如,用户登陆时的地点信息,由此可以限制不在指定区域的人不能访问所属资源。

属性权威,还用于在进一步的认证成功时,向身份提供方返回进一步认证成功指令,由身份提供方查询环境属性日志获取环境属性信息;

其中,环境属性日志中包含用户每次认证的事件ID和用户每次认证时属性权威收集的环境属性信息。

其中,事件日志获取插件负责身份提供方和属性权威之间的交互,把用户认证的事件ID提供给身份提供方,以使身份提供方根据用户认证的事件ID来查询环境属性日志获取环境属性信息。

身份提供方,用于产生安全断言标记语言SAML指令,并将所述SAML指令重定向到服务提供方,其中,所述SAML指令中包含主体属性信息和环境属性信息;

服务提供方,还用于在接收到所述SAML指令后,向数据提供方发送应答指令,由数据提供方给待访问用户的浏览器发送一个认证cookie和待访问用户的浏览器之间建立会话,其中,所述应答指令中包含主体属性信息和环境属性信息;

其中,来自身份提供方的主体属性信息和环境属性信息存储在标准声明文件中。身份提供方通过安全口令处理函数从标准申明文件中获取主体属性信息和环境属性信息。

其中,安全口令处理函数用于验证服务提供方提供的口令是否有效;

策略实施点,用于捕获认证了的待访问用户的访问请求,收集存储在标准申明文件中的主体属性信息、环境属性信息和数据提供方的客体属性信息,然后向策略决策器发送待访问用户的访问请求;

策略决策器,用于判断策略实施点提供的主体属性信息、环境属性信息以及客体属性信息是否能够做出访问判决决定;

其中,数据提供方和策略决策器和策略实施点耦合。

运行态属性获取插件,用于在策略决策器利用策略实施点提供的主体属性信息、环境属性信息以及客体属性信息不能够做出访问判决决定时,进行辅助性的属性信息获取请求;

策略决策器,还用于在利用策略实施点提供的主体属性信息、环境属性信息以及客体属性信息能够做出访问判决决定或者在运行态属性获取插件进行辅助性的属性信息获取请求后,根据从策略管理中心产生的策略来决定是允许还是拒绝待访问用户的访问请求;

其中,策略管理中心用于产生策略,提供审计,日志和报告等功能。

策略决策器,还用于将访问判决结果返回给策略实施点,由策略实施点执行访问判决结果。

优选地,在图2所示的系统中还协议中间方、及时缓存、属性查询插件;且运行态属性获取插件与协议中间方、服务提供方、身份提供方、属性查询插件以及及时缓存配合进行辅助性的属性信息获取请求:

运行态属性获取插件,用于获取进行访问判决决定需要的属性名,然后在本地缓存中查找所述属性名在预设时间内是否被请求过,若是,则将所述属性名对应的属性值返回给策略决策器,否则,向协议中间方发送请求,获取所述属性名对应的属性值;

协议中间方,用于在获取所述属性名后,向服务提供方发送查询请求;

服务提供方,用于在接收到协议中间方发送的查询请求后,通过属性查询插件向及时缓存发出查询请求,以确认及时缓存中是否存在所述属性名对应的属性值,若存在,则由服务提供方获取属性查询插件从及时缓存中取得的属性值;

属性查询插件,用于在及时缓存中不存在所述属性名对应的属性值时,将所述属性名发送给服务提供方进行属性值获取请求;

服务提供方,还用于在接收到属性查询插件发送的属性值获取请求后,向身份提供方发送属性值查询请求;

身份提供方,用于响应服务提供方发送的属性值查询请求,向服务提供方发送查询到的属性值;

服务提供方,还用于验证属性值的有效性,并在验证通过后,向协议中间方发送属性值响应指令,所述属性值响应指令中包括获取到的有效的属性值;

协议中间方,还用于把收到的属性值发送给运行态属性获取插件,由运行态属性获取插件将属性值发送给策略决策器。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1