一种基于oauth2协议的用户认证系统的制作方法

文档序号:19320983发布日期:2019-12-04 00:31阅读:来源:国知局

技术特征:

1.一种基于oauth2协议的用户认证系统,其特征在于,

包括用户认证中心模块、redis令牌存储模块、用户中心模块,服务网关模块;

其中,

用户认证中心模块:对登录用户进行校验,校验合法后颁发jwt令牌;

redis令牌存储模块:该模块的功能包括存储用户认证之后颁发的令牌,客户端令牌校验;

用户中心模块:对用户信息进行管理的模块,同时对用户信息进行加密,提供供认证中心用户校验时的用户信息;

服务网关模块:使用网关对服务资源进行统一管理,校验访问者jwt令牌的合法性。

2.根据权利要求1所述的系统,其特征在于,

用户认证中心是整个认证项目的核心,对用户信息进行认证并颁发令牌;

首先用户在登录页面输入用户名和密码,发送post请求到用户认证中心url+port/auth/oauth/token,参数说明:grant_type:password,username:账号,password:密码;

此链接需要使用httpbasic认证,认证中心接受到用户请求,调用用户中心接口,校验通过后,生成jwt令牌,令牌使用的是springsecurity提供的jwthelper来创建,使用java提供keytool证书管理工具采用rsa加密算法生成秘钥证书,其命令为keytool-genkeypair-alias**-keyalgrsa-keypass**-keystore**-storepass**,将证书添加到认证工程中,用于生成令牌。

3.根据权利要求2所述的系统,其特征在于,

使用openssl加解密工具包,导出公钥信息用于对令牌进行解密。

4.根据权利要求3所述的系统,其特征在于,

将jwt令牌存入redis中,将短令牌即身份令牌写入cookie,返回给客户端。

5.根据权利要求1所述的系统,其特征在于,

redis令牌存储模块主要供服务网关调用,服务网关从cookie中获取令牌,取查询jwt令牌是否过期,如果过期则拒绝用户访问资源。

6.根据权利要求1所述的系统,其特征在于,

用户中心模块采用bcrypt方法对信息进行了加密。

7.根据权利要求1所述的系统,其特征在于,

服务网关模块对访问用户令牌进行校验的模块,用户访问服务网关,过滤器对header里的令牌,cookies里的令牌,redis里令牌是否过期进行校验,当校验全部通过之后,将请求转发到相应的资源服务上。

8.根据权利要求1所述的系统,其特征在于,

流转步骤如下:

步骤一:用户通过浏览器登录,向授权认证服务请求认证;

步骤二:认证服务认证通过向浏览器cookie写入token;

认证服务请求springsecurity申请令牌,认证服务将token和jwt令牌存储至redis中,认证服务向cookie写入token;

步骤三:客户端携带cookie中的token身份令牌及jwt令牌访问资源服务;

客户端请求资源服务需要携带两个token,一个是cookie中的身份令牌,一个是httpheader中的jwt令牌;

客户端请求资源服务前在httpheader上添加jwt请求资源;

步骤四:网关校验token的合法性

用户请求必须携带token身份令牌和jwt令牌网关校验redis中token是否合法,已过期则要求用户重新登录;

步骤五、资源服务校验jwt的合法性并完成授权

资源服务校验jwt令牌,完成授权,拥有权限的方法正常执行,没有权限的方法将拒绝访问。


技术总结
本发明提供一种基于oauth2协议的用户认证系统,属于web用户认证领域,本发明包括认证中心模块、Redis存储模块、用户中心模块,服务网关及其他模块。通过这几个模块实现众多微服务客户端节点用户认证,实现安全可靠的同时也简化开发模式,大大提升了各个节点的安全性和效率以及稳定性,降低了服务端的压力。

技术研发人员:马洪志;杨继伟;窦洋
受保护的技术使用者:浪潮云信息技术有限公司
技术研发日:2019.08.27
技术公布日:2019.12.03
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1