发明内容
本发明的目的在于提供一种对微服务进行访问的授权方法及系统,解决用户需要访问多个服务的时候需要重复构建多个权限数据模型而造成浪费计算机内部资源的技术问题。
第一方面,本发明提供一种对微服务进行访问的授权方法,所述方法包括:
客户端获取用户输入的访问请求信息;其中,所述访问请求信息中携带有以下信息:用户身份认证信息、用户请求访问的URL和服务授权码;
客户端根据所述访问请求信息生成微服务访问请求并向服务器发送所述微服务访问请求;其中,所述微服务访问请求携带有访问请求信息;
在客户端的识别标志位于白名单中的情况下,服务器将微服务架构中的所有服务的访问权限均分配给用户。
在一个实例中,在客户端的识别标志不位于白名单中的情况下,所述方法还包括:
服务器通过微服务访问请求中携带的用户身份认证信息验证用户身份的合法性;
在用户身份合法的情况下,服务器通过网关验证微服务访问请求中携带的用户请求访问的URL的有效性;
在用户请求访问的URL为有效的情况下,服务器将微服务框架中与所述服务授权码对应的服务的访问权限分配给用户。
在一个实例中,所述服务器通过网关验证微服务访问请求中携带的用户请求访问的URL的有效性的步骤,具体为:
服务器通过网关验证微服务访问请求中携带的用户请求访问的URL是否存在对应的URI服务实例,若存在对应的URI服务实例,判定用户请求访问的URL为有效;若不存在对应的URI服务实例,判定用户请求访问的URL为无效。
在一个实例中,所述客户端的识别标志为IP地址和/或MAC地址。
第二方面,本发明提供了一种对微服务进行访问的授权系统,所述系统包括客户端和服务器;
所述客户端包括:
信息获取模块,用于获取用户输入的访问请求信息;其中,所述访问请求信息中携带有以下信息:用户身份认证信息、用户请求访问的URL和服务授权码;
请求发送模块,用于根据所述访问请求信息生成微服务访问请求并向服务器发送所述微服务访问请求;其中,所述微服务访问请求携带有访问请求信息;
所述服务器包括:
第一授权模块,用于在客户端的识别标志位于白名单中的情况下,将微服务架构中的所有服务的访问权限均分配给用户。
在一个实例中,所述服务器还包括:
身份验证模块,用于在客户端的识别标志不位于白名单中的情况下,通过微服务访问请求中携带的用户身份认证信息验证用户身份的合法性;
网关验证模块,用于在用户身份合法的情况下,通过网关验证微服务访问请求中携带的用户请求访问的URL的有效性;
第二授权模块,用于在用户请求访问的URL为有效的情况下,将微服务框架中与所述服务授权码对应的服务的访问权限分配给用户。
在一个实例中,所述网关验证模块包括验证子模块,所述验证子模块用于通过网关验证微服务访问请求中携带的用户请求访问的URL是否存在对应的URI服务实例,并在存在对应的URI服务实例的情况下,判定用户请求访问的URL为有效;在不存在对应的URI服务实例的情况下,判定用户请求访问的URL为无效。
在一个实例中,所述客户端的识别标志为IP地址和/或MAC地址。
相较于现有技术,本发明提供的一种对微服务进行访问的授权方法及系统至少具有以下的有益效果:
一方面,通过设置白名单的方式,运行处于某一IP地址或者MAC地址的客户端具有直接访问所有的服务的权限,进一步方便了用户访问多项服务,节省了计算机内部资源。另一方面,利用服务器验证用户身份的合法性以及所访问的URL的有效性,并在用户通过验证后,根据用户的服务授权码分配对应服务的访问权限给用户,实现了用户在访问多个服务时能够集中分配访问权限,无需为每个服务都构建权限数据模型,方便了用户访问多项服务,节省了计算机内部资源。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。
图1为一个实施例中一种对微服务进行访问的授权方法的应用环境图。参照图1,该一种对微服务进行访问的授权方法应用于一种对微服务进行访问的授权系统。该一种对微服务进行访问的授权系统包括客户端100和服务器120。客户端100和服务器120通过网络连接。客户端100具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
下面,将通过几个具体的实施例对本发明实施例提供的一种对微服务进行访问的授权方法进行详细介绍和说明。
如图2所示,在一个实施例中,提供了一种对微服务进行访问的授权方法。本实施例主要以该方法应用于计算机设备来举例说明。
参照图2,该对微服务进行访问的授权方法具体包括如下步骤:
步骤S202,客户端100获取用户输入的访问请求信息;其中,所述访问请求信息中携带有以下信息:用户身份认证信息、用户请求访问的URL和服务授权码。
其中,客户端100可以通过连接于客户端100的外设设备获取用户的用户身份认证信息、用户请求访问的URL和服务授权码,外设设备包括键盘、手写板等。在一个示例中,用户通过与客户端100连接的键盘输入用户身份认证信息用于登录软件界面,并通过键盘输入服务授权码。在软件界面上显示有用户服务、商品服务、促销服务、订单服务、数据分析服务等五个控件,当用户点击了“用户服务”控件之后,软件会从其数据库自动获取对应于“用户服务”的URL作为该用户输入的用户请求访问的URL。
步骤S204,客户端100根据所述访问请求信息生成微服务访问请求并向服务器120发送所述微服务访问请求;其中,所述微服务访问请求携带有访问请求信息。
步骤S206,在客户端100的识别标志位于白名单中的情况下,服务器120将微服务架构中的所有服务的访问权限均分配给用户。
具体的,所述客户端100的识别标志为IP地址和/或MAC地址。
本实施例中,通过设置白名单的方式,运行处于某一IP地址或者MAC地址的客户端100具有直接访问所有的服务的权限,进一步方便了用户访问多项服务,节省了计算机内部资源。
如图3所示,在另一个示例中,该对微服务进行访问的授权方法具体包括如下步骤:
步骤S302,在客户端100的识别标志不位于白名单中的情况下,服务器120通过微服务访问请求中携带的用户身份认证信息验证用户身份的合法性。
可以理解的是,用户身份认证信息(finest-token)是软件平台或者服务商用于验证用户身份的合法性,可以访问软件平台有限资源和了解资源服务相关信息;而服务授权码(Auth-key)是针对软件平台上对应的服务(例如“用户服务”)所申请授权码,有了服务名授权码就能直接通过服务授权码访问与用户请求访问的URL对应的URI资源服务。
例如,我要在一个平台查看平台提供的技术支持服务信息,我首先需要一个账户信息能登录查阅。账户信息就是用户身份认证信息,但用户身份认证信息本身未向平台申请相应的资源服务,所以只具备登录平台功能,而无法调用资源服务。而服务授权码,为用户在平台上找到自己需要对应的资源服务,并在申请之后,经过了审批而获得的。在获取服务授权码之后,用户才有权限访问对应的服务。
步骤S304,在用户身份合法的情况下,服务器120通过网关验证微服务访问请求中携带的用户请求访问的URL的有效性。
具体的,服务器120通过网关验证微服务访问请求中携带的用户请求访问的URL是否存在对应的URI服务实例,若存在对应的URI服务实例,判定用户请求访问的URL为有效;若不存在对应的URI服务实例,判定用户请求访问的URL为无效。
需要说明的是,用户请求访问的URL就是指微服务框架中一个具体的服务对应的的一个链接请求(例如,上述实施例中当用户点击了“用户服务”控件之后,软件会从其数据库自动获取对应于“用户服务”的URL),其格式为http://www.baidu.com?userName=zhangsan&password=lisi。一般的说,URL是对应的URI服务的一个请求链接,服务实例是指该服务的applicationName当做instanceId,在服务分治的模式中,对应的服务instanceId为服务实例。并且把对应的URI通过可视化的方式注册成服务,即是有效资源服务。网关对URI验证,即是确认用户请求访问的URL是否是有效的资源(即实际的有效URI)。
步骤S306,在用户请求访问的URL为有效的情况下,服务器120将微服务框架中与所述服务授权码对应的服务的访问权限分配给用户。
本实施例中,利用服务器120验证用户身份的合法性以及所访问的URL的有效性,并在用户通过验证后,根据用户的服务授权码分配对应服务的访问权限给用户,实现了用户在访问多个服务时能够集中分配访问权限,无需为每个服务都构建权限数据模型,方便了用户访问多项服务,节省了计算机内部资源。
另一方面,本发明还提供了一种对微服务进行访问的授权系统的多个实施例。
如图4所示,在一个实施例中,一种对微服务进行访问的授权系统包括客户端100和服务器120;
所述客户端100包括:
信息获取模块111,用于获取用户输入的访问请求信息;其中,所述访问请求信息中携带有以下信息:用户身份认证信息、用户请求访问的URL和服务授权码;
请求发送模块112,用于根据所述访问请求信息生成微服务访问请求并向服务器120发送所述微服务访问请求;其中,所述微服务访问请求携带有访问请求信息;
所述服务器120包括:
第一授权模块121,用于在客户端100的识别标志位于白名单中的情况下,将微服务架构中的所有服务的访问权限均分配给用户;其中,所述客户端100的识别标志为IP地址和/或MAC地址。
如图4所示,在一个实例中,所述服务器120还包括:
身份验证模块122,用于在客户端100的识别标志不位于白名单中的情况下,通过微服务访问请求中携带的用户身份认证信息验证用户身份的合法性;
网关验证模块123,用于在用户身份合法的情况下,通过网关验证微服务访问请求中携带的用户请求访问的URL的有效性;
第二授权模块124,用于在用户请求访问的URL为有效的情况下,将微服务框架中与所述服务授权码对应的服务的访问权限分配给用户。
具体的,所述网关验证模块123包括验证子模块,所述验证子模块用于通过网关验证微服务访问请求中携带的用户请求访问的URL是否存在对应的URI服务实例,并在存在对应的URI服务实例的情况下,判定用户请求访问的URL为有效;在不存在对应的URI服务实例的情况下,判定用户请求访问的URL为无效。
可以理解的是,本发明的系统实施例与方法实施例基于相同的发明构思,能够实现上述方法实施例的所有有益效果,此处对于系统实施例不再赘述。
图5示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的客户端100(或服务器120)。如图5所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现一种对微服务进行访问的授权方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行一种对微服务进行访问的授权方法。本领域技术人员可以理解,图5中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本发明提供的一种对微服务进行访问的授权系统的各个模块可以实现为一种计算机程序的形式,计算机程序可在如图5所示的计算机设备上运行。计算机设备的存储器中可存储组成该对微服务进行访问的授权系统的各个程序模块,比如,图4所示的身份验证模块122、网关验证模块123和第二授权模块124。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的对微服务进行访问的授权方法中的步骤。
例如,图5所示的计算机设备可以通过如图4所示的对微服务进行访问的授权系统中的身份验证模块122执行通过微服务访问请求中携带的用户身份认证信息验证用户身份的合法性的步骤。通过网关验证模块123执行通过网关验证微服务访问请求中携带的用户请求访问的URL的有效性的步骤。通过第二授权模块124执行将微服务框架中与所述服务授权码对应的服务的访问权限分配给用户的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRA)、存储器总线(Rambus)直接RAM(RDRA)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。