CN116226879A - 服务接口访问控制方法、装置、计算机设备和存储介质 - Google Patents
服务接口访问控制方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116226879A CN116226879A CN202211702045.4A CN202211702045A CN116226879A CN 116226879 A CN116226879 A CN 116226879A CN 202211702045 A CN202211702045 A CN 202211702045A CN 116226879 A CN116226879 A CN 116226879A
- Authority
- CN
- China
- Prior art keywords
- interface
- character string
- service
- signature
- verification
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012795 verification Methods 0.000 claims abstract description 52
- 238000013475 authorization Methods 0.000 claims abstract description 33
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Computer Networks & Wireless Communication (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
本发明提供了一种服务接口访问控制方法、装置、计算机设备和存储介质。该方法包括:拦截接口调用方发送的接口调用请求;判断接口调用请求调用的目标接口是否属于需要访问授权的服务接口;当目标接口属于需要访问授权的服务接口时,获取接口调用请求携带的认证参数和签名字符串,其中,认证参数包括若干业务参数,签名字符串为接口调用方通过预设算法计算认证参数生成;通过预设算法计算认证参数生成验证字符串;判断签名字符串与验证字符串是否一致;以及当签名字符串与验证字符串一致时,转发接口调用请求至目标接口。通过本发明,利用基于横切面拦截的接口访问授权机制,实现接口级别的访问权限控制。
Description
技术领域
本发明涉及接口访问控制处理技术领域,尤其涉及一种服务接口访问控制方法、装置、计算机设备和存储介质。
背景技术
现有技术中,应用***会集成多种类型的服务接口,不同服务接口依据其重要程度和敏感程度的差异,具有不同的访问权限。为了实现权限控制,会在服务接口上设置权限控制模块,当该服务接口接收到调用请求时,先进行权限验证,在满足权限要求时,再反馈调用结果。
发明人研究发现,针对不同服务接口分别设置权限控制,对于应用***而言,资源消耗较大,因此,如何降低服务接口权限控制时的资源消耗,成为本领域技术人员亟需解决的技术问题。
发明内容
本发明的目的是提供一种服务接口访问控制方法、装置、计算机设备和存储介质,用于解决现有技术中的技术问题。
一方面,为实现上述目的,本发明提供了一种服务接口访问控制方法。
该服务接口访问控制方法包括:拦截接口调用方发送的接口调用请求;判断所述接口调用请求调用的目标接口是否属于需要访问授权的服务接口;当所述目标接口属于需要访问授权的服务接口时,获取所述接口调用请求携带的认证参数和签名字符串,其中,所述认证参数包括若干业务参数,所述签名字符串为所述接口调用方通过预设算法计算所述认证参数生成;通过所述预设算法计算所述认证参数生成验证字符串;判断所述签名字符串与所述验证字符串是否一致;以及当所述签名字符串与所述验证字符串一致时,转发所述接口调用请求至所述目标接口。
进一步地,通过所述预设算法计算所述认证参数生成验证字符串包括:将各个所述认证参数按照参数名称进行排序;将排序后的各个所述认证参数通过预设连接符连接,得到拼接字符串;在预存的秘钥集中获取所述接口调用方对应的秘钥;对所述拼接字符串按照所述秘钥进行加密,得到加密字符串;将所述加密字符串中的小写字母转换为大写字母,得到所述验证字符串。
进一步地,所述认证参数还包括接口调用方标识、时间戳和随机字符串,获取所述接口调用请求携带的认证参数和签名字符串的步骤包括:解析所述接口调用请求的请求头中携带的所述接口调用方标识、所述时间戳、所述随机字符串和所述签名字符串;以及获取所述接口调用请求的请求报文中的所述业务参数。
进一步地,获取所述接口调用请求的请求报文中的所述业务参数的步骤包括:当所述接口调用请求为以POST方式调用时,读取RequestBody,并将读取到的字符用utf-8编码转换成字符串,得到所述业务参数;当所述接口调用请求为以GET方式调用时,读取RequestParam的所有值非空的键值对,得到所述业务参数。
进一步地,当所述接口调用请求为以GET方式调用时,读取RequestParam的所有值非空的键值对,得到所述业务参数的步骤包括:读取RequestParam的所有值非空的键值对;判断所述键值对中是否包含所述接口调用方标识或所述时间戳;若所述键值对中包含所述接口调用方标识时,删除所述键值对中的所述接口调用方标识,若所述键值对中包含所述时间戳,删除所述键值对中的所述时间戳,得到所述业务参数。
进一步地,在判断所述签名字符串与所述验证字符串是否一致的步骤之前,所述方法还包括:获取所述目标接口的当前时间;判断所述时间戳与所述目标接口的当前时间的时间差是否大于预设时间阈值;其中,当所述时间差小于或等于所述预设时间阈值时,执行判断所述签名字符串与所述验证字符串是否一致的步骤。
进一步地,所述方法还包括:当所述时间差大于预设时间阈值时,向所述接口调用方返回请求超时的信息。
另一方面,为实现上述目的,本发明提供了一种服务接口访问控制装置。
该服务接口访问控制装置包括:拦截模块,用于拦截接口调用方发送的接口调用请求;第一判断模块,用于判断所述接口调用请求调用的目标接口是否属于需要访问授权的服务接口;第一获取模块,用于当所述目标接口属于需要访问授权的服务接口时,获取所述接口调用请求携带的认证参数和签名字符串,其中,所述认证参数包括若干业务参数,所述签名字符串为所述接口调用方通过预设算法计算所述认证参数生成;计算模块,用于通过所述预设算法计算所述认证参数生成验证字符串;第二判断模块,用于判断所述签名字符串与所述验证字符串是否一致;以及转发模块,用于当所述签名字符串与所述验证字符串一致时,转发所述接口调用请求至所述目标接口。
为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
本发明提供的服务接口访问控制方法、装置、计算机设备和存储介质,在所有服务接口之前设置访问授权组件,在对服务接口进行调用时,拦截接口调用方发送的接口调用请求,先判断接口调用请求调用的目标接口是否属于需要访问授权的服务接口,如果属于,则获取接口调用请求携带的认证参数和签名字符串,在认证参数中设置若干业务参数,以使不同的接口调用通过相同的验证逻辑实现了权限验证,其中的签名字符串为接口调用方通过预设算法计算认证参数生成的,在进行权限认证时,访问授权组件通过相同的预设算法计算认证参数生成验证字符串,判断签名字符串与验证字符串是否一致,当一致时,转发所述接口调用请求至目标接口。通过本发明,实现基于横切面拦截的接口访问授权机制,从而能够在接口级别实现统一的访问权限控制,不再需要各个服务接口单独进行权限控制,节省权限控制的资源消耗。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例一提供的服务接口访问控制方法的流程图;
图2为本发明实施例二提供的服务接口访问控制装置;
图3为本发明实施例三提供的计算机设备的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
针对包括多种类型的服务接口应用***,例如包括查询接口、交易接口、支付接口和指令下发接口等服务接口的应用***,不同的服务接口的重要程度、敏感程度不一样,对于交易、支付和指令型的服务接口,需要对接口做访问权限控制,只有经过授权认证的服务接口才能调用。本发明实施例提供了一种服务接口访问控制方法,开发了一种服务接口访问授权组件,实现基于横切面拦截的接口访问授权机制,实现接口级别统一的访问权限控制,不再需要各个服务接口单独进行权限控制。具体地,图1为本发明实施例一提供的服务接口访问控制方法的流程图,如图1所示,该实施例提供的服务接口访问控制方法包括如下的步骤S101至步骤S106。
步骤S101:拦截接口调用方发送的接口调用请求。
可选地,接口调用方需要调用应用***中的某服务接口时,向该服务接口发送接口调用请求。访问授权组件拦截该接口调用请求,对该接口调用请求进行权限判定。
可选地,接口调用方基于认证参数生成签名字符串,接口调用请求携带该认证参数和签名字符串,以使访问授权组件进行权限判断。
进一步地可选地,接口调用方在进行接口调用前,需要接口提供方分配接口调用方标识和接入秘钥,也即,接口调用方标识和接入秘钥是应用***后台向接口调用方分配的,且接口调用方标识和接入秘钥均唯一对应接口调用方。在进行接口调用时,将业务参数以及接口调用方标识appId、时间戳timestamp和随机字符串等认证参数,先按照参数名称进行排序,例如,按照参数名称的ascii码值升序或降序进行排序,并将排序后的各个认证参数通过预设连接符连接,得到拼接字符串,例如,通过字符“&”进行拼接,得到拼接字符串key1=value1&key2=value2&key3=value3……,然后利用分配的接入秘钥进行加密,得到加密字符串,例如,使用HmacSHA256加密,再用Base64转成加密字符串,最后将加密字符串转成大写,则得到签名字符串signature。
可选地,将各认证参数中除业务参数之外的其他参数设置于接口调用请求的请求头中,将业务参数设置于接口调用请求的请求报文中。
步骤S102:判断接口调用请求调用的目标接口是否属于需要访问授权的服务接口。
访问授权组件维护需要进行权限控制的服务接口的接口标识的接口标识表,接口调用请求中携带有目标接口的接口标识。访问授权组件在拦截接口调用请求后,首先获取接口调用请求中的目标接口的接口标识,遍历接口标识表,判断目标接口的接口标识是否属于接口标识表,当目标接口的接口标识属于接口标识表,则该接口调用请求调用的目标接口属于需要访问授权的服务接口,否则,该接口调用请求调用的目标接口不属于需要访问授权的服务接口。
其中,当接口调用请求调用的目标接口属于需要访问授权的服务接口时,执行如下的步骤S103。当接口调用请求调用的目标接口不属于需要访问授权的服务接口时,直接转发接口调用请求至目标接口。
步骤S103:当目标接口属于需要访问授权的服务接口时,获取接口调用请求携带的认证参数和签名字符串。
其中,认证参数包括若干业务参数,签名字符串为接口调用方通过预设算法计算认证参数生成。
可选地,认证参数还包括接口调用方标识、时间戳和随机字符串,在该步骤S103中,在获取接口调用请求携带的认证参数和签名字符串时,解析接口调用请求的请求头中携带的接口调用方标识、时间戳、随机字符串和签名字符串,获取接口调用请求的请求报文中的业务参数。
进一步可选地,在获取接口调用请求的请求报文中的业务参数时,调用方式不同,获取业务参数的方式不同。当接口调用请求为以POST方式调用时,读取RequestBody,并将读取到的字符用utf-8编码转换成字符串,得到业务参数,当成key=request的value。当接口调用请求为以GET方式调用时,读取RequestParam的所有值非空的键值对,得到业务参数,也即取HttpServletRequest.getParameterMap()的所有value非空的键值对。其中,当接口调用请求为以GET方式调用时,首先读取RequestParam的所有值非空的键值对,然后判断键值对中是否包含接口调用方标识或时间戳,若键值对中包含接口调用方标识时,删除键值对中的接口调用方标识,若键值对中包含时间戳,删除键值对中的时间戳,得到业务参数,也就是说,若业务参数中包含appId、timestamp,则会被认证参数中的appId、timestamp覆盖。
步骤S104:通过预设算法计算认证参数生成验证字符串。
在获取到接口调用请求中的认证参数和签名字符串后,采用与接口调用方相同的方法,利用认证参数生成验证字符串,以对签名字符串进行验证。具体地,首先将各个认证参数按照参数名称进行排序,然后将排序后的各个认证参数通过预设连接符连接,得到拼接字符串,再在预存的秘钥集中获取接口调用方对应的秘钥,例如,秘钥集存储有接口调用方标识和秘钥的对应关系,在获取接口调用方的秘钥时,利用该接口调用方标识从秘钥集中得到对应的秘钥。对拼接字符串按照秘钥进行加密,得到加密字符串,将加密字符串中的小写字母转换为大写字母,得到验证字符串。
步骤S105:判断签名字符串与验证字符串是否一致。
将签名字符串与验证字符串进行比对,以判断二者是否一致。当签名字符串与验证字符串一致时,表明接口调用方具有调用目标接口的权限,执行下述步骤S106。当签名字符串与验证字符串不一致时,表明接口调用方不具有调用目标接口的权限,调用属于非法调用,可向接口调用方返回请求超出权限的信息。
步骤S106:当签名字符串与验证字符串一致时,转发接口调用请求至目标接口。
在该实施例提供的服务接口访问控制方法中,在所有服务接口之前设置访问授权组件,在对服务接口进行调用时,拦截接口调用方发送的接口调用请求,先判断接口调用请求调用的目标接口是否属于需要访问授权的服务接口,如果属于,则获取接口调用请求携带的认证参数和签名字符串,在认证参数中设置若干业务参数,以使不同的接口调用通过相同的验证逻辑实现了权限验证,其中的签名字符串为接口调用方通过预设算法计算认证参数生成的,在进行权限认证时,访问授权组件通过相同的预设算法计算认证参数生成验证字符串,判断签名字符串与验证字符串是否一致,当一致时,转发所述接口调用请求至目标接口。采用该实施例提供的服务接口访问控制方法,实现基于横切面拦截的接口访问授权机制,从而能够在接口级别实现统一的访问权限控制,不再需要各个服务接口单独进行权限控制,节省权限控制的资源消耗。
可选地,在一种实施例中,在判断签名字符串与验证字符串是否一致的步骤之前,该方法还包括:获取目标接口的当前时间;判断时间戳与目标接口的当前时间的时间差是否大于预设时间阈值;其中,当时间差小于或等于预设时间阈值时,执行判断签名字符串与验证字符串是否一致的步骤。当时间差大于预设时间阈值时,向接口调用方返回请求超时的信息。
具体而言,在对签名字符串进行验证之前,先进行时效性的验证,判断时间戳与目标接口的当前时间的时间差是否大于预设时间阈值,如果该时间差大于预设时间阈值,表明接口调用请求已超时,此时向接口调用方返回请求超时的信息,接口调用方可根据需要重新发起接口调用请求。如果该时间差小于或等于预设时间阈值,表明接口调用请求还在时效范围内,此时再执行判断签名字符串与验证字符串是否一致的步骤。
实施例二
对应于上述实施例一,本发明实施例二提供了一种服务接口访问控制装置,相应地技术特征细节和对应的技术效果可参考上述实施例一,在该实施例中不再赘述。图2为本发明实施例二提供的服务接口访问控制装置的框图,如图2所示,该装置包括:拦截模块201、第一判断模块202、第一获取模块203、计算模块204、第二判断模块205和转发模块206。
其中,拦截模块201,用于拦截接口调用方发送的接口调用请求;第一判断模块202,用于判断所述接口调用请求调用的目标接口是否属于需要访问授权的服务接口;第一获取模块203,用于当所述目标接口属于需要访问授权的服务接口时,获取所述接口调用请求携带的认证参数和签名字符串,其中,所述认证参数包括若干业务参数,所述签名字符串为所述接口调用方通过预设算法计算所述认证参数生成;计算模块204,用于通过所述预设算法计算所述认证参数生成验证字符串;第二判断模块205,用于判断所述签名字符串与所述验证字符串是否一致;以及转发模块206,用于当所述签名字符串与所述验证字符串一致时,转发所述接口调用请求至所述目标接口。
可选地,在一种实施例中,计算模块包括:排序单元,用于将各个所述认证参数按照参数名称进行排序;拼接单元,用于将排序后的各个所述认证参数通过预设连接符连接,得到拼接字符串;获取单元,用于在预存的秘钥集中获取所述接口调用方对应的秘钥;加密单元,用于对所述拼接字符串按照所述秘钥进行加密,得到加密字符串;转换单元,用于将所述加密字符串中的小写字母转换为大写字母,得到所述验证字符串。
可选地,在一种实施例中,所述认证参数还包括接口调用方标识、时间戳和随机字符串,第一获取模块包括:解析单元,用于解析所述接口调用请求的请求头中携带的所述接口调用方标识、所述时间戳、所述随机字符串和所述签名字符串;以及获取单元,用于获取所述接口调用请求的请求报文中的所述业务参数。
可选地,在一种实施例中,获取单元包括:第一获取子单元,用于当所述接口调用请求为以POST方式调用时,读取RequestBody,并将读取到的字符用utf-8编码转换成字符串,得到所述业务参数;第二获取子单元,用于当所述接口调用请求为以GET方式调用时,读取RequestParam的所有值非空的键值对,得到所述业务参数。
可选地,在一种实施例中,当所述接口调用请求为以GET方式调用时,第二获取子单元在读取RequestParam的所有值非空的键值对,得到所述业务参数时,具体执行的步骤包括:读取RequestParam的所有值非空的键值对;判断所述键值对中是否包含所述接口调用方标识或所述时间戳;若所述键值对中包含所述接口调用方标识时,删除所述键值对中的所述接口调用方标识,若所述键值对中包含所述时间戳,删除所述键值对中的所述时间戳,得到所述业务参数。
可选地,在一种实施例中,所述装置还包括:第二获取模块,用于在第二判断模块判断所述签名字符串与所述验证字符串是否一致之前,获取所述目标接口的当前时间;第三判断模块,用于判断所述时间戳与所述目标接口的当前时间的时间差是否大于预设时间阈值;其中,第二获取模块还用于当所述时间差小于或等于所述预设时间阈值时,执行判断所述签名字符串与所述验证字符串是否一致的步骤。
可选地,在一种实施例中,所述装置还包括:反馈单元,用于当所述时间差大于预设时间阈值时,向所述接口调用方返回请求超时的信息。
实施例三
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图3所示,本实施例的计算机设备01至少包括但不限于:可通过***总线相互通信连接的存储器012、处理器011,如图3所示。需要指出的是,图3仅示出了具有组件存储器012和处理器011的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器012(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器012可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器012也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器012还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器012通常用于存储安装于计算机设备01的操作***和各类应用软件,例如实施例二的服务接口访问控制装置的程序代码等。此外,存储器012还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器011在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器011通常用于控制计算机设备01的总体操作。本实施例中,处理器011用于运行存储器012中存储的程序代码或者处理数据,例如服务接口访问控制方法等。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储服务接口访问控制装置,被处理器执行时实现实施例一的服务接口访问控制方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种服务接口访问控制方法,其特征在于,包括:
拦截接口调用方发送的接口调用请求;
判断所述接口调用请求调用的目标接口是否属于需要访问授权的服务接口;
当所述目标接口属于需要访问授权的服务接口时,获取所述接口调用请求携带的认证参数和签名字符串,其中,所述认证参数包括若干业务参数,所述签名字符串为所述接口调用方通过预设算法计算所述认证参数生成;
通过所述预设算法计算所述认证参数生成验证字符串;
判断所述签名字符串与所述验证字符串是否一致;以及
当所述签名字符串与所述验证字符串一致时,转发所述接口调用请求至所述目标接口。
2.根据权利要求1所述的服务接口访问控制方法,其特征在于,通过所述预设算法计算所述认证参数生成验证字符串包括:
将各个所述认证参数按照参数名称进行排序;
将排序后的各个所述认证参数通过预设连接符连接,得到拼接字符串;
在预存的秘钥集中获取所述接口调用方对应的秘钥;
对所述拼接字符串按照所述秘钥进行加密,得到加密字符串;
将所述加密字符串中的小写字母转换为大写字母,得到所述验证字符串。
3.根据权利要求1所述的服务接口访问控制方法,其特征在于,所述认证参数还包括接口调用方标识、时间戳和随机字符串,获取所述接口调用请求携带的认证参数和签名字符串的步骤包括:
解析所述接口调用请求的请求头中携带的所述接口调用方标识、所述时间戳、所述随机字符串和所述签名字符串;以及
获取所述接口调用请求的请求报文中的所述业务参数。
4.根据权利要求3所述的服务接口访问控制方法,其特征在于,获取所述接口调用请求的请求报文中的所述业务参数的步骤包括:
当所述接口调用请求为以POST方式调用时,读取RequestBody,并将读取到的字符用utf-8编码转换成字符串,得到所述业务参数;
当所述接口调用请求为以GET方式调用时,读取RequestParam的所有值非空的键值对,得到所述业务参数。
5.根据权利要求4所述的服务接口访问控制方法,其特征在于,当所述接口调用请求为以GET方式调用时,读取RequestParam的所有值非空的键值对,得到所述业务参数的步骤包括:
读取RequestParam的所有值非空的键值对;
判断所述键值对中是否包含所述接口调用方标识或所述时间戳;
若所述键值对中包含所述接口调用方标识时,删除所述键值对中的所述接口调用方标识,若所述键值对中包含所述时间戳,删除所述键值对中的所述时间戳,得到所述业务参数。
6.根据权利要求3所述的服务接口访问控制方法,其特征在于,在判断所述签名字符串与所述验证字符串是否一致的步骤之前,所述方法还包括:
获取所述目标接口的当前时间;
判断所述时间戳与所述目标接口的当前时间的时间差是否大于预设时间阈值;
其中,当所述时间差小于或等于所述预设时间阈值时,执行判断所述签名字符串与所述验证字符串是否一致的步骤。
7.根据权利要求6所述的服务接口访问控制方法,其特征在于,所述方法还包括:
当所述时间差大于预设时间阈值时,向所述接口调用方返回请求超时的信息。
8.一种服务接口访问控制装置,其特征在于,包括:
拦截模块,用于拦截接口调用方发送的接口调用请求;
第一判断模块,用于判断所述接口调用请求调用的目标接口是否属于需要访问授权的服务接口;
第一获取模块,用于当所述目标接口属于需要访问授权的服务接口时,获取所述接口调用请求携带的认证参数和签名字符串,其中,所述认证参数包括若干业务参数,所述签名字符串为所述接口调用方通过预设算法计算所述认证参数生成;
计算模块,用于通过所述预设算法计算所述认证参数生成验证字符串;
第二判断模块,用于判断所述签名字符串与所述验证字符串是否一致;以及
转发模块,用于当所述签名字符串与所述验证字符串一致时,转发所述接口调用请求至所述目标接口。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211702045.4A CN116226879A (zh) | 2022-12-26 | 2022-12-26 | 服务接口访问控制方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211702045.4A CN116226879A (zh) | 2022-12-26 | 2022-12-26 | 服务接口访问控制方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116226879A true CN116226879A (zh) | 2023-06-06 |
Family
ID=86574053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211702045.4A Pending CN116226879A (zh) | 2022-12-26 | 2022-12-26 | 服务接口访问控制方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116226879A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319096A (zh) * | 2023-12-01 | 2023-12-29 | 深圳市丰润达科技有限公司 | 访问权限管理方法、访问权限管理设备以及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8300532B1 (en) * | 2008-09-23 | 2012-10-30 | Juniper Networks, Inc. | Forwarding plane configuration for separation of services and forwarding in an integrated services router |
CN107453878A (zh) * | 2017-08-11 | 2017-12-08 | 四川长虹电器股份有限公司 | 一种支持rest api防篡改防重放的方法 |
CN109450649A (zh) * | 2018-12-28 | 2019-03-08 | 北京金山安全软件有限公司 | 一种基于应用程序接口的网关验证方法、装置及电子设备 |
CN111314306A (zh) * | 2020-01-17 | 2020-06-19 | 网易(杭州)网络有限公司 | 接口访问方法及装置、电子设备、存储介质 |
CN112149109A (zh) * | 2020-09-21 | 2020-12-29 | 珠海市卓轩科技有限公司 | 模块化权限控制管理方法及*** |
CN114374517A (zh) * | 2021-12-08 | 2022-04-19 | 天翼物联科技有限公司 | 基于动态时间戳的api调用方法、***、装置及存储介质 |
CN114584381A (zh) * | 2022-03-07 | 2022-06-03 | 云知声智能科技股份有限公司 | 基于网关的安全认证方法、装置、电子设备和存储介质 |
-
2022
- 2022-12-26 CN CN202211702045.4A patent/CN116226879A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8300532B1 (en) * | 2008-09-23 | 2012-10-30 | Juniper Networks, Inc. | Forwarding plane configuration for separation of services and forwarding in an integrated services router |
CN107453878A (zh) * | 2017-08-11 | 2017-12-08 | 四川长虹电器股份有限公司 | 一种支持rest api防篡改防重放的方法 |
CN109450649A (zh) * | 2018-12-28 | 2019-03-08 | 北京金山安全软件有限公司 | 一种基于应用程序接口的网关验证方法、装置及电子设备 |
CN111314306A (zh) * | 2020-01-17 | 2020-06-19 | 网易(杭州)网络有限公司 | 接口访问方法及装置、电子设备、存储介质 |
CN112149109A (zh) * | 2020-09-21 | 2020-12-29 | 珠海市卓轩科技有限公司 | 模块化权限控制管理方法及*** |
CN114374517A (zh) * | 2021-12-08 | 2022-04-19 | 天翼物联科技有限公司 | 基于动态时间戳的api调用方法、***、装置及存储介质 |
CN114584381A (zh) * | 2022-03-07 | 2022-06-03 | 云知声智能科技股份有限公司 | 基于网关的安全认证方法、装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
刘波;廖娟;李松波;: "云环境下校园网统一身份认证与授权策略研究", 河北软件职业技术学院学报, no. 03, 31 March 2017 (2017-03-31), pages 4 - 7 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117319096A (zh) * | 2023-12-01 | 2023-12-29 | 深圳市丰润达科技有限公司 | 访问权限管理方法、访问权限管理设备以及可读存储介质 |
CN117319096B (zh) * | 2023-12-01 | 2024-04-23 | 深圳市丰润达科技有限公司 | 访问权限管理方法、访问权限管理设备以及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108200050B (zh) | 单点登录服务器、方法及计算机可读存储介质 | |
CN111756753B (zh) | 一种权限验证方法及*** | |
CN110348239B (zh) | 脱敏规则配置方法以及数据脱敏方法、***、计算机设备 | |
US11838425B2 (en) | Systems and methods for maintaining decentralized digital identities | |
CN111541656A (zh) | 基于融合媒体云平台的身份认证方法及*** | |
CN110149328B (zh) | 接口鉴权方法、装置、设备及计算机可读存储介质 | |
CN111343168A (zh) | 一种身份验证的方法、装置、计算机设备及可读存储介质 | |
US20200196143A1 (en) | Public key-based service authentication method and system | |
CN112016106A (zh) | 开放接口的认证调用方法、装置、设备和可读存储介质 | |
CN112367164B (zh) | 业务请求处理方法、装置、计算机设备和存储介质 | |
CN113271296B (zh) | 一种登录权限管理的方法和装置 | |
CN113472774A (zh) | 账号免登录方法、***、设备及计算机可读存储介质 | |
CN111880919A (zh) | 数据调度方法、***和计算机设备 | |
CN112953978A (zh) | 一种多重签名认证方法、装置、设备及介质 | |
CN113360868A (zh) | 应用程序登录方法、装置、计算机设备和存储介质 | |
CN116226879A (zh) | 服务接口访问控制方法、装置、计算机设备和存储介质 | |
EP3407241B1 (en) | User authentication and authorization system for a mobile application | |
CN112565293A (zh) | 信息安全管理方法、装置、计算机设备及可读存储介质 | |
CN109933974B (zh) | 密码初始化方法、装置、计算机设备及存储介质 | |
CN108965335B (zh) | 防止恶意访问登录接口的方法、电子设备及计算机介质 | |
CN115567271A (zh) | 鉴权方法和装置、页面跳转方法和装置、电子设备及介质 | |
CN111753308B (zh) | 一种信息验证方法及电子设备 | |
CN114338788B (zh) | 消息推送方法、电子设备及存储介质 | |
CN109688158B (zh) | 金融执行链认证方法、电子装置及存储介质 | |
CN114579951A (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 |