具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
如前述分析,在传统的验证过程中,系统接收到用户的访问请求后,直接将访问请求发送至鉴权系统进行鉴权,然而传统的验证过程中只包含单一的鉴权系统,即所有的访问请求都只能使用一种鉴权系统进行鉴权,而实际使用过程中,为满足实际使用的需求,需要针对不同的访问请求使用不同的鉴权系统进行鉴权。因此,当验证过程中需要使用到一个以上的鉴权系统时,传统的验证过程就无法满足使用需求了。
基于此,本说明书实施例提出一种鉴权与业务服务方法、装置及设备,应用示意图可如图1所示,包括服务端10以及至少一个客户端20。
客户端20访问服务端10,从服务端10获取服务,例如,客户端20可以通过向服务端10发送访问请求,从而从服务端10获取服务。服务端10中设置有至少两个鉴权系统,鉴权系统对接收到的访问请求进行鉴权,以判定访问请求是否具有访问权限。
其中,客户端20可以包括需要访问服务端10的终端设备,包括但不限于计算机、平板电脑、手机等;也可以包括需要访问服务端10的应用程序,该应用程序可以搭载在终端设备上,例如应用程序可以是浏览器等。
客户端20与服务端10之间通过数据连接实现交互。
具体地,本说明书实施例提出的鉴权方法,其整体思路是,服务端10中的至少两个鉴权系统,各自作为微服务组件独立部署于微服务框架中,由于微服务架构是一种将软件应用程序设计为可独立部署的服务套件的特定方式,在微服务架构下的软件会被拆分成各种不同的服务来实现组件化,组件之间相互独立,因此,通过前述方案来部署的至少两个鉴权系统,能够让每个鉴权系统无需进行改动,完整地被封装在一个独立组件中,并分别独立地提供鉴权系统原有的完整服务,相互之间不产生干扰,这样的部署方式快捷简便,同时又保证了鉴权系统功能的完整性,使得鉴权系统能够独立运行鉴权服务。在进行验证时,接收来自客户端20的包含标识信息的访问请求;当确定访问请求未拥有访问权限时,按预设的鉴权系统确定策略根据标识信息,从至少两个鉴权系统中确定目标鉴权系统,鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系,使得访问请求能够准确地分配给鉴权系统,不同的访问请求之间相互不影响,避免处理过程中出现混乱;再将访问请求发送至目标鉴权系统,通过目标鉴权系统对访问请求进行鉴权,由于鉴权之前已经确定了目标鉴权系统,使得访问请求能够准确地被对应的目标鉴权系统进行鉴权,同时由于鉴权系统的独立运行,使得不同来源的访问请求能够独立地被鉴权,互不影响,既保证了鉴权的准确性,又提高了鉴权效率。在上述鉴权过程中,由于鉴权系统之间相互独立,访问请求能够被有效分配至对应的鉴权系统,独立鉴权,因此,鉴权过程中不同的访问请求的鉴权过程相互不干扰,从而让本说明书实施例提供的鉴权方法能够在兼容多个鉴权系统的同时保证鉴权的顺利进行。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
图2为本说明书实施例提供的一种鉴权方法的流程图。
如图2所示,本说明书实施例中鉴权方法包括以下步骤:
步骤S201,接收访问请求。
其中,访问请求为客户端访问服务端时发送的请求。
在实际应用中,访问请求可以是客户端根据用户对客户端的操作触发生成,也可以根据客户端预设业务逻辑自动触发生成,本申请实施例对生成访问请求的触发因素并不做具体限定,例如,用户在客户端上点击功能按钮,则根据该功能按钮所对应的业务功能生成访问请求。
步骤S203,当确定所述访问请求未拥有访问权限时,按预设的鉴权系统确定策略,根据所述访问请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统。
其中,至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中。
具体地,可以是一个完整的鉴权系统作为一个微服务组件被独立部署于微服务架构中,独立地提供鉴权服务,鉴权系统之间相互不产生影响,相互不干扰,这样的部署方式既能够直接使用鉴权系统,无需进行修改,完整的保留了鉴权系统的原有功能,又能够根据实际使用的需要在微服务架构中部署多个鉴权系统,具有很好拓展性,部署方便,操作简单。
需要说明的是,常用的鉴权方式可包括HTTP Basic Authentication,session-cookie,Token以及OAuth(开放授权)等,鉴权系统针对不同的访问请求可以采用不同的鉴权方式,例如,针对如PC客户端可以使用session-cookie的鉴权方式,针对移动客户端可以使用Token的鉴权方式等,本说明书实施例中的至少两个鉴权系统可以是针对来自不同种类客户端的访问请求进行鉴权,例如,当鉴权系统为两个时,一个鉴权系统针对PC客户端的访问,采用session-cookie的方式进行鉴权,另一个鉴权系统针对移动客户端的访问请求,采用Token的方式进行鉴权;也可以是,针对来自相同种类客户端不同的访问请求进行鉴权,例如,当鉴权系统为两个时,两个鉴权系统均针对PC客户端的访问请求,采用session-cookie的方式进行鉴权,此时,两个鉴权系统可以是分别针对获取不同服务的访问请求进行鉴权,或分别针对来自不同类别的PC客户端的访问请求进行鉴权。
还需要说明的是,本说明书实施例中,确定访问请求是否拥有访问权限可以通过对访问请求中的权限信息进行认证的方式进行,若权限信息通过认证则访问请求拥有访问权限,若权限信息未通过认证则访问请求未拥有访问权限。其中,权限信息包括目标鉴权系统在包含登录信息的访问请求鉴权通过时生成的权限信息,该包含登录信息的访问请求为访问请求的发送方发送访问请求之前发送的访问请求,客户端接收到目标鉴权系统生成的权限信息后进行存储,使得权限信息能够被设置于客户端后续生成的访问请求中,以用于确定后续生成的访问请求是否具有访问权限。
标识信息包括对目标鉴权系统进行标识的信息,例如,不同访问来源的访问请求对应于不同的鉴权系统时,可以是将能够标识访问请求来源的信息作为标识信息;又如,不同的服务种类对应于不同的鉴权系统时,将访问请求所对应的服务种类作为标识信息作为标识信息;还如,可以是将鉴权系统的识别信息作为标识信息。
在一种应用示例中,为了能够简单有效地设置标识信息,标识信息包括可以是统一资源定位符、统一资源标识符以及鉴权系统接口参数中的至少一种,比如,标识信息为统一资源定位符(Uniform Resource Locator,URL),当鉴权系统A用于对使用外部网络客户端进行鉴权和鉴权系统B用于对内部网络的客户端进行鉴权时,外部网络的客户端发送的访问请求中的URL信息表示其要访问的是鉴权系统A,内部网络的客户端发送的访问请求中的URL信息表示其要访问的是鉴权系统B。
进一步地,本说明书实施例中,鉴权系统确定策略中预先存储有标识信息与鉴权系统之间的对应关系,当接收到访问请求后,利用鉴权系统确定策略中的对应关系根据访问请求中的标识信息确定与访问请求对应的目标鉴权系统。
由于设置了鉴权系统确定策略,使得一旦获取标识信息,就能根据标识信息与鉴权系统之间的对应关系确定出对应的鉴权系统,从而保证了访问请求能够被对应的鉴权系统获取,避免了鉴权过程中出现不必要的混乱,保证了后续过程的准确性。
步骤S205,将所述访问请求发送至所述目标鉴权系统,以使得所述目标鉴权系统对所述访问请求进行鉴权。
本说明书实施例中,鉴权系统包括用于根据登录信息验证访问权限的系统,例如,鉴权系统可以是根据用户名和密码验证访问权限的系统,也可以是根据鉴权系统承认的能够识别用户合法身份的信息验证访问权限的系统。
在一种应用示例中,所述访问请求还包括登录信息;
所述目标鉴权系统对所述访问请求进行鉴权包括:
所述目标鉴权系统根据所述登录信息对所述访问请求进行鉴权。
具体地,当目标鉴权系统接收到的访问请求中包含有登录信息时,目标鉴权系统直接从访问请求中获取登录信息,根据登录信息判定访问请求是否具有访问权限。
需要说明的是,当目标鉴权系统接收到的访问请求中不包含有登录信息时,重新接收与访问请求对应的客户端发送的包含登录信息的访问请求,进而根据登录信息判定访问请求是否具有访问权限。
需要说明的是,当目标鉴权系统接收到的访问请求中不包含有登录信息时,本说明书实施例提供的鉴权方法还包括:向与访问请求对应的客户端发送登录信息获取请求;接收与访问请求对应的客户端发送的包含登录信息的访问请求。其中,登录信息获取请求可以是以登录页面的形式在客户端进行呈现,通过登录页面获取用户输入的登录信息。
还需要说明的是,至少两个鉴权系统可以使用一个或多个登录页面,例如,所有的鉴权系统均使用相同的登录页面,或每个登录系统分别对应地使用一个登录页面。
当每个登录系统分别对应地使用一个登录页面时,客户端接收到的登录页面为与该客户端对应的鉴权系统使用的登录页面。
在一种应用示例中,所述方法还包括:
接收第一权限信息,所述第一权限信息为所述目标鉴权系统在所述访问请求通过鉴权后,响应所述访问请求发送的权限信息;
向所述访问请求的发送方发送所述第一权限信息,以使所述发送方将所述第一权限信息设置于新的访问请求中。
其中,第一权限信息可以是用于对客户端后续生成的访问请求进行认证,例如,在本次鉴权结束后,客户端生成新的访问请求时,可以将第一权限信息设置于新的访问请求中,以便于基于第一权限信息确定新的访问请求的访问权限。
在一种应用示例中,为了保证与鉴权系统之间信息交互的高效性和准确性,避免发生混乱,在访问请求为http请求时,所述方法还包括:与所述目标鉴权系统建立会话;
所述接收第一权限信息包括:
基于所述会话接收第一权限信息,以使所述目标鉴权系统基于所述会话进行会话控制。
例如,当接收到的访问请求为http请求时,至少两个鉴权系对访问请求均使用相同的鉴权方式,如会话控制(session-cookie)的方式,此时,由于至少两个鉴权系统发送的第一权限信息均为session信息的形式,为避免产生混乱,在接收到http请求后,与http请求对应的目标鉴权系统建立会话,从而能够基于该会话独立地与目标鉴权系统进行通信,如基于该会话接收第一权限信息,进而使得不同的鉴权系统发送的第一权限信息能够保持独立,互不干扰。
比如,至少两个鉴权系统为鉴权系统C和鉴权系统D,由于当接收到的访问请求为http请求时,鉴权系统C和鉴权系统D对于http请求均采取session-cookie的鉴权方式,当根据http请求确定出的目标鉴权系统为鉴权系统C时,与鉴权系统C建立会话,基于建立好的会话将http请求发送至鉴权系统C,并在鉴权通过接收后,接收鉴权系统C响应访问请求发送的sessionID;当目标鉴权系统为鉴权系统D时,通信过程与使用鉴权系统C对访问请求进行鉴权相同,此处不再一一赘述。
这样的通信方式使得能够与不同鉴权系统独立地进行信息交互,避免了至少两个鉴权系统对访问请求进行鉴权的鉴权方式相同时导致的混乱,提高了通信的效率和准确性。
进一步地,向访问请求的发送方发送第一权限信息,可以将接收到的第一权限信息发送至生成访问请求的客户端,使得客户端能够在后续的访问过程中使用,例如,当第一权限信息为session信息的形式时,将session对应的sessionID信息发送至客户端,以使得客户端生成的新的访问请求中设置有包含sessionID的cookie。
鉴权系统独立地对访问请求进行鉴权,并对应地访问相关信息,相互无影响,使得使用客户端的用户不会感知不同鉴权系统的差异,提高用户的使用体验。
需要说明的是,本说明书实施例中提供的鉴权方法可通过拦截器的形式运行,该拦截器可以是设置在客户端也可以是设置在服务端。
以下以拦截器为执行主体,基于两个鉴权系统,对不具有访问权限的访问请求进行鉴权为例,对本说明书提供的鉴权方法进行说明。
图3a和图3b为本说明书实施例提供的鉴权方法的交互流程图。
如图3a所示,用户在客户端执行操作,例如,点击页面和输入用户名和密码,客户端生成包含用户名和密码的访问请求,并执行步骤S3.1将访问请求发送至拦截器,拦截器按鉴权系统确定策略根据访问请求中的标识信息,从两个鉴权系统中确定目标鉴权系统,与目标鉴权系统建立会话,基于建立的会话将访问请求分配至目标鉴权系统,目标鉴权系统根据接收到的访问请求进行鉴权,当访问请求的目标鉴权系统为第一鉴权系统时,基于拦截器与第一鉴权系统之间的会话,执行步骤S3.3将访问请求发送至第一鉴权系统,第一鉴权系统执行步骤S3.5校验访问请求中的用户名和密码,验证通过后生成session(比如sessionID),并基于拦截器与第一鉴权系统之间的会话,执行步骤S3.7将sessionID发送至拦截器以响应访问请求,拦截器执行步骤S3.9将接收到的sessionID发送给客户端,以便于客户端将sessionID对应地写入客户端的cookie中。
如图3b所示,用户在客户端执行操作后,客户端生成包含用户名和密码的访问请求,并执行步骤S4.1将访问请求发送至拦截器,当拦截器按鉴权系统确定策略根据访问请求中的标识信息确定访问请求的目标鉴权系统为第二鉴权系统时,基于拦截器与第二鉴权系统之间的会话,执行步骤S4.3将访问请求发送至第二鉴权系统,第二鉴权系统执行步骤S4.5校验访问请求中的用户名和密码,验证通过后生成session,并基于拦截器与第二鉴权系统之间的通信,执行步骤S4.7将sessionID发送至拦截器以响应访问请求,拦截器执行步骤S4.9将接收到的sessionID发送给客户端,以便于客户端将sessionID对应地写入客户端的cookie中,这样在鉴权通过后,客户端可以将包含sessionID的cookie设置于新的访问请求中发送至拦截器。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:本说明书实施例提出的鉴权方法,至少两个鉴权系统各自作为微服务组件独立部署于微服务架构,在根据确定访问请求未拥有访问权限时,按鉴权系统确定策略根据访问请求中的标识信息确定目标鉴权系统,再将访问请求发送至目标鉴权系统,使目标鉴权系统对访问请求进行鉴权,从而让本说明书实施例提供的鉴权方法在兼容多个鉴权系统的同时保证鉴权过程的顺利进行,避免出现不必要的混乱,并且配置简单,操作方便。
实施例2
图4为本说明书实施例提出的一种鉴权方法的流程图。
如图4所示,本说明书实施例中鉴权方法包括以下步骤:
步骤S501,接收访问请求。
其中,访问请求为客户端发送的请求。
步骤S503,判断所述访问请求中是否包含第二权限信息,若包含则执行步骤S505,若不包含则执行步骤S507。
其中,第二权限信息包括目标鉴权系统在包含登录信息的访问请求鉴权通过时生成的权限信息,包含登录信息的访问请求为访问请求的发送方在发送步骤S501中的访问请求之前发送的访问请求。
例如,步骤S501中的接收到的访问请求为本次访问请求,客户端在生成本次访问请求之前,目标鉴权系统对接收到的来自客户端的包含登录信息的访问请求进行验证,在验证通过后生成第二权限信息,然后该第二权限信息被返回至客户端,因此,在生成本次访问请求之间,客户端已经存储有第二权限信息,故客户端在生成的本次访问请求中设置第二权限信息,以使得目标鉴权系统能够根据第二权限信息确定本次访问请求是否具有访问权限,所以,步骤S503中可以利用接收到的访问请求中的第二权限信息确定访问请求是否具有访问权限。
以下,以第二权限信息为session信息的形式为例进行说明:若客户端在先发送的包含登录信息的访问请求在目标鉴权系统的鉴权通过后,客户端会接收到目标鉴权系统发生的sessionID,即客户端在进行本次访问前,已预先存储有sessionID,故生成的本次访问请求中可以包含设置有sessionID的cookie,从而使得步骤S301中接收到访问请求中包含cookie,因此,步骤S303可以是通过判断访问请求中是否包含cookie,来判定访问请求是否拥有访问权限,若不包含cookie则确定访问请求未拥有访问权限,若包含cookie则需要对访问请求是否拥有访问权限进行进一步的确定。
步骤S505,根据所述第二权限信息确定所述访问请求是否拥有访问权限,若未拥有访问权限则执行步骤S507。
具体地,对第二权限信息进行认证,若认证通过则确定访问请求具有访问权限,若认证未通过则确定访问请求不具有访问权限,即访问请求需要进行鉴权。
例如,对第二权限信息进行认证时,可以是按预设的鉴权系统确定策略,根据步骤S501中接收到的访问请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统,将访问请求发送至目标鉴权系统,以使目标鉴权系统对第二权限信息进行认证。进行认证时,目标鉴权系统从访问请求所包含的cookie中获取sessionID,根据sessionID查询对应的session,若能够查询到正确的session信息则认证通过,若无法查询到session或查询到错误的session则认证未通过。
步骤S507,根据所述访问请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统。
步骤S509,将所述访问请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述访问请求进行鉴权。
步骤S5011,接收第一权限信息。
其中,第一权限信息为所述目标鉴权系统在所述访问请求通过鉴权后,响应所述访问请求发送的权限信息。
步骤S5013,向所述访问请求的发送方发送所述第一权限信息,以使所述发送方将所述第一权限信息设置于新的访问请求中。
其中,所述第一权限信息用于确定所述新的访问请求是否拥有访问权限。
具体地,将第一权限信息发送给生成访问请求的客户端,以使客户端将第一权限信息设置于新的访问请求中。
实施例4
图5为本说明书实施例提供的一种业务服务方法的流程图。
如图5所示,本说明书实施例中的业务服务方法包括以下步骤:
步骤S601,接收业务服务请求。
步骤S603,当确定所述业务服务请求未拥有访问权限时,按预设的鉴权系统确定策略,根据业务所述服务请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统。
所述鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系,所述至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中。
步骤S605,将所述业务服务请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述业务服务请求进行鉴权。
步骤S607,当确定所述业务服务请求在所述目标鉴权系统中鉴权通过时,将所述业务服务请求发送至对应的业务服务系统,以使所述业务服务系统根据所述业务服务请求提供业务服务。
具体地,步骤S607中可以是通过接收到目标鉴权系统对业务服务请求鉴权通过时发送的第一权限信息来确定鉴权通过;也可以是在预定时间段内未接收到目标鉴权系统发送的鉴权失败信息来确定鉴权通过;还可以是根据其他预先约定好的方式来确定鉴权通过。
在一种应用示例中,当步骤S603中确定业务服务请求拥有访问权限时,将业务服务请求发送至对应的业务服务系统,以使业务服务系统根据业务服务请求提供业务服务。
还需要说明的是,本说明书实施例中,业务服务系统可以是作为微服务组件独立部署于微服务框架中;也可以是采用其他的部署方式进行部署,此时,业务服务系统可以是部署在微服务框架中,可以不部署在微服务框架中。
以下访问请求为http请求,第一权限信息为session信息的形式为例,对本说明书实施例提出的业务服务方法进行说明。
图6为利用本说明书实施例提供的一种业务服务方法提供业务服务的架构示意图,其中所述业务服务方法设置于拦截器中。
如图6所示,本说明书提供的业务服务方法中,用户在浏览器上执行操作,浏览器将与用户操作对应的业务服务请求发送到拦截器,当拦截器确定接收到的业务服务请求拥有访问权限时,将业务服务请求发送至对应的服务系统,当拦截器确定接收到的业务服务请求未拥有访问权限时,将业务服务请求发送至少两个鉴权系统进行鉴权。至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中。
图7为本说明书实施例提出的一种业务服务方法的流程图。
如图7所示,具体地,以浏览器生成http请求从服务器获取业务服务例,将设置在服务器的拦截器作为执行主体,本说明书实施例中的业务服务方法包括以下步骤:
步骤S701,拦截器接收到来自浏览器的业务服务请求。
具体地,浏览器需要访问业务服务系统时,先将生成的http请求发送至拦截器。
步骤S703,拦截器判断http请求中是否包含cookie,若包含则执行步骤S705,若不包含则执行步骤S707。
步骤S705,根据cookie确定http请求是否拥有访问权限,若未拥有访问权限则执行步骤S707,若拥有访问权限则执行步骤S7013。
具体地,拦截器根据http请求中的URL信息确定对cookie进行认证的目标鉴权系统,基于拦截器与目标鉴权系统之间建立的会话,将http请求发送至目标鉴权系统进行鉴权,根据目标鉴权系统对cookie的认证结果确定http请求是否拥有访问权限。
其中,两个鉴权系统为各种作为微服务组件独立部署于微服务框架中。
步骤S707,利用http请求中的URL信息,从两个鉴权系统中确定出目标鉴权系统。
具体地,针对需要鉴权的http请求,拦截器根据http请求中的URL信息确定目标鉴权系统。
需要说明的是,步骤S705和步骤S707可以是通过在一个拦截器设置不同处理模块进行处理,也可以是设置两个不同的拦截器分别进行处理。
两个鉴权系统分别针对来自外部系统的登录信息和来自外部系统的服务请求进行验证。
步骤S709,将http请求发送至目标鉴权系统,以使目标鉴权系统对http请求进行鉴权。
拦截器基于拦截器与目标鉴权系统之间建立的会话,将http请求发送至目标鉴权系统。
目标鉴权系统接收到来自拦截器的http请求后,若http请求中包含用户名和密码,目标鉴权系统直接根据接收到的http请求中的用户名和密码进行验证;若http请求中不包含用户名和密码时,拦截器从对应的浏览器重新获取包含用户名和密码的http请求。
进一步地,若验证通过,目标鉴权系统对应地生成session,其中,session信息存储在服务器中。
步骤S7011,接收目标鉴权系统发送的鉴权结果,若鉴权结果为鉴权通过则执行步骤S7013。
若鉴权通过,拦截器基于拦截器与目标鉴权系统之间建立的会话,接收目标鉴权系统响应http请求发送的sessionID,并将sessionID发送至浏览器。
步骤7013,将http请求发送至与对应的业务服务系统。
具体地,在http请求拥有访问权限时,拦截器将http请求发送至对应的业务服务系统,以使业务服务系统根据http请求执行后续业务逻辑。
实施例5
基于相同的发明构思,本说明书实施例还提供与鉴权方法对应的装置、电子设备以及非易失性计算机存储介质。
鉴于前述实施例中对方法已进行了详细说明,下面实施例中对方法对应的装置、电子设备以及非易失性计算机存储介质所涉及的相应内容将不再赘述。
图8为本说明书实施例提供的一种鉴权装置的结构示意图。
如图8所示,本说明书实施例提供的一种鉴权装置可以包括:
接收单元801,接收访问请求;
确定单元803,当确定所述访问请求未拥有访问权限时,按预设的鉴权系统确定策略,根据所述访问请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统,所述鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系,所述至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中;
发送单元805,将所述访问请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述访问请求进行鉴权。
可选地,所述标识信息包括统一资源定位符、统一资源标识符以及鉴权系统接口参数中的至少一种。
可选地,所述访问请求还包括登录信息,
所述目标鉴权系统对所述访问请求进行鉴权包括:
所述目标鉴权系统根据所述登录信息对所述访问请求进行鉴权。
可选地,所述装置还包括:接收单元,
所述接收单元接收第一权限信息,所述第一权限信息为所述目标鉴权系统在所述访问请求通过鉴权后,响应所述访问请求发送的权限信息;
所述发送单元向所述访问请求的发送方发送所述第一权限信息,以使所述发送方将所述第一权限信息设置于新的访问请求中。
可选地,当所述访问请求为http请求时,
所述装置还包括:建立单元
通过所述建立单元与所述目标鉴权系统建立会话;
所述接收第一权限信息包括:
基于所述会话接收第一权限信息,以使所述目标鉴权系统基于所述会话进行会话控制。
可选地,所述确定所述访问请求未拥有访问权限步骤包括:
所述确定单元判断所述访问请求中是否包含第二权限信息,所述第二权限信息包括所述目标鉴权系统在包含登录信息的访问请求鉴权通过时生成的权限信息,所述包含登录信息的访问请求为所述访问请求的发送方发送所述访问请求之前发送的访问请求;
若所述访问请求未包含所述第二权限信息,则所述确定单元根据所述第二权限信息确定所述访问请求未拥有访问权限。
可选地,若所述访问请求包含所述第二权限信息,则所述确定单元确定所述访问请求是否拥有访问权限。
图9为本说明书实施例提供的一种鉴权系统的结构示意图。
如图9所示,本说明书实施例提供的一种鉴权系统可以包括:鉴权单元901和拦截单元903;
所述鉴权单元901中基于微服务框架部署有至少两个鉴权系统,所述至少两个鉴权系统各自作为微服务组件独立部署于所述微服务框架中;
所述拦截单元903接收访问请求;
当所述拦截单元903确定所述访问请求未拥有访问权限时,按预设的鉴权系统确定策略,根据所述访问请求中的标识信息,从所述至少两个鉴权系统中确定目标鉴权系统,所述鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系;
所述拦截单元903将所述访问请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述访问请求进行鉴权。
基于同一发明构思,本说明书实施例还提供一种用于鉴权的电子设备,包括至少一个处理器及存储器,所述存储器存储有程序,并且被配置成由至少一个处理器执行以下步骤:
接收访问请求;
当确定所述访问请求未拥有访问权限时,按预设的鉴权系统确定策略,根据所述访问请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统,所述鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系,所述至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中;
将所述访问请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述访问请求进行鉴权。
其中,处理器的其他功能还可以参见上述实施例中记载的内容,这里不再一一赘述。
基于同一发明构思,本说明书实施例还提供一种用于鉴权的非易失性计算机存储介质,包括与电子设备结合使用的程序,程序可被处理器执行以完成以下步骤:
接收访问请求;
当确定所述访问请求未拥有访问权限时,按预设的鉴权系统确定策略,根据所述访问请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统,所述鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系,所述至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中;
将所述访问请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述访问请求进行鉴权。
实施例6
基于相同的发明构思,本说明书实施例还提供与业务服务方法对应的装置、电子设备以及非易失性计算机存储介质。
鉴于前述实施例中对方法已进行了详细说明,下面实施例中对方法对应的装置、电子设备以及非易失性计算机存储介质所涉及的相应内容将不再赘述。
图10为本说明书实施例提供的一种业务服务装置的结构示意图。
如图10所示,本说明书实施例提供的一种业务服务装置可以包括:
接收单元1001,接收业务服务请求;
确定单元1003,当确定所述业务服务请求未拥有访问权限时,按预设的鉴权系统确定策略,根据所述业务服务请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统,所述鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系,所述至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中;
发送单元1005,将所述业务服务请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述业务服务请求进行鉴权;
当确定所述业务服务请求在所述目标鉴权系统中鉴权通过时,所述发送单元1005将所述业务服务请求发送至对应的业务服务系统,以使所述业务服务系统根据所述业务服务请求提供业务服务。
可选地,当确定所述业务服务请求拥有访问权限时,所述发送单元将所述业务服务请求发送至对应的业务服务系统,以使所述业务服务系统根据所述业务服务请求提供业务服务。
基于同一发明构思,本说明书实施例还提供一种用于提供服务的电子设备,包括至少一个处理器及存储器,所述存储器存储有程序,并且被配置成由至少一个处理器执行以下步骤:
接收业务服务请求;
当确定所述业务服务请求未拥有访问权限时,按预设的鉴权系统确定策略,根据所述业务服务请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统,所述鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系,所述至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中;
将所述业务服务请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述业务服务请求进行鉴权;
当确定所述业务服务请求在所述目标鉴权系统中鉴权通过时,将所述业务服务请求发送至对应的业务服务系统,以使所述业务服务系统根据所述业务服务请求提供业务服务。
其中,处理器的其他功能还可以参见上述实施例中记载的内容,这里不再一一赘述。
基于同一发明构思,本说明书实施例还提供一种用于业务服务的非易失性计算机存储介质,包括与电子设备结合使用的程序,程序可被处理器执行以完成以下步骤:
接收业务服务请求;
当确定所述业务服务请求未拥有访问权限时,按预设的鉴权系统确定策略,根据所述业务服务请求中的标识信息,从至少两个鉴权系统中确定目标鉴权系统,所述鉴权系统确定策略包括标识信息与鉴权系统之间的对应关系,所述至少两个鉴权系统各自作为微服务组件独立部署于微服务框架中;
将所述业务服务请求发送至所述目标鉴权系统,以使所述目标鉴权系统对所述业务服务请求进行鉴权;
当确定所述业务服务请求在所述目标鉴权系统中鉴权通过时,将所述业务服务请求发送至对应的业务服务系统,以使所述业务服务系统根据所述业务服务请求提供业务服务。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书实施例提供的装置、设备、非易失性计算机存储介质与方法是对应的,因此,装置、设备、非易失性计算机存储介质也具有与对应方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述对应装置、设备、非易失性计算机存储介质的有益技术效果。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。