CN111147525A - 基于api网关的认证方法、系统、服务器和存储介质 - Google Patents

基于api网关的认证方法、系统、服务器和存储介质 Download PDF

Info

Publication number
CN111147525A
CN111147525A CN202010123397.9A CN202010123397A CN111147525A CN 111147525 A CN111147525 A CN 111147525A CN 202010123397 A CN202010123397 A CN 202010123397A CN 111147525 A CN111147525 A CN 111147525A
Authority
CN
China
Prior art keywords
authentication
client
hmac
request information
client request
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
CN202010123397.9A
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.)
Shenzhen Yolanda Technology Co ltd
Original Assignee
Shenzhen Yolanda 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 Shenzhen Yolanda Technology Co ltd filed Critical Shenzhen Yolanda Technology Co ltd
Priority to CN202010123397.9A priority Critical patent/CN111147525A/zh
Publication of CN111147525A publication Critical patent/CN111147525A/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/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/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例公开了一种基于API网关的认证方法、装置、服务器及存储介质,所述方法包括:获取客户端请求信息;获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;根据所述预设配置文件对所述客户端请求信息进行认证。本发明实施例实现了通过API网关建立一个统一的多重认证机制,提高认证效率,简化和保障了微服务层的数据调用安全。

Description

基于API网关的认证方法、系统、服务器和存储介质
技术领域
本发明实施例涉及网络安全技术领域,尤其涉及一种基于API网关的认证方法、系统、服务器和存储介质。
背景技术
近年来,随着微服务概念的提出,基于微服务架构的开发和集成模式逐渐成为热点。在微服务架构下,API(Application Programming Interface,应用程序编程接口)网关是为了保护内部服务而设计的一道屏障,通过提供高性能的API托管服务以帮助应用服务的开发人员便捷地对外提供服务,使得开发让人员不用考虑安全控制、流量控制、审计日志等问题。
由于API网关是终端用户访问系统的统一入口,而终端用户的访问少不了身份认证和授权,这是最常规的需求。传统的做法是终端用户每访问一个服务都需要进行一次认证和授权,且API网关通常只有一种认证机制,这种方式不仅认证和授权效率低下,而且认证方式单一,安全性较低。
发明内容
有鉴于此,本发明实施例提供一种基于API网关的认证方法、系统、服务器和存储介质,以实现通过API网关建立一个统一的多重认证机制,提高认证效率。
第一方面,本发明实施例提供一种基于API网关的认证方法,包括:
获取客户端请求信息;
获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;
根据所述预设配置文件对所述客户端请求信息进行认证。
进一步的,所述预设配置文件包括HMAC校验配置、OAuth2授权配置、JWT认证配置和用户中心认证配置。
进一步的,根据所述预设配置文件对所述客户端请求信息进行认证包括:
根据所述HMAC校验配置对所述客户端请求信息进行HMAC校验;
若所述客户端请求信息进行HMAC校验成功,则根据所述OAuth2授权配置对所述客户端请求信息进行OAuth2授权;
若OAuth2授权成功,则根据所述JWT认证配置对所述客户端请求信息进行JWT认证。
进一步的,对所述客户端请求信息进行HMAC校验包括:
获取客户端的HMAC校验秘钥;
从预设数据库中获取系统配置信息以生成参考HMAC秘钥;
判断所述HMAC校验秘钥与所述参考HMAC秘钥是否一致;
若所述HMAC校验秘钥与所述参考HMAC秘钥一致,则所述客户端请求信息进行HMAC校验成功;
若所述HMAC校验秘钥与所述参考HMAC秘钥不一致,则所述客户端请求信息进行HMAC校验失败。
进一步的,对所述客户端请求信息进行OAuth2授权包括:
获取用户信息以确定授权范围;
根据所述授权范围生成授权许可;
根据所述客户端请求信息和所述授权许可生成授权令牌,所述客户端请求信息进行OAuth2授权成功。
进一步的,对所述客户端请求信息进行JWT认证包括:
对所述用户信息进行JWT协议转换;
根据所述客户端请求信息生成JWT令牌。
进一步的,所述根据所述HMAC校验配置对所述客户端请求信息进行HMAC校验之后,还包括:
若所述客户端请求信息进行HMAC校验成功,则根据所述用户中心认证配置对所述客户端请求信息进行用户中心认证;
若所述用户中心认证成功,则根据所述OAuth2授权配置对所述客户端请求信息进行OAuth2授权。
第二方面,本发明实施例提供一种基于API网关的认证系统,包括:
客户端请求信息获取模块,用于获取客户端请求信息;
预设配置文件获取模块,用于获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;
认证模块,用于根据所述预设配置文件对所述客户端请求信息进行认证。
第三方面,本发明实施例提供一种服务器,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例提供的基于API网关的认证方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的基于API网关的认证方法。
附图说明
图1为本发明实施例一提供的一种基于API网关的认证方法的流程示意图;
图2为本发明实施例二提供的一种基于API网关的认证方法的流程示意图;
图3为本发明实施例三提供的一种基于API网关的认证装置的结构示意图;
图4为本发明实施例四提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”、“批量”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
实施例一
图1为本发明实施例一提供的一种基于API网关的认证方法的流程示意图,本实施例可适用于终端用户访问服务器时的进行认证。如图1所示,本发明实施例一提供的基于API网关的认证方法包括:
S110、获取客户端请求信息。
具体的,客户端(Client)或称为用户端,是指与服务器相对应,为用户提供本地服务的程序,除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行,例如,浏览器。当用户使用客户端的时候,客户端就会向服务端发送客户端请求信息,以使服务端返回对应的数据展现给用户。例如,用户使用浏览器打开一个网页,则浏览器就会向服务端发送一个网页请求信息。客户端请求信息至少包括客户端ID(client_ID)和客户端根据分配的客户端秘钥(client_key)生成的签名(sign),客户端ID是客户端的唯一标识,用于鉴别客户端的身份;客户端秘钥是服务端给客户端分配的密钥,这个密钥用来保证客户端来源的可靠性,防止被伪造。
S120、获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置。
具体的,API网关封装了系统内部架构,为每个客户端提供一个定制的API,客户端通过该定制API从服务端中获取与客气端请求信息对应的数据,但是在客户端获取数据之前,API网关需要对该客户端请求信息进行认证和授权,以确定该客户端的身份是否正确、该客户端是否有权利获取对应的数据等。预设配置文件将各认证类型中需要的基本参数做了统一化处理,还包括一些可选的认证类型的开关设置,其中,基本参数至少包括客户端ID和客户端秘钥。认证类型有:HMAC(Hash-based Message Authentication Code,哈希消息认证码)校验、OAuth2授权、JWT(Json Web Token,Json网络令牌)认证和用户中心认证,其中,可选的认证类型为HMAC校验,OAuth2授权、JWT认证和用户中心认证都是必不可少的认证。HMAC校验配置包括HMAC校验的开关设置以及HMAC校验的客户端ID和客户端秘钥,OAuth2授权配置包括OAuth2授权的客户端ID和客户端秘钥,JWT认证配置包括JWT认证的客户端ID和客户端秘钥,用户中心认证配置包括用户中心认证的客户端ID和客户端秘钥。例如,预设配置文件包括:开启HMAC校验,HMAC校验,OAuth2授权、JWT认证和用户中心认证的客户端ID为12345,客户端秘钥为xxxxxx。
预设配置文件将各认证类型中需要的基本参数做了统一化处理,后续不需要在每个认证类型中都单独设置基本参数,简化了认证操作。S130、根据所述预设配置文件对所述客户端请求信息进行认证。
具体的,根据预设配置文件中各认证类型的配置,对客户端请求信息进行相应的认证。例如,预设配置文件包括开启HMAC校验,则在对客户端请求信息进行认证时,需要进行HMAC校验、用户中心认证、Oauth2授权和JWT认证这四种认证类型。
本发明实施例一提供的基于API网关的认证方法通过获取客户端请求信息;获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;根据所述预设配置文件对所述客户端请求信息进行认证。实现了通过API网关建立一个统一的多重认证机制,提高认证效率,简化和保障了微服务层的数据调用安全。
实施例二
图2为本发明实施例二提供的一种基于API网关的认证方法的流程示意图,本实施例是对上述实施例的进一步细化。如图2所示,本发明实施例二提供的基于API网关的认证方法包括:
S210、获取客户端请求信息。
具体的,客户端(Client)或称为用户端,是指与服务器相对应,为用户提供本地服务的程序,除了一些只在本地运行的应用程序之外,一般安装在普通的客户机上,需要与服务端互相配合运行,例如,浏览器。当用户使用客户端的时候,客户端就会向服务端发送客户端请求信息,以使服务端返回对应的数据展现给用户。例如,用户使用浏览器打开一个网页,则浏览器就会向服务端发送一个网页请求信息。客户端请求信息至少包括客户端ID(client_ID)和客户端根据分配的客户端秘钥(client_key)生成的签名(sign),客户端ID是客户端的唯一标识,用于鉴别客户端的身份;客户端秘钥是服务端给客户端分配的密钥,这个密钥用来保证客户端来源的可靠性,防止被伪造。
S220、获取预设配置文件,所述预设配置文件包括HMAC校验配置、OAuth2授权配置、JWT认证配置和用户中心认证配置。
具体的,API网关封装了系统内部架构,为每个客户端提供一个定制的API,客户端通过该定制API从服务端中获取与客气端请求信息对应的数据,但是在客户端获取数据之前,API网关需要对该客户端请求信息进行认证和授权,以确定该客户端的身份是否正确、该客户端是否有权利获取对应的数据等。预设配置文件将各认证类型中需要的基本参数做了统一化处理,还包括一些可选的认证类型的开关设置,其中,基本参数至少包括客户端ID和客户端秘钥。认证类型有:HMAC(Hash-based Message Authentication Code,哈希消息认证码)校验、OAuth2授权、JWT(Json Web Token,Json网络令牌)认证和用户中心认证,其中,可选的认证类型为HMAC校验,OAuth2授权、JWT认证和用户中心认证都是必不可少的认证。HMAC校验配置包括HMAC校验的开关设置以及HMAC校验的客户端ID和客户端秘钥,OAuth2授权配置包括OAuth2授权的客户端ID和客户端秘钥,JWT认证配置包括JWT认证的客户端ID和客户端秘钥,用户中心认证配置包括用户中心认证的客户端ID和客户端秘钥。例如,预设配置文件包括:开启HMAC校验,HMAC校验,OAuth2授权、JWT认证和用户中心认证的客户端ID为12345,客户端秘钥为xxxxxx。
预设配置文件将各认证类型中需要的基本参数做了统一化处理,后续不需要在每个认证类型中都单独设置基本参数,简化了认证操作。
S230、根据所述HMAC校验配置对所述客户端请求信息进行HMAC校验。
具体的,当HMAC校验配置为开启时,根据HMAC校验配置中的基本参数对客户端请求信息进行HMAC校验。HMAC检验是一种基于密钥的报文完整性的验证方法,其安全性是建立在Hash加密算法基础上的,HMAC检验要求通信双方共享密钥、约定算法并对报文进行Hash运算,形成固定长度的认证码,通信双方通过认证码的校验来确定报文的合法性。
进一步的,一种对所述客户端请求信息进行HMAC校验的方法包括步骤S231~S235(图中未示出)。
S231、获取客户端的HMAC校验秘钥。
具体的,HMAC校验秘钥由客户端生成,客户端根据HMAC协议,使用HMAC签名SHA-1(Secure Hash Algorithm,安全哈希算法)方式加密形成HMAC校验秘钥,然后将HMAC校验秘钥作为HTTP(HyperText Transfer Protocol,超文本传输协议)信息头(Head)的一部分传送到API网关(服务端)以进行HMAC校验。
Authorization表示HMAC校验秘钥,根据HMAC协议,Authorization包括的内容有:hmac username、algorithm、headers和signature,其中,hmac username=“client_ID”,algorithm=“hmac-sha1”,headers=“x-timestamp x-resource”,signature=“EK111Ll5K575MUfG2GysMvbC3zKuwQ=”,其中,x-token是用于客户端的身份认证的令牌,algorithm表示使用的哈希算法,x-timestamp表示时间戳。
S232、从预设数据库中获取系统配置信息以生成参考HMAC秘钥。
具体的,系统配置信息表示服务端的预设数据库中存储的客户端校验秘钥,同样将该客户端校验秘钥使用HMAC签名SHA-1方式加密,得到参考HMAC秘钥,该参考HMAC秘钥则是用于判断HMAC校验秘钥是否正确的参考对象。
S233、判断所述HMAC校验秘钥与所述参考HMAC秘钥是否一致;
S234、若所述HMAC校验秘钥与所述参考HMAC秘钥一致,则所述客户端请求信息进行HMAC校验成功。
S235、若所述HMAC校验秘钥与所述参考HMAC秘钥不一致,则所述客户端请求信息进行HMAC校验失败。
具体的,若HMAC校验秘钥与参考HMAC秘钥一致,说明该客户端是合法的,其数据没有被篡改,故HMAC校验成功,否则HMAC校验失败。若HMAC校验失败,则客户端无法获取到对应的请求信息,需要重新获取客户端请求信息进行HMAC校验。
S240、若所述客户端请求信息进行HMAC校验成功,则根据所述用户中心认证配置对所述客户端请求信息进行用户中心认证。
具体的,当HMAC校验成功后,根据用户中心认证配置中的基本参数进行用户中心认证。用户中心认证相当于用户在客户端的登录验证,进行用户中心认证主要是为了获取用户信息并判断用户提供的用户信息是否正确,例如用户名、用户密码等信息。若用户提供的用户信息正确,则认为用户中心认证成功,否则认为用户中心认证失败。
通过用户信息可以确定客户端能够使用的特定私有资源有哪些,也就是后续OAuth2授权的范围。一般情况下,当用户已经登录过客户端之后,在一定时间内用户通常不需要再次进行登录,客户端会缓存用户信息,这种情况下,在进行OAuth2授权时,可以从客户端请求信息中获取到用户信息。故当用户是首次使用该客户端,或者客户端会缓存用户信息已过期时需要进行登录验证,否则不需要进行登录验证,可跳过本步骤直接进行后续的OAuth2授权。
S250、若所述用户中心认证成功,则根据所述OAuth2授权配置对所述客户端请求信息进行OAuth2授权。
具体的,若需要进行用户中心认证,则当用户中心认证成功后,根据预设配置文件中的OAuth2授权皮配置的基本参数进行OAuth2授权。OAuth2是一个开放授权标准,它允许用户让第三方应用(相当于客户端)访问该用户在某服务端的特定私有资源,但是不提供账号密码信息给第三方应用。
进一步的,若不需要进行用户中心认证,则直接从步骤S230到达本步骤,相应的,本步骤可表示为:若所述客户端请求信息进行HMAC校验成功,则根据所述OAuth2授权配置对所述客户端请求信息进行OAuth2授权。
进一步的,一种对所述客户端请求信息进行OAuth2授权包括步骤S251~S253(图中未示出)。
S251、获取用户信息以确定授权范围。
具体的,当用户是首次使用该客户端,或者客户端会缓存用户信息已过期时,需要通过用户中心认证获取用户信息,若本次认证过程中,客户端缓存的用户信息还没有过期,则可以从客户端请求信息中获取用户信息。
S252、根据所述授权范围生成授权许可。
具体的,授权许可也称作授权码(Authorization Code),确定客户端能够获取的授权范围无误后生成授权许可。
S253、根据所述客户端请求信息和所述授权许可生成授权令牌,所述客户端请求信息进行OAuth2授权成功。
具体的,客户端根据客户端请求信息和授权许可向授权服务端发起授权请求(Access Token Request),授权服务端根据该授权请求生成授权令牌(Access Token)并返回给客户端。授权请求中包含的参数有:grant_type、code、redirect_uri、和client_id,其中,grant_type为固定值:authorization_code,且grant_type为密码模式,code表示授权码,redirect_uri表示授权成功后的重定向地址,client_id表示客户端的唯一标识,redirect_uri和client_id均从客户端请求信息中获取。
当成功生成授权令牌后,则说明OAuth2授权成功,可以进行下一步操作;若OAuth2授权失败,则需要返回重新获取客户端请求信息。
S260、若OAuth2授权成功,则根据所述JWT认证配置对所述客户端请求信息进行JWT认证。
具体的,OAuth2授权成功后,根据预设配置文件中的JWT认证配置中的基本参数进行JWT认证。JWT是一个开放标准(RFC 7519),它定义了一种简洁、自包含、JSON对象形式的安全传递信息的方法。
进一步的,一种进行JWT认证的方法包括步骤S261~S262(图中未示出)
S261、对所述用户信息进行JWT协议转换。
具体的,对用户信息进行JWT协议转换可以看成是对用户信息进行了一次加密,JWT协议使用了数字签名,使得两点之间被传输的信息是可以被证实和信任的,提高了信息安全性。
S262、根据所述客户端请求信息生成JWT令牌。
具体的,可以根据客户端ID生成JWT令牌(JWT Token)。根据JWT协议,JWT令牌主要包括三个部分:Header、Payload和Signature,Header表示信息头,其中包括JWT令牌类型和使用的哈希算法;Payload是携带有效信息的载体,包括一些声明(Claim),其中包括客户端请求信息;Signature表示签证信息,其主要由Header和Payload中的部分数据以及一些加密方式组成。
当JWT认证成功后,说明该客户端请求信息的前述认证都是合法的,此时服务端的业务系统根据客户端请求信息返回相应的业务数据以向用户展示,例如,向用户展示一个网页页面。
本发明实施例二提供的基于API网关的认证方法实现了通过API网关建立一个统一的多重认证机制,提高认证效率,简化和保障了微服务层的数据调用安全。
实施例三
图3为本发明实施例三提供的一种基于API网关的认证装置的结构示意图,本实施例可适用于终端用户访问服务器时的进行认证。本发明实施例三提供的基于API网关的认证装置能够实现本发明任意实施例提供的基于API网关的认证方法,具备实现方法的相应功能结构和有益效果,本实施例中未详尽描述的内容可参考本发明任意方法实施例的描述。
如图3所示,本发明实施例三提供的基于API网关的认证装置包括:客户端请求信息获取模块310、预设配置文件获取模块320和认证模块330。
客户端请求信息获取模块310用于获取客户端请求信息;
预设配置文件获取模块320用于获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;
认证模块330用于根据所述预设配置文件对所述客户端请求信息进行认证。
进一步的,所述预设配置文件包括HMAC校验配置、OAuth2授权配置、JWT认证配置和用户中心认证配置。
进一步的,认证模块330包括:
HMAC校验单元331,用于根据所述HMAC校验配置对所述客户端请求信息进行HMAC校验;
OAuth2授权单元332,用于若所述客户端请求信息进行HMAC校验成功,则根据所述OAuth2授权配置对所述客户端请求信息进行OAuth2授权;
JWT认证单元333,用于若OAuth2授权成功,则根据所述JWT认证配置对所述客户端请求信息进行JWT认证。
进一步的,所述HMAC校验单元331具体用于:获取客户端的HMAC校验秘钥;从预设数据库中获取系统配置信息以生成参考HMAC秘钥;判断所述HMAC校验秘钥与所述参考HMAC秘钥是否一致;若所述HMAC校验秘钥与所述参考HMAC秘钥一致,则所述客户端请求信息进行HMAC校验成功;若所述HMAC校验秘钥与所述参考HMAC秘钥不一致,则所述客户端请求信息进行HMAC校验失败。
进一步的,所述OAuth2授权单元332具体用于:获取用户信息以确定授权范围;根据所述授权范围生成授权许可;根据所述客户端请求信息和所述授权许可生成授权令牌,所述客户端请求信息进行OAuth2授权成功。
进一步的,所述JWT认证单元333具体用于:对所述用户信息进行JWT协议转换;根据所述客户端请求信息生成JWT令牌。
进一步的,还包括用户中心认证单元340,用于若所述客户端请求信息进行HMAC校验成功,则根据所述用户中心认证配置对所述客户端请求信息进行用户中心认证;相应的,OAuth2授权单元332还用于:若所述用户中心认证成功,则根据所述OAuth2授权配置对所述客户端请求信息进行OAuth2授权。
本发明实施例三提供的基于API网关的认证装置通过客户端请求信息获取模块、预设配置文件获取模块和认证模块,实现了通过API网关建立一个统一的多重认证机制,提高认证效率,简化和保障了微服务层的数据调用安全。
实施例四
图4是本发明实施例四提供的一种服务器的结构示意图。图4示出了适于用来实现本发明实施方式的示例性服务器412的框图。图4显示的服务器412仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,服务器412以通用服务器的形式表现。服务器412的组件可以包括但不限于:一个或者多个处理器416,存储装置428,连接不同系统组件(包括存储装置428和处理器416)的总线418。
总线418表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry SubversiveAlliance,ISA)总线,微通道体系结构(Micro Channel Architecture,MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
服务器412典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器412访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置428可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)430和/或高速缓存存储器432。服务器412可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统434可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘,例如只读光盘(Compact Disc Read-Only Memory,CD-ROM),数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线418相连。存储装置428可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块442的程序/实用工具440,可以存储在例如存储装置428中,这样的程序模块442包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块442通常执行本发明任意实施例中的基于API网关的认证方法。
服务器412也可以与一个或多个外部设备414(例如键盘、指向服务器、显示器424等)通信,还可与一个或者多个使得用户能与该服务器412交互的服务器通信,和/或与使得该服务器412能与一个或多个其它计算服务器进行通信的任何服务器(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口422进行。并且,服务器412还可以通过网络适配器420与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网(Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器420通过总线418与服务器412的其它模块通信。应当明白,尽管图中未示出,可以结合服务器412使用其它硬件和/或软件模块,包括但不限于:微代码、服务器驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays ofIndependent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器416通过运行存储在存储装置428中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的基于API网关的认证方法,该方法可以包括:获取客户端请求信息;获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;根据所述预设配置文件对所述客户端请求信息进行认证。
实施例五
本发明实施例五还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的基于API网关的认证方法,该方法可以包括:
获取客户端请求信息;获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;根据所述预设配置文件对所述客户端请求信息进行认证。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种基于API网关的认证方法,其特征在于,包括:
获取客户端请求信息;
获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;
根据所述预设配置文件对所述客户端请求信息进行认证。
2.如权利要求1所述的方法,其特征在于,所述预设配置文件包括HMAC校验配置、OAuth2授权配置、JWT认证配置和用户中心认证配置。
3.如权利要求2所述的方法,其特征在于,根据所述预设配置文件对所述客户端请求信息进行认证包括:
根据所述HMAC校验配置对所述客户端请求信息进行HMAC校验;
若所述客户端请求信息进行HMAC校验成功,则根据所述OAuth2授权配置对所述客户端请求信息进行OAuth2授权;
若OAuth2授权成功,则根据所述JWT认证配置根据所述JWT认证配置对所述客户端请求信息进行JWT认证。
4.如权利要求3所述的方法,其特征在于,对所述客户端请求信息进行HMAC校验包括:
获取客户端的HMAC校验秘钥;
从预设数据库中获取系统配置信息以生成参考HMAC秘钥;
判断所述HMAC校验秘钥与所述参考HMAC秘钥是否一致;
若所述HMAC校验秘钥与所述参考HMAC秘钥一致,则所述客户端请求信息进行HMAC校验成功;
若所述HMAC校验秘钥与所述参考HMAC秘钥不一致,则所述客户端请求信息进行HMAC校验失败。
5.如权利要求3所述的方法,其特征在于,对所述客户端请求信息进行OAuth2授权包括:
获取用户信息以确定授权范围;
根据所述授权范围生成授权许可;
根据所述客户端请求信息和所述授权许可生成授权令牌,所述客户端请求信息进行OAuth2授权成功。
6.如权利要求5所述的方法,其特征在于,对所述客户端请求信息进行JWT认证包括:
对所述用户信息进行JWT协议转换;
根据所述客户端请求信息生成JWT令牌。
7.如权利要求3所述的方法,其特征在于,所述根据所述HMAC校验配置对所述客户端请求信息进行HMAC校验之后,还包括:
若所述客户端请求信息进行HMAC校验成功,则根据所述用户中心认证配置对所述客户端请求信息进行用户中心认证;
若所述用户中心认证成功,则根据所述OAuth2授权配置对所述客户端请求信息进行OAuth2授权。
8.一种基于API网关的认证系统,其特征在于,包括:
客户端请求信息获取模块,用于获取客户端请求信息;
预设配置文件获取模块,用于获取预设配置文件,所述预设配置文件包括至少一项基于API网关的认证类型配置;
认证模块,用于根据所述预设配置文件对所述客户端请求信息进行认证。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的基于API网关的认证方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的基于API网关的认证方法。
CN202010123397.9A 2020-02-27 2020-02-27 基于api网关的认证方法、系统、服务器和存储介质 Pending CN111147525A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010123397.9A CN111147525A (zh) 2020-02-27 2020-02-27 基于api网关的认证方法、系统、服务器和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010123397.9A CN111147525A (zh) 2020-02-27 2020-02-27 基于api网关的认证方法、系统、服务器和存储介质

Publications (1)

Publication Number Publication Date
CN111147525A true CN111147525A (zh) 2020-05-12

Family

ID=70528157

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010123397.9A Pending CN111147525A (zh) 2020-02-27 2020-02-27 基于api网关的认证方法、系统、服务器和存储介质

Country Status (1)

Country Link
CN (1) CN111147525A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112804258A (zh) * 2021-03-11 2021-05-14 北京市商汤科技开发有限公司 认证授权方法、授权服务器、api网关、系统及存储介质
CN114598490A (zh) * 2021-04-09 2022-06-07 亚信科技(南京)有限公司 基于api网关重定向页面的方法、装置、设备及存储介质
CN114598481A (zh) * 2020-11-19 2022-06-07 卫宁健康科技集团股份有限公司 一种授权认证方法、装置、电子设备及存储介质
US11930038B2 (en) 2021-07-15 2024-03-12 Hewlett Packard Enterprise Development Lp Processing refresh token request at application programming interface (API) gateway
CN114598481B (zh) * 2020-11-19 2024-05-31 卫宁健康科技集团股份有限公司 一种授权认证方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302346A (zh) * 2015-05-27 2017-01-04 阿里巴巴集团控股有限公司 Api调用的安全认证方法、装置、系统
CN107528853A (zh) * 2017-09-12 2017-12-29 上海艾融软件股份有限公司 微服务权限控制的实现方法
CN108512784A (zh) * 2018-06-21 2018-09-07 珠海宏桥高科技有限公司 基于网关路由转发的鉴权认证方法
CN108901022A (zh) * 2018-06-28 2018-11-27 深圳云之家网络有限公司 一种微服务统一鉴权方法及网关
CN109617907A (zh) * 2019-01-04 2019-04-12 平安科技(深圳)有限公司 认证方法、电子装置及计算机可读存储介质
CN110535851A (zh) * 2019-08-27 2019-12-03 浪潮云信息技术有限公司 一种基于oauth2协议的用户认证系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302346A (zh) * 2015-05-27 2017-01-04 阿里巴巴集团控股有限公司 Api调用的安全认证方法、装置、系统
CN107528853A (zh) * 2017-09-12 2017-12-29 上海艾融软件股份有限公司 微服务权限控制的实现方法
CN108512784A (zh) * 2018-06-21 2018-09-07 珠海宏桥高科技有限公司 基于网关路由转发的鉴权认证方法
CN108901022A (zh) * 2018-06-28 2018-11-27 深圳云之家网络有限公司 一种微服务统一鉴权方法及网关
CN109617907A (zh) * 2019-01-04 2019-04-12 平安科技(深圳)有限公司 认证方法、电子装置及计算机可读存储介质
CN110535851A (zh) * 2019-08-27 2019-12-03 浪潮云信息技术有限公司 一种基于oauth2协议的用户认证系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DREAMSONMA: ""身份验证详解一玩转Kong网关"", 《JIANSHU.COM/P/D4A668C014F1》 *
李佶澳: ""API网关Kong(四):功能梳理和插件使用一认证插件佳用"", 《CNBLOGS.COM/LIJIAOCN/P/9986918.HTML》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114598481A (zh) * 2020-11-19 2022-06-07 卫宁健康科技集团股份有限公司 一种授权认证方法、装置、电子设备及存储介质
CN114598481B (zh) * 2020-11-19 2024-05-31 卫宁健康科技集团股份有限公司 一种授权认证方法、装置、电子设备及存储介质
CN112804258A (zh) * 2021-03-11 2021-05-14 北京市商汤科技开发有限公司 认证授权方法、授权服务器、api网关、系统及存储介质
CN112804258B (zh) * 2021-03-11 2023-02-28 北京市商汤科技开发有限公司 认证授权方法、授权服务器、api网关、系统及存储介质
CN114598490A (zh) * 2021-04-09 2022-06-07 亚信科技(南京)有限公司 基于api网关重定向页面的方法、装置、设备及存储介质
CN114598490B (zh) * 2021-04-09 2024-03-29 亚信科技(南京)有限公司 基于api网关重定向页面的方法、装置、设备及存储介质
US11930038B2 (en) 2021-07-15 2024-03-12 Hewlett Packard Enterprise Development Lp Processing refresh token request at application programming interface (API) gateway

Similar Documents

Publication Publication Date Title
EP1427160B1 (en) Methods and systems for authentication of a user for sub-locations of a network location
WO2017028804A1 (zh) 一种Web实时通信平台鉴权接入方法及装置
US8799639B2 (en) Method and apparatus for converting authentication-tokens to facilitate interactions between applications
US8196193B2 (en) Method for retrofitting password enabled computer software with a redirection user authentication method
EP2898441B1 (en) Mobile multifactor single-sign-on authentication
CA2407482C (en) Security link management in dynamic networks
WO2017000829A1 (zh) 一种基于生物特征的安全校验方法及客户端、服务器
US20070220274A1 (en) Biometric authentication system
CN105354451B (zh) 访问鉴权的方法及系统
KR20090041365A (ko) 인증 시스템과 함께 생물학적 샘플링 장치를 사용하는 방법, 이러한 방법을 수행하기 위한 컴퓨터 실행가능 명령어를 구비하는 컴퓨터 판독가능 매체 및 인증 시스템에액세스하는 컴퓨터 시스템
CN109981680B (zh) 一种访问控制实现方法、装置、计算机设备及存储介质
CN111147525A (zh) 基于api网关的认证方法、系统、服务器和存储介质
JP2013531834A (ja) IPsecとIKEバージョン1の認証を伴うワンタイム・パスワード
CN109587098B (zh) 一种认证系统和方法、授权服务器
US11882120B2 (en) Identity intermediary service authorization
US10785213B2 (en) Continuous authentication
US20220263818A1 (en) Using a service worker to present a third-party cryptographic credential
TWI698113B (zh) 電子裝置之認證方法及系統
US11750597B2 (en) Unattended authentication in HTTP using time-based one-time passwords
US20220417020A1 (en) Information processing device, information processing method, and non-transitory computer readable storage medium
CN112511565B (zh) 请求响应方法、装置、计算机可读存储介质及电子设备
US20220337584A1 (en) Information processing device, information processing method, and non-transitory computer readable storage medium
CN115514584B (zh) 服务器以及金融相关服务器的可信安全认证方法
US11606210B1 (en) Secure activation, service mode access and usage control of IOT devices using bearer tokens
Goel Access Control and Authorization Techniques wrt Client Applications

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200512

RJ01 Rejection of invention patent application after publication