基于Cookie的安全单点登录方法及其统一认证服务系统与流程

文档序号:15567532发布日期:2018-09-29 03:41阅读:1228来源:国知局

本发明涉及计算机技术领域,特别是一种基于cookie的安全单点登录方法及其统一认证服务系统。



背景技术:

单点登录(singlesignon),简称为sso,是目前比较流行的企业业务整合的解决方案之一。单点登录主要解决的是在多个应用站点中,用户只需一次登录认证,就可以访问所有相关应用站点,其中一个应用站点发起退出请求,其他应用站点也注销登录。单点登录看似功能简单,但在系统整合过程中,会遇到很多个性化的需求,如不同站点登录样式要求不一样、不同站点开发语言不同以及不同站点对接方式不同等,这些因素将导致系统集成难度加大。故传统的单点登录具有安全性、稳定性和可用性低等缺点。



技术实现要素:

为解决现有技术中存在的问题,本发明的目的是提出一种基于cookie的安全单点登录方法及其统一认证服务系统,本发明提出的统一认证服务系统旨在实现单点登录核心功能的同时,解决跨域、分布式部署、各应用站点样式区分等难题,并提高用户认证的安全性;且该系统属于轻量级的,具有对应用站点侵入性小、可灵活扩展、稳定性高等特点。

为实现上述目的,本发明采用的技术方案是:

一种基于cookie的单点登录方法,包括以下步骤:

用户通过客户端浏览器向业务服务器发送登录请求;

业务服务器根据所述登录请求重定向到统一认证服务系统,统一认证服务系统判断所述业务服务器是否携带该登录请求对应的请求凭证:如否,统一认证服务系统则直接重定向到所述登录请求对应的登录页面;如是,统一认证服务系统则校验所述请求凭证,通过该请求凭证获取对应登录请求的原始信息,并对原始信息进行封装加密得到用户凭证;

统一认证服务系统将所述用户凭证写入cookie,且同时拼接该用户凭证到重定向地址,将用户凭证通过业务服务器重定向到用户请求页面,执行所述登录请求。

作为本发明的进一步改进,所述统一认证服务系统判断所述业务服务器未携带所述登录请求对应的请求凭证,且当用户通过所述登录页面输入账号信息并提交请求到统一认证服务系统时,统一认证服务系统调用后台服务验证所述账号信息是否合法:如是,则获取用户id和token等原始信息作为用户凭证;如否,则直接重定向到该业务对应的登录页面,并提示账号信息错误。

作为本发明的进一步改进,所述统一认证服务系统判断所述业务服务器已携带所述登录请求对应的请求凭证,即携带请求凭证为cookie信息,表明该用户在其他业务站点处于登录状态,统一认证服务系统将对该请求凭证对应的cookie进行解析:

若解析不成功,则重定向到该业务对应的登录页面;

若解析成功,则判断该cookie是否过期:如是,则将重定向到该业务对应的登录页面;如否,统一认证服务系统则调用后台服务获取用户id并生成token。

作为本发明的进一步改进,当统一认证服务系统调用后台服务验证账号信息是否合法时,若用户输入账号信息错误次数超过3次,则登录页面增加用于防止机器模拟请求的图形验证码;若用户输入账号信息错误次数再超过5次,则在一定时间内,限制该用户账号的登录请求。

作为本发明的进一步改进,当所述统一认证服务系统成功获取用户id和token等用户凭证的原始信息时,该统一认证服务系统利用服务端key对用户id、业务id、token及过期时间等用户凭证的原始信息进行封装加密生成服务端用户凭证,并将该服务端用户凭证写入cookie;

同时,统一认证服务系统还利用业务key对用户凭证的原始信息进行加密生成客户端用户凭证,并将该客户端用户凭证拼接到回调地址上;

最后,统一认证服务系统根据回调地址将客户端用户凭证重定向到业务服务器,业务服务器从重定向地址中截取客户端用户凭证,解析客户端用户凭证,且将解析出的用户凭证写入session,并返回到用户登录请求的页面。

作为本发明的进一步改进,当所述业务服务器解析客户端用户凭证时,业务服务器携带业务key请求统一认证服务系统获取解密所需的key密文,将获取到的key密文进行解密得到解密所需的key,业务服务器再根据解密所得的key对客户端用户凭证进行解密。

本发明还提供了一种基于cookie单点登录的统一认证服务系统,该统一认证服务系统包括参数解析模块、账号校验模块、cookie认证模块、用户凭证生成模块和返回模块;

参数解析模块,用于当统一认证服务系统接收客户端浏览器或业务服务器发送登录请求时,对请求参数进行解析,判断是否携带该登录请求对应的请求参数:如否,则调用返回模块;如是,当请求参数包含用户账号信息时,调用账号校验模块;当请求参数包含相关cookie信息时,则调用cookie认证模块;

账号校验模块,用于当用户通过登录页面进行登录时,根据用户账号和密码调用后台服务,若账号密码合法,则获取用户id及token;

cookie认证模块,用于当业务服务器请求凭证为cookie时,解析cookie并对获得的参数进行解密,若解密成功,利用解密后的参数判断cookie是否过期,如果没有过期,则调用后台服务获取该业务对应的用户id并生成token信息;

用户凭证生成模块,用于当用户账号信息合法或cookie未过期时,利用服务端key对用户id、业务id、token及过期时间等用户凭证原始信息进行封装加密生成服务端用户凭证,利用业务key对用户凭证原始信息进行封装加密生成客户端用户凭证;

返回模块,用于向cookie中写入服务端用户凭证、向回调地址上拼接客户端用户凭证以及删除cookie中无效参数,并返回到对应的请求业务服务器,如果参数解析模块没有获取到请求凭证或者账号校验或cookie校验不合法时,则返回模块直接重定向到对应业务的登录页面。

本发明的有益效果是:

本发明提供的基于cookie的安全单点登录方法及其统一认证服务系统,将各业务站点登录页面进行统一管理,可用于企业级用户认证、单点登录,在实现单点登录核心功能的同时,有效地解决了跨域、分布式部署、各应用站点样式区分等难题,并提高了用户认证的安全性,且该系统属于轻量级的,具有对应用站点侵入性小、可灵活扩展、稳定性高等特点,而且利于系统集成。

附图说明

图1为本发明实施例的流程框图。

具体实施方式

下面结合附图对本发明的实施例进行详细说明。

一种基于cookie单点登录的统一认证服务系统,该统一认证服务系统包括参数解析模块、账号校验模块、cookie认证模块、用户凭证生成模块和返回模块;

其中,参数解析模块,用于当统一认证服务系统接收客户端浏览器或业务服务器发送登录请求时,对请求参数进行解析,判断请求参数是否为空,若请求参数为空,则调用返回模块;若请求参数不为空,当请求参数包含用户账号信息时,调用账号校验模块;当请求参数包含相关cookie信息时,则调用cookie认证模块;

账号校验模块,用于当用户通过登录页面进行登录时,根据用户账号和密码调用后台服务,若账号密码合法,则获取用户id及token;

cookie认证模块,用于当业务服务器请求凭证为cookie时,解析cookie并对获得的参数进行解密,若解密成功,利用解密后的参数判断cookie是否过期,如果没有过期,则调用后台服务获取该业务对应的用户id并生成token信息;

用户凭证生成模块,用于当用户账号信息合法或cookie未过期时,利用服务端key对用户id、业务id、token及过期时间等用户凭证原始信息进行封装加密生成服务端用户凭证,利用业务key对用户凭证原始信息进行封装加密生成客户端用户凭证;

返回模块,用于向cookie中写入服务端用户凭证、向回调地址上拼接客户端用户凭证以及删除cookie中无效参数,并返回到对应的请求业务服务器,如果参数解析模块没有获取到请求凭证或者账号校验或cookie校验不合法时,则返回模块直接重定向到对应业务的登录页面。

本发明中基于cookie单点登录的方法工作流程框图如图1所示:

当用户向某一业务站点发送登录请求时,业务服务器携带请求凭证重定向到统一认证系统;

统一认证系统接收请求,并由参数解析模块对请求凭证进行解析,判断业务服务器是否携带请求凭证;

若业务服务器未携带请求凭证,则由返回模块重定向到该业务站点对应的登录页面;

当用户通过登录页面发送登录请求时,参数解析模块判断为用户账号信息,则由账号校验模块调用后台服务获取用户id及token;

若业务服务器已携带请求凭证,即携带请求凭证为cookie信息,则由cookie认证模块调用后台服务获取用户id及token;

若上述过程未能成功获取对应用户id,则由返回模块重定向到对应业务的登录页面;若上述过程成功获取对应用户id,由用户凭证生成模块对用户id、业务id、token及过期时间等用户凭证原始信息进行封装加密处理,生成服务端用户凭证和客户端用户凭证;

返回模块将用户凭证生成模块生成的服务端用户凭证写入cookie中,将客户端用户凭证拼接到回调地址上,并删除cookie中无效参数,返回到对应的请求业务服务器;

业务服务器从回调地址中截取客户端用户凭证,并对客户端用户凭证进行解析。

以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1