一种基于策略语法的细粒度访问控制方法及系统与流程

文档序号:18835628发布日期:2019-10-09 05:15阅读:292来源:国知局
一种基于策略语法的细粒度访问控制方法及系统与流程

本发明涉及基于策略语法的访问控制领域,具体地说是一种基于策略语法的细粒度访问控制方法及系统。



背景技术:

访问控制技术的实现以访问控制策略的表达、分析和实施为主。其中,访问控制策略定义了系统安全保护的目标,访问控制模型对访问控制策略的应用和实施进行了抽象和描述,访问控制框架描述了访问控制系统的具体实现、组成架构和部件之间交互流程。

浪潮云为用户提供了众多服务,并对此提供了基础的访问控制服务对用户的菜单权限等操作进行限制,但这种粗粒度的控制不再能够满足更精细化、更深度的安全需求。

由于信息系统自身的复杂性、网络的广泛可接入性等因素,系统面临日益增多的安全威胁,安全问题日益突出,故如何有效地保护系统的资源不被窃取和破坏,实现更细力度的访问控制服务是目前现有技术中急需解决的技术问题。

专利号为cn108304715a的专利文献公开了一种多租户基于策略的访问控制方法和访问控制系统。该方法包括:当用户对对象进行操作时,判断所述用户是否有权限对这种类型的对象执行所述操作,如果没有权限,则拒绝所述操作;如果有权限,则判断所述用户是否是所述对象的属主;如果所述用户是所述对象的属主,则允许该操作;如果所述用户不是所述对象的属主时,判断所述用户与所述对象的属主之间关系;根据所述用户与所述对象的属主之间关系读取所述用户所属租户的访问控制策略;以及判断所述访问控制策略是否允许所述操作。该技术方案专注于有权限时对复杂用户结构下的访问控制,并不能判断用户是否拥有对象权限,同时不能有效地保护系统的资源不被窃取和破坏,实现更细力度的访问控制服务。



技术实现要素:

本发明的技术任务是提供一种基于策略语法的细粒度访问控制方法及系统,来解决如何有效地保护系统的资源不被窃取和破坏,实现更细力度的访问控制服务的问题。

本发明的技术任务是按以下方式实现的,一种基于策略语法的细粒度访问控制方法,该方法的步骤如下:

s1、生产策略:预置浪潮云账户策略,用于公共场景的访问控制;用户根据需求自定义创建所需策略;

s2、授权:将创建的策略与实体绑定,实体为用户或用户组,摒弃了角色的概念,使访问控制的过程更直接,更高效;

s3、鉴权:接收到用户请求后,根据用户请求组装鉴权请求信息。

作为优选,所述步骤s1中生产策略具体步骤如下:

s101、创建的策略包括resource、action或condition(;其中,resource表示一个或一种资源,支持使用*进行模糊字符匹配;action表示对资源或资源的操作,支持使用*进行模糊字符匹配;condition表示过滤限定条件、条件丰富且支持后续拓展,condition不仅支持固定字符串匹配且能够进行字段间的匹配;

s102、通过resource、action、condition的合理组合灵活的定义出用户所需的策略,需求覆盖面广泛。

作为优选,所述步骤s3中接收到用户请求后,根据用户请求组装鉴权请求信息的具体步骤如下:

s301、通过解析用户请求,获取到用户要访问的资源信息resource和用户要进行的操作action;

s302、将用户信息(如用户id)、用户名与资源信息(如资源id)以及资源拥有者组装为鉴权上下文context,用于condition条件过滤;

s303、使用用户及用户加入的用户组依次作为subject发起鉴权请求。

更优地,所述鉴权使用鉴权组件ladon。

更优地,所述鉴权过程如下:

1)、拉取存储中的subject相关的策略信息,遍历策略信息与鉴权请求进行匹配;

2)、依次按照action->subject->resource->condition的顺序进行匹配;

3)、匹配规则为支持“*”作为通配符的正则匹配;

4)、若任意一项匹配失败则跳出本次循环,读取下一项条策略;

5)、所有策略匹配不通过,则鉴权失败;任一策略匹配通过,则匹配成功,结束匹配。

作为优选,所述授权包括浪潮云账户对用户和用户的授权以及企业间的授权。

更优地,所述浪潮云账户对用户和用户组的授权过程如下:

a)、浪潮云账户可子用户及用户组,并跟据条件指定策略;

b)、浪潮云账户将策略授权给子用户,使用户具备策略指定的功能权限;

c)、浪潮云账户将策略授权给用户组,使得用户组下的所有用户都具备策略所指定的功能权限;

d)、策略所指定的功能权限即对resource资源的action操作权限;

e)、策略中添加自定义的过滤条件,令权限控制更加精准。

更优地,所述企业间的授权过程如下:

①、公司a为浪潮云账户的用户,且通过权限策略制定角色a;

②、公司a制定能够授权公司b使用公司a的角色a的委托策略;

③、将委托策略发送浪潮云账户;

④、浪潮云账户将公司b创建为浪潮云用户,并允许公司b使用角色a。

一种基于策略语法的细粒度访问控制系统,该系统包括,

浪潮云账户,用于创建用户及用户组,并根据条件指定策略,再将策略授权给子用户及用户组,使用户具及用户组下的所有用户均具备策略所指定的功能权限;

策略生产模块,用于用户根据需求自定义创建所需策略;

授权模块,用于将创建的策略与实体绑定,实体为用户或用户组,摒弃了角色的概念,使访问控制的过程更直接,更高效;

鉴权模块,用于接收到用户请求后,根据用户请求组装鉴权请求信息。

作为优选,所述鉴权模块采用鉴权组件ladon。

其中,resource:指云服务中的资源,包含服务、地区、账号等信息,可具体到资源实例粒度;

action:对资源或资源实例的具体操作;

subject:浪潮云用户或用户组,策略授权的对象;

condition:自定义数据过滤条件,更精准的授权;

context:鉴权上下文,用于condition过滤。

本发明的基于策略语法的细粒度访问控制方法及系统具有以下优点:

(一)、本发明明确地定义和限制了信息系统用户能够对资源执行的访问操作,因此可以有效提供对信息资源的机密性和完整性保护;基于策略语法的访问控制,可以通过对资源、操作和任务对象等描述,达到更细粒度的资源访问控制;

(二)、本发明能够满足更精细化、更深度的安全需求,对资源类型甚至精确的资源信息进行访问控制,同时对用户及用户组的操作进行访问控制;

(三)、本发明给浪潮云提供一个基于策略的细粒度访问控制方法,使对于子账号的管理更为灵活,从用户维度对资源进行隔离,降低误操作的风险,提高管理资源的效率;同时为企业应用提供了更好的管理与分权方法,并在不同企业之间的资源操作与授权、临时授权时更可靠;

(四)、通过使用本发明可以让浪潮云账户更加灵活的控制其子用户的权限;通过自定义策略,创建出更加符合用户需求的策略,将策略授权给用户或用户组,使得用户或用户组具备相应资源的操作权限,摒弃了以往角色的概念,使人员关系更加扁平化,权限控制过程更直接、更高效,不仅对企业云账号内部的管理提供了更多的可能性,还在不同企业之间建立起了沟通更便捷、更安全的桥梁;

(五)、本发明通过策略实现细粒度的资源权限管理,通过resource、action、condition的复杂组合,满足更复杂,定制化程度更高的权限控制需求;

(六)、condition可扩展,使控制方式更多样化;

(七)、通过子用户和用户组,摒弃角色概念,人员关系更加扁平化,更加灵活、高效的管理访问权限;

(八)、使用独立的ladon鉴权服务,解耦了业务逻辑与授权、鉴权过程;

(九)、本发明采用资源相关性依次递减的action->subject->resource->condition顺序的正则匹配,并将匹配关系缓存,提高匹配效率。

附图说明

下面结合附图对本发明进一步说明。

附图1为基于策略语法的细粒度访问控制方法的流程框图;

附图2为鉴权过程的流程框图;

附图3为浪潮云账户对用户和用户组的授权的流程框图;

附图4为企业间的授权的流程框图。

具体实施方式

参照说明书附图和具体实施例对本发明的一种基于策略语法的细粒度访问控制方法及系统作以下详细地说明。

实施例1:

如附图1所示,本发明的基于策略语法的细粒度访问控制方法,该方法的步骤如下:

s1、生产策略:预置浪潮云账户策略,用于公共场景的访问控制;例如主账号需要拥有对自己账号下资源的访问权限,子账号拥有对自己所属资源的访问权限等控制。用户根据需求自定义创建所需策略;具体步骤如下:

s101、创建的策略包括resource(指云服务中的资源,包含服务、地区、账号等信息,可具体到资源实例粒度)、action(对资源或资源实例的具体操作)或condition(自定义数据过滤条件,更精准的授权);其中,resource表示一个或一种资源,支持使用*进行模糊字符匹配;action表示对资源或资源的操作,支持使用*进行模糊字符匹配;condition表示过滤限定条件、条件丰富且支持后续拓展,condition不仅支持固定字符串匹配且能够进行字段间的匹配;

s102、通过resource、action、condition的合理组合灵活的定义出用户所需的策略,需求覆盖面广泛。例如可以使用“*”匹配所有resource和action,通过创建owner=userid的condition条件,创建出仅资源拥有者可访问的权限策略。

s2、授权:将创建的策略与实体绑定,实体为用户或用户组,摒弃了角色的概念,使访问控制的过程更直接,更高效;授权包括浪潮云账户对用户和用户的授权以及企业间的授权。

其中,如附图3所示,浪潮云账户对用户和用户组的授权过程如下:

a)、浪潮云账户可子用户及用户组,并跟据条件指定策略;

b)、浪潮云账户将策略授权给子用户,使用户具备策略指定的功能权限;

c)、浪潮云账户将策略授权给用户组,使得用户组下的所有用户都具备策略所指定的功能权限;

d)、策略所指定的功能权限即对resource资源的action操作权限;

e)、策略中添加自定义的过滤条件,令权限控制更加精准。

如附图4所示,企业间的授权过程如下:

①、公司a为浪潮云账户的用户,且通过权限策略制定角色a;

②、公司a制定能够授权公司b使用公司a的角色a的委托策略;

③、将委托策略发送浪潮云账户;

④、浪潮云账户将公司b创建为浪潮云用户,并允许公司b使用角色a。

s3、鉴权:接收到用户请求后,根据用户请求组装鉴权请求信息;具体步骤如下:

s301、通过解析用户请求,获取到用户要访问的资源信息resource和用户要进行的操作action;

s302、将用户信息(如用户id)、用户名与资源信息(如资源id)以及资源拥有者组装为鉴权上下文context(鉴权上下文),用于condition条件过滤;

s303、使用用户及用户加入的用户组依次作为subject发起鉴权请求。

其中,鉴权使用鉴权组件ladon。如附图2所示,鉴权过程如下:

1)、拉取存储中的subject相关的策略信息,遍历策略信息与鉴权请求进行匹配;

2)、依次按照action->subject->resource->condition的顺序进行匹配;

3)、匹配规则为支持“*”作为通配符的正则匹配;

4)、若任意一项匹配失败则跳出本次循环,读取下一项条策略;

5)、所有策略匹配不通过,则鉴权失败;任一策略匹配通过,则匹配成功,结束匹配。

实施例2:

本发明的基于策略语法的细粒度访问控制系统,该系统包括,

浪潮云账户,用于创建用户及用户组,并根据条件指定策略,再将策略授权给子用户及用户组,使用户具及用户组下的所有用户均具备策略所指定的功能权限;

策略生产模块,用于用户根据需求自定义创建所需策略;

授权模块,用于将创建的策略与实体绑定,实体为用户或用户组,摒弃了角色的概念,使访问控制的过程更直接,更高效;

鉴权模块,用于接收到用户请求后,根据用户请求组装鉴权请求信息。鉴权模块采用鉴权组件ladon。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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