CN111865920B - 一种网关认证和身份鉴权的平台及其方法 - Google Patents

一种网关认证和身份鉴权的平台及其方法 Download PDF

Info

Publication number
CN111865920B
CN111865920B CN202010558486.6A CN202010558486A CN111865920B CN 111865920 B CN111865920 B CN 111865920B CN 202010558486 A CN202010558486 A CN 202010558486A CN 111865920 B CN111865920 B CN 111865920B
Authority
CN
China
Prior art keywords
authentication
token
service
gateway
access
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.)
Active
Application number
CN202010558486.6A
Other languages
English (en)
Other versions
CN111865920A (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.)
Pang Maolin
Original Assignee
Pang Maolin
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 Pang Maolin filed Critical Pang Maolin
Priority to CN202010558486.6A priority Critical patent/CN111865920B/zh
Publication of CN111865920A publication Critical patent/CN111865920A/zh
Application granted granted Critical
Publication of CN111865920B publication Critical patent/CN111865920B/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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • 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
    • H04L63/101Access control lists [ACL]
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Landscapes

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

Abstract

一种网关认证和身份鉴权的平台,包括客户端、API网关、由多个Redis缓存构成的Redis集群、统一认证授权服务、由多个用户数据库构成的用户数据库、由多个服务应用构成的服务模块,用户通过客户端登陆平台,获取鉴权认证信息,通过API网关直接调用统一认证授权服务,访问用户数据库,校验登录账号信息与用户数据库保存信息是否一致,如果一致,再请求认证服务生成唯一的认证令牌token,存到分布式缓存Redis缓存中,带上认证令牌token返回客户端,客户端存储认证令牌token;如果不一致,则返回客户端提示平台不存在该用户,需要先注册。

Description

一种网关认证和身份鉴权的平台及其方法
技术领域
本发明涉及网关认证和身份鉴权。尤其是一种网关认证和身份鉴权的平台及其方法。
背景技术
在医美行业,采用网关认证或身份鉴权单一模式的比较多,但缺乏网关认证和身份鉴权统一认证机制,通过这种方式,解决了单独网关认证和单独身份认证各自的弊端,如网关认证存在过滤器失效导致认证失败的问题,身份认证则存在缓存身份信息超时和刷新重载出错的问题,只有把二者结合起来,才能解决上述问题。
该技术实现了通过设置网关动态路由和分布式缓存的方式,解决了单独网关认证和单独身份认证各自的弊端,对系统的访问增加了双重保护,保证了平台信息和资金的安全性、用户访问操作便利性,大大降低平台资金和敏感信息风控。
发明内容
本发明为了克服现有技术方案的不足,聚焦在医美行业,采用统一网关认证和身份鉴权机制,保证了平台信息和资金的安全性、用户访问操作便利性,大大降低平台资金和敏感信息风控等,提供了一种网关认证和身份鉴权的平台及其方法。
为了实现上述目的,本发明的技术方案为:一种网关认证和身份鉴权的平台,包括客户端、API网关、由多个Redis缓存构成的Redis集群、统一认证授权服务、由多个用户数据库构成的用户数据库、由多个服务应用构成的服务模块,
用户通过客户端登陆平台,获取鉴权认证信息,通过API网关直接调用统一认证授权服务,访问用户数据库,校验登录账号信息与用户数据库保存信息是否一致,如果一致,再请求认证服务(Oauth2/jwt)生成唯一的认证令牌token,存到分布式缓存Redis缓存中,带上认证令牌token返回客户端,客户端存储认证令牌token;如果不一致,则返回客户端提示平台不存在该用户,需要先注册;
客户端在访问的头部数据head中携带生成的认证令牌token访问服务模块,先通过API网关的统一认证后,由统一的API网关路由到相应的服务应用,由相应的服务应用访问Redis缓存来验证认证令牌token,如果验证通过,同时获取该用户的权限列表,解析通过后,则能访问相应的服务应用的功能内容,如果验证不通过,则返回客户端提示用户没有服务应用的访问权限,
服务应用之间正常访问需要进行服务间访问鉴权,服务应用通过解析器TokenResolver解析头部数据head上的认证令牌token并通过SecurityFilter来验证是否能访问该服务应用,如果通过验证,则能正常访问,否则返回客户端提示无权限访问。
一种网关认证和身份鉴权的方法,
S1.用户通过客户端APP向API网关发起登录平台的请求;
S2.请求并生成访问令牌access_token:向统一认证授权服务(Oauth2/JWT)请求生成访问令牌access_token,验证该用户信息的有效性,如果正确,平台会生成access_token并访问用户数据库;
S3.将访问令牌access_token及其携带的认证权限存储到Redis缓存中,便于平台或其它系统后续使用;
S4.用户通过访问令牌access_token访问相应的服务应用校验其合法性;
S5.获取Redis缓存中现有登录令牌token,比较访问令牌access_token和现有令牌token,验证访问令牌access_token的合法性和有效性(是否过期等);
S6.校验通过,则向相应的服务应用返回访问令牌access_token;
S6.1.相应的服务应用返回校验通过的登录令牌login_token给客户端;
S7.客户端携带登录令牌login_token通过统一认证授权服务访问其它服务应用;
S7.1.其它服务应用校验登录令牌login_token的合法性;
S7.2.通过Redis缓存或用户数据库获取当前用户变更信息或权限变更信息,同时在Redis缓存中删除过去式令牌信息;
S7.3.其它服务应用返回新的用户信息给统一认证授权服务;
S8.统一认证授权服务重新生成现有令牌token并在Redis缓存存储,重新生成访问其它页面授权令牌;
S8.1.返回其它服务应用授权页面给客户端。
有益效果:
(1)采用统一网关认证和身份鉴权机制,保证了平台信息和资金的安全性、用户访问操作便利性,大大降低平台资金和敏感信息风控;
(2)简化内部服务之间互相调用的复杂度;
(3)具有轻量级植入特性;
(4)安全性系数高;
(5)使用范围广;
(6)使用软硬双加密技术保障了平台的通信和信息传输的安全性;
(7)实支持有网络隔离和无网络隔离多种系统部署场景;
(8)通过混合加密模式确保信用数据共享交换过程中数据传输的安全性;
(9)负载均衡器按照策略分配到服务节点,保负载均衡器能真实准确地获取服务节点的实时处理能力,避免实时参数过程对系统的性能造成影响;
附图说明
图1为本发明的服务网关路由和身份鉴权认证平台结构图;
图2为本发明的服务网关路由和身份鉴权认证方法流程图;
具体实施方式
下面结合附图与实施例对本发明作进一步的说明。
一种网关认证和身份鉴权的平台,包括客户端、API网关、由多个Redis缓存构成的Redis集群、统一认证授权服务、由多个用户数据库构成的用户数据库、由多个服务应用构成的服务模块,
用户通过客户端登陆平台,获取鉴权认证信息,通过API网关直接调用统一认证授权服务,访问用户数据库,校验登录账号信息与用户数据库保存信息是否一致,如果一致,再请求认证服务(Oauth2/jwt)生成唯一的认证令牌token,存到分布式缓存Redis缓存中,带上认证令牌token返回客户端,客户端存储认证令牌token;如果不一致,则返回客户端提示平台不存在该用户,需要先注册;
客户端在访问的头部数据head中携带生成的认证令牌token访问服务模块,先通过API网关的统一认证后,由统一的API网关路由到相应的服务应用,由相应的服务应用访问Redis缓存来验证认证令牌token,如果验证通过,同时获取该用户的权限列表,解析通过后,则能访问相应的服务应用的功能内容,如果验证不通过,则返回客户端提示用户没有服务应用的访问权限,
服务应用之间正常访问需要进行服务间访问鉴权,服务应用通过解析器TokenResolver解析头部数据head上的认证令牌token并通过SecurityFilter来验证是否能访问该服务应用,如果通过验证,则能正常访问,否则返回客户端提示无权限访问。
至此权限验证中有关token生成、存储、校验、更新等模式流程完成。
其中,客户端为手机、PC以及POS机。
一种网关认证和身份鉴权的方法,
S1.用户通过客户端APP向API网关发起登录平台的请求;
S2.请求并生成访问令牌access_token:向统一认证授权服务(Oauth2/JWT)请求生成访问令牌access_token,验证该用户信息的有效性,如果正确,平台会生成access_token并访问用户数据库;
S3.将访问令牌access_token及其携带的认证权限存储到Redis缓存中,便于平台或其它系统后续使用;
S4.用户通过访问令牌access_token访问相应的服务应用校验其合法性;
S5.获取Redis缓存中现有登录令牌token,比较访问令牌access_token和现有令牌token,验证访问令牌access_token的合法性和有效性(是否过期等);
S6.校验通过,则向相应的服务应用返回访问令牌access_token;
S6.1.相应的服务应用返回校验通过的登录令牌login_token给客户端;
S7.客户端携带登录令牌login_token通过统一认证授权服务访问其它服务应用;
S7.1.其它服务应用校验登录令牌login_token的合法性;
S7.2.通过Redis缓存或用户数据库获取当前用户变更信息或权限变更信息,同时在Redis缓存中删除过去式令牌信息;
S7.3.其它服务应用返回新的用户信息给统一认证授权服务;
S8.统一认证授权服务重新生成现有令牌token并在Redis缓存存储,重新生成访问其它页面授权令牌;
S8.1.返回其它服务应用授权页面给客户端。
其中,API网关为SCGateway服务网关并具有负载均衡工具,实现了服务自动发现技术,自动发现技术是指通过监听机制来保障任何新增的注册服务,平台都能自动发现该注册服务,所有在注册中心配置任何注册服务,都能在应用中自动被发现和被拉取,本地调用该远程服务;
其中,API网关实现路由的可配置和插拔式的应用,可配置和插拔式是指通过在代码注解@RefreshScope来实现实时刷新机制,在配置中心中任何更新信息,无需重新启动应用,直接在服务应用中生效和使用,在API网关中更改任何路由信息,无需再启动API网关的路由,直接生效。
其中,SCGateway服务网关,即SpringCloudGateway服务网关,是SpringCloud推出的网关框架,SCGateway服务网关在平台中简化前端的调用逻辑以及内部服务应用之间互相调用的复杂度,接收并转发所有内外部的客户端调用,并实现了权限认证以及限流控制;
其中,负载均衡工具为SpringCloudRibbon,是一个基于HTTP和TCP的客户端负载均衡工具,基于NetflixRibbon实现,通过SpringCloud的封装,面向服务的REST模版请求自动转换成客户端负载均衡的服务调用,SpringCloudRibbon存在SpringCloud构建的微服务和基础设施中,因为微服务间的调用,API网关的请求转发等内容都是通过SpringCloudRibbon来实现的。
其中,负载均衡工具具有轻量级植入特性,轻量级植入特性是指引用极简的组件或微量的代码,非引用系列的套件或大量的代码到平台上,SpringCloudRibbon就只应用了一个jar包,就实现了所有SpringCloud代码中服务调用的负载平衡。
其中,统一认证授权服务采用了JWT/Oath2安全协议,JWT(JSONWebToken)是一个开放标准(RFC7519),它定义了一种协议,以自包含的JSON格式在两点之间安全地传输信息;被传输的信息是可以被证实、被信任的,因为它使用了数字签名;JWT通过使用公钥/秘钥对算法来进行数字签名;Oath2本身就是授权协议,平台上的所有用户、第三方的授权都采用了JWT/Oath2协议。
JWT/Oath2安全协议确保了身份鉴权认证的安全,其安全性系数高。
其中,统一认证授权服务使用软硬双加密技术,保障了平台的通信和信息传输的安全性,软加密是平台方与三方支付机构或银行间通过授权证书,利用公钥/秘钥对算法对双方的通信和数据传输进行软加密和软解密,而硬加密是指平台使用的智能机具内部从支付机构或银行间都是通过加密机完成的硬加密;平台与三方支付机构或银行间的通信和数据传输都是通过软硬加密完成的,支持有网络隔离和无网络隔离多种系统部署场景;
其中,统一认证授权服务采用集群和双授权互信认证机制,通过服务内器授权证书和JWT/Oath2加密认证的结合,实现服务端与用户端的双向互信及数容据的机密传输,使信息更安全,更可靠;平台上的所有用户、第三方的授权都是JWT/Oath2协议的,与三方支付机构和银行间通过授权证书来交易的。
其中,Redis支持包括手机、PC以及POS机在内的客户端,借助信息共享缓存满足一次登录和授权,多次多地访问,Redis是基于内存、可持久化的日志型、Key-Value数据库相关高性能存储系统,并提供多种语言的API;Redis缓存采用分布式缓存,通过对key的做一致性哈希,实现key对应Redis结点的均匀分布,这样所有对Redis的访问都通过一致性哈希算法将请求均匀分布到所有部署的Redis有效节点上;
所有的访问令牌access_token都将存储到Redis缓存中,通过分布式部署支持多节点支付通道的管理和有效节点加载访问等,通过数据同步机制保障了master和slave节点间数据的一致性和有效性。
引入两种经典的加密算法,即迭代分组加密算法以及非对称加密算法,综合二者优势,实现基于上述两种加密算法的混合加密模式的信用数据交换传输,以确保信用数据共享交换过程中数据传输的安全性。
其中,公钥/秘钥对算法具体为:
S1:利用迭代分组加密算法对待传输的信息明文P进行数据加密,形成密文;
S2:利用非对称加密算法生成一对秘钥,发送者利用非对称加密算法生成的公钥对迭代分组加密算法的秘钥进行加密,并将通过非对称加密算法加密的迭代分组加密算法的秘钥以及迭代分组加密算法加密的密文发送给接收方;
S3:接收方利用非对称加密算法生成的私钥对被非对称加密算法加密的迭代分组加密算法的秘钥进行解密,再利用迭代分组加密算法的秘钥对密文进行解密形成明文,从而达到安全传输的目的。
其中,所述的迭代分组加密算法具体如下:
迭代分组加密算法在处理64位信息明文分组的同时产生64位密文。在迭代分组加密算法中,有八位用作校验位,分别是第8、16、24、32、40、48、56、64位,而用于加密的秘钥有效位数为56位。
在64位明文数据输入直到64位密文输出,迭代分组加密算法共执行了16轮加密,在每一轮加密过程中,都会有48位秘钥Ki和8个替代映射箱Si参与其中,将输入的64位明文数据进行拆分,变为两个相同并且独立的32位明文,记作L0和R0,进行每一轮算法都相同的轮加密,利用上一轮32位的Li-1与Ri-1作为输入参数,输出32位的参数为Li和Ri,其中i的取值范围为1≤i≤16。
其中,每一轮的加密计算方法具体步骤为:
S1.输入64位数据;
S2.初始置换IP;
S3.加密,
Figure BDA0002545216730000071
S4.最终置换IP-1
其中,f(Ri-1,Ki)表示映射箱算法,Ki表示第i轮的密钥,
Figure BDA0002545216730000072
表示异或运算,E()和P()分别表示扩展函数和映射函数,E()和P()对Ri-1
Figure BDA0002545216730000073
进行位数扩展映射,将32位扩展至48位。对于迭代分组加密算法,初始置换IP和最终置换IP-1都是有相应规则进行位置置换排列;
其中,映射箱算法f(Ri-1,Ki)具体实现如下:
S1.将Ri-1=r1r2r3.......r32从32位扩展至48位,Ri-1表示明文经过i-1轮加密后的密文,ri表示第i位的字符;
S2.对Ri-1进行扩展,
Figure BDA0002545216730000074
T1表示8个6位的字符串Bi,T1=B1B2......B8
S3.(S1(B1),S2(B2),...,S8(B8))→T2,其中,Si(Bi)将Bi=b1b2......b6,映射为映射箱Si的r行c列的4位,其中,r=2b1+b6,b2b3b4b5为0≤c≤15的二进制表示,bi为字符串Bi的第i位的字符;
S4.通过置换函数P()对T2进行置换,记为P(T2)→T3,通过直接换位,将32位的T2=t1t2......t32置换为T2=t16t7......t25
其中,迭代分组加密算法的秘钥Ki是由48位密码长度组成,16轮迭代每次迭代都需要不同的秘钥Ki进行加密,秘钥Ki生成过程如下:
S1.去除8个秘钥奇偶校验位,将64位初始秘钥K0降至56位,根据秘钥置换选择将56位秘钥分成两块,分别为28位C0和28位D0
S2.根据轮次将C0和D0循环左移,变换后生成C1和D1,然后将C1和D1合并,再通过秘钥置换选择生成48位秘钥K1
S3.C1和D1再次进行循环左移变换,生成C2和D2,并将C1和D1合并,通过选择置换生成48位秘钥K2
S4.步骤S3重复9次,得到48位秘钥Ki,3≤i≤16。
其中,循环左移的位数是由迭代轮数决定的,第1、2、9、16次是左移一位,其余轮次都是左移两位。
其中,所述的非对称加密算法步骤如下:
S1.选取两个大素数p和q,并且要求p≠q,计算,则
Figure BDA0002545216730000081
n=p×q;
S2.选取素数e,并且要求e满足
Figure BDA0002545216730000082
和最大公约数
Figure BDA0002545216730000083
S3.计算
Figure BDA0002545216730000084
mod表示求余函数;
S4.公布秘钥,将Kpublic=(e,n)用做公钥参数,Kprivate=(d,n)用作私钥参数;
S5.利用C=pemodn公式对明文进行加密,p=Cdmodn公式对密文进行解密;
其中,素数p和q的二进制位数大于1024,素数p和q的十进制数值满足
1000<|p-q|<10000。
其中,负载均衡工具把请求任务按照某种策略分配到服务节点,为了确保负载均衡工具能真实准确地获取服务节点的实时处理能力,需要对影响服务节点的处理能力因素进行分析。由于负载均衡模块对服务节点进行参数的采集时,如果参数过多会对负载均衡节点和服务节点造成一定的资源损耗。为了避免采集服务节点的实时参数过程对系统的性能造成影响,决定以影响服务器节点的两个主要核心因素作为实时负载能力的指标,分别是处理器利用率和内存空闲率。
包括如下步骤:
S1.负载均衡工具和服务节点的通信方式的实现采用Socket接口进行通信,为降低通信带来的资源损耗问题,采用对资源要求较少的UDP作为传输协议;
S2.负载均衡工具周期性向服务节点发送采集请求,计算得出服务节点的处理器利用率和内存空闲率;
处理器分为三种运行状态,分别是空闲态,用户态和系统内核态,用T1表示空闲态的运行时间,T2表示用户态的运行时间,T3表示内核态的运行时间,则处理器利用率Ci计算公式如下:
Figure BDA0002545216730000091
通过系统文件可查出当前服务节点的总内存total大小,缓冲区buffers大小,缓存区cached大小,空闲内存free大小,内存空闲率Mi计算如公式如下:
Figure BDA0002545216730000092
S3.进行服务节点权重的计算,
对于多个服务节点Ni,用集合Node={N1,N2,...,Ni,...,Nn}表示,对于服务节点Ni的处理器利用率用Ci表示,内存空闲率用Mi表示,权重用Wi表示,服务节点Ni的权重表达函数Fi如下:Fi=λ1(1-Ci)+λ2Mi
其中λ12=1,λ1和λ2表示处理器和内存的影响因子,Ci和Mi的值都处于区间[0,1]范围内,当1-Ci和Mi都为0时,Fi为0,表示服务节点处于不可用状态,将不会对其进行任务的分配,当满足负载权重差值时,Wi=Fi
其中,优选λ1=0.6,λ2=0.4;
S4.新权重值与旧值进行边界条件分析,在边界值P设定下,对于服务节点权重Wi的更新,需满足下式:
Figure BDA0002545216730000101
其中,0<P<1,
当满足边界条件时,则调用setsockopt函数将新的权重写入负载均衡工具的负载配置表,并重新分配负载任务,否则按照之前的负载均衡对任务进行转发分配。
其中,SCGateway服务网关是一个服务组件,为应用程序提供路由和过滤,将接收客户端的请求转发到服务模块,并完成跨领域功能,如服务安全、日志记录和用户跟踪,SCGateway服务网关充当单个策略实施点,所有呼叫都通过SCGateway服务网关的路由,然后到达最终目的地。因为SCGateway服务网关位于从客户端到每个服务的所有呼叫之间,所以它也是服务呼叫的中央策略执行点。
SCGateway服务网关具有熔断器,熔断器用于交互超时处理和容错,熔断器由保险丝和线程池组成,如果交换机处于打开状态,则不会调用线程池而是调用降级服务,熔断器根据状态产生对应的动作,熔断器处于关闭状态,如果调用失败次数积累到了阈值(或一定比例)就启动;熔断器处于打开状态,在这个状态下对下游服务的调用都内部直接返回异常,不走网络,但会设置了一个时钟选项,一般设置平均故障处理时间,到了这个时间,就会进入半熔断状态;在半熔断状态,允许一定数量的服务请求,如果调用都不会出现失败的情况则认为恢复了,关闭熔断器。
熔断器起到道线程隔离作用,线程池位于用户请求和服务之间,用户的请求通过线程池中的空闲线程来访问服务,如果线程池没有空闲的线程则会进行降级处理,降级处理的作用是防止用户的请求进入无休止的等待从而导致系统崩溃,请求不会被阻塞,而是可以看到一个执行结果。
熔断的实现包括如下步骤:
S1.在maven中引入断路器组件依赖项;
S2.在主引导启动程序上添加熔断注解;
S3.在需要保护的远程调用方法上用注解标注;
S4.判断是否需要进行服务降级,是则进行降级策略实现。
其中,SCGateway服务网关在用户量多的时刻会面对高并发的场景,启动限流控制,限流的作用就是在当系统无法处理更多请求的情况下,将超出的请求采用拒绝的措施,保证负荷不超过系统处理的上限。
以上所述实施方式仅表达了本发明的一种实施方式,但并不能因此而理解为对本发明范围的限制。应当指出,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

Claims (10)

1.在网关认证和身份鉴权的平台的网关认证和身份鉴权的方法,所述网关认证和身份鉴权的平台,包括客户端、API网关、由多个Redis缓存构成的Redis集群、统一认证授权服务、由多个用户数据库构成的用户数据库集群、由多个服务应用构成的服务模块,
用户通过客户端登陆平台,获取鉴权认证信息,通过API网关直接调用统一认证授权服务,访问用户数据库,校验登录账号信息与用户数据库保存信息是否一致,如果一致,再请求认证服务生成唯一的认证令牌token,存到分布式缓存Redis缓存中,带上认证令牌token返回客户端,客户端存储认证令牌token;如果不一致,则返回客户端提示平台不存在该用户,需要先注册;
客户端在访问的头部数据head中携带生成的认证令牌token访问服务模块,先通过API网关的统一认证后,由统一的API网关路由到相应的服务应用,由相应的服务应用访问Redis缓存来验证认证令牌token,如果验证通过,同时获取该用户的权限列表,解析通过后,则能访问相应的服务应用的功能内容,如果验证不通过,则返回客户端提示用户没有服务应用的访问权限,
服务应用之间正常访问需要进行服务间访问鉴权,服务应用通过解析器TokenResolver解析头部数据head上的认证令牌token并通过SecurityFilter来验证是否能访问该服务应用,如果通过验证,则能正常访问,否则返回客户端提示无权限访问;
所述方法包括如下步骤:
S1.用户通过客户端APP向API网关发起登录平台的请求;
S2.请求并生成访问令牌access_token:向统一认证授权服务Oauth2/JWT请求生成访问令牌access_token,验证该用户信息的有效性,如果正确,平台会生成access_token并访问用户数据库;
S3.将访问令牌access_token及其携带的认证权限存储到Redis缓存中,便于平台或其它系统后续使用;
S4.用户通过访问令牌access_token访问相应的服务应用校验其合法性;
S5.获取Redis缓存中现有登录令牌token,比较访问令牌access_token和现有登录令牌token,校验访问令牌access_token的合法性和有效性;
S6.校验通过,则向相应的服务应用返回访问令牌access_token;
S6.1.相应的服务应用返回校验通过的登录令牌login_token给客户端;
S7.客户端携带登录令牌login_token通过统一认证授权服务访问其它服务应用;
S7.1.其它服务应用校验登录令牌login_token的合法性;
S7.2.通过Redis缓存或用户数据库获取当前用户变更信息或权限变更信息,同时在Redis缓存中删除过去式令牌信息;
S7.3.其它服务应用返回新的用户信息给统一认证授权服务;
S8.统一认证授权服务重新生成现有登录令牌token并在Redis缓存存储,重新生成访问其它页面授权令牌;
S8.1.返回其它服务应用授权页面给客户端。
2.根据权利要求1所述的网关认证和身份鉴权的方法,其特征在于:API网关为SCGateway服务网关并具有负载均衡工具,实现了服务自动发现技术,自动发现技术是指通过监听机制来保障任何新增的注册服务,平台都能自动发现该注册服务,所有在注册中心配置任何注册服务,都能在应用中自动被发现和被拉取,本地调用远程服务。
3.根据权利要求2所述的网关认证和身份鉴权的方法,其特征在于:API网关实现路由的可配置和插拔式的应用,可配置和插拔式是指通过在代码注解@RefreshScope来实现实时刷新机制,在配置中心中任何更新信息,无需重新启动应用,直接在服务应用中生效和使用,在API网关中更改任何路由信息,无需再启动API网关的路由,直接生效。
4.根据权利要求3所述的网关认证和身份鉴权的方法,其特征在于:SCGateway服务网关,即SpringCloudGateway服务网关,是SpringCloud推出的网关框架,SCGateway服务网关在平台中简化前端的调用逻辑以及内部服务应用之间互相调用的复杂度,接收并转发所有内外部的客户端调用,并实现了权限认证以及限流控制。
5.根据权利要求2所述的网关认证和身份鉴权的方法,其特征在于:负载均衡工具为SpringCloudRibbon,是一个基于HTTP和TCP的客户端负载均衡工具,基于NetflixRibbon实现,通过SpringCloud的封装,面向服务的REST模版请求自动转换成客户端负载均衡的服务调用,SpringCloudRibbon存在SpringCloud构建的微服务和基础设施中,因为微服务间的调用,API网关的请求转发都是通过SpringCloudRibbon来实现的。
6.根据权利要求5所述的网关认证和身份鉴权的方法,其特征在于:负载均衡工具具有轻量级植入特性,轻量级植入特性是指引用极简的组件或微量的代码,非引用系列的套件或大量的代码到平台上,SpringCloudRibbon就只应用了一个jar包,就实现了所有SpringCloud代码中服务调用的负载平衡。
7.根据权利要求2所述的网关认证和身份鉴权的方法,其特征在于:统一认证授权服务采用了JWT/Oath2安全协议,JWT,即JSONWebToken,基于开放标准RFC7519,它定义了一种协议,以自包含的JSON格式在两点之间安全地传输信息;被传输的信息是能被证实、被信任的,因为它使用了数字签名;JWT通过使用公钥/秘钥对算法来进行数字签名;Oath2本身就是授权协议,平台上的所有用户、第三方的授权都采用了JWT/Oath2协议。
8.根据权利要求7所述的网关认证和身份鉴权的方法,其特征在于:统一认证授权服务使用软硬双加密技术,保障了平台的通信和信息传输的安全性,软加密是平台方与三方支付机构或银行间通过授权证书,利用公钥/秘钥对算法对双方的通信和数据传输进行软加密和软解密,而硬加密是指平台使用的智能机具内部与支付机构或银行间都是通过加密机完成的硬加密;平台与三方支付机构或银行间的通信和数据传输都是通过软硬加密完成的,支持有网络隔离和无网络隔离多种系统部署场景。
9.根据权利要求7所述的网关认证和身份鉴权的方法,其特征在于:统一认证授权服务采用集群和双授权互信认证机制,通过服务器授权证书和JWT/Oath2加密认证的结合,实现服务端与用户端的双向互信及数据的机密传输,使信息更安全,更可靠;平台上的所有用户、第三方的授权都是JWT/Oath2协议的,与三方支付机构和银行间通过授权证书来交易的。
10.根据权利要求2所述的网关认证和身份鉴权的方法,其特征在于:Redis支持包括手机、PC以及POS机在内的客户端,借助信息共享缓存满足一次登录和授权,多次多地访问,Redis是基于内存、可持久化的日志型、Key-Value数据库相关高性能存储系统,并提供多种语言的API;Redis缓存采用分布式缓存,通过对key做一致性哈希,实现key对应Redis结点的均匀分布,这样所有对Redis的访问都通过一致性哈希算法将请求均匀分布到所有部署的Redis有效节点上;
所有的访问令牌access_token都将存储到Redis缓存中,通过分布式部署支持多节点支付通道的管理和有效节点加载访问,通过数据同步机制保障了master和slave节点间数据的一致性和有效性。
CN202010558486.6A 2020-06-18 2020-06-18 一种网关认证和身份鉴权的平台及其方法 Active CN111865920B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010558486.6A CN111865920B (zh) 2020-06-18 2020-06-18 一种网关认证和身份鉴权的平台及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010558486.6A CN111865920B (zh) 2020-06-18 2020-06-18 一种网关认证和身份鉴权的平台及其方法

Publications (2)

Publication Number Publication Date
CN111865920A CN111865920A (zh) 2020-10-30
CN111865920B true CN111865920B (zh) 2022-06-10

Family

ID=72987426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010558486.6A Active CN111865920B (zh) 2020-06-18 2020-06-18 一种网关认证和身份鉴权的平台及其方法

Country Status (1)

Country Link
CN (1) CN111865920B (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112367321B (zh) * 2020-11-10 2021-11-02 苏州万店掌网络科技有限公司 快速构建服务调用的方法及中台api网关
CN112491890A (zh) * 2020-11-27 2021-03-12 中国农业银行股份有限公司 一种访问方法及装置
CN112487379A (zh) * 2020-12-11 2021-03-12 光大兴陇信托有限责任公司 一种基于微服务架构的授权矩阵实现方法及工作方法
CN112417511B (zh) * 2020-12-15 2022-02-22 重庆忽米网络科技有限公司 基于Handle标识解析数据权限控制的方法
CN112612629B (zh) * 2020-12-28 2024-05-24 广东广宇科技发展有限公司 一种组件式的数据接口实现方法与系统
CN112632513B (zh) * 2020-12-29 2024-01-12 光大兴陇信托有限责任公司 一种基于前后端分离的身份认证实现方法
CN112866761A (zh) * 2020-12-31 2021-05-28 武汉兴图新科电子股份有限公司 应用于云视频融合平台的分布式系统用户统一认证技术
CN112995157B (zh) * 2021-02-07 2022-05-13 中原银行股份有限公司 一种分布式缓存平台客户端接入认证体系
CN112836199A (zh) * 2021-02-08 2021-05-25 浪潮云信息技术股份公司 一种实现统一鉴权的工具及方法
CN113037719B (zh) * 2021-02-25 2022-09-20 福建坤墨信息科技有限公司 基于返回访问地址的安全接口网关系统
CN112883357A (zh) * 2021-03-11 2021-06-01 中科三清科技有限公司 无状态登录鉴权方法和装置
CN113065115B (zh) * 2021-03-18 2022-10-21 中睿信数字技术有限公司 基于oauth2.0实现小程序登录安全和无网络隔离下认证鉴权方法
CN114598490B (zh) * 2021-04-09 2024-03-29 亚信科技(南京)有限公司 基于api网关重定向页面的方法、装置、设备及存储介质
CN113157999A (zh) * 2021-04-09 2021-07-23 杭州电子科技大学 基于Filter与知识图谱的鉴权认证方法
CN113225394B (zh) * 2021-04-30 2022-07-15 中核武汉核电运行技术股份有限公司 一种基于容器集群的api网关管理系统
CN113225333A (zh) * 2021-05-06 2021-08-06 西安电子科技大学 零信任下的网络资源访问控制方法
CN113282897A (zh) * 2021-06-11 2021-08-20 杭州安恒信息安全技术有限公司 一种多系统的账号共用方法、装置、设备及介质
CN113268759B (zh) * 2021-06-24 2022-12-13 福建天晴在线互动科技有限公司 一种基于web架构的token权限认证方法及系统
CN113595925B (zh) * 2021-07-06 2024-01-30 中企云链(北京)金融信息服务有限公司 一种智能网关动态限流实现方法
CN113783695B (zh) * 2021-08-03 2022-12-09 西北大学 一种微服务架构的客户端信息认证方法及系统
CN113810468B (zh) * 2021-08-13 2023-04-18 济南浪潮数据技术有限公司 K8s架构下网关分发请求的方法、系统、设备和存储介质
CN113724041A (zh) * 2021-08-18 2021-11-30 江苏电力信息技术有限公司 一种电力数据在线交易系统及交易更新方法
CN113742079B (zh) * 2021-09-10 2024-05-03 安超云软件有限公司 K8s七层负载均衡策略实现的方法及应用
CN113886794A (zh) * 2021-09-28 2022-01-04 阿里巴巴(中国)有限公司 计算集群系统、安全鉴权方法、节点设备及存储介质
CN113938411A (zh) * 2021-10-13 2022-01-14 上海中通吉网络技术有限公司 基于Java的API网关登录鉴权的测试方法
CN113676336B (zh) * 2021-10-22 2022-02-08 深圳市明源云采购科技有限公司 微服务访问代理方法、设备及存储介质
CN113839966B (zh) * 2021-11-26 2022-02-22 北京慧点科技有限公司 一种基于微服务的安全管理系统
CN114401164A (zh) * 2021-12-15 2022-04-26 深圳市科漫达智能管理科技有限公司 一种api网关的数据处理方法、api网关及储存介质
CN114374544A (zh) * 2021-12-21 2022-04-19 南方电网数字电网研究院有限公司 一种基于注册中心的业务身份应用管理系统
CN114327389B (zh) * 2021-12-24 2023-03-24 商派软件有限公司 应用管理方法、账号管理插件以及应用管理系统
CN114389864B (zh) * 2021-12-28 2024-05-24 西安四叶草信息技术有限公司 数据认证方法及系统
CN114385995B (zh) * 2022-01-06 2024-05-17 徐工汉云技术股份有限公司 一种基于Handle的标识解析微服务接入工业互联网的方法及标识服务系统
CN114374706B (zh) * 2022-01-11 2024-05-28 北京易智时代数字科技有限公司 一种基于分布式架构的内容安全管理方法
CN114518909A (zh) * 2022-02-17 2022-05-20 中国建设银行股份有限公司 基于api网关的授权信息配置方法、装置、设备和存储介质
CN114666099B (zh) * 2022-02-28 2023-10-13 广西柳钢东信科技有限公司 一种基于加解签与中间件实现网页跨域可信数据通信方法
CN114760181A (zh) * 2022-03-16 2022-07-15 山东省大数据中心 一种基于分布式集群架构实现集群动态伸缩的系统和方法
CN114760116B (zh) * 2022-03-30 2024-04-12 北京奇艺世纪科技有限公司 验证方法、装置、电子设备及存储介质
CN115242722B (zh) * 2022-06-14 2024-04-16 中盈优创资讯科技有限公司 一种基于api网关的高级流控实现方法
CN115134134A (zh) * 2022-06-23 2022-09-30 中国民航信息网络股份有限公司 一种信息处理方法、装置及设备
CN115208674A (zh) * 2022-07-18 2022-10-18 神州数码融信软件有限公司 一种去中心化的全局限流方法及系统
CN115277234B (zh) * 2022-08-01 2024-01-09 重庆标能瑞源储能技术研究院有限公司 一种基于物联网平台微服务的安全认证方法及系统
CN115085944B (zh) * 2022-08-22 2022-11-01 四川蜀天信息技术有限公司 一种多空间场景RESTful API统一用户鉴权管理方法和系统
CN115374415B (zh) * 2022-10-24 2023-04-07 中教云智数字科技有限公司 一种基于SpringBoot的轻量级权限认证方法及框架
CN115987547A (zh) * 2022-11-02 2023-04-18 四川大学 一种多平台互联互通的云连接器系统
CN115913568A (zh) * 2022-11-08 2023-04-04 杭州网易再顾科技有限公司 授权认证方法和装置、网关、介质和计算机设备
CN115913696B (zh) * 2022-11-10 2024-04-26 国网四川省电力公司电力科学研究院 一种虚拟网络零信任访问控制方法、装置、设备及介质
CN116389105B (zh) * 2023-03-30 2023-12-01 广东省城乡规划设计研究院有限责任公司 一种远程接入管理平台及管理方法
CN116405929B (zh) * 2023-06-09 2023-08-15 贵州联广科技股份有限公司 适用于集群通讯的安全访问处理方法及系统
CN117579374B (zh) * 2023-12-19 2024-06-25 重庆数子引力网络科技有限公司 基于OpenAPI的服务访问权限认证方法、装置、系统和服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512784A (zh) * 2018-06-21 2018-09-07 珠海宏桥高科技有限公司 基于网关路由转发的鉴权认证方法
CN110781476A (zh) * 2019-10-15 2020-02-11 南京南瑞信息通信科技有限公司 一种柔性微服务安全访问控制方法及系统
CN111093197A (zh) * 2019-12-31 2020-05-01 北大方正集团有限公司 权限认证方法、权限认证系统和计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9838377B1 (en) * 2016-05-11 2017-12-05 Oracle International Corporation Task segregation in a multi-tenant identity and data security management cloud service

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512784A (zh) * 2018-06-21 2018-09-07 珠海宏桥高科技有限公司 基于网关路由转发的鉴权认证方法
CN110781476A (zh) * 2019-10-15 2020-02-11 南京南瑞信息通信科技有限公司 一种柔性微服务安全访问控制方法及系统
CN111093197A (zh) * 2019-12-31 2020-05-01 北大方正集团有限公司 权限认证方法、权限认证系统和计算机可读存储介质

Also Published As

Publication number Publication date
CN111865920A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN111865920B (zh) 一种网关认证和身份鉴权的平台及其方法
CN112926982B (zh) 一种交易数据处理方法、装置、设备及存储介质
KR102392420B1 (ko) 다중키 쌍 시그너처를 사용한 프로그램 실행 및 데이터 증명 체계
US11296865B1 (en) Cryptographic algorithm status transition
CN113691597B (zh) 区块链合约部署方法、装置、设备以及存储介质
EP3913854B1 (en) Methods and systems for pki-based authentication
WO2022193985A1 (zh) 一种数据处理方法、装置、设备及存储介质
EP2020797B1 (en) Client-server Opaque token passing apparatus and method
CN112671720B (zh) 一种云平台资源访问控制的令牌构造方法、装置及设备
CN107733653B (zh) 用户权限鉴定方法及系统和计算机设备
JP2022512324A (ja) 外部システムに対してのセキュアな相互運用性を伴う高性能分散型記録システム
JP2022509933A (ja) 鍵管理を伴う高性能分散型記録システム
CN103281190A (zh) 安全工作组管理和通信的系统和方法
KR20190114434A (ko) 블록체인 기반의 권한 인증 방법, 단말 및 이를 이용한 서버
CN110263579B (zh) 一种数据处理方法、系统及相关设备
CN103516524A (zh) 安全验证方法和系统
US20230299975A1 (en) Time-based digital signature
JP2022508211A (ja) ホストされたオリジンサービスを伴う高性能分散型記録システム
JP7489069B2 (ja) Some/ip通信プロトコルを用いる乗物上におけるデータ又はメッセージの伝送の改良
CN107347073B (zh) 一种资源信息处理方法
CN115883154A (zh) 访问凭证的颁发方法、基于区块链的数据访问方法及装置
CN112491544A (zh) 一种平台数据动态加密的方法及系统
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
EP3926926B1 (en) Method and system for delivering restricted-access resources using a content delivery network
JP2003530739A (ja) ネットワークシステム

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

Effective date of registration: 20220510

Address after: 251500 No. 3, Xiguan Street, Deping Town, Linyi County, De Zhou City, Shandong Province 251500

Applicant after: Pang Maolin

Address before: 100000 room 501-2010, Development Zone office building, No. 8, Xingsheng South Road, economic development zone, Miyun District, Beijing (centralized office area of Economic Development Zone)

Applicant before: Duojia network technology (Beijing) Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant