具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请提供的接口调用权限的控制方法,可以应用于如图1所示的应用环境中。其中,外部***101通过网络与产品管理中心102进行通信,外部***101向产品管理中心102注册,获取使用某些产品以及产品对应接口的权限。当外部***101需要调用产品管理中心102某一接口的功能时,产品管理中心对对应的产品和接口权限进行鉴定,当鉴定通过时,为该外部***101提供接口对应的功能。外部***101和产品管理中心102均可以是终端或者服务器。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,产品管理中心102可以指SAAS(Software as a Service)服务,该SAAS服务可以包括API网关、业务服务以及统一认证服务等。其中,业务服务和统一认证服务均可以是服务器。
SAAS提供完整的软件解决方案,租户可以从云服务提供商处以即用即付的方式购买SAAS提供的产品。用户可通过Internet连接到该应用(通常使用Web浏览器)。SAAS服务所有的基础结构、中间件、应用软件和应用数据都位于服务提供商的数据中心内。服务提供商负责管理硬件和软件,并根据适当的服务协议确保应用和数据的可用性和安全性。SAAS服务能让用户通过最低前期成本的应用快速建成投产。
SAAS服务可以通过权限数据库存储产品(包括但不限于软件产品)、产品资源、资源许可、产品权限、租户、租户角色、用户等信息。产品自定义产品资源、资源许可以及产品权限,每个接口都对应一组资源和资源许可。SAAS服务同时提供租户注册和租户用户管理服务。SAAS服务可以包括SAAS服务登录平台,租户用户可以调用该SAAS服务登录平台,SAAS服务根据租户和租户用户信息为租户用户进行注册确定各个产品对应的产品权限并把产品权限存入缓存(权限数据库)。租户调用SAAS服务开放接口注册相应的产品资源、资源许可和产品权限。当有租户中的用户需要调用某一接口时,SAAS服务根据对应的资源和资源许可对该用户的权限进行鉴定。
在一个实施例中,整个接口调用权限的控制方法可以在微服务架构(MicroService Architecture)中实现。其中,微服务是一种架构风格,是由一个或多个微服务组成的一个大型复杂软件应用。架构中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务,每个任务代表着一个小的业务能力。具体到本发明实施例,外部***、API网关、业务服务以及统一认证服务均可以指一个微服务,这些微服务之间相互配合,实现对用户权限的有效控制。其中,外部***指的是租户所在的***。
本发明实施例提供一种接口调用权限的控制方法、装置、计算机设备和存储介质。以下分别进行详细说明。
在一个实施例中,如图2所示,提供了一种接口调用权限的控制方法。以该方法应用于SAAS服务中的统一认证服务端为例进行说明,包括以下步骤:
S201、接收API网关(api-gateWay)发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限。
在本步骤中,用户登录时确定所要使用的产品并将该产品对应的用户登录信息发送给API网关;API网关接收到该用户登录信息后,将其发送给统一认证服务,统一认证服务根据用户登录信息判断用户是否有使用对应产品的权限。
其中,API网关指的是外部***接入SAAS服务的入口,外部***通过该API网关能够与SAAS服务进行交互,调用SAAS服务的接口。统一认证服务实现的是对信息的鉴定,统一认证服务由服务器实现,本发明实施例对统一认证服务的形式不做限制。
在一个实施例中,用户登录信息可以包含用户信息、产品信息以及与该产品对应的token,token在计算机身份认证中是令牌,统一认证服务根据token能确定登录用户的产品权限,即确定该登录用户是否有使用对应产品的权限。
在一个实施例中,当用户需要调用SAAS服务的接口时,需要与SAAS服务建立连接关系,可以通过SAAS服务登录平台登录该SAAS服务。
在一个实施例中,用户登录时,向API网关发送报文,该报文包括首部(header)、所选择的产品、接口调用信息等信息。API网关在用户登录以后,对报文进行安全性、完整性等的验证。
S202、向API网关返回当前登录用户的产品权限,以触发API网关向业务服务转发当前登录用户的产品接口调用请求。
在本步骤中,统一认证服务确定当前登录用户的产品权限后,向API网关返回该产品权限,以触发API网关向业务服务转发当前登录用户的产品接口调用请求。
在一个实施例中,产品权限可以为可以使用对应产品、不能使用对应产品等。
在一个实施例中,若统一认证服务确定当前登录用户有使用对应产品的权限,则向API网关返回产品鉴权通过信息,以使API网关触发后续的接口鉴权。若统一认证服务确定当前登录用户没有使用对应产品的权限,则向API网关返回产品鉴权失败信息。API网关接收到产品鉴权失败信息后可以不触发后续的接口鉴权,即不再进行接口鉴权的过程。
S203、接收业务服务发送的接口鉴权请求,根据所述接口鉴权请求对当前登录用户的产品接口调用权限进行鉴定;所述接口鉴权请求根据API网关转发的产品接口调用请求得到。
在本步骤中,统一认证服务在确定用户有使用对应产品的权限后向API网关反馈产品权限鉴定通过的信息。API网关在确定用户有使用对应产品的权限后,根据用户登录时的产品接口调用请求确定用户需要调用哪个接口,并生成产品接口调用请求,将该产品接口调用请求发送给业务服务,业务服务根据该产品接口调用请求生成接口鉴权请求,并将该接口鉴权请求发送给统一认证服务,由统一认证服务对用户调用对应接口的权限进行鉴定。
其中,业务服务指的是用于处理具体应用的服务器,即当用户登录且产品权限鉴定通过后,完成具体的接口服务:将当前登录用户的产品接口调用请求通过接口鉴权请求的方式发送给统一认证服务,在接口权限鉴定通过后,处理对应接口的业务,以应答用户的产品接口调用请求。
S204、若产品接口调用权限鉴定通过,向所述业务服务返回接口响应指令;所述接口响应指令用于触发所述业务服务执行所述产品对应接口的功能。
本步骤中,若接口的权限鉴定通过,统一认证服务向业务服务返回接口响应指令。业务服务根据该接口响应指令执行对应接口的功能。
本实施例,能够对多用户的权限控制进行统一管理,同时对于不同的用户能进行有针对性的鉴定,能有效提高多用户权限控制的效率。
在一个实施例中,所述接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限的步骤之前,还包括:接收租户的注册请求;所述注册请求中包含有所述租户所请求注册的产品以及多个用户的用户信息;根据所述注册请求为所述租户进行注册,确定所述多个用户在各个产品下的产品权限,并确定各个产品权限对应的token。
在一个实施例中,租户在需要使用SAAS服务中的某些产品时,向SAAS服务发送注册请求,该注册请求中包含有所要注册的产品、想要注册该产品中的哪些接口以及租户所包括的用户。租户根据SAAS服务的收费标准支付相应的费用。SAAS服务中的统一认证服务根据该注册请求为该租户进行注册,即确定租户中各个用户使用对应产品和接口的权限,产品权限通过token体现。
本实施例,为租户进行注册,确定租户中的用户对对应产品和接口的使用权限,为后续对用户调用具体接口的权限进行鉴定做准备,能实现SAAS服务对租户的集中管理,有效防止未注册的用户随意使用SAAS服务提供的产品。
在一个实施例中,所述确定所述多个用户在各个产品下的产品权限,并确定各个产品权限对应的token的步骤之后,还包括:将所述产品权限存入预先建立的权限数据库中,并将所述token返回给所述租户,以使所述租户将所述token分配给对应的用户。
在一个实施例中,也可以将token存入权限数据库中,统一认证服务根据用户发送的token直接查询权限数据库中是否有对应的token存在,即可确定该用户是否有使用对应产品的权限。
本实施例,将确定的产品权限存入预先建立的权限数据库中,并将所述token返回给所述租户,租户接收该token。租户在需要使用SAAS服务的产品时,向SAAS服务发送请求,并在请求报文中带上该token,以表明自身的属性,方便统一认证服务对其进行鉴定。将产品权限存入权限数据库中,在需要确定登录用户的产品权限时查询该权限数据库就能得知结果,方便直接,能有效提高接口调用权限的控制效率。
在一个实施例中,所述用户登录信息包括token;所述token存在有效时间;所述根据所述用户登录信息确定当前登录用户的产品权限的步骤之前,还包括:判断所述token是否在有效时间内。
本实施例中,统一认证服务根据token的有效时间来确定是否进行后续的权限数据库查询。若token的有效时间结束,则无需查询权限数据库,确定用户无使用对应产品的权限;若token的有效时间未结束,则完成后续的产品鉴权过程。
在一个实施例中,所述根据所述用户登录信息确定当前登录用户的产品权限的步骤,包括:若所述token在有效时间内,查询权限数据库中与所述token对应的产品权限,得到当前登录用户的产品权限。
在一个实施例中,用户登录信息的报文首部中可以包括token、所选择的产品、接口调用信息等信息。API网关从报文的首部中获取token,将token发送给统一认证服务,由统一认证服务根据该token确定用户是否有使用对应产品的权限。
在一个实施例中,查询权限数据库中与所述token对应的产品权限,得到当前登录用户的产品权限的步骤,包括:根据token查询权限数据库中对应的产品定义信息;确定与所述产品定义信息相对应的权限定义信息,根据所述权限定义信息判断所述用户是否有使用对应产品的权限。
其中,产品定义信息指的是与SAAS服务所提供的产品相关的名称、ID、功能描述、权限级别等信息,可以存储于权限数据库的产品表中,产品表如图3所示。权限定义信息指的是对用户使用某一产品的权限的信息,可以存储于权限数据库的产品权限表中,产品权限表如图4所示,在该产品权限表中,包含有权限ID、产品ID、权限名称等信息。其中,产品表和产品权限表之间有关联关系。统一认证服务通过产品表可以查询SAAS服务所提供的各个产品,当接收到API网关发送的用户登录信息时,根据用户登录信息中的token就可以查询产品权限表并确定该用户使用该产品的权限。
在一个实施例中,权限数据库也可以不包括产品表,直接将产品定义信息和权限定义信息放在一个产品权限表中。
本实施例结合有效时间和产品权限来确定用户是否有使用对应产品的权限,能够双重保证权限鉴定的准确性。
在一个实施例中,所述权限数据库中存储有多个租户ID(enterprise ID)和用户ID(user ID);所述接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限的步骤之后,还包括:若确定当前登录用户有使用对应产品的权限,根据所述权限数据库已存储的租户ID和用户ID为所述当前登录用户分配租户ID和用户ID,并将所分配的租户ID和用户ID返回给所述API网关。
在一个实施例中,用户登录以后若确定当前登录用户有使用对应产品的权限,则为该当前登录用户分配租户ID和用户ID。因此,能够提供租户ID和用户ID信息的用户是已经登录在SAAS服务中并通过了产品权限鉴定的用户。
本实施例,为有使用对应产品的权限的用户分配租户ID和用户ID,便于后续对接口权限的鉴定。
在一个实施例中,所述接口鉴权请求根据API网关转发的产品接口调用请求、租户ID和用户ID得到;所述根据所述接口鉴权请求对当前登录用户的产品接口调用权限进行鉴定的步骤,包括:根据所述接口鉴权请求,对对应的租户ID和用户ID进行鉴定;若所述对应的租户ID和用户ID鉴定通过,则产品接口调用权限鉴定通过,当前登录用户具有调用对应接口的权限。
在一个实施例中,接口可以包括开放访问接口、登录访问接口以及授权访问接口。其中,开放访问接口也可以称为免登访问接口,是服务完全开放不需要任何控制的;登录访问接口是服务只开放给登录用户,没有权限控制,用户A登录成功即用户A获取到有租户ID和用户ID,则认为用户A有调用对应接口的权限;授权访问接口是服务只开放给具有特定权限的用户,需要对租户ID和用户ID的合法性进行鉴定。
在一个实施例中,对产品权限进行鉴定的过程可以由业务服务来实现,当业务服务确定当前登录用户所调用的接口为授权访问接口时,向统一认证服务发送接口鉴权请求,由统一认证服务对租户ID和用户ID进行鉴定。若对租户ID和用户ID的鉴定通过,则判定当前登录用户具有调用对应接口的权限,向业务服务返回鉴定通过信息,由业务服务同意该用户的接口调用请求并执行对应接口的功能;若对租户ID和用户ID的鉴定不通过,则判定当前登录用户不具有调用对应接口的权限,不进行后续执行对应接口的功能的过程。
本实施例中,统一认证服务对用户所提供的租户ID和用户ID进行鉴定,若该租户ID和用户ID合法,则判定当前登录用户具有调用对应接口的权限。接口鉴定方式简单,同时能在产品鉴定通过的基础上进一步对接口进行鉴权,保证SAAS服务的安全性。
在一个实施例中,对当前登录用户的产品接口调用权限进行鉴定的步骤,还包括:若业务服务确定所述当前登录用户所调用的接口为开放访问接口,则判定当前登录用户有调用对应接口的权限;若业务服务确定所述当前登录用户所调用的接口为登录访问接口,判断所述接口鉴权请求中是否对应有租户ID和用户ID;若有,则用户有调用对应接口的权限。若业务服务确定所述当前登录用户所调用的接口为授权访问接口,则向统一认证服务发送接口鉴权请求,由统一认证服务确定当前登录用户是否有调用对应接口的权限。
本实施例,针对不同的接口进行不同的鉴定方式,能有效提高对用户进行权限控制的效率。
在一个实施例中,如图5所示,提供一种接口调用权限的控制方法,包括以下步骤:
S501、接收租户的注册请求;注册请求中包含有该租户所请求注册的产品以及多个用户的用户信息。
S502、根据注册请求为租户进行注册,确定各个用户在各个产品下的产品权限,并确定各个产品权限对应的token。
S503、将该产品权限存入预先建立的权限数据库中,并将该token返回给所述租户,以使租户将token分配给对应的用户。
S504、接收API网关发送的用户登录信息,判断用户登录信息中的token是否在有效时间内。
S505、若token在有效时间内,查询权限数据库中与该token对应的产品权限,得到当前登录用户的产品权限。
S506、若确定当前登录用户有使用对应产品的权限,根据权限数据库已存储的租户ID和用户ID为当前登录用户分配租户ID和用户ID,并将所分配的租户ID和用户ID返回给API网关。
S507、向API网关返回当前登录用户的产品权限,以触发API网关向业务服务转发当前登录用户的产品接口调用请求。
S508、接收业务服务发送的接口鉴权请求,根据该接口鉴权请求对当前登录用户的产品接口调用权限进行鉴定;其中,接口鉴权请求根据API网关转发的产品接口调用请求、租户ID和用户ID得到。
S509、根据接口鉴权请求,对对应的租户ID和用户ID进行鉴定;若对应的租户ID和用户ID鉴定通过,则产品接口调用权限鉴定通过,当前登录用户具有调用对应接口的权限。
S510、若产品接口调用权限鉴定通过,向所述业务服务返回接口响应指令;该接口响应指令用于触发业务服务执行产品对应接口的功能。
本实施例,能够对多用户的权限控制进行统一管理,同时对于不同的用户能进行有针对性的鉴定,能有效提高多用户权限控制的效率。
为了更好地理解上述方法,以下详细阐述一个本发明接口调用权限的控制方法的应用实例。该应用实例的时序图可以如图6所示。
产品注册(图6中未示出):
1、统一认证服务接收租户的注册请求;该注册请求中包含有租户所请求注册的产品以及多个用户的用户信息;统一认证服务根据该注册请求为所述租户进行注册,确定各个用户在各个产品下的产品权限,并确定各个产品权限对应的token。
2、统一认证服务将所述产品权限存入预先建立的权限数据库中,并将所述token返回给所述租户;租户在接收到用户登录信息以后,将所述token分配给对应的用户。
权限控制(即接口调用):
3、当前登录用户以报文的形式向API网关发送产品接口调用请求,该报文中包含有该token、接口调用信息(以调用发送短信的接口为例)等。
4、API网关向统一认证服务发送产品接口调用请求,统一认证服务根据对应的token判断用户是否有使用对应产品的权限;若确定用户有使用对应产品的权限,则向API网关返回租户ID和用户ID。
5、API网关向短信业务服务发送产品鉴权通过的信息并发送所分配的租户ID和用户ID。
6、若短信业务服务根据用户的接口调用信息确定所调用的接口为授权访问接口,则根据该租户ID和用户ID生成接口鉴权请求,向统一认证服务发送该接口鉴权请求。
7、统一认证服务在接收到短信业务服务发送的接口鉴权请求时,对对应租户ID和用户ID的合法性进行鉴定。
8、若根据租户ID和用户ID的合法性确定接口的权限鉴定通过,统一认证服务向该短信业务服务返回接口响应指令。
9、短信业务服务根据对应接口的功能,执行相应的短信发送操作,并将相应的请求应答信息返回给用户(外部***)。
本实施例能够对多用户的权限控制进行统一管理,同时对于不同的用户能进行有针对性的鉴定,能有效提高多用户权限控制的效率。
需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
基于与上述实施例中的接口调用权限的控制方法相同的思想,本发明还提供接口调用权限的控制装置,该装置可用于执行上述接口调用权限的控制方法。为了便于说明,接口调用权限的控制装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图7所述,接口调用权限的控制装置包括产品鉴权模块701、权限返回模块702、接口鉴权模块703和接口响应模块704,详细说明如下:
产品鉴权模块701,用于接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限。
权限返回模块702,用于向API网关返回当前登录用户的产品权限,以触发API网关向业务服务转发当前登录用户的产品接口调用请求。
接口鉴权模块703,用于接收业务服务发送的接口鉴权请求,根据所述接口鉴权请求对当前登录用户的产品接口调用权限进行鉴定;所述接口鉴权请求根据API网关转发的产品接口调用请求得到。
以及,接口响应模块704,用于若产品接口调用权限鉴定通过,向所述业务服务返回接口响应指令;所述接口响应指令用于触发所述业务服务执行所述产品对应接口的功能。
本实施例,能够对多用户的权限控制进行统一管理,同时对于不同的用户能进行有针对性的鉴定,能有效提高多用户权限控制的效率。
在一个实施例中,所述接口调用权限的控制装置,还包括:注册请求接收模块,用于接收租户的注册请求;所述注册请求中包含有所述租户所请求注册的产品以及多个用户的用户信息;注册模块,用于根据所述注册请求为所述租户进行注册,确定所述多个用户在各个产品下的产品权限,并确定各个产品权限对应的token。
在一个实施例中,还包括:权限存储模块,用于将所述产品权限存入预先建立的权限数据库中,并将所述token返回给所述租户,以使所述租户将所述token分配给对应的用户。
在一个实施例中,所述用户登录信息包括token;所述token存在有效时间;还包括:时间判断模块,用于判断所述token是否在有效时间内。
在一个实施例中,所述产品鉴权模块,还用于若所述token在有效时间内,查询权限数据库中与所述token对应的产品权限,得到当前登录用户的产品权限。
在一个实施例中,所述权限数据库中存储有多个租户ID和用户ID;所述接口调用权限的控制装置,还包括:ID分配模块,用于若确定当前登录用户有使用对应产品的权限,根据所述权限数据库已存储的租户ID和用户ID为所述当前登录用户分配租户ID和用户ID,并将所分配的租户ID和用户ID返回给所述API网关。
在一个实施例中,所述接口鉴权请求根据API网关转发的产品接口调用请求、租户ID和用户ID得到;所述接口鉴权模块,还用于根据所述接口鉴权请求,对对应的租户ID和用户ID进行鉴定;若所述对应的租户ID和用户ID鉴定通过,则产品接口调用权限鉴定通过,当前登录用户具有调用对应接口的权限。
需要说明的是,本发明的接口调用权限的控制装置与本发明的接口调用权限的控制方法一一对应,在上述接口调用权限的控制方法的实施例阐述的技术特征及其有益效果均适用于接口调用权限的控制装置的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明。
此外,上述示例的接口调用权限的控制装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述接口调用权限的控制装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于作为权限数据库存储产品定义信息、权限定义信息、租户ID和用户ID等信息。该计算机设备的网络接口用于与外部的终端通过网络连接通信,对外部终端的接口是否使用对应的产品和接口的权限进行鉴定。该计算机程序被处理器执行时以实现一种接口调用权限的控制方法。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限;向API网关返回当前登录用户的产品权限,以触发API网关向业务服务转发当前登录用户的产品接口调用请求;接收业务服务发送的接口鉴权请求,根据所述接口鉴权请求对当前登录用户的产品接口调用权限进行鉴定;所述接口鉴权请求根据API网关转发的产品接口调用请求得到;若产品接口调用权限鉴定通过,向所述业务服务返回接口响应指令;所述接口响应指令用于触发所述业务服务执行所述产品对应接口的功能。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限的步骤之前,还包括:接收租户的注册请求;所述注册请求中包含有所述租户所请求注册的产品以及多个用户的用户信息;根据所述注册请求为所述租户进行注册,确定所述多个用户在各个产品下的产品权限,并确定各个产品权限对应的token。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述确定所述多个用户在各个产品下的产品权限,并确定各个产品权限对应的token的步骤之后,还包括:将所述产品权限存入预先建立的权限数据库中,并将所述token返回给所述租户,以使所述租户将所述token分配给对应的用户。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述用户登录信息包括token;所述token存在有效时间;所述根据所述用户登录信息确定当前登录用户的产品权限的步骤之前,还包括:判断所述token是否在有效时间内。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述根据所述用户登录信息确定当前登录用户的产品权限的步骤,包括:若所述token在有效时间内,查询权限数据库中与所述token对应的产品权限,得到当前登录用户的产品权限。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述权限数据库中存储有多个租户ID和用户ID;所述接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限的步骤之后,还包括:若确定当前登录用户有使用对应产品的权限,根据所述权限数据库已存储的租户ID和用户ID为所述当前登录用户分配租户ID和用户ID,并将所分配的租户ID和用户ID返回给所述API网关。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:所述接口鉴权请求根据API网关转发的产品接口调用请求、租户ID和用户ID得到;所述根据所述接口鉴权请求对当前登录用户的产品接口调用权限进行鉴定的步骤,包括:根据所述接口鉴权请求,对对应的租户ID和用户ID进行鉴定;若所述对应的租户ID和用户ID鉴定通过,则产品接口调用权限鉴定通过,当前登录用户具有调用对应接口的权限。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限;向API网关返回当前登录用户的产品权限,以触发API网关向业务服务转发当前登录用户的产品接口调用请求;接收业务服务发送的接口鉴权请求,根据所述接口鉴权请求对当前登录用户的产品接口调用权限进行鉴定;所述接口鉴权请求根据API网关转发的产品接口调用请求得到;若产品接口调用权限鉴定通过,向所述业务服务返回接口响应指令;所述接口响应指令用于触发所述业务服务执行所述产品对应接口的功能。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限的步骤之前,还包括:接收租户的注册请求;所述注册请求中包含有所述租户所请求注册的产品以及多个用户的用户信息;根据所述注册请求为所述租户进行注册,确定所述多个用户在各个产品下的产品权限,并确定各个产品权限对应的token。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述确定所述多个用户在各个产品下的产品权限,并确定各个产品权限对应的token的步骤之后,还包括:将所述产品权限存入预先建立的权限数据库中,并将所述token返回给所述租户,以使所述租户将所述token分配给对应的用户。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述用户登录信息包括token;所述token存在有效时间;所述根据所述用户登录信息确定当前登录用户的产品权限的步骤之前,还包括:判断所述token是否在有效时间内。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述根据所述用户登录信息确定当前登录用户的产品权限的步骤,包括:若所述token在有效时间内,查询权限数据库中与所述token对应的产品权限,得到当前登录用户的产品权限。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述权限数据库中存储有多个租户ID和用户ID;所述接收API网关发送的用户登录信息,根据所述用户登录信息确定当前登录用户的产品权限的步骤之后,还包括:若确定当前登录用户有使用对应产品的权限,根据所述权限数据库已存储的租户ID和用户ID为所述当前登录用户分配租户ID和用户ID,并将所分配的租户ID和用户ID返回给所述API网关。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:所述接口鉴权请求根据API网关转发的产品接口调用请求、租户ID和用户ID得到;所述根据所述接口鉴权请求对当前登录用户的产品接口调用权限进行鉴定的步骤,包括:根据所述接口鉴权请求,对对应的租户ID和用户ID进行鉴定;若所述对应的租户ID和用户ID鉴定通过,则产品接口调用权限鉴定通过,当前登录用户具有调用对应接口的权限。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本发明实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,不能理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。