CN115622736A - 安全验证方法、装置、电子设备及存储介质 - Google Patents

安全验证方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115622736A
CN115622736A CN202211119495.0A CN202211119495A CN115622736A CN 115622736 A CN115622736 A CN 115622736A CN 202211119495 A CN202211119495 A CN 202211119495A CN 115622736 A CN115622736 A CN 115622736A
Authority
CN
China
Prior art keywords
request
client
calling
authority
call
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.)
Pending
Application number
CN202211119495.0A
Other languages
English (en)
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.)
Beijing Che Huan Huan Information Technology Co ltd
Original Assignee
Beijing Che Huan Huan Information Technology 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 Beijing Che Huan Huan Information Technology Co ltd filed Critical Beijing Che Huan Huan Information Technology Co ltd
Priority to CN202211119495.0A priority Critical patent/CN115622736A/zh
Publication of CN115622736A publication Critical patent/CN115622736A/zh
Pending legal-status Critical Current

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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种安全验证方法、装置、电子设备及存储介质。该方法包括:接收客户端发送的调用请求,根据所述调用请求对所述客户端进行身份验证;在所述客户端身份验证通过的情况下,根据所述调用请求确定所述客户端请求调用的目标服务;根据所述调用请求验证所述客户端是否具备所述目标服务的调用权限;在所述客户端具备所述目标服务的调用权限的情况下,将所述调用请求转发至所述目标服务。通过本实施例的安全验证方法,各种安全验证均在API网关上实现,只有经API网关全部安全验证通过的调用请求才会被转发至目标服务,实现目标服务的安全调用,从而可以在实现微服务与安全框架解耦的基础上,降低开发成本,提升业务开发人员的开发效率。

Description

安全验证方法、装置、电子设备及存储介质
技术领域
本发明涉及安全验证技术领域,尤其涉及一种安全验证方法、装置、电子设备及存储介质。
背景技术
随着互联网技术的不断发展,微服务(即API)得以广泛应用。针对项目来说,一个项目包括多个微服务,需在项目中整合各种安全框架以保证微服务架构的安全性。相关技术中,针对一个项目里的多个微服务均需各自开发整合对应的安全框架,以使得每个微服务在接收到客户端发送的调用请求时,可以通过安全框架对客户端进行相应的安全验证,以保证项目的安全性。
但是,通过对各微服务自身进行开发使得微服务具有安全验证功能,不仅会导致安全框架与微服务耦合严重,还会由于安全框架与开发语言强相关,跨开发语言较为困难,而导致开发成本较大。
发明内容
本发明实施例提供一种安全验证方法、装置、电子设备及存储介质,通过微服务的上一层API网关来统一进行客户端的安全验证,以实现微服务与安全验证功能的解耦,以及降低开发成本,提升开发效率。
本发明实施例第一方面提供了一种安全验证方法,所述方法包括:
接收客户端发送的调用请求,根据所述调用请求对所述客户端进行身份验证;
在所述客户端身份验证通过的情况下,根据所述调用请求确定所述客户端请求调用的目标服务;
根据所述调用请求验证所述客户端是否具备所述目标服务的调用权限;
在所述客户端具备所述目标服务的调用权限的情况下,将所述调用请求转发至所述目标服务。
本发明实施例第二方面提供了一种安全验证装置,所述装置包括:
身份验证模块,用于接收客户端发送的调用请求,根据所述调用请求对所述客户端进行身份验证;
目标服务确定模块,用于在所述客户端身份验证通过的情况下,根据所述调用请求确定所述客户端请求调用的目标服务;
权限验证模块,用于根据所述调用请求验证所述客户端是否具备所述目标服务的调用权限;
请求转发模块,用于在所述客户端具备所述目标服务的调用权限的情况下,将所述调用请求转发至所述目标服务。
本发明实施例第三方面提供一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如本发明第一方面所述的安全验证方法的步骤。
本发明实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明第一方面所述的安全验证方法中的步骤。
本发明实施例在微服务上游设置API网关,通过API网关接收客户端发送的调用请求,根据调用请求对客户端进行身份验证,在身份验证通过的情况下,再根据调用请求对客户端进行是否具备目标服务调用权限的验证,以在客户端身份验证、权限验证均通过的情况下将调用请求转发至目标服务,从而实现微服务的安全验证。通过本实施例的安全验证方法,各种安全验证(如身份验证和权限验证等)均在API网关上实现,只有经API网关全部安全验证通过的调用请求才会被转发至目标服务,实现目标服务的安全调用;而目标服务无需再进行任何关于安全方面的验证,节约了目标服务的使用资源;同时,业务开发人员只需针对API网关进行相关安全验证的开发,而不再需要针对微服务进行不同语言安全框架的开发,从而在实现了微服务与安全框架解耦的基础上,降低了开发成本,提升了业务开发人员的开发效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例示出的一种安全验证方法的流程图;
图2是本发明一实施例示出的一种身份验证的流程示意图;
图3是本发明一实施例示出的一种权限验证的流程示意图;
图4是本发明一实施例示出的一种安全验证的流程示意图;
图5是本发明一实施例提供的安全验证装置的结构框图;
图6是本发明一实施例示出的一种电子设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如前所述,相关技术中的在项目的多个微服务(即API)中各自开发整合对应的安全框架,那么不仅会导致安全框架与微服务耦合严重,还有可能导致在项目的不同微服务中重复出现相同的客户端安全验证,浪费验证资源;此外,由于各种安全框架基本都与开发语言强相关,跨开发语言较为困难,这就会导致微服务的安全性开发不具备通用性,开发成本较大,业务开发人员的开发效率低下。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个,本发明实施例提出了一种安全验证方法,在客户端与服务端提供的微服务之间增加API网关,使得客户端与微服务通过API网关进行通信交互,通过API网关实现发送调用请求的客户端的各项安全验证(如身份验证和权限验证等),在客户端经API网关的所有验证通过后,API网关才会将调用请求转发至目标服务从而确保目标服务的安全调用,这样不仅将所有微服务自身的安全验证转换为上游API网关的统一安全验证,节约了微服务的使用资源,还无需针对各微服务进行不同语言安全框架的开发,以在实现微服务与安全框架解耦的基础上,降低开发成本,提升开发效率。
请参考图1,图1是本发明一实施例示出的一种安全验证方法的流程图。本实施例提供的安全验证方法可应用于API网关。本实施例的API网关为两个系统中间通信的一个中介者以协助API的调用,API网关可以是服务器。其中,任何一个应用系统如果需要被其他系统调用,就需要暴露API(Application Programming Interface,应用程序接口),这些API代表着一个一个的功能点。如果两个系统中间通信,在系统之间加上一个中介者协助API的调用,那这个中介者就是API网关。API网关可以放在两个系统之间,同时也可以放在客户端与服务端之间。API网关作为系统的唯一入口,进入系统的所有请求都需要经过API网关。
如图1所示,本实施例的安全验证方法可以包括以下步骤:
步骤S11:接收客户端发送的调用请求,根据所述调用请求对所述客户端进行身份验证。
本实施例中,客户端与服务端之间使用HTTP协议通过API网关进行通信互联。其中,一个API网关可以对应多个客户端,以及,一个API网关可以对应多个微服务。而HTTP协议为超文本传输协议,是一个用于传输超媒体文档(例如HTML)的应用层协议。HTTP遵循经典的客户端-服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。尽管通常基于TCP/IP层,但它可以在任何可靠的传输层上使用。
当客户端需要调用某一微服务,以实现该微服务提供的功能时,客户端可以发送调用请求,以请求调用目标服务,API网关接收客户端发送的该调用请求。其中,本实施例中的调用请求为HTTP请求,目标服务为客户端所需调用的微服务,微服务即为API。
需要说明的是,本实施例可以是客户端向服务端提供的目标服务发送调用请求,API网关从中拦截该调用请求,API网关接收客户端发送的该调用请求;也可以是客户端直接向API网关发送调用请求,API网关接收客户端发送的该调用请求;这仅是一种技术选型上的考虑,本实施例对此不作任何限制。
API网关接收到客户端发送的调用请求后,可以根据该调用请求先对发送调用请求的客户端进行身份验证。其中,本实施例对客户端进行身份验证可以是验证发送调用请求的客户端是否处于登录状态。若API网关根据调用请求确定发送调用请求的客户端处于登录状态,API网关可以确定该客户端身份验证通过;若API网关根据调用请求确定发送调用请求的客户端处于未登录状态,API网关可以确定该客户端身份验证未通过。
本实施例考虑到客户端在未登录状态下无法获取到使用该客户端的用户的真实身份信息,安全性无法保证,因此,本实施例根据调用请求对客户端进行身份验证,验证发送调用请求的客户端是否处于登录状态,能够避免处于未登录状态的客户端调用目标服务,从而保证微服务调用的安全性。
其中需要说明的是,本实施例中涉及到的所有的用户相关信息的获取均建立在用户授权的前提下进行,例如可以是用户在注册时同意了注册协议中的“用户相关信息的获取”条件,该“用户相关信息的获取”条件明确了是否同意获取用户相关信息、对用户相关信息进行必要的合规处理、以及确保用户的隐私。
步骤S12:在所述客户端身份验证通过的情况下,根据所述调用请求确定所述客户端请求调用的目标服务。
本实施例中,API网关根据调用请求对客户端进行身份验证,在确定客户端身份验证通过的情况下,API网关可以根据该调用请求确定该客户端请求调用的目标服务,即目标API。
步骤S13:根据所述调用请求验证所述客户端是否具备所述目标服务的调用权限。
本实施例中,API网关根据调用请求对客户端进行身份验证通过的情况下,会进一步对该客户端进行权限验证,因为只有具有目标服务调用权限的客户端,才能够实现对应微服务(即目标服务)的调用;具体的,API网关可以根据调用请求和确定出来的目标服务,来确定该客户端是否具备该目标服务的调用权限。
步骤S14:在所述客户端具备所述目标服务的调用权限的情况下,将所述调用请求转发至所述目标服务。
本实施例中,API网关根据调用请求确定出客户端具备目标服务的调用权限的情况下,此时代表发送调用请求的客户端已经通过了API网关的相关安全验证,API网关即可确定该客户端安全且具备目标服务的调用权限,此时API网关可以将该调用请求转发至目标服务,以使得客户端可以安全调用目标服务。
在本实施例中,在微服务的上游设置API网关,通过API网关实现客户端的各项安全验证(如身份验证和权限验证等),只有经API网关全部安全验证通过的调用请求才会被转发至目标服务,实现目标服务的安全调用;而目标服务无需再进行任何关于安全方面的验证,节约了目标服务的使用资源;同时,业务开发人员只需在API网关针对接入API网关的微服务开启安全验证的功能并配置相应的数据,而不再需要在微服务内部引入安全框架并自定义开发,从而在实现了微服务与安全框架解耦的基础上,降低了开发成本,提升了业务开发人员的开发效率。
结合以上实施例,在一实施方式中,本发明实施例还提供了一种安全验证方法。具体地,在该方法中,在上述步骤S11中的“根据所述调用请求对所述客户端进行身份验证”具体可以包括步骤S21-步骤S23:
步骤S21:根据所述调用请求中的请求头和请求参数,获取用户标识信息。
本实施例中,API网关可以根据接收到的调用请求,获取调用请求中的请求头和请求参数,并通过调用请求中的请求参数和请求头组合的方式,来解码获取用户标识信息,该用户标识信息包括用户唯一标识,用户标识信息表征了用户是谁以及用户登录了哪个客户端。在一实施方式中,可以是API网关通过调用请求中的请求参数和请求头,获取客户端标识和用户标识,API网关事先配置有键值对(客户端标识+用户标识为键,用户唯一标识为相对应的值),API网关可通过获取到的客户端标识和用户标识获取对应的用户唯一标识。
步骤S22:查询所述用户标识信息是否存在于缓存中,所述缓存中存储有登录所述客户端的用户的用户标识信息。
本实施例中,如果用户通过账号密码在客户端进行了登录,使得客户端处于登录状态,那么缓存中就会存储有登录该客户端的用户的用户标识信息。也即,本实施例的缓存中存储有登录客户端的所有用户的用户标识信息,其中本实施例的缓存可以是指API网关的内部缓存,即API网关本地缓存,也可以是指API网关的外部缓存,如某一外部数据库,本实施例对此不作具体限制。
API网关根据调用请求的请求头和请求参数获取到用户标识信息后,可以查询该用户标识信息是否存在与缓存中,以判断该客户端是否处于登录状态,从而进行客户端的身份验证。
步骤S23:若所述用户标识信息存在于所述缓存中,确定所述客户端身份验证通过。
本实施例中,若API网关确定用户标识存在与缓存中,API网关可以确定发送调用请求的客户端处于登录状态,确定该客户端身份验证通过。
而若API网关确定用户标识不存在与缓存中,API网关可以确定发送调用请求的客户端处于未登录状态,此时根据请求头和请求参数获取到的用户标识信息表征的是游客身份登录了客户端,无法获取到操控该客户端发送调用请求的用户的真实身份信息,此时API网关即可确定该客户端身份验证未通过。
在本实施例中,通过调用请求中的请求头和请求参数获取用户标识信息,再通过确定用户标识信息是否存在于缓存中来判断获取到的用户标识信息为未登录客户端的游客信息还是登陆客户端的真实用户身份信息,从而精准进行客户端的身份验证,确保未登录状态的客户端无法进行目标服务的调用,进一步保证了微服务架构的安全性。
在一实施方式中,参见图2,图2是本发明一实施例示出的一种身份验证的流程示意图。如图2所示,API网关可以通过调用请求获取到调用请求中指定的请求头和请求参数,然后根据指定的请求头和请求参数解码获取到用户唯一标识,该用户唯一标识对应了用户标识+客户端标识,表征操纵客户端标识对应的客户端发送调用请求的用户标识所对应的用户。API网关获取到用户唯一标识,根据用户唯一标识查询缓存,判断缓存是否命中,即判断获取到的用户唯一标识是否存在于缓存中。其中缓存(API网关本地缓存或外部数据库缓存)中存储了所有登录客户端的用户的用户唯一标识。当缓存命中时,API网关确定客户端处于登录状态,客户端身份验证通过;当缓存没有命中时,API网关确定客户端处于未登录状态,客户端身份验证未通过,此时可以根据需求决定API网关是响应指定状态码,还是重定向到登录页。其中,可以是根据客户端的类型来决定是响应指定状态码,还是重定向到登录页:例如当客户端为APP时,因为重定向登录页面是APP端自身做的事情,因此API网关可以向客户端返回指定的状态码来通知客户端自己去重定向到登录页面,以实现用户登录客户端,从而进行再次的身份验证;而当客户端为网页浏览器端时,API网关就能直接重定向登录页,以实现用户登录客户端,从而进行再次的身份验证。
结合以上实施例,在一实施方式中,本发明实施例还提供了一种安全验证方法。在该方法中,上述步骤S13具体可以包括步骤S31-步骤S34:
步骤S31:根据所述用户标识信息,向权限中心发送权限获取请求,获取所述用户标识信息对应的第一权限信息。
本实施例中,API网关可以根据身份验证时获取到的用户标识信息,向权限中心发送权限获取请求,该权限获取请求携带用户标识信息,以向权限中心请求与该用户标识信息相对应的第一权限信息。权限中心接收到权限获取请求后,可根据权限获取请求携带的用户标识信息查询与该用户标识信息相对应的第一权限信息并返回给API网关,从而使得API网关获取到该用户标识信息对应的第一权限信息。
其中,权限中心与API网关为两个独立的部分,权限中心只用于维护登录客户端的用户具有哪些权限,即保存了用户及客户端、与权限的对应关系,第一权限信息指的是与用户标识信息所对应的权限信息,第一权限信息可以包括一个或多个权限信息。
步骤S32:根据所述目标服务,在所述服务权限信息中确定所述目标服务对应的第二权限信息。
本实施例中,API网关本身具有数据管理、数据存储功能,开发人员可以直接在API网关中事先配置好各微服务所对应的权限信息,使得API网关事先配置有服务权限信息,该服务权限信息包括多个服务所对应的权限信息,其中这里的服务即指微服务,即API接口。
API网关可以根据确定出来的目标服务,在API网关事先配置的服务权限信息中进行查询,从而确定出该目标服务所对应的第二权限信息。其中,第二权限信息指的是与目标服务所对应的权限信息,第二权限信息可以包括一个或多个权限信息。
步骤S33:比较所述第一权限信息和所述第二权限信息。
本实施例中,API网关确定出第一权限信息和第二权限信息后,可以将第一权限信息与第二权限信息进行比较。
步骤S34:若所述第一权限信息中的权限信息与所述第二权限信息中的权限信息匹配,确定所述客户端具备所述目标服务的调用权限。
本实施例中,API网关对第一权限信息与第二权限信息进行比较后,若确定第一权限信息中的权限信息与第二权限信息中的权限信息匹配,则可以确定该客户端具备目标服务的调用权限。
其中,由于第一权限信息和第二权限信息均可以包括一个或多个权限信息,因此,本实施例中第一权限信息中的权限信息与第二权限信息中的权限信息匹配可以是指第一权限信息中存在与第二权限信息中相同的权限信息。即可以是指的第一权限信息中的任一权限信息与第二权限信息中的任一权限信息相同,也可以是指第一权限信息中的多个权限信息分别与第二权限信息中的多个权限信息相同。
本实施例中,权限中心没有办法确定接口与权限的关系,因为它只维护了登录客户端的用户跟权限的关系;而API网关没有办法确定登录客户端的用户与权限的关系,因为它只维护了微服务与权限的关系。当API网关获取到用户标识信息后,就可以通过权限中心知道登录该客户端的该用户对应有哪些权限,然后拿着目标服务对应的权限信息去登录客户端的用户对应的权限里进行筛选,如果有相同的权限,则认为匹配成功,即可确定客户端的权限验证通过。
示例的,API网关经身份验证获取到登录客户端W的张三的用户标识信息为A,并根据登录客户端W的张三的用户标识信息A在权限中心中确定出登录客户端W的张三对应的第一权限信息中有权限a、权限b和权限c;接着API网关根据目标服务B在服务权限信息中确定出目标服务B这个API接口对应的第二权限信息中有权限a和权限f;API网关经过比较后确定第一权限信息和第二权限信息中均有权限a,则可确定权限信息匹配,确定客户端具备目标服务的调用权限。
在本实施例中,API网关通过权限中心获取用户标识信息对应的第一权限信息,根据目标服务在事先配置的服务权限信息中确定目标服务对应的第二权限信息,从而通过第一权限信息和第二权限信息的比较来确定客户端是否具备目标服务的调用权限,从而通过API网关统筹进行客户端的权限精准验证。
在一实施方式中,参见图3,图3是本发明一实施例示出的一种权限验证的流程示意图。如图3所示,API网关通过之前的身份验证可以获取到缓存的用户信息(即上述用户标识信息),从而根据用户信息向权限中心请求获取用户权限(即上述用户标识信息对应的第一权限信息),由于API网关和权限中心为两个完全独立的部分,可能存在API网关与权限中心无法正常通信的情况,因此需要进行是否获取到用户权限的判断。
当API网关与权限中心无法正常通信,确定无法获取到用户权限时,API网关可以根据预设的默认约定配置(即API网关中预先配置有API网关与权限中心无法正常通信时是否允许客户端访问的约定配置),来直接确定该调用请求能否直接转发至目标服务(即需被调用的服务API)。如果API网关上配置在无法与权限中心正常通信时允许客户端访问,则API网关可以直接将该调用请求转发到被调用的服务API中;如果网关上配置在无法与权限中心正常通信时不允许客户端访问,则API网关不会将该调用请求转发到被调用的服务API中,而是直接向客户端响应异常信息。
当API网关与权限中心可以正常通信,确定获取到用户权限时,可以通过目标服务(即被调用服务API)在API网关事先配置的接口权限码中确定目标服务对应的接口权限码(即目标服务对应的第二权限信息),将用户权限与目标服务对应的接口权限码进行比较,判断权限信息是否匹配,当用户权限与接口权限码中存在相同的权限信息时,确定权限匹配,API网关可以直接将该调用请求转发到被调用的服务API中;当用户权限与接口权限码中不存在相同的权限信息时,确定权限不匹配,API网关不会将该调用请求转发到被调用的服务API中,而是直接向客户端响应异常信息。
结合以上实施例,在一实施方式中,本发明实施例还提供了一种安全验证方法。该方法中,在上述步骤S11中的“根据所述调用请求对所述客户端进行身份验证”之前,该方法还包括步骤S41和步骤S42,上述步骤S11中的“根据所述调用请求对所述客户端进行身份验证”具体可以包括步骤S43:
步骤S41:根据所述调用请求中的请求属性,确定所述调用请求的来源,所述请求属性至少包括以下一者或多者:请求参数、请求头。
本实施例中,API网关接收到客户端发送的调用请求后,可以先根据调用请求中的请求属性,确定该调用请求的来源。其中,请求属性至少包括以下一者或多者:请求参数、请求头。
此外,另一实施例中,在一些情况下请求属性可以至少包括以下一者或多者:请求参数、请求头、请求体,即API网关可以是根据调用请求的请求参数、请求头、请求体中的一者或多者来确定调用请求的来源。
步骤S42:根据所述调用请求的来源,确定所述调用请求是否在所述允许调用的范围或所述不允许调用的范围内。
本实施例中,开发人员还可以直接在API网关中事先配置好调用请求的允许来源范围或不允许来源范围,即API网关支持事先配置好调用请求的允许来源范围与调用请求的不允许来源范围之间的一者,使得API网关事先配置有调用请求的允许调用的范围或不允许调用的范围,该调用请求的允许调用的范围即指调用请求的来源所允许存在的范围,该调用请求的不允许调用的范围即指调用请求的来源所不允许存在的范围,本实施例的调用请求的允许调用的范围或不允许调用的范围可以根据需求自由设定,本实施例对此不作限制。
API网关在获取到调用请求的来源后,可以根据该调用请求的来源,确定该调用请求的来源是否存在于该调用请求的允许调用的范围或该调用请求的不允许调用的范围内。若API网关事先配置有调用请求的允许调用的范围,且确定该调用请求的来源存在于该调用请求的允许调用的范围,API网关可确定该调用请求在允许调用的范围内;若确定该调用请求的来源不存在于该调用请求的允许调用的范围,API网关可确定该调用请求不在允许调用的范围内。
而若API网关事先配置有调用请求的不允许调用的范围,且确定该调用请求的来源存在于该调用请求的不允许调用的范围,API网关可确定该调用请求在不允许调用的范围内;若确定该调用请求的来源不存在于该调用请求的不允许调用的范围,API网关可确定该调用请求不在不允许调用的范围内。
步骤S43:在所述调用请求在所述允许调用的范围内或所述调用请求不在所述不允许调用的范围内的情况下,根据所述调用请求对所述客户端进行身份验证。
本实施例中,在API网关确定调用请求在允许调用的范围内的情况下,或在API网关确定调用请求不在该不允许调用的范围内的情况下,API网关确定该调用请求安全可信,API网关可以进一步根据调用请求对客户端进行身份验证。
而在API网关确定调用请求不在允许调用的范围内的情况下,或在API网关确定调用请求在该不允许调用的范围内的情况下,API网关确定该调用请求不可信,API网关不会进行再根据调用请求对客户端进行身份验证,而是直接向客户端返回异常响应。
在本实施例中,API网关在接收到客户端发送的调用请求之后,会先进行调用请求是否安全可信的判断,即进行调用请求的来源是否在允许调用的范围内或是否在不允许调用的范围内的判断,在调用请求安全可信验证通过后,再进行后续的身份验证和权限验证,从而在API网关中实现全部的安全验证,只有当三重验证(请求是否可信验证、身份验证、权限验证)均通过后,API网关才会将调用请求转发至所需调用的目标服务,从而通过API网关实现了全方位的安全管理。
结合以上任一实施例,在一实施方式中,本发明实施例还提供了一种安全验证方法。在该方法中,不同的调用请求的允许调用的范围或不允许调用的范围可能对应着不同的调用请求中的请求属性,这些可以根据实际需求决定,对此不作限制。当允许调用的范围为客户端IP地址白名单列表或不允许调用的范围为客户端IP地址黑名单列表时,调用属性可以仅包括请求头,调用请求的来源包括客户端的IP地址;上述步骤S41可以具体包括步骤S51,上述步骤S42具体包括步骤S52:
步骤S51:根据所述调用请求中的请求头,确定所述客户端的IP地址。
本实施例中,API网关可以根据调用请求中的请求头,确定出客户端的IP地址。实际上,客户端是接入公网访问也好,还是用内网设备访问也好,客户端都有一个唯一的访问IP地址,本实施例中客户端的IP地址即为客户端访问IP地址,客户端的IP地址表征了调用请求来源于哪个具体的客户端。
步骤S52:根据所述客户端的IP地址,确定所述客户端的IP地址是否在所述客户端IP地址白名单列表或所述客户端IP地址黑名单列表内。
本实施例中,当API网关事先配置有一个具体的允许调用的客户端IP地址的列表,即为客户端IP地址白名单列表时,只有存在于客户端IP地址白名单列表内的IP地址所对应的客户端发起的调用请求才处于允许调用的范围内。
API网关获取到客户端的IP地址后,可以将获取到的客户端的IP地址与客户端IP地址白名单列表中的IP地址进行比较,确定该客户端的IP地址是否在API网关事先配置好的客户端IP地址白名单列表内;若客户端的IP地址存在于API网关事先配置的客户端IP地址白名单列表内,API网关可确定调用请求在允许调用的范围,则该调用请求安全可信,可进一步进行后续的身份验证;若客户端的IP地址不存在于API网关事先配置的客户端IP地址白名单列表内,API网关可确定调用请求不在允许调用的范围,则该调用请求不可信,不可进行后续的身份验证,直接向客户端返回异常响应。
而当API网关事先配置有一个具体的不允许调用的客户端IP地址的列表,即为客户端IP地址黑名单列表时,只有存在于客户端IP地址黑名单列表内的IP地址所对应的客户端发起的调用请求才处于不允许调用的范围内。
API网关获取到客户端的IP地址后,可以将获取到的客户端的IP地址与客户端IP地址黑名单列表中的IP地址进行比较,确定该客户端的IP地址是否在API网关事先配置好的客户端IP地址黑名单列表内;若客户端的IP地址不存在于API网关事先配置的客户端IP地址黑名单列表内,API网关可确定调用请求不在不允许调用的范围,则该调用请求安全可信,可进一步进行后续的身份验证;若客户端的IP地址存在于API网关事先配置的客户端IP地址黑名单列表内,API网关可确定调用请求在不允许调用的范围,则该调用请求不可信,不可进行后续的身份验证,直接向客户端返回异常响应
当允许调用的范围为客户端白名单列表或不允许调用的范围为客户端黑名单列表时,调用属性可以包括请求头或请求参数,调用请求的来源包括客户端的标识信息;上述步骤S41可以具体包括步骤S53,上述步骤S42和可以具体包括步骤S54:
步骤S53:根据所述调用请求中的请求头或请求参数,确定所述客户端的标识信息。
本实施例中,API网关可以根据调用请求中的请求头或请求参数,确定客户端的标识信息,该客户端的标识信息可以为调用请求中携带的能标识出客户端的信息,客户端的标识信息表征调用请求来源于哪类客户端,本实施例的客户端的标识信息至少包括客户端标识。
步骤S54:根据所述客户端的标识信息,确定所述客户端的标识信息是否在所述客户端白名单列表或所述客户端黑名单列表内。
本实施例中,当API网关事先配置有一个具体的允许调用的客户端标识信息的列表,即为客户端白名单列表时,API网关可通过不同客户端携带的不同标识信息来限制只能某种客户端来实现调用服务的功能,例如可以通过本实施例限制只有A浏览器和B浏览器才能实现调用服务的功能,除A浏览器和B浏览器之外的其他客户端均不能实现调用服务,从而来限制具体的客户端类型的访问,以进行精确匹配或模糊匹配。只有存在于客户端白名单列表内的标识信息所对应的客户端发起的调用请求才处于允许调用的范围内。
API网关获取到客户端的标识信息后,可以将获取到的客户端的标识信息与客户端白名单列表中的标识信息进行比较,确定该客户端的标识信息是否在API网关事先配置好的客户端白名单列表内;若客户端的标识信息存在于API网关事先配置的客户端白名单列表内,API网关可确定调用请求在允许调用的范围,则该调用请求安全可信,可进一步进行后续的身份验证;若客户端的标识信息不存在于API网关事先配置的客户端白名单列表内,API网关可确定调用请求不在允许调用的范围,则该调用请求不可信,不可进行后续的身份验证,直接向客户端返回异常响应。
而当API网关事先配置有一个具体的不允许调用的客户端标识信息的列表,即为客户端黑名单列表时,API网关可通过不同客户端携带的不同标识信息来限制只能某种客户端来实现调用服务的功能,例如可以通过本实施例限制只有A浏览器和B浏览器不能实现调用服务的功能,除A浏览器和B浏览器之外的其他客户端均可以实现调用服务,从而来限制具体的客户端类型的访问,以进行精确匹配或模糊匹配。只有存在于客户端黑名单列表内的标识信息所对应的客户端发起的调用请求才处于不允许调用的范围内。
API网关获取到客户端的标识信息后,可以将获取到的客户端的标识信息与客户端黑名单列表中的标识信息进行比较,确定该客户端的标识信息是否在API网关事先配置好的客户端黑名单列表内;若客户端的标识信息不存在于API网关事先配置的客户端黑名单列表内,API网关可确定调用请求在允许调用的范围,则该调用请求安全可信,可进一步进行后续的身份验证;若客户端的标识信息存在于API网关事先配置的客户端黑名单列表内,API网关可确定调用请求在不允许调用的范围,则该调用请求不可信,不可进行后续的身份验证,直接向客户端返回异常响应。
结合以上任一实施例,在一实施方式中,本发明实施例还提供了一种安全验证方法。在该方法中,上述步骤中的“进行身份验证”、“进行是否具备目标服务的调用权限的验证”,以及“进行调用请求是否在允许调用的范围或不允许调用的范围内的确定”均支持以插件的形式在API网关中体现。即本实施例中API网关的三个安全验证功能(身份验证、权限验证和请求可信验证)均支持以一个插件的形式进行体现,且三个插件的验证功能均支持开启和关闭。在该方法中,除上述步骤外,还可以包括步骤S61:
步骤S61:响应于开启或关闭操作,开启或关闭所述插件的功能。
本实施例中,API网关可以响应于开发人员在API网关中的开启或关闭操作,开启或关闭对应的插件的功能。
例如,当开发人员在API网关中针对“请求可信验证”的插件进行开启操作时,API网关可以响应于该开启操作,开启该“请求可信验证”的插件的功能,使得API网关会对调用请求进行请求是否可信的验证,即API网关会对调用请求进行是否在允许调用的范围或不允许调用的范围内的确定。
又例如,当开发人员在API网关中针对“权限验证”的插件进行关闭操作时,API网关可以响应于该关闭操作,关闭该“权限验证”的插件的功能,使得API网关不会进行权限验证。
在本实施例中,在API网关层上,通过对调用请求增加各种安全验证功能的插件,实现了API网关的安全管理功能。具体的,API网关的安全验证功能均支持以插件的形式进行体现,并能够根据需求自由确定各验证功能的开启或关闭,从而使得各种身份验证和权限验证等安全方面的控制均在API网关上实现,微服务接入到API网关并开启相关功能插件之后,业务开发人员可不再编写微服务中安全管理方面的代码,实现了微服务与安全管理功能的解耦,并且提升了业务开发人员的开发效率。
结合以上实施例,在一优选实施例中,API网关上配置的“请求可信验证(即进行调用请求是否在允许调用的范围或不允许调用的范围内的确定)”的插件可以是一个支持全局的“验证请求是否可信”功能类型的插件,也可以是一个支持局部的“验证请求是否可信”功能类型的插件,本实施例可以根据实际业务需求决定“验证请求是否可信”的功能维度(即为全局请求可信验证、还是局部请求可信验证)。
当API网关上配置的“请求可信验证”的插件为全局请求可信验证的情况下,API网关在“请求可信验证”的插件功能开启后,会对接收到的所有调用请求进行“请求可信验证”。
当API网关上配置的“请求可信验证”的插件为局部请求可信验证的情况下,API网关事先配置有需要进行请求可信验证的微服务范围或无需进行请求可信验证的微服务范围,该需要进行请求可信验证的微服务范围或无需进行请求可信验证的微服务范围均可自由设定,如可以包括一个或一组(多个)微服务(API)。API网关在“请求可信验证”的插件功能开启后,会对接收到的所有调用请求进行是否进行“请求可信验证”的判断,如API网关根据调用请求确定客户端所请求调用的目标服务在需要进行请求可信验证的微服务范围内或不在无需进行请求可信验证的微服务范围内,则需对该调用请求进行“请求可信验证”;如API网关根据调用请求确定客户端所请求调用的目标服务不在需要进行请求可信验证的微服务范围内或在无需进行请求可信验证的微服务范围内,则无需对该调用请求进行“请求可信验证”,可以直接根据API网关上的插件配置进行后续的身份验证和/或权限验证。
在一实施方式中,参见图4,图4是本发明一实施例示出的一种安全验证的流程示意图。如图4所示,客户端发起调用请求,API网关拦截该调用请求,API网关通过开发人员针对“调用请求是否可信”的插件的操作,确定是否验证调用请求是否可信;当确定无需验证调用请求是否可信时,直接将该调用请求转发到被调用服务(即目标服务)上;当确定需要验证调用请求是否可信时,进行调用请求是否可信的验证。
当API网关确定该调用请求不可信时,API网关直接向客户端返回异常响应并结束该流程;当API网关确定该调用请求可信时,API网关通过开发人员针对“身份验证”的插件的操作,确定是否进行客户端的身份验证;当确定无需对客户端进行身份验证时,直接将该调用请求转发到被调用服务(即目标服务)上;当确定需要对客户端进行身份验证时,进行客户端的身份验证,判断身份验证是否通过。
当API网关确定客户端身份验证不通过时,API网关直接向客户端返回异常响应并结束该流程;当API网关确定客户端身份验证通过时,API网关通过开发人员针对“权限验证”的插件的操作,确定是否进行客户端的权限验证;当确定无需对客户端进行权限验证时,直接将该调用请求转发到被调用服务(即目标服务)上;当确定需要对客户端进行权限验证时,进行客户端的权限验证,判断权限验证是否通过。
当API网关确定客户端权限验证不通过时,API网关直接向客户端返回异常响应并结束该流程;当API网关确定客户端权限验证通过时,直接将该调用请求转发到被调用服务(即目标服务)上,结束该流程。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
基于同一发明构思,本发明一实施例提供了一种安全验证装置500,该安全验证装置500可应用于API网关。参考图5,图5是本发明一实施例提供的安全验证装置的结构框图。如图5所示,该安全验证装置500包括:
身份验证模块501,用于接收客户端发送的调用请求,根据所述调用请求对所述客户端进行身份验证;
目标服务确定模块502,用于在所述客户端身份验证通过的情况下,根据所述调用请求确定所述客户端请求调用的目标服务;
权限验证模块503,用于根据所述调用请求验证所述客户端是否具备所述目标服务的调用权限;
请求转发模块504,用于在所述客户端具备所述目标服务的调用权限的情况下,将所述调用请求转发至所述目标服务。
可选的,所述身份验证模块501,包括:
用户标识确定模块,用于根据所述调用请求中的请求头和请求参数,获取用户标识信息;
用户标识查询模块,用于查询所述用户标识信息是否存在于缓存中,所述缓存中存储有登录所述客户端的用户的用户标识信息;
第一身份验证子模块,用于若所述用户标识信息存在于所述缓存中,确定所述客户端身份验证通过。
可选的,所述API网关事先配置有服务权限信息,所述服务权限信息包括多个服务对应的权限信息;所述权限验证模块503,包括:
第一权限确定模块,用于根据所述用户标识信息,向权限中心发送权限获取请求,获取所述用户标识信息对应的第一权限信息;
第二权限确定模块,用于根据所述目标服务,在所述服务权限信息中确定所述目标服务对应的第二权限信息;
权限比较模块,用于比较所述第一权限信息和所述第二权限信息;
权限验证子模块,用于若所述第一权限信息中的权限信息与所述第二权限信息中的权限信息匹配,确定所述客户端具备所述目标服务的调用权限。
可选的,所述API网关事先配置有所述调用请求的允许调用的范围或不允许调用的范围;所述装置500还包括:
请求来源确定模块,用于在所述根据所述调用请求对所述客户端进行身份验证之前,根据所述调用请求中的请求属性,确定所述调用请求的来源,所述请求属性至少包括以下一者或多者:请求参数、请求头;
请求可信验证模块,用于根据所述调用请求的来源,确定所述调用请求是否在所述允许调用的范围或所述不允许调用的范围内;
所述身份验证模块501,包括:
第二身份验证子模块,用于在所述调用请求在所述允许调用的范围内或所述调用请求不在所述不允许调用的范围内的情况下,根据所述调用请求对所述客户端进行身份验证。
可选的,当所述允许调用的范围为客户端IP地址白名单列表或所述不允许调用的范围为客户端IP地址黑名单列表时,所述请求来源确定模块,包括:
地址确定模块,用于根据所述调用请求中的请求头,确定所述客户端的IP地址;
所述请求可信验证模块,包括:
第一请求可信验证子模块,用于根据所述客户端的IP地址,确定所述客户端的IP地址是否在所述客户端IP地址白名单列表或所述客户端IP地址黑名单列表内;
当所述允许调用的范围为客户端白名单列表或所述不允许调用的范围为客户端黑名单列表时,所述请求来源确定模块,包括:
客户端确定模块,用于根据所述调用请求中的请求头或请求参数,确定所述客户端的标识信息;
所述请求可信验证模块,包括:
第二请求可信验证子模块,用于根据所述客户端的标识信息,确定所述客户端的标识信息是否在所述客户端白名单列表或所述客户端黑名单列表内。
可选的,所述进行身份验证、进行是否具备所述目标服务的调用权限的验证,以及进行所述调用请求是否在允许调用的范围或不允许调用的范围内的确定均支持以插件的形式在所述APP网关中体现;
所述装置500还包括:
插件开关模块,用于响应于开启或关闭操作,开启或关闭所述插件的功能。
基于同一发明构思,本发明另一实施例提供一种电子设备600,如图6所示。图6是本发明一实施例示出的一种电子设备的示意图。该电子设备包括处理器601、存储器602及存储在存储器602上并可在处理器601上运行的计算机程序,所述计算机程序被所述处理器执行时实现本发明上述任一实施例所述的安全验证方法中的步骤。
基于同一发明构思,本发明另一实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现如本发明上述任一实施例所述的安全验证方法中的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (14)

1.一种安全验证方法,其特征在于,应用于API网关,所述方法包括:
接收客户端发送的调用请求,根据所述调用请求对所述客户端进行身份验证;
在所述客户端身份验证通过的情况下,根据所述调用请求确定所述客户端请求调用的目标服务;
根据所述调用请求验证所述客户端是否具备所述目标服务的调用权限;
在所述客户端具备所述目标服务的调用权限的情况下,将所述调用请求转发至所述目标服务。
2.根据权利要求1所述的安全验证方法,其特征在于,所述根据所述调用请求对所述客户端进行身份验证,包括:
根据所述调用请求中的请求头和请求参数,获取用户标识信息;
查询所述用户标识信息是否存在于缓存中,所述缓存中存储有登录所述客户端的用户的用户标识信息;
若所述用户标识信息存在于所述缓存中,确定所述客户端身份验证通过。
3.根据权利要求2所述的安全验证方法,其特征在于,所述API网关事先配置有服务权限信息,所述服务权限信息包括多个服务对应的权限信息;所述根据所述调用请求验证所述客户端是否具备所述目标服务的调用权限,包括:
根据所述用户标识信息,向权限中心发送权限获取请求,获取所述用户标识信息对应的第一权限信息;
根据所述目标服务,在所述服务权限信息中确定所述目标服务对应的第二权限信息;
比较所述第一权限信息和所述第二权限信息;
若所述第一权限信息中的权限信息与所述第二权限信息中的权限信息匹配,确定所述客户端具备所述目标服务的调用权限。
4.根据权利要求1所述的安全验证方法,其特征在于,所述API网关事先配置有所述调用请求的允许调用的范围或不允许调用的范围;在所述根据所述调用请求对所述客户端进行身份验证之前,所述方法还包括:
根据所述调用请求中的请求属性,确定所述调用请求的来源,所述请求属性至少包括以下一者或多者:请求参数、请求头;
根据所述调用请求的来源,确定所述调用请求是否在所述允许调用的范围或所述不允许调用的范围内;
所述根据所述调用请求对所述客户端进行身份验证,包括:
在所述调用请求在所述允许调用的范围内或所述调用请求不在所述不允许调用的范围内的情况下,根据所述调用请求对所述客户端进行身份验证。
5.根据权利要求4所述的安全验证方法,其特征在于,当所述允许调用的范围为客户端IP地址白名单列表或所述不允许调用的范围为客户端IP地址黑名单列表时,所述根据所述调用请求中的请求属性,确定所述调用请求的来源,包括:
根据所述调用请求中的请求头,确定所述客户端的IP地址;
所述根据所述调用请求的来源,确定所述调用请求是否在所述允许调用的范围或所述不允许调用的范围内,包括:
根据所述客户端的IP地址,确定所述客户端的IP地址是否在所述客户端IP地址白名单列表或所述客户端IP地址黑名单列表内;
当所述允许调用的范围为客户端白名单列表或所述不允许调用的范围为客户端黑名单列表时,所述根据所述调用请求中的请求属性,确定所述调用请求的来源,包括:
根据所述调用请求中的请求头或请求参数,确定所述客户端的标识信息;
所述根据所述调用请求的来源,确定所述调用请求是否在所述允许调用的范围或所述不允许调用的范围内,包括:
根据所述客户端的标识信息,确定所述客户端的标识信息是否在所述客户端白名单列表或所述客户端黑名单列表内。
6.根据权利要求4所述的安全验证方法,其特征在于,所述进行身份验证、进行是否具备所述目标服务的调用权限的验证,以及进行所述调用请求是否在允许调用的范围或不允许调用的范围内的确定均支持以插件的形式在所述APP网关中体现;
所述方法还包括:
响应于开启或关闭操作,开启或关闭所述插件的功能。
7.一种安全验证装置,其特征在于,所述装置包括:
身份验证模块,用于接收客户端发送的调用请求,根据所述调用请求对所述客户端进行身份验证;
目标服务确定模块,用于在所述客户端身份验证通过的情况下,根据所述调用请求确定所述客户端请求调用的目标服务;
权限验证模块,用于根据所述调用请求验证所述客户端是否具备所述目标服务的调用权限;
请求转发模块,用于在所述客户端具备所述目标服务的调用权限的情况下,将所述调用请求转发至所述目标服务。
8.根据权利要求7所述的安全验证装置,其特征在于,所述身份验证模块,包括:
用户标识确定模块,用于根据所述调用请求中的请求头和请求参数,获取用户标识信息;
用户标识查询模块,用于查询所述用户标识信息是否存在于缓存中,所述缓存中存储有登录所述客户端的用户的用户标识信息;
第一身份验证子模块,用于若所述用户标识信息存在于所述缓存中,确定所述客户端身份验证通过。
9.根据权利要求8所述的安全验证装置,其特征在于,所述API网关事先配置有服务权限信息,所述服务权限信息包括多个服务对应的权限信息;所述权限验证模块,包括:
第一权限确定模块,用于根据所述用户标识信息,向权限中心发送权限获取请求,获取所述用户标识信息对应的第一权限信息;
第二权限确定模块,用于根据所述目标服务,在所述服务权限信息中确定所述目标服务对应的第二权限信息;
权限比较模块,用于比较所述第一权限信息和所述第二权限信息;
权限验证子模块,用于若所述第一权限信息中的权限信息与所述第二权限信息中的权限信息匹配,确定所述客户端具备所述目标服务的调用权限。
10.根据权利要求7所述的安全验证装置,其特征在于,所述API网关事先配置有所述调用请求的允许调用的范围或不允许调用的范围;所述装置还包括:
请求来源确定模块,用于在所述根据所述调用请求对所述客户端进行身份验证之前,根据所述调用请求中的请求属性,确定所述调用请求的来源,所述请求属性至少包括以下一者或多者:请求参数、请求头;
请求可信验证模块,用于根据所述调用请求的来源,确定所述调用请求是否在所述允许调用的范围或所述不允许调用的范围内;
所述身份验证模块,包括:
第二身份验证子模块,用于在所述调用请求在所述允许调用的范围内或所述调用请求不在所述不允许调用的范围内的情况下,根据所述调用请求对所述客户端进行身份验证。
11.根据权利要求10所述的安全验证装置,其特征在于,当所述允许调用的范围为客户端IP地址白名单列表或所述不允许调用的范围为客户端IP地址黑名单列表时,所述请求来源确定模块,包括:
地址确定模块,用于根据所述调用请求中的请求头,确定所述客户端的IP地址;
所述请求可信验证模块,包括:
第一请求可信验证子模块,用于根据所述客户端的IP地址,确定所述客户端的IP地址是否在所述客户端IP地址白名单列表或所述客户端IP地址黑名单列表内;
当所述允许调用的范围为客户端白名单列表或所述不允许调用的范围为客户端黑名单列表时,所述请求来源确定模块,包括:
客户端确定模块,用于根据所述调用请求中的请求头或请求参数,确定所述客户端的标识信息;
所述请求可信验证模块,包括:
第二请求可信验证子模块,用于根据所述客户端的标识信息,确定所述客户端的标识信息是否在所述客户端白名单列表或所述客户端黑名单列表内。
12.根据权利要求10所述的安全验证装置,其特征在于,所述进行身份验证、进行是否具备所述目标服务的调用权限的验证,以及进行所述调用请求是否在允许调用的范围或不允许调用的范围内的确定均支持以插件的形式在所述APP网关中体现;
所述装置还包括:
插件开关模块,用于响应于开启或关闭操作,开启或关闭所述插件的功能。
13.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至6中任一项所述的安全验证方法的步骤。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的安全验证方法的步骤。
CN202211119495.0A 2022-09-14 2022-09-14 安全验证方法、装置、电子设备及存储介质 Pending CN115622736A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211119495.0A CN115622736A (zh) 2022-09-14 2022-09-14 安全验证方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211119495.0A CN115622736A (zh) 2022-09-14 2022-09-14 安全验证方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115622736A true CN115622736A (zh) 2023-01-17

Family

ID=84858417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211119495.0A Pending CN115622736A (zh) 2022-09-14 2022-09-14 安全验证方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115622736A (zh)

Similar Documents

Publication Publication Date Title
CN112039909B (zh) 基于统一网关的认证鉴权方法、装置、设备及存储介质
EP3251324B1 (en) Secure access to cloud-based services
US8332919B2 (en) Distributed authentication system and distributed authentication method
US7428746B2 (en) System and method for secure network connectivity
KR101265305B1 (ko) 부정적인 인터넷 계정 액세스 방지
US8347403B2 (en) Single point authentication for web service policy definition
US7591017B2 (en) Apparatus, and method for implementing remote client integrity verification
US8990911B2 (en) System and method for single sign-on to resources across a network
US8006289B2 (en) Method and system for extending authentication methods
US9781096B2 (en) System and method for out-of-band application authentication
US20090328187A1 (en) Distributed web application firewall
CN114995214A (zh) 远程访问应用的方法、系统、装置、设备及存储介质
FI128171B (en) network authentication
CN113434836A (zh) 一种身份认证方法、装置、设备及介质
EP2392114B1 (en) Secure web-based service provision
US20190289014A1 (en) Methods and Apparatus for Controlling Application-Specific Access to a Secure Network
KR20070009490A (ko) 아이피 주소 기반 사용자 인증 시스템 및 방법
CN115622736A (zh) 安全验证方法、装置、电子设备及存储介质
CN112491895A (zh) 一种基于微服务的身份认证方法、存储介质及系统
CN113065161A (zh) 针对Redis数据库的安全控制方法及装置
Ahmed Balancing security and usability in Web Single Sign-On
CN115694855A (zh) 一种认证方法、装置及设备
CN117061140A (zh) 一种渗透防御方法和相关装置
JP2023081604A (ja) 認証システム、認証端末、認証サーバ及び認証プログラム
CN118337519A (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