CN112637163A - 一种基于api网关的认证授权方法及系统 - Google Patents

一种基于api网关的认证授权方法及系统 Download PDF

Info

Publication number
CN112637163A
CN112637163A CN202011472460.6A CN202011472460A CN112637163A CN 112637163 A CN112637163 A CN 112637163A CN 202011472460 A CN202011472460 A CN 202011472460A CN 112637163 A CN112637163 A CN 112637163A
Authority
CN
China
Prior art keywords
authorization code
access
service
registration
signature
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.)
Granted
Application number
CN202011472460.6A
Other languages
English (en)
Other versions
CN112637163B (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.)
Beijing China Power Information Technology Co Ltd
Original Assignee
State Grid Information and Telecommunication Co Ltd
Beijing China Power 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 State Grid Information and Telecommunication Co Ltd, Beijing China Power Information Technology Co Ltd filed Critical State Grid Information and Telecommunication Co Ltd
Priority to CN202011472460.6A priority Critical patent/CN112637163B/zh
Publication of CN112637163A publication Critical patent/CN112637163A/zh
Application granted granted Critical
Publication of CN112637163B publication Critical patent/CN112637163B/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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

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

Abstract

本申请提供了一种基于API网关的授权认证方法及系统,该方法通过第一微服务在请求访问与不同业务系统的第二微服务时,向授权服务器发送授权码获取请求,接收授权服务器返回的授权码及授权码的签名,发起访问第二微服务的请求,第二微服务所属业务系统的API网关,基于请求中的授权码及授权码的签名,进行验签处理,实现对第一微服务发起的访问第二微服务的请求是否被篡改的检测,保证访问第二微服务的请求的安全性,在验签通过后,通过判断第一微服务是否有权限访问第二微服务,进一步提高访问第二微服务的安全性。并且,API网关提供统一的授权认证服务简单有效,有利于微服务架构的进一步简化,提升系统整体的可靠性和稳定性。

Description

一种基于API网关的认证授权方法及系统
技术领域
本申请涉及通信技术领域,特别涉及一种基于API网关的认证授权方法及系统。
背景技术
目前,大型的单体系统的架构一般均逐步改造成为微服务架构,使单体系统由多个微服务组成。
其中,在现有的架构中,通过微服务的注册名称即可对微服务进行访问调用。但是,上述访问方式存在安全隐患,难以保证微服务访问的安全性。
发明内容
为解决上述技术问题,本申请实施例提供一种基于API网关的认证授权方法及系统,以达到保证微服务访问的安全性的目的,技术方案如下:
一种基于API网关的认证授权方法,包括:
第一微服务在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送访问授权码获取请求,并接收所述授权服务器返回的访问授权码及所述访问授权码的签名;
所述第一微服务发起访问所述第二微服务的请求,所述请求携带有所述访问授权码及所述访问授权码的签名;
所述第二微服务所属业务系统的API网关,接收所述请求,并基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理,在验签通过后,判断所述第一微服务是否有权限访问所述第二微服务;
若有权限,则将所述请求发送给所述第二微服务。
所述判断所述第一微服务是否有权限访问所述第二微服务,包括:
从所述请求中解析出所述第二微服务的访问地址,在本地缓存中存储的允许所述第一微服务访问的地址中,查找与所述第二微服务的访问地址相匹配的地址。
所述访问授权码及所述访问授权码的签名的生成过程,包括:
所述授权服务器从所述访问授权码获取请求中解析出所述第一微服务的用户名及客户端密钥,并验证所述第一微服务的用户名及客户端密钥是否正确;
若正确,则在用户信息表中查找与所述第一微服务的用户名对应的业务系统的私钥;
若查找到,则对目标信息进行封装,得到访问授权码,所述目标信息至少包含所述第一微服务的用户名及标识信息;
利用所述私钥,生成所述访问授权码的签名。
所述接收所述授权服务器返回的访问授权码及所述访问授权码的签名之后,还包括:
将所述授权服务器返回的访问授权码存储到内存中。
所述第一微服务在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送授权码获取请求之前,还包括:
所述第一微服务在向其业务系统的注册中心申请注册时,向授权服务器发送注册授权码获取请求,并接收所述授权服务器返回的注册授权码及所述注册授权码的签名;
所述第一微服务将包含所述注册授权码及所述注册授权码的签名的注册请求发送给所述注册中心;
所述注册中心从所述注册请求中获取所述注册授权码及所述注册授权码的签名,并基于所述注册授权码及所述注册授权码的签名,进行验签处理,在验签通过后,将所述第一微服务注册到所述注册中心。
一种基于API网关的认证授权系统,包括:
第一微服务客户端,用于在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送访问授权码获取请求;
授权服务器,用于生成访问授权码及所述访问授权码的签名;
所述第一微服务客户端,还用于接收所述授权服务器返回的访问授权码及所述访问授权码的签名,及发起访问所述第二微服务的请求,所述请求携带有所述访问授权码及所述访问授权码的签名;
第二微服务所属业务系统的API网关,用于:
接收所述请求,并基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理,在验签通过后,判断所述第一微服务是否有权限访问所述第二微服务;
若有权限,则将所述请求发送给所述第二微服务的客户端。
所述第二微服务所属业务系统的API网关,具体用于:
从所述请求中解析出所述第二微服务的访问地址,在本地缓存中存储的允许所述第一微服务访问的地址中,查找与所述第二微服务的访问地址相匹配的地址。
所述授权服务器,具体用于:
从所述访问授权码获取请求中解析出所述第一微服务的用户名及客户端密钥,并验证所述第一微服务的用户名及客户端密钥是否正确;
若正确,则在用户信息表中查找与所述第一微服务的用户名对应的业务系统的私钥;
若查找到,则对目标信息进行封装,得到访问授权码,所述目标信息至少包含所述第一微服务的用户名及标识信息;
利用所述私钥,生成所述访问授权码的签名。
所述第一微服务客户端,还用于:将所述授权服务器返回的访问授权码存储到内存中。
所述第一微服务客户端,还用于:
在向其业务系统的注册中心申请注册时,向授权服务器发送注册授权码获取请求,并接收所述授权服务器返回的注册授权码及所述注册授权码的签名;
将包含所述注册授权码及所述注册授权码的签名的注册请求发送给所述注册中心;
所述注册中心,用于从所述注册请求中获取所述注册授权码及所述注册授权码的签名,并基于所述注册授权码及所述注册授权码的签名,进行验签处理,在验签通过后,将第一微服务注册到所述注册中心。
与现有技术相比,本申请的有益效果为:
在本申请中,通过第一微服务在请求访问与其属于不同业务系统的第二微服务时,先向授权服务器发送授权码获取请求,并接收授权服务器返回的授权码及授权码的签名,并发起访问第二微服务的请求,第二微服务所属业务系统的API网关,接收请求,并基于请求中的授权码及授权码的签名,进行验签处理,实现对第一微服务发起的访问第二微服务的请求是否被篡改的检测,保证访问第二微服务的请求的安全性,在验签通过后,通过判断第一微服务是否有权限访问第二微服务,进一步提高访问第二微服务的安全性。
并且,API网关提供统一的授权认证服务简单有效,有利于微服务架构的进一步简化,提升系统整体的可靠性和稳定性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例1提供的一种基于API网关的认证授权方法的流程图;
图2是本申请实施例2提供的一种基于API网关的认证授权方法的流程图;
图3是本申请实施例3提供的一种基于API网关的认证授权方法的流程图;
图4是本申请提供的一种基于API网关的认证授权系统的逻辑结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,为本申请实施例1提供的一种基于API网关的认证授权方法的流程图,该方法可以包括但并不局限于以下步骤:
步骤S11、第一微服务在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送访问授权码获取请求,并接收所述授权服务器返回的访问授权码及所述访问授权码的签名。
本实施例中,可以预先对各网络区域的业务系统进行逻辑划分,每个业务系统所属的空间不同,不同空间之间进行网络策略隔离。在进行网络策略隔离的情况下,某一个业务系统的微服务需要访问另一个业务系统的微服务时,需要通过网关授权,才能访问对应的微服务。
需要说明的是,同一个业务系统中不同微服务之间相互访问,需要通过网关授权。
具体地,第一微服务在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送访问授权码获取请求。授权服务器在接收到访问授权码获取请求时,可以通过以下步骤,生成访问授权码及访问授权码的签名:
S110、从所述访问授权码获取请求中解析出所述第一微服务的用户名及客户端密钥,并验证所述第一微服务的用户名及客户端密钥是否正确;
若正确,则执行步骤S111。
S111、在用户信息表中查找与所述第一微服务的用户名对应的业务系统的私钥;
若查找到,则执行步骤S112。
S112、对目标信息进行封装,得到访问授权码,所述目标信息至少包含所述第一微服务的用户名及标识信息。
当然,本实施例中,目标信息还可以包含时间戳。其中,可以通过访问授权码的时间戳,判断访问授权码是否有效。
S113、利用与所述第一微服务的用户名对应的业务系统的私钥,生成所述访问授权码的签名。
利用与所述第一微服务的用户名对应的业务系统的私钥,生成所述访问授权码的签名的过程,可以理解为:生成所述访问授权码的摘要,利用与所述第一微服务的用户名对应的业务系统的私钥,对所述访问授权码的摘要进行加密,得到所述访问授权码的签名。
本实施例中,在接收所述授权服务器返回的访问授权码及所述访问授权码的签名之后,还可以将所述授权服务器返回的访问授权码存储到内存中。将所述授权服务器返回的访问授权码存储到内存中,可以保证不用每次均向授权服务器请求获取访问授权码,提高访问授权码获取的效率。
步骤S12、所述第一微服务发起访问所述第二微服务的请求,所述请求携带有所述访问授权码及所述访问授权码的签名。
第一微服务发起访问所述第二微服务的请求后,可以但不局限于由负载均衡器将访问所述第二微服务的请求发送给第二微服务所属业务系统的API网关。
步骤S13、所述第二微服务所属业务系统的API网关,接收所述请求,并基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理。
本实施例中,API网关,可以理解为:微服务架构系统的入口,其封装了系统内部架构,为每个客户端提供一个定制的API(Application Programming Interface,应用程序接口)。它还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。
本实施例中,基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理的过程,可以包括:
S131、获取与所述第一微服务的用户名对应的业务系统的公钥。
本实施例中,可以在从请求中解析出第一微服务的标识信息,在第二微服务所属业务系统的API网关的本地缓存中查找与第一微服务的标识信息对应的公钥,若查找到,则将查找到的公钥作为与所述第一微服务的用户名对应的业务系统的公钥;若未查找到,则向授权服务器请求与所述第一微服务的用户名对应的业务系统的公钥。
S132、利用所述公钥对所述访问授权码的签名进行解密,得到访问授权码的摘要,作为第一摘要;
S133、生成所述请求中的访问授权码的摘要,作为第二摘要,并比较所述第一摘要与所述第二摘要是否一致。
若一致,则验签通过。
本实施例中,基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理的过程,也可以包括:
S134、从所述请求中解析出时间戳,基于所述时间戳判断所述访问授权码是否有效。
若有效,则执行步骤S135。
基于所述时间戳判断所述访问授权码是否有效,可以理解为:判断当前时间与所述时间戳的差值是否超过设定时长,若超过设定时长,则访问授权码无效;若未超过设定时长,则访问授权码有效。
S135、获取与所述第一微服务的用户名对应的业务系统的公钥。
S136、利用所述公钥对所述访问授权码的签名进行解密,得到访问授权码的摘要,作为第一摘要;
S137、生成所述请求中的访问授权码的摘要,作为第二摘要,并比较所述第一摘要与所述第二摘要是否一致。
若一致,则验签通过。
步骤S135-S137的详细过程可以参见步骤S131-S133的相关介绍,在此不再赘述。
从所述请求中解析出时间戳,基于所述时间戳判断所述访问授权码是否有效,可以进一步提高验签的可靠性,进一步保证服务访问的安全性。
步骤S14、在验签通过后,判断所述第一微服务是否有权限访问所述第二微服务。
若有权限,则执行步骤S15。若无权限,则直接拒绝访问所述第二微服务的请求。并可以返回错误代码给第一微服务。
步骤S15、将所述请求发送给所述第二微服务。
将请求发送给所述第二微服务之后,第二微服务处理请求,在在处理完请求后,可以通过第二微服务所属业务系统的API网关将处理结果返回给第一微服务。
在本申请中,通过第一微服务在请求访问与其属于不同业务系统的第二微服务时,先向授权服务器发送访问授权码获取请求,并接收授权服务器返回的访问授权码及访问授权码的签名,并发起访问第二微服务的请求,第二微服务所属业务系统的API网关,接收请求,并基于请求中的访问授权码及访问授权码的签名,进行验签处理,实现对第一微服务发起的访问第二微服务的请求是否被篡改的检测,保证访问第二微服务的请求的安全性,在验签通过后,通过判断第一微服务是否有权限访问第二微服务,进一步提高访问第二微服务的安全性。
并且,API网关提供统一的授权认证服务简单有效,有利于微服务架构的进一步简化,提升系统整体的可靠性和稳定性。
作为本申请另一可选实施例,参照图2,为本申请提供的一种基于API网关的认证授权方法实施例2的流程图,本实施例主要是对上述实施例1描述的基于API网关的认证授权方法的细化方案,如图2所示,该方法可以包括但并不局限于以下步骤:
步骤S21、第一微服务在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送访问授权码获取请求,并接收所述授权服务器返回的访问授权码及所述访问授权码的签名;
步骤S22、所述第一微服务发起访问所述第二微服务的请求,所述请求携带有所述访问授权码及所述访问授权码的签名;
步骤S23、所述第二微服务所属业务系统的API网关,接收所述请求,并基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理。
步骤S21-S23的详细过程可以参见实施例1中步骤S11-S13的相关介绍,在此不再赘述。
步骤S24、在验签通过后,从所述请求中解析出所述第二微服务的访问地址,在本地缓存中存储的允许所述第一微服务访问的地址中,查找与所述第二微服务的访问地址相匹配的地址。
步骤S24为实施例1中步骤S14的一种具体实施方式。
若查找到,则确认有权限访问第二微服务,则执行步骤S25。
步骤S25、将所述请求发送给所述第二微服务。
步骤S25的详细过程可以参见实施例1中步骤S15的相关介绍,在此不再赘述。
本实施例中,在验签通过后,从所述请求中解析出所述第二微服务的访问地址,在本地缓存中存储的允许所述第一微服务访问的地址中,查找与所述第二微服务的访问地址相匹配的地址,实现对第一微服务是否有权限访问第二微服务的判断,简单易实现,能够提高判断效率。
作为本申请另一可选实施例,参照图3,为本申请提供的一种基于API网关的认证授权方法实施例3的流程图,本实施例主要是对上述实施例1描述的基于API网关的认证授权方法的扩展方案,如图3所示,该方法可以包括但并不局限于以下步骤:
步骤S31、第一微服务在向其业务系统的注册中心申请注册时,向授权服务器发送注册授权码获取请求,并接收所述授权服务器返回的注册授权码及所述注册授权码的签名。
本实施例中,授权服务器在接收到注册授权码获取请求时,可以通过以下步骤,生成注册授权码及注册授权码的签名:
S311、从所述访问授权码获取请求中解析出所述第一微服务的用户名及客户端密钥,并验证所述第一微服务的用户名及客户端密钥是否正确;
若正确,则执行步骤S312。
S312、在用户信息表中查找与所述第一微服务的用户名对应的业务系统的私钥;
若查找到,则执行步骤S313。
S313、对目标信息进行封装,得到注册授权码,所述目标信息至少包含所述第一微服务的用户名及标识信息。
当然,本实施例中,目标信息还可以包含时间戳。其中,可以通过注册授权码的时间戳,判断注册授权码是否有效。
S314、利用与所述第一微服务的用户名对应的业务系统的私钥,生成所述注册授权码的签名。
利用与所述第一微服务的用户名对应的业务系统的私钥,生成所述注册授权码的签名的过程,可以理解为:生成所述注册授权码的摘要,利用与所述第一微服务的用户名对应的业务系统的私钥,对所述注册授权码的摘要进行加密,得到所述注册授权码的签名。
步骤S32、所述第一微服务将包含所述注册授权码及所述注册授权码的签名的注册请求发送给所述注册中心。
步骤S33、所述注册中心从所述注册请求中获取所述注册授权码及所述注册授权码的签名,并基于所述注册授权码及所述注册授权码的签名,进行验签处理,在验签通过后,将所述第一微服务注册到所述注册中心。
本实施例中,基于所述注册授权码及所述注册授权码的签名,进行验签处理的过程,可以包括:
S331、获取与所述第一微服务的用户名对应的业务系统的公钥。
本实施例中,可以在从请求中解析出第一微服务的标识信息,在第二微服务所属业务系统的API网关的本地缓存中查找与第一微服务的标识信息对应的公钥,若查找到,则将查找到的公钥作为与所述第一微服务的用户名对应的业务系统的公钥;若未查找到,则向授权服务器请求与所述第一微服务的用户名对应的业务系统的公钥。
S332、利用所述公钥对所述注册授权码的签名进行解密,得到注册授权码的摘要,作为第一摘要;
S333、生成所述请求中的注册授权码的摘要,作为第二摘要,并比较所述第一摘要与所述第二摘要是否一致。
若一致,则验签通过。
本实施例中,基于所述请求中的所述注册授权码及所述注册授权码的签名,进行验签处理的过程,也可以包括:
S334、从所述请求中解析出时间戳,基于所述时间戳判断所述注册授权码是否有效。
若有效,则执行步骤S335。
基于所述时间戳判断所述注册授权码是否有效,可以理解为:判断当前时间与所述时间戳的差值是否超过设定时长,若超过设定时长,则注册授权码无效;若未超过设定时长,则注册授权码有效。
S335、获取与所述第一微服务的用户名对应的业务系统的公钥。
S336、利用所述公钥对所述注册授权码的签名进行解密,得到注册授权码的摘要,作为第一摘要;
S337、生成所述请求中的注册授权码的摘要,作为第二摘要,并比较所述第一摘要与所述第二摘要是否一致。
若一致,则验签通过。
步骤S335-S337的详细过程可以参见步骤S331-S333的相关介绍,在此不再赘述。
本实施例中,从所述请求中解析出时间戳,基于所述时间戳判断所述注册授权码是否有效,可以进一步提高验签的可靠性,进一步保证服务访问的安全性。
步骤S34、第一微服务在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送访问授权码获取请求,并接收所述授权服务器返回的访问授权码及所述访问授权码的签名。
步骤S35、所述第一微服务发起访问所述第二微服务的请求,所述请求携带有所述访问授权码及所述访问授权码的签名;
步骤S36、所述第二微服务所属业务系统的API网关,接收所述请求,并基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理。
步骤S37、在验签通过后,判断所述第一微服务是否有权限访问所述第二微服务。
若有权限,则执行步骤S38。
步骤S38、将所述请求发送给所述第二微服务。
步骤S34-S38的详细过程可以参见实施例1中步骤S11-S15的相关介绍,在此不再赘述。
本实施例中,通过所述第一微服务在向其业务系统的注册中心申请注册时,向授权服务器发送注册授权码获取请求,并接收所述授权服务器返回的注册授权码及所述注册授权码的签名,所述第一微服务将包含所述注册授权码及所述注册授权码的签名的注册请求发送给所述注册中心,所述注册中心从所述注册请求中获取所述注册授权码及所述注册授权码的签名,并基于所述注册授权码及所述注册授权码的签名,进行验签处理,在验签通过后,将所述第一微服务注册到所述注册中心,可以实现对注册请求是否被篡改的判断,在保证注册请求未被篡改的情况下,注册第一微服务,保证微服务注册的安全性。
接下来对本申请提供的一种基于API网关的授权认证系统进行介绍,下文介绍的基于API网关的授权认证系统与上文介绍的基于API网关的授权认证方法可相互对应参照。
请参见图4,基于API网关的授权认证系统包括:第一微服务客户端100、授权服务器200、第二微服务所属业务系统的API网关300和第二微服务的客户端400。
第一微服务客户端100,用于在请求访问与其属于不同业务系统的第二微服务时,向授权服务器200发送访问授权码获取请求;
授权服务器200,用于生成访问授权码及所述访问授权码的签名;
所述第一微服务客户端100,还用于接收所述授权服务器200返回的访问授权码及所述访问授权码的签名,及发起访问所述第二微服务的请求,所述请求携带有所述访问授权码及所述访问授权码的签名;
第二微服务所属业务系统的API网关300,用于:
接收所述请求,并基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理,在验签通过后,判断所述第一微服务是否有权限访问所述第二微服务;
若有权限,则将所述请求发送给所述第二微服务的客户端400。
所述第二微服务所属业务系统的API网关300,具体用于:
从所述请求中解析出所述第二微服务的访问地址,在本地缓存中存储的允许所述第一微服务访问的地址中,查找与所述第二微服务的访问地址相匹配的地址。
所述授权服务器200,具体可以用于:
从所述访问授权码获取请求中解析出所述第一微服务的用户名及客户端密钥,并验证所述第一微服务的用户名及客户端密钥是否正确;
若正确,则在用户信息表中查找与所述第一微服务的用户名对应的业务系统的私钥;
若查找到,则对目标信息进行封装,得到访问授权码,所述目标信息至少包含所述第一微服务的用户名及标识信息;
利用所述私钥,生成所述访问授权码的签名。
所述第一微服务客户端100,还可以用于:将所述授权服务器200返回的访问授权码存储到内存中。
所述第一微服务客户端100,还可以用于:
在向其业务系统的注册中心申请注册时,向授权服务器200发送注册授权码获取请求,并接收所述授权服务器200返回的注册授权码及所述注册授权码的签名;
将包含所述注册授权码及所述注册授权码的签名的注册请求发送给所述注册中心;
所述注册中心,用于从所述注册请求中获取所述注册授权码及所述注册授权码的签名,并基于所述注册授权码及所述注册授权码的签名,进行验签处理,在验签通过后,将第一微服务注册到所述注册中心。
需要说明的是,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上对本申请所提供的一种基于API网关的授权认证方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种基于API网关的认证授权方法,其特征在于,包括:
第一微服务在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送访问授权码获取请求,并接收所述授权服务器返回的访问授权码及所述访问授权码的签名;
所述第一微服务发起访问所述第二微服务的请求,所述请求携带有所述访问授权码及所述访问授权码的签名;
所述第二微服务所属业务系统的API网关,接收所述请求,并基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理,在验签通过后,判断所述第一微服务是否有权限访问所述第二微服务;
若有权限,则将所述请求发送给所述第二微服务。
2.根据权利要求1所述的方法,其特征在于,所述判断所述第一微服务是否有权限访问所述第二微服务,包括:
从所述请求中解析出所述第二微服务的访问地址,在本地缓存中存储的允许所述第一微服务访问的地址中,查找与所述第二微服务的访问地址相匹配的地址。
3.根据权利要求1所述的方法,其特征在于,所述访问授权码及所述访问授权码的签名的生成过程,包括:
所述授权服务器从所述访问授权码获取请求中解析出所述第一微服务的用户名及客户端密钥,并验证所述第一微服务的用户名及客户端密钥是否正确;
若正确,则在用户信息表中查找与所述第一微服务的用户名对应的业务系统的私钥;
若查找到,则对目标信息进行封装,得到访问授权码,所述目标信息至少包含所述第一微服务的用户名及标识信息;
利用所述私钥,生成所述访问授权码的签名。
4.根据权利要求1所述的方法,其特征在于,所述接收所述授权服务器返回的访问授权码及所述访问授权码的签名之后,还包括:
将所述授权服务器返回的访问授权码存储到内存中。
5.根据权利要求1所述的方法,其特征在于,所述第一微服务在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送授权码获取请求之前,还包括:
所述第一微服务在向其业务系统的注册中心申请注册时,向授权服务器发送注册授权码获取请求,并接收所述授权服务器返回的注册授权码及所述注册授权码的签名;
所述第一微服务将包含所述注册授权码及所述注册授权码的签名的注册请求发送给所述注册中心;
所述注册中心从所述注册请求中获取所述注册授权码及所述注册授权码的签名,并基于所述注册授权码及所述注册授权码的签名,进行验签处理,在验签通过后,将所述第一微服务注册到所述注册中心。
6.一种基于API网关的认证授权系统,其特征在于,包括:
第一微服务客户端,用于在请求访问与其属于不同业务系统的第二微服务时,向授权服务器发送访问授权码获取请求;
授权服务器,用于生成访问授权码及所述访问授权码的签名;
所述第一微服务客户端,还用于接收所述授权服务器返回的访问授权码及所述访问授权码的签名,及发起访问所述第二微服务的请求,所述请求携带有所述访问授权码及所述访问授权码的签名;
第二微服务所属业务系统的API网关,用于:
接收所述请求,并基于所述请求中的所述访问授权码及所述访问授权码的签名,进行验签处理,在验签通过后,判断所述第一微服务是否有权限访问所述第二微服务;
若有权限,则将所述请求发送给所述第二微服务的客户端。
7.根据权利要求6所述的系统,其特征在于,所述第二微服务所属业务系统的API网关,具体用于:
从所述请求中解析出所述第二微服务的访问地址,在本地缓存中存储的允许所述第一微服务访问的地址中,查找与所述第二微服务的访问地址相匹配的地址。
8.根据权利要求6所述的系统,其特征在于,所述授权服务器,具体用于:
从所述访问授权码获取请求中解析出所述第一微服务的用户名及客户端密钥,并验证所述第一微服务的用户名及客户端密钥是否正确;
若正确,则在用户信息表中查找与所述第一微服务的用户名对应的业务系统的私钥;
若查找到,则对目标信息进行封装,得到访问授权码,所述目标信息至少包含所述第一微服务的用户名及标识信息;
利用所述私钥,生成所述访问授权码的签名。
9.根据权利要求6所述的系统,其特征在于,所述第一微服务客户端,还用于:将所述授权服务器返回的访问授权码存储到内存中。
10.根据权利要求6所述的系统,其特征在于,所述第一微服务客户端,还用于:
在向其业务系统的注册中心申请注册时,向授权服务器发送注册授权码获取请求,并接收所述授权服务器返回的注册授权码及所述注册授权码的签名;
将包含所述注册授权码及所述注册授权码的签名的注册请求发送给所述注册中心;
所述注册中心,用于从所述注册请求中获取所述注册授权码及所述注册授权码的签名,并基于所述注册授权码及所述注册授权码的签名,进行验签处理,在验签通过后,将第一微服务注册到所述注册中心。
CN202011472460.6A 2020-12-14 2020-12-14 一种基于api网关的认证授权方法及系统 Active CN112637163B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011472460.6A CN112637163B (zh) 2020-12-14 2020-12-14 一种基于api网关的认证授权方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011472460.6A CN112637163B (zh) 2020-12-14 2020-12-14 一种基于api网关的认证授权方法及系统

Publications (2)

Publication Number Publication Date
CN112637163A true CN112637163A (zh) 2021-04-09
CN112637163B CN112637163B (zh) 2023-06-27

Family

ID=75313618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011472460.6A Active CN112637163B (zh) 2020-12-14 2020-12-14 一种基于api网关的认证授权方法及系统

Country Status (1)

Country Link
CN (1) CN112637163B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113849558A (zh) * 2021-09-01 2021-12-28 支付宝(杭州)信息技术有限公司 一种部署数据共享服务的方法和装置
CN113922981A (zh) * 2021-08-25 2022-01-11 北京思特奇信息技术股份有限公司 一种用于微服务安全的防护方法及系统、电子设备、存储介质
CN115733672A (zh) * 2022-11-03 2023-03-03 支付宝(杭州)信息技术有限公司 数据处理方法、装置及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149741A1 (en) * 2012-11-27 2014-05-29 Oracle International Corporation Access management system using trusted partner tokens
CN111030828A (zh) * 2019-12-19 2020-04-17 中国电建集团华东勘测设计研究院有限公司 微服务架构下的权限控制方法、系统和访问令牌
CN111290865A (zh) * 2020-02-10 2020-06-16 腾讯科技(深圳)有限公司 一种服务调用方法、装置、电子设备和存储介质
CN111355743A (zh) * 2020-03-11 2020-06-30 成都卓杭网络科技股份有限公司 一种基于api网关的管理方法及其系统
CN111478771A (zh) * 2020-03-31 2020-07-31 招商局金融科技有限公司 微服务间安全访问的方法、微服务系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140149741A1 (en) * 2012-11-27 2014-05-29 Oracle International Corporation Access management system using trusted partner tokens
CN111030828A (zh) * 2019-12-19 2020-04-17 中国电建集团华东勘测设计研究院有限公司 微服务架构下的权限控制方法、系统和访问令牌
CN111290865A (zh) * 2020-02-10 2020-06-16 腾讯科技(深圳)有限公司 一种服务调用方法、装置、电子设备和存储介质
CN111355743A (zh) * 2020-03-11 2020-06-30 成都卓杭网络科技股份有限公司 一种基于api网关的管理方法及其系统
CN111478771A (zh) * 2020-03-31 2020-07-31 招商局金融科技有限公司 微服务间安全访问的方法、微服务系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113922981A (zh) * 2021-08-25 2022-01-11 北京思特奇信息技术股份有限公司 一种用于微服务安全的防护方法及系统、电子设备、存储介质
CN113849558A (zh) * 2021-09-01 2021-12-28 支付宝(杭州)信息技术有限公司 一种部署数据共享服务的方法和装置
CN115733672A (zh) * 2022-11-03 2023-03-03 支付宝(杭州)信息技术有限公司 数据处理方法、装置及设备

Also Published As

Publication number Publication date
CN112637163B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN112637163B (zh) 一种基于api网关的认证授权方法及系统
KR102514325B1 (ko) 모델 훈련 시스템 및 방법과, 저장 매체
TWI668589B (zh) Identity registration method and device
JP6574168B2 (ja) 端末識別方法、ならびにマシン識別コードを登録する方法、システム及び装置
US10212151B2 (en) Method for operating a designated service, service unlocking method, and terminal
CN112016106B (zh) 开放接口的认证调用方法、装置、设备和可读存储介质
CN110071806B (zh) 基于接口校验的数据处理的方法和系统
CN102067145A (zh) 通过独立端点解析来获得数字身份或令牌
CN109474600B (zh) 一种账号绑定方法、系统、装置及其设备
US11218464B2 (en) Information registration and authentication method and device
CN110795174B (zh) 一种应用程序接口调用方法、装置、设备及可读存储介质
CN108449308B (zh) 识别恶意资源访问的方法及装置
CN110943840B (zh) 一种签名验证方法
CN111031074A (zh) 一种认证方法、服务器和客户端
CN109981593B (zh) 一种数据交互的方法及服务器
CN107770143B (zh) 一种验证客户端合法性的方法和装置
EP4203438A1 (en) Message pushing method, and electronic device and storage medium
JP2004070814A (ja) サーバセキュリティ管理方法及び装置並びにプログラム
CN114978740A (zh) 基于区块链的标识关联和验证的解析方法
CN112364340B (zh) 权限管理方法、装置、设备及计算机可读存储介质
CN114338060A (zh) 一种权限校验方法、装置、系统、设备及存储介质
Al-Bahri et al. DOA Based Identification for Devices and Applications of IoT in Heterogeneous Networks
WO2018166365A1 (zh) 一种记录网站访问日志的方法和装置
CN111756739B (zh) 一种域名解析方法及相关设备
US12034712B2 (en) Communication between server systems in different network regions

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211109

Address after: 100192 room 710, research building 15, Xiaoying East Road, Qinghe, Haidian District, Beijing

Applicant after: BEIJING CHINA POWER INFORMATION TECHNOLOGY Co.,Ltd.

Address before: 100192 room 710, research building 15, Xiaoying East Road, Qinghe, Haidian District, Beijing

Applicant before: BEIJING CHINA POWER INFORMATION TECHNOLOGY Co.,Ltd.

Applicant before: STATE GRID INFORMATION & TELECOMMUNICATION GROUP Co.,Ltd.

GR01 Patent grant
GR01 Patent grant