CN110198301B - 一种服务数据获取方法、装置及设备 - Google Patents

一种服务数据获取方法、装置及设备 Download PDF

Info

Publication number
CN110198301B
CN110198301B CN201910233119.6A CN201910233119A CN110198301B CN 110198301 B CN110198301 B CN 110198301B CN 201910233119 A CN201910233119 A CN 201910233119A CN 110198301 B CN110198301 B CN 110198301B
Authority
CN
China
Prior art keywords
token data
user type
token
information
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910233119.6A
Other languages
English (en)
Other versions
CN110198301A (zh
Inventor
梁光磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910233119.6A priority Critical patent/CN110198301B/zh
Publication of CN110198301A publication Critical patent/CN110198301A/zh
Application granted granted Critical
Publication of CN110198301B publication Critical patent/CN110198301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos

Abstract

本发明公开了一种服务数据获取方法、装置及设备,所述方法包括:在检测到管理平台上应用程序的操作服务请求时,获取所述管理平台的用户登录信息;确定出所述用户登录信息所属的用户类型;根据本地存储的令牌数据存储文件匹配得到所述用户类型对应的第一令牌数据;发送所述操作服务请求,以获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据。本发明根据本地存储的令牌数据存储文件,能够高效地匹配出当前用户类型对应的第一令牌数据,快速地实现对管理平台上应用程序的操作处理,提升用户的使用体验。

Description

一种服务数据获取方法、装置及设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种服务数据获取方法、装置及设备。
背景技术
目前,越来越多的企业借助互联网技术和大数据技术进行业务管理,以实现管理的安全性和高效性。比如,采用统一的管理平台为不同用户配置不同的权限操作,从而使得不同类型的用户对管理平台上的应用程序具有不同的权限,实现异构网络数据服务中的权限信息管理。其中,所述异构网络数据服务为不同类型语言开发的数据服务程序,以不同的形式部署在不同网络环境下。
在实际应用中,用户通过登录管理平台,使得前端获取到该用户相关的权限信息;进一步地,在用户对某应用程序具有数据请求的需要时,基于用户的操作服务请求以及该用户对应的权限信息从而得到对所述应用程序进行处理的目标信息。其中,在跨机房服务部署的场景下,若存在网络的物理隔离的情况,比如管理平台服务端和应用程序服务端出现网络隔离,则会导致当前的权限管理方案失效,不能获取当前登录用户对应的权限信息,从而不能实现对应用程序的管理操作。
因此,需要提供一种能够避免网络隔离场景限制,对管理平台上的应用程序进行有效操作的技术方案。
发明内容
为了解决现有技术中的问题,本发明提供了一种服务数据获取方法、装置及设备,具体地:
一方面提供了一种服务数据获取方法,所述方法包括:
在检测到管理平台上应用程序的操作服务请求时,获取所述管理平台的用户登录信息;
确定出所述用户登录信息所属的用户类型;
根据本地存储的令牌数据存储文件匹配得到所述用户类型对应的第一令牌数据;所述令牌数据存储文件包括每个用户类型以及所述用户类型相应的令牌数据之间的映射关系;其中,所述令牌数据根据所述用户类型对应的应用程序的操作权限信息而生成;
发送所述操作服务请求,以获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据。
另一方面提供了一种服务数据获取装置,所述装置包括:
登录信息获取模块,用于在检测到管理平台上应用程序的操作服务请求时,获取所述管理平台的用户登录信息;
用户类型确定模块,用于确定出所述用户登录信息所属的用户类型;
第一令牌数据得到模块,用于根据本地存储的令牌数据存储文件匹配得到所述用户类型对应的第一令牌数据;所述令牌数据存储文件包括每个用户类型以及所述用户类型相应的令牌数据之间的映射关系;其中,所述令牌数据根据所述用户类型对应的应用程序的操作权限信息而生成;
目标服务数据得到模块,用于发送所述操作服务请求,以获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据。
本发明提供的一种服务数据获取方法、装置及设备,具有的有益效果为:
本发明根据本地存储的令牌数据存储文件,能够高效地匹配出当前用户类型对应的第一令牌数据;在发送所述操作服务请求后,获取到由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据,快速地实现对管理平台上应用程序的操作处理,提升用户的操作体验。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
图1是本说明书实施例提供的实施环境的示意图;
图2是本说明书实施例提供的一种服务数据获取方法流程图;
图3是本说明书实施例提供的用户类型与操作权限信息的关联示意图;
图4是本说明书实施例提供的根据所述操作权限信息、标准信息以及签名密钥生成令牌数据的步骤流程图;
图5是本说明书实施例提供的生成jwt数据的流程示意图;
图6是本说明书实施例提供的应用场景示意图;
图7是本说明书实施例提供的一种服务数据获取装置组成图;
图8是本说明书实施例提供的一种服务数据获取设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在多网络环境下进行异构服务权限管理的技术方案,一般是需要将各个应用程序的网络环境之间建立联通;这使得在网络隔离的场景下,并不能有效地实现权限管理;本实施例提供的服务数据获取的技术方案,能够高效地获取管理平台上应用程序的操作权限信息,并在网络隔离的场景下也能够实现异构服务权限的管理。
如图1所示,其示出了本说明书实施例提供的实施环境的示意图。该实施环境包括:服务器和与该服务器进行信息通信的终端01。
终端01可以为手机、平板电脑、膝上型便携获取机、PAD或台式获取机等等。终端01中可以配置有管理平台系统,进一步地所述管理平台系统上可以挂载有多个应用程序,所述应用程序可以是任何具有生成数据请求信息并获取对应的服务数据的应用程序;例如是浏览器、阅读客户端、购物客户端等等。服务器可以是一台服务器,也可以是由若干台服务器组成的服务器集群,比如管理平台服务端02和应用程序服务端03组成的集群。服务器通过网络与终端01建立通信连接。
具体地,本说明书实施例提供了一种服务数据获取方法,如图2所示,所述方法包括:
S202.在检测到管理平台上应用程序的操作服务请求时,获取所述管理平台的用户登录信息;
S204.确定出所述用户登录信息所属的用户类型;
具体地,当前用户在终端上首先进行管理平台的登录,在登录所述管理平台进行某个应用程序(或是客户端)的操作时,所述终端能够获取到当前用户的用户登录信息。进一步地,可以是根据之前存储在本地的用户登录信息与用户类型的存储表,匹配得到当前登录信息对应的用户类型。
其中,所述管理平台是基于开发人员对前端系统的配置而得到,能够实现多个应用程序的挂载。其中,对管理平台上的应用程序进行操作的用户可以属于不同的用户类型;每个用户类型均具有相关联的操作权限信息;其中,不同的用户类型一般具有不同的操作权限信息,也可以具有相同的操作权限信息;该权限信息可以根据需要进行配置,并存储在管理平台服务端。
需要说明的是,所述用户类型比如是应用管理员或普通用户;所述操作权限信息可以理解为应用程序的页面权限集合、菜单权限集合、接口权限集合中的任意组合而得的操作权限信息等。
对于页面权限来说,应用管理员或普通用户所能看到的页面功能是不一样的;比如一个按钮对于管理员来说是能看到的,而普通用户却可能是看不到的。对于接口权限来说,应用管理员对应的接口权限集合可以是包含一个应用程序的所有配置接口;而普通用户的对应的权限集合可以是仅包含一个应用程序中部分模块的接口或者函数的接口。本实施例通过这种方式能够把每个应用程序的权限管理起来,从而实现不同用户类型的权限管理。
如图3所示,一个用户类型可以包括一个或多个用户,一个用户类型具有相关联的权限信息。其中的页面权限集合可以包括一个或多个页面权限,其中的菜单权限集合可以包括一个或多个菜单权限,其中的接口权限集合可以包括一个或多个接口权限。
S206.根据本地存储的令牌数据存储文件匹配得到所述用户类型对应的第一令牌数据;所述令牌数据存储文件包括每个用户类型以及所述用户类型相应的令牌数据之间的映射关系;其中,所述令牌数据根据所述用户类型对应的应用程序的操作权限信息而生成;
其中,本地存储有令牌数据存储文件,进而能够直接利用本地的令牌数据存储文件进行用户类型的匹配,从而得到与所述用户类型对应的第一令牌数据。本实施例中不需要基于应用程序服务端与管理平台服务端的网络连接,从管理平台服务端去调取所述令牌数据存储文件,进而提升了得到第一令牌数据的效率。
需要说明的是,所述令牌数据存储文件中的第一令牌数据的生成过程,可以是在获取到用户登录信息时进行生成;具体是在用户进行管理平台的登录时,若判断出所述用户登录信息为合法用户信息时,则应用程序服务端根据已配置的与所述用户登录信息相关联的权限信息生成所述第一令牌数据。进一步地,所述应用程序服务端将当前用户对应的第一令牌数据返回至终端并存储起来;比如是以key-value的形式存储在终端的存储器(如localstorage,indexDB等)中。
S208.发送所述操作服务请求,以获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据;
具体地,终端将所述操作服务请求发送给应用程序服务端;其中,所述应用程序服务端中具有与所述操作服务请求对应的初始服务数据,所述应用程序服务端中具有与所述第一令牌数据对应的目标操作权限信息。
进一步地,所述应用程序服务端在接收到所述操作服务请求后,确定出所述第一令牌数据对应的目标操作权限信息;通过综合处理所述初始服务数据以及目标操作权限信息,得到能够对所述应用程序进行操作的目标服务数据;所述应用程序服务端将所述目标服务数据返回至终端,终端根据所述目标服务数据渲染出对应的页面。
需要说明的是,所述目标操作权限信息也就是当前用户能够操作的应用程序的权限信息。其中,一个用户可以对管理平台上的多个应用程序均具有操作的权限,则该情况下所述目标操作权限信息对应的是多个应用程序的权限信息的集合。
其中,所述目标操作权限信息包括接口列表,所述接口列表为所述用户能够操作的所有应用程序的接口集合;则通过综合所述初始服务数据以及所述目标操作权限信息确定出当前用户要访问的所述数据接口是否在所述接口列表中;所述数据接口在所述接口列表中,则能够得到所述目标服务数据,根据所述目标服务数据进行所述应用程序的页面渲染;所述数据接口不在所述接口列表中,则得到无权限操作的提示信息。
需要说明的是,本实施例中的每个应用程序也可以对应有一个用户类型列表:比如应用程序1可以对应的用户类型为云管理员、垂直产品开发、产品人员、售中人员、交付人员等;应用程序2可以对应的用户类型为架构师、售中人员、商务人员等。其中,本实施例中的用户类型以及所述用户类型对应的操作权限信息可以是在进行管理平台配置工作时,研发人员进行预先配置并存储在对应的管理平台服务端的。
本实施例中,根据本地存储的令牌数据存储文件,能够高效地匹配出当前用户类型对应的第一令牌数据;在发送所述操作服务请求后,获取到由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据,快速地实现对管理平台上应用程序的操作处理,提升用户的使用体验;并且该实施例下的管理平台能够实现应用程序的集成管理。
一种具体的实施方式中,所述方法还可以包括:S212构建令牌数据存储文件;
其中,步骤S212构建令牌数据存储文件,可以包括:
S402.生成每个用户类型对应的令牌数据;
S404.根据用户类型以及所述用户类型对应的令牌数据得到所述令牌数据存储文件。
具体地,所述令牌数据存储文件中具有每个用户类型对应的令牌数据;从而使得所述用户在属于操作所述管理平台上应用程序的合格用户时,都能够根据所述令牌数据存储文件匹配得到对应的令牌数据。
其中,所述令牌数据存储文件还可以理解为在管理平台服务端构建的;具体是在用户登录管理平台时,所述应用程序服务端将所述令牌数据存储文件自动地发送至前端并存储在终端,以用于为令牌数据的匹配做准备。
一种可行的实施方式中,步骤S402生成每个用户类型对应的令牌数据,可以包括:
S602.从标准信息存储文件中匹配得到所述用户类型对应的标准信息;所述标准信息存储文件包括所述管理平台上的用户类型与所述用户类型对应的标准信息之间的映射关系;所述标准信息包括签名密钥和签名生成算法;
S604.根据所述操作权限信息、标准信息以及签名密钥生成所述令牌数据。
其中,所述令牌数据可以为jwt(json web token)数据,即基于json的网络令牌数据;json web token属于一种基于token机制的的用户认证鉴权方法;json为javascript对象表示法。对应地,本实施例中的权限数据以jwt数据作为承载,利用jwt数据的存储特性,使得在用户登录所述管理平台时,所述jwt数据自动地存储在终端;从而使得对应的令牌数据存储文件也位于终端。
给与说明的是,这里的标准信息存储文件可以理解为在进行管理平台配置工作时得到的。比如,所述签名密钥可以是在管理平台配置时,根据用户注册信息中账号、密码和时间戳生成的;所述签名生成算法可以是在用户注册时进行配置得到的。
其中,本实施例中的签名密钥属于一对密钥,可以包括第一签名密钥和第二签名密钥;所述第一签名密钥存储在管理平台服务端,所述第二签名密钥存储在应用程序服务端;利用所述第一签名密钥进行令牌数据的生成,利用所述第二签名密钥进行令牌数据的解析。
本实施例中,可以对应用程序中关联的接口进行分级,具体是可以分为应用级别接口、模块级别接口或函数级别接口。其中,应用级别的接口相当于对应的整个应用程序都可以访问;模块级别的接口相当于只能访问对应的应用程序中的某个服务模块;函数级别的接口相当于只能访问对应的应用程序下的某个模块中的某个函数。举例来说,比如若配置用户a能够访问模块1,其中该模块1包括10个函数接口;则接口不分级的情况下,可能要把该模块1下的10个函数都配置一遍配置给用户a,也就是说要配10次共10条权限数据;而本实施例中通过接口分级的形式则只需要配置一次仅一条权限数据即可。
在实际应用中,若接口的数量很多,比如达到百位数级别时,则在令牌数据生成的过程中,可以根据不同级别的接口信息生成各自对应的jwt数据;则对应地,所述令牌数据存储文件中每个用户类型相应的令牌数据就可以包含:应用级jwt数据、模块级jwt数据、函数级jwt数据。其中,应用级jwt数据为所述用户类型可操作的应用级别接口对应的jwt数据,模块级jwt数据为所述用户类型可操作的模块级别接口对应的jwt数据,函数级jwt数据为所述用户类型可操作的函数级别接口对应的jwt数据。对应地,在令牌数据鉴权的过程中,需要对多个jwt数据进行分别鉴权。如果所述用户类型能够访问一个应用程序下的某个模块的接口,则在前期只需要针对模块级别的接口进行生成和存储,之后也只需进行模块级别的接口对应的jwt数据的匹配和解析等;本实施例通过这种分级传输jwt数据的方式提升了数据的传输性能。
其中,可以根据服务请求信息确定出操作的接口的级别。比如若用户想要获取某个应用程序的版本信息,那应该调用getVersion这个接口;如果该接口开发人员在前期已经配置为应用级了,则用户访问版本信息时这个接口就属于应用级别的接口;对应地,在jwt数据匹配时得到的也是应用级jwt令牌。
一种具体地实施方式中,步骤S604根据所述操作权限信息、标准信息以及签名密钥生成令牌数据,如图4所示,可以包括:
S802.获取所述标准信息中的签名生成算法;
所述签名生成算法可以为hmac-sha256算法;hmac-sha256算法属于一种带密钥的安全散列算法,可用来生成256bit的消息摘要。其中,本实施例中的签名生成算法并不限制在hmac-sha256算法,还可以是能够实现相同功能的其他生成算法,在此并不做具体限定。
S804.根据所述签名密钥以及所述签名生成算法对所述操作权限信息进行签名计算得到签证信息;
具体地,可以是根据所述第一签名密钥和hmac-sha256算法对权限信息进行签名计算,从而得到所述操作权限信息对应的签证信息。
S806.将所述操作权限信息作为载荷信息;并由所述签名生成算法、载荷信息以及所述签证信息得到所述令牌数据。
在所述令牌数据为jwt数据时,可以得到所述jwt数据包括三部分:第一部分称为头部header,第二部分称为载荷payload,第三部分为签证signature。在本实施例中,如图5所示,可以将所述签名生成算法hmac-sha256作为头部信息header,将所述操作权限信息作为载荷信息payload,将根据第一签名密钥以及所述签名生成算法对所述操作权限信息进行签名计算的结果作为签证信息signature;从而能够利用所述签名生成算法、载荷信息以及所述签证信息能够得到令牌数据。
一种可行的实施方式中,步骤S210发送所述操作服务请求,之前可以包括:
S2102.在所述操作服务请求中添加鉴权字段;所述鉴权字段中携带有所述第一令牌数据;
其中,若操作服务请求为http请求,则在所述http请求的头部信息中添加鉴权字段(authorization字段),并使所述鉴权字段带上对应的令牌数据(jwt数据),比如本实施例中的第一令牌数据。
详细地,jwt数据是以key-value的形式存储在前端存储器中的,其中的key是应用程序的code(在管理平台上注册应用程序时配置的唯一标识);则在发送操作服务请求前,可以根据所述应用程序的code从前端存储器中获取对应的jwt数据,进一步将所述jwt数据赋值给操作服务请求头部的authorization字段。
其中,步骤S208获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据,可以包括:
S208a.获取所述第一令牌数据的鉴权结果;
S208b.在所述鉴权结果为鉴权成功结果时,获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据;其中,所述鉴权成功结果,为所述第一令牌数据的第一签证信息与所述第一令牌数据对应的目标操作权限信息生成的第二签证信息保持一致的结果。
由于令牌数据是存储在前端的,这很容易被用户修改,因而可以通过检验签证信息的方式进行令牌数据的鉴权,以确保令牌数据的正确性和完整性。其中,本实施例中的令牌数据的鉴权过程可以在应用程序服务端进行;具体确定出所述第一令牌数据对应的目标操作权限信息,根据所述目标操作权限信息生成第二令牌数据;根据第二令牌数据中的签名生成算法对所述第二令牌数据中的载荷信息进行签名计算,得到第二签证信息。其中,在发送所述操作服务请求时,所述第一令牌数据一并被发送至应用程序服务端;进一步地,将第一令牌数据中的第一签证信息与第二令牌数据中的第二签证信息进行验证;在验证一致时,则说明所述第一令牌数据中的权限信息未被篡改,正常进行运行;在验证不一致时,直接向终端返回无权限的提示信息。
需要说明的是,本实施例中jwt数据的验证过程还可以具体理解为:先解析jwt数据得到对应的操作接口列表;然后判断当前用户访问的接口是否在所述操作接口列表里;如果在,则根据数据服务访问请求获取初始服务数据;如果不在,则返回无权限信息。其中,若jwt数据中带有页面权限数据信息,则会根据所述页面权限数据信息对上述获取的初始服务数据进行过滤,最终得到符合用户身份的目标服务数据信息给到前端。
其中,本实施例中的标准信息还可以包括签名生成时间和签名有效期,通过签名有效期的验证以确认对应的令牌数据是否过期。本实施例可以在确认出所述第一令牌数据中的权限信息未被篡改之后进行有效期的验证。
需要说明的是,有的应用程序服务端会独立部署一个鉴权转发层,跟其中的数据服务层是分开部署的;有的应用程序服务端是将鉴权转发层跟数据服务层是集成在一起,一起部署的。则对于分开部署的情况,本实施例中的令牌数据的生成过程和解析过程可以是在所述鉴权转发层进行,通过独立的运行机制提升令牌数据生成或解析过程的工作效率。
一种可行的实施方式中,所述方法还可以包括:
Sa.在所述应用程序为目标应用程序时,获取非对称加密密钥;并根据所述非对称加密密钥对所述第一令牌数据的合法性进行验证;
Sb.在所述应用程序为非目标应用程序时,获取对称加密密钥;并根据所述对称加密密钥对所述第一令牌数据的合法性进行验证。
本实施例中,所述目标应用程序可以认为是财务相关(涉及到财务转移、支出等)、用户隐私数据相关、公司机密数据(如人事数据、决策数据等)相关等这些安全等级要求高的应用程序。对应地,为了进一步保证令牌数据中的权限信息不被篡改,可以对令牌数据进行再加密;具体地,在所述应用程序为目标应用程序时,则通过非对称加密密钥对令牌数据进行加密;在所述应用程序为非目标应用程序时,则通过对称加密密钥对令牌数据进行加密。
其中,本实施例在使用对称加密密钥时,可以是选用之前的签名密钥进行令牌数据的再加密。本实施例在使用非对称加密密钥时,可以在管理平台服务端配置公钥,在应用程序服务端配置私钥。
本实施例中,将权限数据以jwt作为承载存储在前端,进而能够直接从本地得到所述权限数据对应的jwt数据,提升了jwt数据的鉴权效率,对应地提升了获取目标服务信息的效率;并且,通过对令牌数据的再加密,确保了所述令牌数据信息的完整性,保证了所述目标服务数据的有效性。
在实际的应用中,各个应用程序的服务端是部署在不同的机房(比如广州机房、重庆机房、内部运营机房等)的;本实施例中,如图6所示,只需要保证各个应用程序的前端能够与各个应用程序的服务端进行数据交互,而不需要将各个机房之间进行网路互联,免去了打通各个机房的复杂工序。比如,如果应用程序1的服务端是部署在第一云端,应用程序2的服务端是部署在第二云端,管理平台的服务端是部署在第三云端;即使第一云端与第三云端是不通的,第二云端与第三云端是不通的,第一云端与第二云端也是不通的;但本实施例的技术方案仍可以将这两个应用程序放到所述管理平台下进行统一权限管理,快速地实现前端对应用程序1和应用程序2的访问。本实施例能够在网络隔离的场景下,有效地实现多地部署的异构应用服务的权限管理以及应用集成。
本说明书实施例提供了一种服务数据获取装置,如图7所示,所述装置包括:
登录信息获取模块202,用于在检测到管理平台上应用程序的操作服务请求时,获取所述管理平台的用户登录信息;
用户类型确定模块204,用于确定出所述用户登录信息所属的用户类型;
第一令牌数据得到模块206,用于根据本地存储的令牌数据存储文件匹配得到所述用户类型对应的第一令牌数据;所述令牌数据存储文件包括每个用户类型以及所述用户类型相应的令牌数据之间的映射关系;其中,所述令牌数据根据所述用户类型对应的应用程序的操作权限信息而生成;
目标服务数据得到模块208,用于发送所述操作服务请求,以获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据。
一种可行的实施方式中,所述装置还可以包括:令牌存储文件构建模块,用于构建令牌数据存储文件;
其中,所述令牌存储文件构建模块,可以包括:
令牌数据生成单元,用于生成每个用户类型对应的令牌数据;
令牌存储文件得到单元,用于根据用户类型以及所述用户类型对应的令牌数据得到所述令牌数据存储文件。
一种可行的实施方式中,所述令牌数据生成单元,可以包括:
标准信息得到子单元,用于从标准信息存储文件中匹配得到所述用户类型对应的标准信息;所述标准信息存储文件包括所述管理平台上的用户类型与所述用户类型对应的标准信息之间的映射关系;所述标准信息包括签名密钥和签名生成算法;
令牌数据生成子单元,用于根据所述操作权限信息、标准信息以及签名密钥生成所述令牌数据。
一种可行的实施方式中,所述令牌数据生成子单元,可以包括:
生成算法获取子单元,用于获取所述标准信息中的签名生成算法;
签证信息得到子单元,用于根据所述签名密钥以及所述签名生成算法对所述操作权限信息进行签名计算得到签证信息;
令牌数据得到子单元,用于将所述操作权限信息作为载荷信息;并由所述签名生成算法、载荷信息以及所述签证信息得到所述令牌数据。
一种可行的实施方式中,所述装置还可以包括:
添加鉴权字段模块,用于在所述数据请求信息中添加鉴权字段;所述鉴权字段中携带有所述第一令牌数据;
其中,所述目标服务数据得到模块,可以包括:
获取鉴权结果单元,用于获取所述第一令牌数据的鉴权结果;
目标服务数据得到单元,用于在所述鉴权结果为鉴权成功结果时,获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据;其中,所述鉴权成功结果,为所述第一令牌数据的第一签证信息与所述第一令牌数据对应的目标操作权限信息生成的第二签证信息保持一致的结果。
一种可行的实施方式中,所述装置还可以包括:
应用类别确定单元,用于确定所述应用程序的应用类别,所述应用类别包括目标应用或非目标应用;
非对称密钥获取单元,用于在所述应用程序的应用类别为目标应用时,获取非对称加密密钥,并根据所述非对称加密密钥对所述第一令牌数据的合法性进行验证;
对称密钥获取单元,用于在所述应用程序的应用类别为非目标应用时,获取对称加密密钥,并根据所述对称加密密钥对所述第一令牌数据的合法性进行验证。
需要说明的是,本实施例中提供的装置实施例具有与上述方法实施例相同的发明构思,在此不做赘述。
本说明书实施例提供了一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方法实施例所述的服务数据获取方法。
本说明书实施例还提供了一种服务数据获取设备的结构示意图,如图8所示,管理平台系统和客户端可以安装在该设备上,该设备可以用于实施上述实施例中提供的服务数据获取方法。具体来讲:
所述设备可以包括RF(Radio Frequency,射频)电路810、包括有一个或一个以上计算机可读存储介质的存储器820、输入单元830、显示单元840、传感器850、音频电路860、WiFi(wireless fidelity,无线保真)模块870、包括有一个或者一个以上处理核心的处理器880、以及电源890等部件。本领域技术人员可以理解,图8中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路810可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器880处理;另外,将涉及上行的数据发送给基站。通常,RF电路810包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(LowNoiseAmplifier,低噪声放大器)、双工器等。此外,RF电路810还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System ofMobile communication,全球移动通讯系统)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器820可用于存储软件程序以及模块,处理器880通过运行存储在存储器820的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器820可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器820还可以包括存储器控制器,以提供处理器880和输入单元830对存储器820的访问。
输入单元830可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元830可包括触敏表面831以及其他输入设备832。触敏表面831,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面831上或在触敏表面831附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面831。除了触敏表面831,输入单元830还可以包括其他输入设备832。具体地,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及所述设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元840可包括显示面板841,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板841。进一步的,触敏表面831可覆盖显示面板841,当触敏表面831检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板841上提供相应的视觉输出。其中,触敏表面831与显示面板841可以两个独立的部件来实现输入和输入功能,但是在某些实施例中,也可以将触敏表面831与显示面板841集成而实现输入和输出功能。
所述设备还可包括至少一种传感器850,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板841的亮度,接近传感器可在所述设备移动到耳边时,关闭显示面板841和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于所述设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路860、扬声器861,传声器862可提供用户与所述设备之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器861,由扬声器861转换为声音信号输出;另一方面,传声器862将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经RF电路810以发送给比如另一设备,或者将音频数据输出至存储器820以便进一步处理。音频电路860还可能包括耳塞插孔,以提供外设耳机与所述设备的通信。
WiFi属于短距离无线传输技术,所述设备通过WiFi模块870可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块870,但是可以理解的是,其并不属于所述设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器880是所述设备的控制中心,利用各种接口和线路连接整个设备的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行所述设备的各种功能和处理数据,从而对设备进行整体监控。可选的,处理器880可包括一个或多个处理核心;优选的,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器880中。
所述设备还包括给各个部件供电的电源890(比如电池),优选的,电源可以通过电源管理系统与处理器880逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源890还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,所述设备还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,设备的显示单元是触摸屏显示器,设备还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行本发明中方法实施例中的指令。
本发明的实施例还提供了一种计算机存储介质,所述存储介质可设置于客户端之中以保存用于实现方法实施例中一种服务数据获取方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的服务数据获取方法。
可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络设备中的至少一个网络设备。可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本说明书实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中加载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种服务数据获取方法,其特征在于,所述方法包括:
在检测到管理平台上应用程序的操作服务请求时,获取所述管理平台的用户登录信息,所述管理平台挂载多个应用程序,所述多个应用程序的服务端部署在不同机房,所述不同机房处于网络隔离场景,所述应用程序中关联的接口包括应用级别接口、模块级别接口或函数级别接口;
确定出所述用户登录信息所属的用户类型;
根据本地存储的令牌数据存储文件匹配得到所述用户类型对应的第一令牌数据;所述令牌数据存储文件包括每个用户类型以及所述用户类型相应的令牌数据之间的映射关系;其中,所述令牌数据根据所述用户类型对应的应用程序的操作权限信息而生成,所述第一令牌数据包含应用级令牌数据、模块级令牌数据、函数级令牌数据,所述应用级令牌数据为所述用户类型可操作的应用级别接口对应的令牌数据,所述模块级令牌数据为所述用户类型可操作的模块级别接口对应的令牌数据,所述函数级令牌数据为所述用户类型可操作的函数级别接口对应的令牌数据;
发送所述操作服务请求给应用程序服务端,以获取由所述应用程序服务端根据所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据。
2.根据权利要求1所述的服务数据获取方法,其特征在于,所述方法还包括:构建令牌数据存储文件;
其中,构建令牌数据存储文件,包括:
生成每个用户类型对应的令牌数据;
根据用户类型以及所述用户类型对应的令牌数据得到所述令牌数据存储文件。
3.根据权利要求2所述的服务数据获取方法,其特征在于,所述生成每个用户类型对应的令牌数据,包括:
从标准信息存储文件中匹配得到所述用户类型对应的标准信息;所述标准信息存储文件包括所述管理平台上的用户类型与所述用户类型对应的标准信息之间的映射关系;所述标准信息包括签名密钥和签名生成算法;
根据所述操作权限信息、标准信息以及签名密钥生成所述令牌数据。
4.根据权利要求3所述的服务数据获取方法,其特征在于,所述根据所述操作权限信息、标准信息以及签名密钥生成令牌数据,包括:
获取所述标准信息中的签名生成算法;
根据所述签名密钥以及所述签名生成算法对所述操作权限信息进行签名计算得到签证信息;
将所述操作权限信息作为载荷信息;并由所述签名生成算法、载荷信息以及所述签证信息得到所述令牌数据。
5.根据权利要求1所述的服务数据获取方法,其特征在于,所述发送所述操作服务请求给应用程序服务端,之前包括:
在所述操作服务请求中添加鉴权字段;所述鉴权字段中携带有所述第一令牌数据;
其中,所述获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据,包括:
获取所述第一令牌数据的鉴权结果;
在所述鉴权结果为鉴权成功结果时,获取由所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据;其中,所述鉴权成功结果,为所述第一令牌数据的第一签证信息与所述第一令牌数据对应的目标操作权限信息生成的第二签证信息保持一致的结果。
6.根据权利要求1所述的服务数据获取方法,其特征在于,所述方法还包括:
在所述应用程序为目标应用程序时,获取非对称加密密钥;并根据所述非对称加密密钥对所述第一令牌数据的合法性进行验证;
在所述应用程序为非目标应用程序时,获取对称加密密钥;并根据所述对称加密密钥对所述第一令牌数据的合法性进行验证。
7.一种服务数据获取装置,其特征在于,所述装置包括:
登录信息获取模块,用于在检测到管理平台上应用程序的操作服务请求时,获取所述管理平台的用户登录信息,所述管理平台挂载多个应用程序,所述多个应用程序的服务端部署在不同机房,所述不同机房处于网络隔离场景,所述应用程序中关联的接口包括应用级别接口、模块级别接口或函数级别接口;
用户类型确定模块,用于确定出所述用户登录信息所属的用户类型;
第一令牌数据得到模块,用于根据本地存储的令牌数据存储文件匹配得到所述用户类型对应的第一令牌数据;所述令牌数据存储文件包括每个用户类型以及所述用户类型相应的令牌数据之间的映射关系;其中,所述令牌数据根据所述用户类型对应的应用程序的操作权限信息而生成,所述第一令牌数据包含应用级令牌数据、模块级令牌数据、函数级令牌数据,所述应用级令牌数据为所述用户类型可操作的应用级别接口对应的令牌数据,所述模块级令牌数据为所述用户类型可操作的模块级别接口对应的令牌数据,所述函数级令牌数据为所述用户类型可操作的函数级别接口对应的令牌数据;
目标服务数据得到模块,用于发送所述操作服务请求给应用程序服务端,以获取由所述应用程序服务端根据所述第一令牌数据对应的目标操作权限信息而得到的目标服务数据。
8.根据权利要求7所述的服务数据获取装置,其特征在于,所述装置还包括:令牌存储文件构建模块,用于构建令牌数据存储文件;
其中,所述令牌存储文件构建模块,包括:
令牌数据生成单元,用于生成每个用户类型对应的令牌数据;
令牌存储文件得到单元,用于根据用户类型以及所述用户类型对应的令牌数据得到所述令牌数据存储文件。
9.根据权利要求8所述的服务数据获取装置,其特征在于,所述令牌数据生成单元,包括:
标准信息得到子单元,用于从标准信息存储文件中匹配得到所述用户类型对应的标准信息;所述标准信息存储文件包括所述管理平台上的用户类型与所述用户类型对应的标准信息之间的映射关系;所述标准信息包括签名密钥和签名生成算法;
令牌数据生成子单元,用于根据所述操作权限信息、标准信息以及签名密钥生成所述令牌数据。
10.一种服务数据获取设备,其特征在于,所述服务数据获取设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至6任一所述的服务数据获取方法。
CN201910233119.6A 2019-03-26 2019-03-26 一种服务数据获取方法、装置及设备 Active CN110198301B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910233119.6A CN110198301B (zh) 2019-03-26 2019-03-26 一种服务数据获取方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910233119.6A CN110198301B (zh) 2019-03-26 2019-03-26 一种服务数据获取方法、装置及设备

Publications (2)

Publication Number Publication Date
CN110198301A CN110198301A (zh) 2019-09-03
CN110198301B true CN110198301B (zh) 2021-12-14

Family

ID=67751865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910233119.6A Active CN110198301B (zh) 2019-03-26 2019-03-26 一种服务数据获取方法、装置及设备

Country Status (1)

Country Link
CN (1) CN110198301B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112560003A (zh) * 2019-09-25 2021-03-26 北京京东尚科信息技术有限公司 用户权限管理方法和装置
CN111405036A (zh) * 2020-03-13 2020-07-10 北京奇艺世纪科技有限公司 服务访问方法、装置、相关设备及计算机可读存储介质
CN111586030B (zh) * 2020-04-30 2022-06-17 武汉时波网络技术有限公司 一种基于微服务多租户的接口鉴权、权限验证方法及系统
CN111815255A (zh) * 2020-05-11 2020-10-23 国泰财产保险有限责任公司 基于互联网保险数据平台的用户应用系统的配置方法及装置
CN112312165A (zh) * 2020-10-19 2021-02-02 中移(杭州)信息技术有限公司 视频下发方法、装置及计算机可读存储介质
CN113051157B (zh) * 2021-03-17 2023-02-28 武汉联影医疗科技有限公司 接口测试方法、装置、计算机设备和存储介质
CN113452722B (zh) * 2021-08-30 2022-01-21 统信软件技术有限公司 一种用户隔离方法、数据传输方法、计算设备及存储介质
CN113742676B (zh) * 2021-09-13 2024-04-19 北京锐安科技有限公司 一种登录管理方法、装置、服务器、系统及存储介质
CN114362965A (zh) * 2022-02-28 2022-04-15 北京达佳互联信息技术有限公司 资源处理方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209749A (zh) * 2015-05-08 2016-12-07 阿里巴巴集团控股有限公司 单点登录方法及装置、相关设备和应用的处理方法及装置
CN107733653A (zh) * 2017-10-09 2018-02-23 用友网络科技股份有限公司 用户权限鉴定方法及系统和计算机设备
CN109327477A (zh) * 2018-12-06 2019-02-12 泰康保险集团股份有限公司 认证鉴权方法、装置及存储介质
CN109450865A (zh) * 2018-10-18 2019-03-08 弘成科技发展有限公司 基于jwt验证的api用户认证方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11012441B2 (en) * 2017-06-30 2021-05-18 Open Text Corporation Hybrid authentication systems and methods

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106209749A (zh) * 2015-05-08 2016-12-07 阿里巴巴集团控股有限公司 单点登录方法及装置、相关设备和应用的处理方法及装置
CN107733653A (zh) * 2017-10-09 2018-02-23 用友网络科技股份有限公司 用户权限鉴定方法及系统和计算机设备
CN109450865A (zh) * 2018-10-18 2019-03-08 弘成科技发展有限公司 基于jwt验证的api用户认证方法
CN109327477A (zh) * 2018-12-06 2019-02-12 泰康保险集团股份有限公司 认证鉴权方法、装置及存储介质

Also Published As

Publication number Publication date
CN110198301A (zh) 2019-09-03

Similar Documents

Publication Publication Date Title
CN110198301B (zh) 一种服务数据获取方法、装置及设备
CN112733107B (zh) 一种信息验证的方法、相关装置、设备以及存储介质
CN111193695B (zh) 一种第三方账号登录的加密方法、装置及存储介质
WO2018176781A1 (zh) 信息发送方法、信息接收方法、装置及系统
US20180343123A1 (en) Authentication method, system and equipment
CN110417543B (zh) 一种数据加密方法、装置和存储介质
WO2017185711A1 (zh) 控制智能设备的方法、装置、系统和存储介质
CN108920366B (zh) 一种子应用调试方法、装置及系统
US20170316781A1 (en) Remote electronic service requesting and processing method, server, and terminal
JP2018537027A (ja) サービス処理方法、デバイス及びシステム
CN109768977B (zh) 流媒体数据处理方法、装置以及相关设备和介质
CN108881103B (zh) 一种接入网络的方法及装置
WO2020164526A1 (zh) 一种分布式系统中的节点控制方法和相关装置
CN108234124B (zh) 身份验证方法、装置与系统
CN107395560B (zh) 安全校验及其发起、管理方法、设备、服务器和存储介质
CN111478849B (zh) 业务访问方法、装置和存储介质
CN104683301B (zh) 一种密码保存的方法及装置
WO2014000652A1 (zh) 浏览器插件安装方法、装置及终端
CN113037741B (zh) 一种鉴权方法、鉴权装置、计算机设备及存储介质
WO2018108062A1 (zh) 身份验证方法、装置及存储介质
CN109039989B (zh) 地址解析协议欺骗检测方法、主机及计算机可读存储介质
CN107577933B (zh) 应用登录方法和装置、计算机设备、计算机可读存储介质
CN108234412B (zh) 身份验证方法与装置
CN108234113B (zh) 身份验证方法、装置与系统
CN107786423B (zh) 一种即时通讯的方法和系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant