基于网关路由转发的鉴权认证方法技术

技术编号:18898849 阅读:22 留言:0更新日期:2018-09-08 13:44
本发明专利技术公开了一种基于网关路由转发的鉴权认证方法,包括如下步骤:API网关获取来自客户端的登录系统请求;API网关向单点登录服务器发送验证请求;单点服务器对必要信息进行验证,当验证结果为合法时,单点服务器生成令牌并将该令牌缓存在Redis存储系统,同时通过API网关将所述令牌下发给客户端;API网关获取来自客户端的访问资源请求,所述访问资源请求携带令牌;API网关对所述令牌进行认证,当认证结果为通过时,授权客户端访问内部资源;本发明专利技术通过对客户端下发令牌,由API网关对客户端请求进行身份认证,达到鉴权目的;由于对令牌的认证在API网关本身,该令牌很难被破解或截取,提高了系统的安全性。

Authentication authentication method based on Gateway Routing and forwarding

The invention discloses an authentication method based on Gateway Routing and forwarding, which comprises the following steps: the API gateway obtains the login system request from the client; the API gateway sends the authentication request to the single sign-on server; the single point server verifies the necessary information; and the single point server generates the single point server when the verification result is valid. The token is cached in the Redis storage system and the token is issued to the client through the API gateway; the API gateway obtains the access resource request from the client, which carries the token; the API gateway authenticates the token and authorizes the client to access the internal resources when the authentication result is passed. The invention achieves the authentication purpose by issuing a token to the client and authenticating the client request by the API gateway; because the authentication of the token is in the API gateway itself, the token is difficult to be cracked or intercepted, thus improving the security of the system.

【技术实现步骤摘要】
基于网关路由转发的鉴权认证方法
本专利技术属于API网关
,具体涉及一种基于网关路由转发的鉴权认证方法。
技术介绍
API网关作为对外提供服务的入口,就像企业服务的大门。一方面,要有足够的能力,应对大量的对外访问,另一方面,还要给对内的服务提供一定的安全保障。现有的API网关不能自动识别外部的有效访问,容易发生以下情况:一是当并发量较大时很有可能超出网关承受能力,轻则导致服务抛弃一部分请求,重则导致服务器资源耗尽,不可用;二是恶意请求容易入侵服务器,对内部服务造成安全隐患。
技术实现思路
为了解决现有技术存在的上述问题,本专利技术目的在于提供一种可提高网关安全性和可用性的基于网关路由转发的新型鉴权认证方法。本专利技术所采用的技术方案为:基于网关路由转发的鉴权认证方法,包括如下步骤:API网关获取来自客户端的登录系统请求,所述登录系统请求携带客户端必要信息。API网关向单点登录服务器发送验证请求,所述验证请求携带客户端必要信息。单点登录服务器根据验证请求对客户端携带的必要信息进行验证,当验证结果为合法时,单点登录服务器生成令牌并将该令牌缓存在Redis存储系统,同时通过API网关将所述令牌下发给客户端。API网关获取来自客户端的访问资源请求,所述访问资源请求携带令牌。API网关对所述令牌进行认证,当认证结果为通过时,授权客户端访问内部资源。进一步,所述API网关在向单点登录服务器发送验证请求之前,还包括对客户端的登录系统请求进行校验的步骤,所述检验步骤为:A、API网关根据客户端IP信息,校验该IP是否在白名单列表中,当该IP在白名单列表中时,返回客户端;否则,执行进一步校验。B、API网关根据客户端请求头信息,校验该请求头是否携带该客户端必要信息,当该请求头携带该客户端必要信息时,将该登录系统请求转发给单点登录服务器,请求单点登录服务器对客户端身份予以验证;否则,向客户端返回错误信息及原因。更进一步,所述必要信息包括客户端ID、客户端Key、用户名和密码。更进一步,所述令牌包括头部、载荷和签证三个部分。更进一步,所述头部承载了两部分信息,分别为数据类型和加密算法;所述载荷存放经过加密的有效信息;所述签证由头部和载荷加密后的信息以及一段密钥信息组成。更进一步,所述有效信息为客户端ID、客户端Key、用户名或密码中的一种或几种。更进一步,所述有效信息采用base64加密算法进行加密。更进一步,所述API网关对所述令牌进行认证,该认证包括判断该令牌是否为空、判断该令牌内容是否与服务器端令牌内容一致、判断该令牌是否有效。本专利技术的有益效果为:本专利技术通过对客户端下发令牌,客户端在每次访问资源时均需要携带该令牌,并由API网关对客户端请求进行身份认证,达到鉴权目的;由于对令牌的认证在API网关本身,该令牌很难被破解或截取,提高了系统的安全性;同时,部分无效访问由API网关拦截并返回,减轻服务器端的负载。附图说明图1为本专利技术流程图;图2为本专利技术方框图;图3为本专利技术示例性实施例流程图。具体实施方式下面结合附图及具体实施例对本专利技术做进一步阐释。基于网关路由转发的鉴权认证方法,参见图1和图2,该方法包括如下步骤:S101、API网关获取来自客户端的登录系统请求,该登录系统请求携带客户端必要信息。必要信息包括客户端ID、客户端Key、用户名和密码。必要信息为客户端与服务器端事先约定好的,在本实施例中,服务器端为单点登录服务器(SSOServer),必要信息包括客户端ID、客户端Key、用户名和密码。客户端请求登录系统时,必须在请求头携带客户端ID、客户端Key、用户名和密码等必要信息。S102、API网关向单点登录服务器发送验证请求,该验证请求携带客户端必要信息。必要信息包括客户端ID、客户端Key、用户名和密码。API网关在获取来自客户端的登录系统请求后,将该登录系统请求转发给单点登录服务器,向单点登录服务器发送验证请求,请求单点登录服务器对客户端身份予以验证。API网关向单点登录服务器发送验证请求时,请求头需携带客户端必要信息,该必要信息包括客户端ID、客户端Key、用户名和密码。在一种实施例中,API网关在向单点登录服务器发送验证请求之前,还包括对客户端的登录系统请求进行校验的步骤。该校验步骤包括:A、API网关根据客户端IP信息,校验该IP是否在白名单列表中,当校验结果为该IP在白名单列表中时,返回客户端;否则,则执行B步骤。白名单列表在配置网关时保存于网关中,在白名单列表中的IP可直接登录及访问服务器资源,不需要鉴权,因此不需要下发令牌。B、API网关根据客户端请求头信息,校验该请求头是否携带该客户端必要信息,如果请求头携带该客户端必要信息,则将该登录系统请求转发给单点登录服务器,请求单点登录服务器对客户端身份予以验证;如果请求头未携带该客户端必要信息,则向客户端返回错误信息及原因。必要信息包括客户端ID、客户端Key、用户名和密码。S103、单点服务器根据验证请求对客户端携带的必要信息进行验证,当验证结果为合法时,单点服务器生成令牌并将该令牌缓存在Redis存储系统,同时通过API网关将该令牌下发给客户端。单点服务器根据验证请求对客户端携带的必要信息进行验证,如果验证结果为合法,则生成令牌。令牌生成后,将该令牌缓存在Redis存储系统,并同时通过API网关返回并保存在客户端。令牌为客户端后续请求获取网关授权的唯一身份。如果验证结果为非法,则由API网关返回错误提示及原因给客户端。API网关生成的令牌包含头部、载荷和签证三个部分。头部承载了两部分信息,分别为数据类型和加密算法,头部直接使用HMACSHA256加密算法生成,然后经过base64加密得来。载荷存放经过加密的有效信息,该有效信息采用base64加密算法进行加密。有效信息可根据实际情况设定,可以是客户端ID、客户端Key、用户名和密码中的一种或几种,也可以是客户端ID、客户端Key、用户名和密码之外的其他信息。签证由头部和载荷加密后的信息以及一段密钥信息组成,密钥会在服务器端保存一份进行令牌的验证。网关作为对外第一道门,负责路由转发,统一对所有请求的令牌验证。服务器端包含登录相关的处理,保存令牌需要在登录成功后,所以需要将令牌保存一份在服务器端。S104、API网关获取来自客户端的访问资源请求,该访问资源请求携带令牌。在API网关获取来自客户端的访问资源请求后,检测其是否携带令牌,如果没有携带令牌,则返回错误提示及原因。如果携带令牌,则执行下一步。S105、API网关对该令牌进行认证,当认证结果为通过时,授权客户端访问内部资源。API网关获取来自客户端的访问资源请求后,首先检测其是否携带令牌,如果携带令牌,则对该令牌进行认证,当认证结果为通过时,授权客户端访问内部资源,即根据客户端的请求,授权其访问对应资源服务器上的资源。当认证结果为不通过时,则返回错误提示及原因。API网关对令牌的认证包括判断该令牌是否为空、判断该令牌内容是否与服务器端令牌内容一致、判断该令牌是否有效。当且仅当三者均为真值时,认证结果为通过,否则为不通过。在单点登录服务器生成令牌时,均为令牌赋予一个有效期,当超过该令牌有效期,则需要重新登录并获取令牌。在本实施例中,令牌有效期为30分本文档来自技高网...

【技术保护点】
1.基于网关路由转发的鉴权认证方法,其特征在于:包括如下步骤:API网关获取来自客户端的登录系统请求,所述登录系统请求携带客户端必要信息;API网关向单点登录服务器发送验证请求,所述验证请求携带客户端必要信息;单点登录服务器根据验证请求对客户端携带的必要信息进行验证,当验证结果为合法时,单点登录服务器生成令牌并将该令牌缓存在Redis存储系统,同时通过API网关将所述令牌下发给客户端;API网关获取来自客户端的访问资源请求,所述访问资源请求携带令牌;API网关对所述令牌进行认证,当认证结果为通过时,授权客户端访问内部资源。

【技术特征摘要】
1.基于网关路由转发的鉴权认证方法,其特征在于:包括如下步骤:API网关获取来自客户端的登录系统请求,所述登录系统请求携带客户端必要信息;API网关向单点登录服务器发送验证请求,所述验证请求携带客户端必要信息;单点登录服务器根据验证请求对客户端携带的必要信息进行验证,当验证结果为合法时,单点登录服务器生成令牌并将该令牌缓存在Redis存储系统,同时通过API网关将所述令牌下发给客户端;API网关获取来自客户端的访问资源请求,所述访问资源请求携带令牌;API网关对所述令牌进行认证,当认证结果为通过时,授权客户端访问内部资源。2.根据权利要求1所述的基于网关路由转发的鉴权认证方法,其特征在于:所述API网关在向单点登录服务器发送验证请求之前,还包括对客户端的登录系统请求进行校验的步骤,所述检验步骤为:A、API网关根据客户端IP信息,校验该IP是否在白名单列表中,当该IP在白名单列表中时,返回客户端;否则,执行进一步校验;B、API网关根据客户端请求头信息,校验该请求头是否携带该客户端必要信息,当该请求头携带该客户端必要信息时,将该登录系统请求转发给单点...

【专利技术属性】
技术研发人员:罗奔
申请(专利权)人:珠海宏桥高科技有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1