资源访问方法、装置、计算设备以及存储介质与流程

文档序号:18601749发布日期:2019-09-03 22:43阅读:165来源:国知局
资源访问方法、装置、计算设备以及存储介质与流程

本申请涉及信息技术领域,尤其涉及一种资源访问方法、装置、计算设备以及存储介质。



背景技术:

随着信息技术的发展,用户可以通过互联网访问许多资源系统,如,视频服务器、音乐服务器、云存储服务器等,来获取到越来越多自己想要的信息,与此同时,对于众多资源系统来说就存在了来自非法用户或恶意用户的恶意攻击的威胁,于是,为了保护资源系统的安全,需要对访问资源系统的用户进行鉴权,以保证不具有权限的用户无法访问到相应的资源,但对于具有大量资源的资源系统来说,势必会影响用户的访问速率,所以如何减少这种影响是解决上述问题的关键。



技术实现要素:

本申请提出了以下技术方案,能够快速对访问用户进行鉴权。

本申请实例提出了一种资源访问方法,所述方法包括:接收客户端发送的访问请求,所述访问请求携带访问用户的信息、访问资源的信息以及访问操作的信息;当根据所述访问用户的信息确定所述访问用户的授权策略数量已达到预设阈值时,查找所述访问资源的信息对应的授权策略集合;根据所述访问用户的信息、所述访问资源的信息、所述访问操作的信息和查找到的所述授权策略集合,对所述访问用户进行鉴权;及当所述访问用户鉴权通过时,根据所述访问请求对所述访问资源执行所述访问操作。

在一些实例中,所述访问资源的信息包括访问资源地址;其中,所述查找所述访问资源的信息对应的授权策略集合,包括:查找所述访问资源地址信息对应的授权策略标识集合;及根据所述授权策略标识集合,查找所述授权策略集合。

在一些实例中,所述方法进一步包括:建立授权策略索引数据,所述授权策略索引数据包括各个访问资源地址与各个授权策略标识的对应关系;其中,所述查找所述访问资源地址对应的授权策略标识集合,包括:从所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述授权策略索引数据包括模糊策略索引数据以及精确策略索引数据;其中,所述从所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合,包括:从所述模糊策略索引数据中查找所述访问资源地址对应的授权策略指示,所述授权策略指示用于指示所述访问资源具有授权策略;当查找到所述访问资源地址对应的所述授权策略指示时,从所述精确策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述查找所述访问资源地址对应的授权策略指示,包括:确定所述访问资源地址中的各个地址前缀,所述各个地址前缀代表所述访问资源地址所属的各个访问目录的地址;从所述模糊策略索引数据中依次查找各个所述地址前缀对应的所述授权策略指示;及当查找到所有所述地址前缀对应的所述授权策略指示时,确定查找到所述访问资源地址具有对应的所述授权策略指示。

在一些实例中,所述方法进一步包括:当未查到任一所述地址前缀对应的所述授权策略指示时,确定所述访问用户鉴权不通过。

在一些实例中,所述方法进一步包括:当未查找到所述访问资源地址对应的所述授权策略标识时,确定所述访问用户鉴权不通过。

在一些实例中,所述方法进一步包括:当未查找到所述访问资源的信息对应的授权策略集合时,确定所述访问用户鉴权不通过。

在一些实例中,所述建立所述授权策略索引数据,包括:从策略数据库中获取各个访问资源及其各自对应的授权策略标识;确定所述每个访问资源对应的访问资源地址所属的各个访问目录的地址;根据所述访问资源对应的所述授权策略指示,所述授权策略指示用于指示所述访问资源具有授权策略,创建所述访问资源对应的各个访问目录的地址与所述授权策略指示的对应关系;及根据所述各个访问资源地址以及各个访问资源对应的授权策略标识,创建所述访问资源地址与所述授权策略标识的对应关系。

在一些实例中,所述方法进一步包括:当所述访问用户的授权策略数量未达到预设阈值时,则从策略数据库中查找与所述访问用户信息相匹配的授权策略;当查找到与所述访问用户信息相匹配的所述授权策略时,根据访问用户的信息、所述访问资源的信息、所述访问操作的信息和查找到的所述授权策略,对所述访问用户进行鉴权的步骤;当检测到与所述用户信息相匹配的所述授权策略的数量达到所述预设阈值时,则执行所述查找所述访问资源的信息对应的授权策略集合的步骤。

在一些实例中,所述方法进一步包括:将建立的所述授权策略索引数据存储在缓存区域中;其中,所述从所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合,包括:从所述缓存区域中读取所述授权策略索引数据;从所读取的所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述方法进一步包括:将建立的所述授权策略索引数据存储在策略数据库中;当从所述缓存区域中读取所述授权策略索引数据失败时,从所述策略数据库中读取当前存储的授权策略表的版本标识;及当读取到的所述授权策略表的版本标识未发生变更时,则从所述策略数据库中读取当前存储的所述授权策略索引数据;当确定读取到的所述授权策略表的版本标识发生变更时,则根据当前存储的所述授权策略表重新建立所述授权策略索引数据。

在一些实例中,所述访问资源的信息包括所述访问资源的标识;所述对所述访问用户进行鉴权,包括:在所述授权策略中查找与所述访问用户标识和所述访问资源的标识相匹配的操作权限;根据查找到的所述操作权限,对所述访问用户是否有权执行所述访问操作信息指示对应的访问操作进行鉴权。

本申请实例还提出了一种资源访问装置,所述装置包括:接收模块,接收客户端发送的访问请求,所述访问请求携带访问用户的信息、访问资源的信息以及访问操作的信息;查找模块,当根据所述访问用户的信息确定所述访问用户的授权策略数量已达到预设阈值时,查找所述访问资源的信息对应的授权策略集合;鉴权模块,根据所述访问用户的信息、所述访问资源的信息、所述访问操作的信息和查找到的所述授权策略集合,对所述访问用户进行鉴权;鉴权模块,当所述访问用户鉴权通过时,根据所述访问请求对所述访问资源执行所述访问操作。

在一些实例中,所述访问资源的信息包括访问资源地址;其中,查找模块包括:第一查找单元,查找所述访问资源地址信息对应的授权策略标识集合;第二查找单元,根据所述授权策略标识集合,查找所述授权策略集合。

在一些实例中,所述装置进一步包括:建立模块,建立授权策略索引数据,所述授权策略索引数据包括各个访问资源地址与各个授权策略标识的对应关系;其中,所述查找模块,从所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述授权策略索引数据包括模糊策略索引数据以及精确策略索引数据;其中,所述第一查找单元,从所述模糊策略索引数据中查找所述访问资源地址对应的授权策略指示,所述授权策略指示用于指示所述访问资源具有授权策略;当查找到所述访问资源地址对应的所述授权策略指示时,从所述精确策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述第一查找单元,确定所述访问资源地址中的各个地址前缀,所述各个地址前缀代表所述访问资源地址所属的各个访问目录的地址;及从所述模糊策略索引数据中依次查找各个所述地址前缀对应的所述授权策略指示;当查找到所有所述地址前缀对应的所述授权策略指示时,确定查找到所述访问资源地址具有对应的所述授权策略指示。

在一些实例中,所述鉴权模块,当未查到任一所述地址前缀对应的所述授权策略指示时,确定所述访问用户鉴权不通过。

在一些实例中,所述鉴权模块,当未查找到所述访问资源的信息对应的授权策略集合时,确定所述访问用户鉴权不通过。

在一些实例中,所述鉴权模块,当未查找到所述访问资源地址对应的所述授权策略标识时,确定所述访问用户鉴权不通过。

在一些实例中,所述建立模块包括:获取单元,从策略数据库中获取各个访问资源及其各自对应的授权策略标识;确定单元,确定所述每个访问资源对应的访问资源地址所属的各个访问目录的地址;第一创建单元,根据所述访问资源对应的所述授权策略指示,所述授权策略指示用于指示所述访问资源具有授权策略,创建所述访问资源对应的各个访问目录的地址与所述授权策略指示的对应关系;第二创建单元,根据所述各个访问资源地址以及各个访问资源对应的授权策略标识,创建所述访问资源地址与所述授权策略标识的对应关系。

在一些实例中,所述查找模块,当所述访问用户的授权策略数量未达到预设阈值时,则从策略数据库中查找与所述访问用户信息相匹配的授权策略;鉴权模块,当查找到与所述访问用户信息相匹配的所述授权策略时,根据访问用户的信息、所述访问资源的信息、所述访问操作的信息和查找到的所述授权策略,对所述访问用户进行鉴权的步骤。

在一些实例中,所述装置进一步包括:检测模块,当检测到与所述用户信息相匹配的所述授权策略的数量达到所述预设阈值时,则执行所述查找模块,查找所述访问资源的信息对应的授权策略集合。

在一些实例中,所述装置进一步包括:存储模块,将建立的所述授权策略索引数据存储在缓存区域中;读取模块,从所述缓存区域中读取所述授权策略索引数据;从所读取的所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述存储模块,将建立的所述授权策略索引数据存储在策略数据库中;所述读取模块,当从所述缓存区域中读取所述授权策略索引数据失败时,从所述策略数据库中读取当前存储的授权策略表的版本标识;当读取到的所述授权策略表的版本标识未发生变更时,则从所述策略数据库中读取已存储的所述授权策略索引数据。

在一些实例中,所述建立模块,当确定读取到的所述授权策略表的版本标识发生变更时,则根据当前存储的所述授权策略表重新建立所述授权策略索引数据。

在一些实例中,所述访问资源的信息包括所述访问资源的标识;所述鉴权模块包括:匹配单元,在所述授权策略中查找与所述访问用户标识和所述访问资源的标识相匹配的操作权限;鉴权单元,根据查找到的所述操作权限,对所述访问用户是否有权执行所述访问操作信息指示对应的访问操作进行鉴权。

本申请实例还提出了一种计算设备,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序;所述处理器执行所述计算机程序时实现上述的方法。

本申请实例还提出了一种存储介质,存储有一个或多个程序,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行上述的方法。

应用本发明的技术方案,能够降低对用户的鉴权时间,特别是针对具有大量策略的用户,提高资源系统的工作性能,且不会占用过多的资源系统存储空间。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一个实例的资源访问方法适用的系统结构示意图;

图2为本申请一个实例的资源访问方法的流程图;

图3为本申请一个实例中的模糊策略索引数据的实例;

图4为本申请一个实例中的精确策略索引数据的实例;

图5为本申请一个实例的服务器的结构示意图;

图6为本申请一个实例的查找策略标识的流程图;

图7为本申请一个实例的授权策略所属版本标识变更时获取索引数据的流程图;

图8为本申请一个实例的资源访问装置的结构示意图;

图9为本申请一个实例的计算设备的硬件的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了描述上的简洁和直观,下文通过描述若干代表性的实施例来对本发明的方案进行阐述。实施例中大量的细节仅用于帮助理解本发明的方案。但是很明显,本发明的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本发明的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”。下文中没有特别指出一个成分的数量时,意味着该成分可以是一个也可以是多个,或可理解为至少一个。

图1示出了本申请实例的资源访问方法适用的系统100结构示意图。该系统100至少包括终端设备101、资源系统102(如,云存储服务器)以及网络105。

其中,终端设备101是指具有数据计算处理功能的设备,包括但不限于(安装有通信模块的)智能手机、掌上电脑、平板电脑等。终端设备101上安装有操作系统,可以包括但不限于:android操作系统、symbian操作系统、windowsmobile操作系统、以及苹果iphoneos操作系统等等。

终端设备101安装有客户端(如,云存储app、云存储pc客户端、云存储网页客户端等),该客户端通过网络105与资源系统102(如,云存储服务器)安装有鉴权功能以及资源访问功能的应用服务器软件进行信息交互,资源系统102(如,云存储服务器)接收客户端发送的资源访问请求。

资源系统102(如,云存储服务器),可以包括鉴权服务器103、数据库服务器104、业务接入服务器106以及访问服务器107等,其中,业务接入服务器106用于通过网络105接收上述客户端发送的访问请求,并将该访问请求转发至鉴权服务器103,业务接入服务器106中安装有接收并转发该访问请求的应用服务器软件;鉴权服务器103用于通过网络105接收业务接入服务器106转发的的访问请求,并对该访问用户进行鉴权,鉴权服务器103中安装有鉴权功能的应用服务器软件。数据库服务器104用于为鉴权服务器103提供数据(如,策略数据)的存储和查询,并通过网络105接收鉴权服务器103发送的数据查询请求等,数据库服务器104安装有数据存储和查询功能的应用服务器软件;访问服务器107根据鉴权服务器103通过网络105发送的鉴权结果确定是否响应用户的访问请求,该访问服务器107安装有响应用户访问请求的应用服务器软件。

网络105可以是有线网络,也可以是无线网络。

基于系统100,本申请的实例提出了一种资源访问方法,应用于资源系统102(如,云存储服务器,特别是鉴权服务器103)。如图2所示,该方法200包括以下步骤:

步骤s201:接收客户端发送的访问请求,所述访问请求携带访问用户的信息、访问资源的信息以及访问操作的信息。

在一些实例中,访问用户通过终端设备101运行客户端(如,云存储app),并登录该客户端,触发该客户端中的文档文件的删除指令,客户端基于该删除指令,向资源系统102(如,云存储服务器)发送访问请求,该访问请求携带访问用户标识(如,用户id)、访问操作(如,删除操作)、访问资源的信息(如,文件文档的描述信息gz:prefix:uin/123/1/2/3,其中gz为地域,prefix为资源类型,uin/123为资源拥有者,1/2/3为文档文件真实路径),该访问请求还可以携带上下文信息(如,访问用户的ip地址等)。资源系统102(如,云存储服务器)接收该访问请求,并获取该访问请求中的上述信息。

需要说明的是,在资源系统102中,服务商可以通过资源系统102的服务控制台或者授权接口api给访问用户设置授权策略;当访问用户要访问资源系统102的资源时,资源系统102会先通过鉴权服务器103,确认访问用户是否有访问权限,只有具有授权的操作,才会允许访问用户访问相应的资源。

其中,授权接口api为是资源系统102预先提供的函数,该函数用于提供资源系统102的鉴权应用程序与开发人员基于软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制,实现设置访问用户的授权策略的功能;从而方便且快速地使开发人员对用户的授权策略进行设置。

步骤s202:当根据所述访问用户的信息确定所述访问用户的授权策略数量已达到预设阈值时,查找所述访问资源的信息对应的授权策略集合。

其中,所述访问资源的信息包括访问资源地址。

在一些实例中,上述确定所述访问用户的授权策略数量已达到预设阈值的方式可以包括以下两种方式,第一种方式可以为:资源系统102(如,云存储服务器,更具体的可以为云存储服务器中的鉴权服务器103),预先离线分析每个用户的授权策略(如,从数据库服务器104中获取到各个用户的授权策略),并通过统计的方式确定每个用户的授权策略数量,当用户的授权策略数量达到预设阈值时(如,达到1000个授权策略),则视为该用户为大策略用户。

第二种方式可以为:当根据上述第一种方式确定出当前访问用户为非大策略用户后,当在对该非大策略用户进行鉴权时,如果查找到该非大策略用户对应的授权策略数量达到了预设阈值时(如,鉴权服务器103接收到了策略服务器504发送的授权策略,且该授权策略为1000个),则执行步骤202:所述查找所述访问资源的信息对应的授权策略集合。

当资源系统102(如,云存储服务器)接收到上述访问请求时,调用其内部的业务接入服务器106,将该访问请求发送至该业务接入服务器106,当业务接入服务器106接收到该访问请求时,将该访问请求发送至鉴权服务器103,鉴权服务器103(也可以称之为逻辑服务器)根据用户标识(如,用户id)判断该用户是否为大策略用户,当确定该用户是大策略用户时,则查找访问资源的信息中的访问地址对应的授权策略集合。

在一些实例中,所述查找所述访问资源的信息对应的授权策略集合,包括:查找所述访问资源地址信息对应的授权策略标识集合(如,授权策略id集合);根据所述授权策略标识集合,查找所述授权策略集合。

在一些实例中,所述方法200进一步包括:建立授权策略索引数据,所述授权策略索引数据包括各个访问资源地址与各个授权策略标识的对应关系;其中,所述查找所述访问资源地址对应的授权策略标识集合,包括:从所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合(如,授权策略id集合)。在一些实例中,所述授权策略索引数据包括模糊策略索引数据以及精确策略索引数据;其中,所述从所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合,包括:从所述模糊策略索引数据中查找所述访问资源地址对应的授权策略指示(如,数值“1”表示对应访问资源地址存在授权策略或授权策略标识,数值“0”表示对应访问资源地址不存在授权策略或授权策略标识),所述授权策略指示用于指示所述访问资源具有授权策略;当查找到所述访问资源地址对应的所述授权策略指示时,从所述精确策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

其中,图3示出了模糊策略索引数据的实例300,该模糊策略索引数据也可以称之为前缀匹配索引或前缀匹配索引数据;该索引数据可以是通过键-值(key-value)形式进行数据存储的,该模糊策略索引数据中的每个地址前缀301对应一个授权策略指示302。

图4示出了精确策略索引数据的实例400,该精确策略索引数据也可以称之为精确匹配索引;该索引数据可以是根据键-值(key-value)形式进行数据存储的,该精确策略索引数据中的每个访问资源地址401对应一个授权策略标识402。

在一些实例中,如图6所示,所述查找所述访问资源地址对应的授权策略指示,包括:步骤601:确定所述访问资源地址中的各个地址前缀,所述各个地址前缀代表所述访问资源地址所属的各个访问目录的地址;步骤602:从所述模糊策略索引数据中依次查找各个所述地址前缀对应的所述授权策略指示;步骤603:当查找到所有所述地址前缀对应的所述授权策略指示时,确定查找到所述访问资源地址具有对应的所述授权策略指示;从而实现步骤604:从所述精确策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

例如,当根据该访问用户的id,查找到该访问用户为大策略用户时,即该访问用户的授权策略超过1000个时,而其访问资源的信息为:gz:prefix:uin/123/1/2/3,其中gz为地域,prefix为资源类型,uin/123为资源拥有者,1/2/3为文档文件真实路径;根据该访问资源地址:1/2/3,确定该地址中的各个地址前缀为:1/*、1/2/*;其中,每个访问目录分别为“1”目录和“2”目录;在模糊策略索引数据的实例300中根据地址前缀顺序,依次查找该地址前缀301:1/*,对应的授权策略指示302为“1”,即表示该地址前缀301:1/*具有授权策略,则继续查找地址前缀301:1/2/*,对应的授权策略指示302为“1”,即表示该地址前缀301:1/2/*具有授权策略,当所有的地址前缀301对应的授权策略指示302均为“1”时(即1/*与1/2/*均有授权策略指示时),则确定该访问资源地址:1/2/3具有对应的所述授权策略。当查找到该访问资源地址:1/2/3对应的所述授权策略指示时,则在精确策略索引数据的实例400中查找该访问资源地址401“1/2/3”对应的授权策略标识集合402,即授权策略id集合为:100和200,从而确定该授权策略以及授权策略集合。

在一些实例中,所述方法200进一步包括:当未查到任一所述地址前缀对应的所述授权策略指示时,例如,在模糊策略索引数据中未查找到该地址前缀为:1/*,对应的授权策略指示,或,查找到的授权策略指示为“0”,则视为该该访问资源地址:1/2/3不具有授权策略,则该访问用户鉴权不通过,鉴权服务器103通过业务接入服务器106向云存储服务器发送鉴权结果,云存储服务器将该鉴权结果发送给访问用户的客户端。

应理解,当上述地址前缀为:1/*不具有授权策略时,则不需再继续查找下一个地址前缀。

其中,所述建立所述授权策略索引数据,包括:从策略数据库(如,数据库服务器104)中获取各个访问资源及其各自对应的授权策略标识;确定所述每个访问资源对应的访问资源地址所属的各个访问目录的地址;根据所述访问资源对应的所述授权策略指示,所述授权策略指示用于指示所述访问资源具有授权策略,创建所述访问资源对应的各个访问目录的地址与所述授权策略指示的对应关系;及根据所述各个访问资源地址以及各个访问资源对应的授权策略标识,创建所述访问资源地址与所述授权策略标识的对应关系。

例如,鉴权服务器103向数据库服务器104发送数据查询请求,该查询请求携带查询关键词,如访问资源的授权策略标识,数据库服务器104响应于该数据查询请求返回各个访问资源以及各个访问资源对应的授权策略标识,还可以根据该数据查询请求,获取各个访问资源的访问资源地址,此处该数据查询请求携带的查询关键词,可以为:访问资源的访问资源地址;根据前文所述的方式确定各个访问资源地址的地址前缀,即所述访问资源地址所属的各个访问目录的地址,如,获取到访问资源gz:prefix:uin/124/1/2/4,其访问资源地址/1/2/4,其地址前缀1/*、1/2/*,其授权策略标识(id)为300和400,则建立授权策略索引数据如下表1和表2:

模糊策略索引数据:

表1:

精确策略索引数据:

表2:

需要说明的是,通过建立上述授权策略索引数据,仅增加少量的内存开销,即在不增加内存负担的情况下,极大地降低了大策略用户鉴权的时间开销,提升整个资源系统的鉴权性能。

步骤s203:根据所述访问用户的信息、所述访问资源的信息、所述访问操作的信息和查找到的所述授权策略集合,对所述访问用户进行鉴权。

其中,访问资源的信息包括访问资源的标识(如,访问资源的描述信息)。

在一些实例中,所述对所述访问用户进行鉴权,包括:在所述授权策略中查找与所述访问用户标识和所述访问资源的标识相匹配的操作权限;根据查找到的所述操作权限,对所述访问用户是否有权执行所述访问操作信息指示对应的访问操作进行鉴权。

例如,根据前文所述,当访问资源的信息为:gz:prefix:uin/123/1/2/3查找到授权策略集合为授权策略id为:100和200的授权策略集合,其中,授权策略id为:100和200的授权策略分别如下表3和4所示:

表3(id为100的授权策略):

表4(id为200的授权策略):

当访问用户的用户标识为“001”且访问资源的描述信息为gz:prefix:uin/123/1/2/3时,可从上述表3和表4中查找到该访问用户具有相匹配的操作权限“删除”和“修改”,再根据该访问用户的访问操作为“删除”,确定该访问用户具有该执行权限,即对该访问用户鉴权通过。

需要说明的是,上述授权策略可以包含多个用户的一个访问资源的访问操作,也可以只包含一个用户的一个访问资源的访问操作,此处不作具体限制。

步骤s204:当所述访问用户鉴权通过时,根据所述访问请求对所述访问资源执行所述访问操作。

例如,根据前文所述,当该访问用户鉴权通过时,则鉴权服务器103向业务接入服务器106发送鉴权通过的消息,该业务接入服务器106向云存储服务器,即资源系统102发送鉴权通过的消息,当云存储服务器接收到该消息后,通知访问服务器107响应于该访问用户的访问请求,删除该文档文件,并通过云存储服务器向云存储客户端发送删除成功的消息。

需要说明的是,在进行鉴权时,只需要根据授权策略进行查找即可实现鉴权,方便且快捷,用户体验也好。

在一些实例中,所述方法200进一步包括:当未查找到所述访问资源地址对应的所述授权策略标识时,确定所述访问用户鉴权不通过。

例如,根据前文所述,该访问用户的访问资源的信息:gz:prefix:uin/123/1/2/3,具有授权策略指示,但在精确策略索引数据中未查找该访问资源地址“1/2/3”对应的授权策略标识,则视为该访问用户鉴权不通过。

更进一步地,所述方法200还可以理解为:当未查找到所述访问资源的信息对应的授权策略集合时,确定所述访问用户鉴权不通过。

在一些实例中,所述方法200进一步包括:将建立的所述授权策略索引数据存储在缓存区域中;其中,所述从所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合,包括:从所述缓存区域中读取所述授权策略索引数据,从所读取的所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。例如,图5示出了云存储服务器501(即资源系统102)的结构示意图,其中,云存储服务器501中的鉴权服务器502将建立好的授权策略索引数据存储至策略数据库504(即数据库服务器104)和缓存区域503中,鉴权服务器503可以直接从缓存区域中获取到授权策略索引数据中的信息,并查找该访问资源地址对应的授权策略标识集合,其中的获取方式与前文中阐述的获取方式相同,查找方式也与前文所述的查找方式相同,此处就均不再赘述。

需要说明的是,将上述授权策略索引数据存储在缓存区域中时,可以快速读取或获取该授权策略索引数据中的信息,减少查找时间,提升鉴权时效,从而提高用户的体验。

在一些实例中,如图7所示,所述方法200进一步包括:步骤701:将建立的所述授权策略索引数据存储在策略数据库中;步骤702:当从所述缓存区域中读取所述授权策略索引数据失败时,从所述策略数据库中读取当前存储的授权策略表的版本标识;步骤703:当读取到的所述授权策略表的版本标识未发生变更时,则从所述策略数据库中读取当前存储的所述授权策略索引数据。所述方法200进一步包括:当确定读取到的所述授权策略表的版本标识发生变更时,则建立所述授权策略索引数据。

例如,图5示出了云存储服务器501(即资源系统102)的结构示意图,其中,云存储服务器501中的鉴权服务器502将建立好的授权策略索引数据存储至策略数据库504(即数据库服务器104),当鉴权服务器502在访问该缓存区域503时,检测到该缓存区域503已失效无法获取数据时,或者,鉴权服务器502接收到该缓存区域503发送的已失效的消息,则向策略数据库504发送当前存储的授权策略所属版本号(即由每个授权策略集成的授权策略表的版本号)的获取请求,并接收该授权策略所属版本号(即授权策略表的版本号),当该授权策略所属版本被更新后(如,授权策略表的版本号由1.0变为1.1),则鉴权服务器502根据策略数据库504中的更新后的该授权策略表重新建立授权策略索引数据,建立具体的实施方式在前文中已经详细阐述过,此处就不再赘述。当该授权策略所属版本号(即授权策略表的版本号)未更新,则从策略数据库504中获取之前预存在策略数据库504中的授权策略索引数据。

需要说明的是,将授权策略索引数据存储在上述策略数据库504中,从而实现将授权策略索引数据进行永久存储,不会造成数据的丢失,当缓存区域503失效时,可以重新从策略数据库504中读取其中的授权策略。

上述授权策略表可以是每个授权策略集成的一个表,也可以是多个授权策略集成的多个表,存储在策略数据库504中;当一个授权策略表的版本号发生变更时(可以是集成为的一个授权策略表也可以是集成为多个的授权策略表中的一个授权策略表),则需要重新建立上述授权策略索引数据。

在一些实例中,所述方法200进一步包括:当所述访问用户的授权策略数量未达到预设阈值时,则从策略数据库504中查找与所述访问用户信息相匹配的授权策略;当查找到与所述访问用户信息相匹配的所述授权策略时,根据访问用户的信息、所述访问资源的信息、所述访问操作的信息和查找到的所述授权策略,对所述访问用户进行鉴权的步骤。

在一些实例中,所述方法200进一步包括:当检测到与所述用户信息相匹配的所述授权策略的数量达到所述预设阈值时,则执行所述查找所述访问资源的信息对应的授权策略集合的步骤。

例如,根据前文所述,当根据该访问用户的id,查找到该访问用户不是大策略用户时,即该访问用户的授权策略少于1000个时,则视为普通访问用户;策略数据库504(即数据库服务器104)预先保存了用户标识(如,用户id)和用户组的关系表、用户组和授权策略的关系表,项目组和可访问资源的关系表、授权策略和权限的关系表以及授权策略和项目组关系表等,鉴权服务器103要先从策略数据库504(即数据库服务器104)中查看用户标识所在的用户组,然后查找与用户组对应的授权策略,再查找授权策略对应的项目组,再查找项目组对应的访问资源,还需要从授权策略对应的权限中查找是否包含用户的访问操作,从而确定该用户是否具有权限进行访问。

当在对非大策略用户进行鉴权时,如果鉴权服务器103接收到了策略服务器504发送的授权策略且该授权策略数量达到了预设阈值时(如,1000个授权策略),则执行步骤202:所述查找所述访问资源的信息对应的授权策略集合。由于该步骤202的具体实施方式在前文已经详细地阐述过了,此处就不再赘述。

应理解,当非大策略用户的授权策略发生变更后,且变更后的授权策略的数量已经到了预设阈值(如,1000个授权策略)时,再用上述非大策略用户的鉴权方式或现有技术中的鉴权方式对该用户进行鉴权就会造成鉴权时间过长,从而给用户带来不好的体验,所以当用户的授权策略的数量变更至预设阈值,则将该用户视为大策略用户,可以将该用户添加到大策略用户的集合中,并根据上述大策略用户的鉴权方式对该用户进行鉴权,以保证该用户再次访问时,直接采用大策略用户的鉴权方式对该用户进行鉴权。

本实施例包含了离线确定大策略用户以及在线实时更新反馈用户的授权策略来确定大策略用户的机制,更加全面地保护了大策略用户的鉴权机制,能够准确地对大策略用户进行鉴权,减少由于授权策略更新等原因造成的大策略用户遗漏的问题发生。

应理解,上述非大策略用户也可以按照现有技术中的鉴权方式进行鉴权,以实现对非大策略用户的鉴权。虽然上述非大策略用户的鉴权方式和现有技术中的鉴权方式中的关系表的组织非常直观,但是却是以牺牲鉴权服务器103性能作为代价的。因为在鉴权服务器103进行鉴权时,对数据的访问压力会很大,仅适用于访问量较少的业务场景。虽然现有技术中存在以访问操作和访问资源的关系线性表的方式对访问用户进行鉴权,但是对于一些特定的场景,如访问用户拥有很多授权策略的情况,或者授权策略中的访问操作下拥有很多访问资源的情况,查找的授权策略会特别多,且逐个匹配效率会非常低,同样会影响鉴权服务器103的性能,特别是对于需要前缀匹配的对象存储类的访问资源的场景。

基于上述方法实例,本申请还提出了一种资源访问装置,应用在资源系统102中(如,云存储服务器中,更具体地可以是其中的鉴权服务器103中),如图8所示,所述装置800包括:接收模块801、查找模块802以及鉴权模块803;且各个模块的功能具体如下:

接收模块801,接收客户端发送的访问请求,所述访问请求携带访问用户的信息、访问资源的信息以及访问操作的信息;

查找模块802,当根据所述访问用户的信息确定所述访问用户的授权策略数量已达到预设阈值时,查找所述访问资源的信息对应的授权策略集合;

鉴权模块803,根据所述访问用户的信息、所述访问资源的信息、所述访问操作的信息和查找到的所述授权策略集合,对所述访问用户进行鉴权;

鉴权模块803,当所述访问用户鉴权通过时,根据所述访问请求对所述访问资源执行所述访问操作。

在一些实例中,所述访问资源的信息包括访问资源地址;其中,查找模块802包括:第一查找单元,查找所述访问资源地址信息对应的授权策略标识集合;第二查找单元,根据所述授权策略标识集合,查找所述授权策略集合。

在一些实例中,所述装置800进一步包括:建立模块,建立授权策略索引数据,所述授权策略索引数据包括各个访问资源地址与各个授权策略标识的对应关系;其中,所述查找模块802,从所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述授权策略索引数据包括模糊策略索引数据以及精确策略索引数据;其中,所述第一查找单元,从所述模糊策略索引数据中查找所述访问资源地址对应的授权策略指示,所述授权策略指示用于指示所述访问资源具有授权策略;当查找到所述访问资源地址对应的所述授权策略指示时,从所述精确策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述第一查找单元,确定所述访问资源地址中的各个地址前缀,所述各个地址前缀代表所述访问资源地址所属的各个访问目录的地址;及从所述模糊策略索引数据中依次查找各个所述地址前缀对应的所述授权策略指示;当查找到所有所述地址前缀对应的所述授权策略指示时,确定查找到所述访问资源地址具有对应的所述授权策略指示。

在一些实例中,所述鉴权模块803,当未查到任一所述地址前缀对应的所述授权策略指示时,确定所述访问用户鉴权不通过。

在一些实例中,所述鉴权模块803,当未查找到所述访问资源的信息对应的授权策略集合时,确定所述访问用户鉴权不通过。

在一些实例中,所述鉴权模块803,当未查找到所述访问资源地址对应的所述授权策略标识时,确定所述访问用户鉴权不通过。

在一些实例中,所述建立模块包括:获取单元,从策略数据库中获取各个访问资源及其各自对应的授权策略标识;确定单元,确定所述每个访问资源对应的访问资源地址所属的各个访问目录的地址;第一创建单元,根据所述访问资源对应的所述授权策略指示,所述授权策略指示用于指示所述访问资源具有授权策略,创建所述访问资源对应的各个访问目录的地址与所述授权策略指示的对应关系;第二创建单元,根据所述各个访问资源地址以及各个访问资源对应的授权策略标识,创建所述访问资源地址与所述授权策略标识的对应关系。

在一些实例中,所述查找模块802,当所述访问用户的授权策略数量未达到预设阈值时,则从策略数据库中查找与所述访问用户信息相匹配的授权策略;鉴权模块,当查找到与所述访问用户信息相匹配的所述授权策略时,根据访问用户的信息、所述访问资源的信息、所述访问操作的信息和查找到的所述授权策略,对所述访问用户进行鉴权的步骤。

在一些实例中,所述装置800进一步包括:检测模块,当检测到与所述用户信息相匹配的所述授权策略的数量达到所述预设阈值时,则执行所述查找所述访问资源的信息对应的授权策略集合的步骤。

在一些实例中,所述装置800进一步包括:存储模块,将建立的所述授权策略索引数据存储在缓存区域中;读取模块,从所述缓存区域中读取所述授权策略索引数据;从所读取的所述授权策略索引数据中查找所述访问资源地址对应的所述授权策略标识集合。

在一些实例中,所述存储模块,将建立的所述授权策略索引数据存储在策略数据库中;所述读取模块,当从所述缓存区域中读取所述授权策略索引数据失败时,从所述策略数据库中读取当前存储的授权策略表的版本标识;当读取到的所述授权策略表的版本标识未发生变更时,则从所述策略数据库中读取当前存储的所述授权策略索引数据。

在一些实例中,所述建立模块,当确定读取到的所述授权策略表的版本标识发生变更时,则根据当前存储的所述授权策略表重新建立所述授权策略索引数据。

在一些实例中,所述访问资源的信息包括所述访问资源的标识;所述鉴权模块803包括:匹配单元,在所述授权策略中查找与所述访问用户标识和所述访问资源的标识相匹配的操作权限;鉴权单元,根据查找到的所述操作权限,对所述访问用户是否有权执行所述访问操作信息指示对应的访问操作进行鉴权。

图9示出了访问装置800所在的计算设备900的组成结构图。此计算设备900可以是服务器。如图9所示,该计算设备包括一个或者多个处理器(cpu)902、通信模块904、存储器906、用户接口910,以及用于互联这些组件的通信总线908。

处理器902可通过通信模块904接收和发送数据以实现网络通信和/或本地通信。

用户接口910包括一个或多个输出设备912,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口910也包括一个或多个输入设备914,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。

存储器906可以是高速随机存取存储器,诸如dram、sram、ddrram、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。

存储器906存储处理器902可执行的指令集,包括:

操作系统916,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;

应用918,包括用于视频播放的各种应用程序,这种应用程序能够实现上述各实例中的处理流程,比如可以包括图8所示的处理装置800中的部分或全部模块,各模块801-803中的至少一个模块可以存储有机器可执行指令,处理器902通过执行存储器906中各模块801-803中至少一个模块中的机器可执行指令,进而能够实现上述各模块801-803中的至少一个模块的功能。

需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。

各实施例中的硬件模块可以以硬件方式或硬件平台加软件的方式实现。上述软件包括机器可读指令,存储在非易失性存储介质中。因此,各实施例也可以体现为软件产品。

各例中,硬件可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如fpga或asic)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。

另外,本申请的每个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请,本申请还提供了一种非易失性存储介质,其中存储有数据处理程序,这种数据处理程序可用于执行本申请上述方法实例中的任何一种实例。

图8中的模块对应的机器可读指令可以使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质可以是插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器。安装在扩展板或者扩展单元上的cpu等可以根据指令执行部分和全部实际操作。

另外,在本申请各个实例中的装置及各模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上装置或模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

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

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