鉴权实现方法和装置与流程

文档序号:11253975阅读:521来源:国知局
鉴权实现方法和装置与流程

本申请涉及通信技术领域,尤其涉及一种鉴权实现方法和装置。



背景技术:

通常,系统可以为使用方提供业务接口,使用方通过调用业务接口,可以实现相应的业务功能。为了保证系统数据的安全性,系统通常会对使用方发送的访问请求进行鉴权,以验证该使用方是否拥有访问本系统的权限。鉴权机制的种类繁多,系统针对不同的业务接口、不同的调用方式都可能采用不同的鉴权机制,例如:针对基于rpc(remoteprocedurecallprotocol,远程过程调用协议)等的远程调用,系统可以采用密钥加解密校验、数据防篡改校验等鉴权机制;针对web调用,系统可以采用会话完整性校验、token令牌校验等鉴权机制。

相关技术中,可以针对每一个类名配置一套鉴权机制,每一套鉴权机制中可以包括有一种或多种鉴权机制。对于接收到的访问请求,系统可以根据该访问请求的类名确定其对应的一套鉴权机制,并基于这套鉴权机制对该访问请求进行鉴权。但采用这种方式,极易出现类名过多的问题,不便于系统的维护和扩展。



技术实现要素:

有鉴于此,本申请提供一种鉴权实现方法和装置,以解决相关技术中类名过多的问题。

具体地,本申请是通过如下技术方案实现的:

第一方面,本申请提供一种鉴权实现方法,所述方法包括:

在接收到访问请求后,获取所述访问请求中携带的标识符;

查找所述标识符对应的鉴权机制,并基于查找到的鉴权机制对所述访问请求进行鉴权;

在所述访问请求通过鉴权后,基于所述访问请求执行对应的业务功能。

第二方面,本申请提供一种鉴权实现装置,所述装置包括:

获取单元,用于在接收到访问请求后,获取所述访问请求中携带的标识符;

鉴权单元,用于查找所述标识符对应的鉴权机制,并基于查找到的鉴权机制对所述访问请求进行鉴权;

执行单元,用于在所述访问请求通过鉴权后,基于所述访问请求执行对应的业务功能。

分析上述技术方案可知,由于系统在接收到访问请求时,可以根据该访问请求中携带的标识符查找对应的鉴权机制,而无需利用该访问请求中携带的类名查找对应的鉴权机制,即类名与鉴权机制之间可以不再有对应关系,因此如果有一个或多个使用方需要采用不同的调用方式调用系统中的同一个业务接口,则针对每一种调用方式配置的类名可以是相同的,而仅需为对应不同鉴权机制的访问请求配置不同的标识符即可,这样可以显著减少类名的数量,从而为系统的维护和扩展提供便利。

附图说明

图1是本申请一示例性实施例示出的一种鉴权实现方法的流程图;

图2是本申请一示例性实施例示出的一种鉴权实现装置所在设备的硬件结构图;

图3是本申请一示例性实施例示出的一种鉴权实现装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

通常,使用方发送给系统的访问请求中携带有类名。类名可以用于指定使用方需要调用系统业务接口,系统在根据访问请求中携带的类名确定对应的业务接口后,可以调用该业务接口,以基于该访问请求执行对应的业务功能。

相关技术中,可以针对每一个类名配置一套鉴权机制,每一套鉴权机制中可以包括有一种或多种鉴权机制。系统在接收到来自使用方的访问请求时,可以根据该访问请求中携带的类名确定对应的一套鉴权机制和业务接口。系统可以基于这套鉴权机制对该访问请求进行鉴权。如果该访问请求通过鉴权,则可以认为该使用方拥有访问本系统的权限,因此系统可以调用确定的业务接口,以基于该访问请求执行对应的业务功能;如果该访问请求未通过鉴权,则可以认为该使用方未拥有访问本系统的权限,因此系统可以将该访问请求丢弃。

在上述情况下,如果有一个或多个使用方需要采用不同的调用方式调用系统中的同一个业务接口,则针对每一种调用方式都需要配置一个类名,从而使系统可以采用不同的鉴权机制对不同的调用方式下的访问请求进行鉴权,因此极易出现类名过多的问题,不便于系统的维护和扩展。

本申请提供一种鉴权实现方法和装置,以解决现有技术中的类名过多问题。请参考图1,为本申请一示例性实施例示出的一种鉴权实现方法的流程图。该鉴权实现方法可以应用于为使用方提供业务接口的系统中,所述系统的物理载体可以是各种网络设备。该鉴权实现方法可以包括以下步骤:

步骤101:在接收到访问请求后,获取所述访问请求中携带的标识符。

步骤102:查找所述标识符对应的鉴权机制,并基于查找到的鉴权机制对所述访问请求进行鉴权。

步骤103:在所述访问请求通过鉴权后,基于所述访问请求执行对应的业务功能。

在本实施例中,系统在接收到来自使用方的访问请求时,可以先获取该访问请求中携带的标识符。标识符可以用于指定系统对访问请求进行鉴权时所采用的鉴权机制,即系统在获取到该访问请求中携带的标识符后,可以查找所述标识符所对应的鉴权机制,并基于查找到的鉴权机制对该访问请求进行鉴权。其中,所述鉴权机制可以包括各种常用的鉴权机制,如密钥加解密校验、token令牌校验等,也可以包括用户或开发人员自行开发的鉴权机制,本申请不作特殊限制。

具体地,系统可以根据获取到的标识符,在本地保存的标识符与鉴权机制的映射关系中查找所述标识符对应的鉴权机制,并基于查找到的鉴权机制对所述访问请求进行鉴权。

在实际应用中,将标识符与鉴权机制的映射关系保存在系统中的方式可以有多种。比如较易想到的是,可以将标识符与鉴权机制的映射关系写入映射关系表中,并将该映射关系表保存在系统中,系统可以根据获取到的标识符查找该映射关系表,以查找对对应的访问请求进行鉴权所采用的鉴权机制。此外,还可以将标识符与鉴权机制的映射关系写入xml(extensiblemarkuplanguage,可扩展标记语言)配置文件或properties配置文件等中,并将该配置文件保存在系统中,系统在获取到标识符后,可以解析该配置文件,以查找所述标识符对应的鉴权机制,并根据查找到的鉴权机制对对应的访问请求进行鉴权。再者,也可以将标识符与鉴权机制的映射关系保存至数据库中,系统可以通过sql(structuredquerylanguage,结构化查询语言)语句在该数据库中查找获取到的标识符对应的鉴权机制,并根据查找到的鉴权机制对对应的访问请求进行鉴权。

通常,访问请求中携带的标识符以及所述标识符与鉴权机制的映射关系可以由用户自行配置。但在另一个例子中,访问请求中携带的标识符以及所述标识符与鉴权机制的映射关系也可以由开发人员预先配置,以作为本系统的默认配置,用户无法对这类标识符和映射关系进行修改。将由开发人员设定的映射关系称为约定映射关系,由用户配置的映射关系称为配置映射关系,系统在查找接收到的访问请求中携带的标识符对应的鉴权机制时,可以先在标识符与鉴权机制的约定映射关系中查找所述标识符对应的鉴权机制,如果未在所述约定映射关系中查找到所述标识符对应的鉴权机制,则系统可以再在标识符与鉴权机制的配置映射关系中查找所述标识符对应的鉴权机制。

用户或开发人员在进行标识符的配置时,可以将标识符配置在访问请求的预留字段中,也可以在访问请求中新增一个或多个字段,并将标识符配置在这些字段中。

需要说明的是,标识符与鉴权机制的映射关系可以是一一对应的,即一个标识符对应一种鉴权机制,系统可以针对接收到的访问请求中携带的每一个标识符,查找到对应的一种鉴权机制。但为了简化系统的鉴权机制查找过程,提高系统的查找效率,也可以将标识符与鉴权机制的映射关系配置为一个标识符对应多种鉴权机制,这样系统即可根据接收到的访问请求中携带的一个标识符,查找到对应的多种鉴权机制。

举例来说,假设在标识符与鉴权机制的映射关系中,标识符a与鉴权机制a对应,标识符b与鉴权机制b对应,标识符c与鉴权机制c对应,则系统在接收到携带有标识符a和标识符b的第一访问请求时,可以通过两次查找,查找到对应的鉴权机制为鉴权机制a和鉴权机制b;而在接收到携带有标识符a、标识符b和标识符c的第二访问请求时,则可以通过三次查找,查找到对应的鉴权机制为鉴权机制a、鉴权机制b和鉴权机制c。假设在标识符与鉴权机制的映射关系中,标识符1与鉴权机制a和鉴权机制b对应,标识符2与鉴权机制a、鉴权机制b和鉴权机制c对应,则系统在接收到携带有标识符a和标识符b的第一访问请求或携带有标识符a、标识符b和标识符c的第二访问请求时,都可以仅通过一次查找,查找到对应的鉴权机制,减少了系统查找鉴权机制的次数,提高了系统的查找效率。

在本实施例中,系统在根据接收到的访问请求中携带的标识符,查找到对应的鉴权机制后,可以基于查找到的鉴权机制对该访问进行鉴权。为了尽可能地减少对所述访问请求进行的鉴权次数,提高的鉴权效率,系统可以采用责任链处理机制对所述访问请求进行鉴权。

具体地,用户可以配置各种鉴权机制之间的执行次序,例如:将鉴权机制a、鉴权机制b和鉴权机制c的执行次序依次配置为第一位、第二位和第三位,即鉴权机制a在鉴权机制b之前执行,鉴权机制b在鉴权机制c之前执行等。系统在根据接收到的访问请求中携带的标识符,查找到对应的鉴权机制后,可以按照用户配置的各种鉴权机制之间的执行次序,从查找到的鉴权机制中,将执行次序排列在第一位的鉴权机制选取为当前鉴权机制。系统在选取出当前鉴权机制后,可以基于所述当前鉴权机制对所述访问请求进行鉴权,并在本次鉴权通过时,继续选取执行次序排列在第二位的鉴权机制作为当前鉴权机制,以继续对所述访问请求进行鉴权;而在本次鉴权未通过时,则可以确定所述访问请求未通过鉴权,系统可以将该访问请求丢弃。

除此之外,也可以将系统查找到与接收到的访问请求对应的鉴权机制的先后顺序,作为系统对该访问请求进行鉴权时鉴权机制的执行次序。举例来说,假设系统在接收到某访问请求中,先后依次查找到对应的鉴权机制为鉴权机制d、鉴权机制e和鉴权机制f,则系统在对该访问请求进行鉴权时,可以先选取鉴权机制d作为当前鉴权机制对访问请求进行鉴权,并在本次鉴权通过后,继续选取鉴权机制e作为下一次鉴权的当前鉴权机制对该访问请求进行;以此类推。当然,如果系统基于鉴权机制d对该访问请求进行的鉴权未通过,则系统无需再对该访问请求进行后续鉴权,而可以将该访问请求丢弃,以减少系统对该访问请求进行的鉴权次数,提高系统的鉴权效率。

与相关技术类似的是,系统在确定接收到的访问请求通过鉴权后,可以根据该访问请求中携带的类名,调用对应的业务接口,以基于该访问请求执行对应的业务功能。

在本申请技术方案中,由于系统在接收到访问请求时,可以根据该访问请求中携带的标识符查找对应的鉴权机制,而无需利用该访问请求中携带的类名查找对应的鉴权机制,即类名与鉴权机制之间可以不再有对应关系,因此如果有一个或多个使用方需要采用不同的调用方式调用系统中的同一个业务接口,则针对每一种调用方式配置的类名可以是相同的,而仅需为对应不同鉴权机制的访问请求配置不同的标识符即可,这样可以显著减少类名的数量,从而为系统的维护和扩展提供便利。

与前述鉴权实现方法的实施例相对应,本申请还提供了鉴权实现装置的实施例。

本申请鉴权实现装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在网络设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请鉴权实现装置所在网络设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的网络设备通常根据该鉴权实现的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图3,为本申请一示例性实施例示出的一种鉴权实现装置的框图。该鉴权实现装置300可以应用于图2所示的网络设备中,包括:

获取单元301,用于在接收到访问请求后,获取所述访问请求中携带的标识符;

鉴权单元302,用于查找所述标识符对应的鉴权机制,并基于查找到的鉴权机制对所述访问请求进行鉴权;

执行单元303,用于在所述访问请求通过鉴权后,基于所述访问请求执行对应的业务功能。

在一个可选的实施例中,所述鉴权单元302可以包括:

查找子单元3021,用于根据所述访问请求中携带的标识符,在本地保存的标识符与鉴权机制的映射关系中查找所述标识符对应的鉴权机制。

在另一个可选的实施例中,所述查找子单元3021可以包括:

约定查找子模块3121,用于在标识符与鉴权机制的约定映射关系中查找所述标识符对应的鉴权机制;其中,所述约定映射关系不可被用户修改;

配置查找子模块3122,用于当在所述约定映射关系中未查找到所述标识符对应的鉴权机制时,在标识符与鉴权机制的配置映射关系中查找所述标识符对应的鉴权机制。

在另一个可选的实施例中,所述查找子单元3021具体可以用于:

在预设的配置文件中查找所述标识符对应的鉴权机制;或者,

在预设的数据库中查找所述标识符对应的鉴权机制。

在另一个可选的实施例中,所述鉴权单元302可以包括:

选取子单元3022,用于按照各种鉴权机制之间的执行次序,从查找到的鉴权机制中选取一种鉴权机制作为当前鉴权机制;

鉴权子单元3023,用于基于所述当前鉴权机制对所述访问请求进行鉴权;

所述选取子单元3022还用于当本次鉴权通过时,继续选取一种鉴权机制作为当前鉴权机制;

丢弃子单元3024,用于当本次鉴权未通过时,确定所述访问请求未通过鉴权,并丢弃所述访问请求。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

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

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