一种单点登录方法及其系统的制作方法

文档序号:9670827阅读:875来源:国知局
一种单点登录方法及其系统的制作方法
【技术领域】
[0001]本发明涉及计算机网络信息安全技术领域,尤其涉及一种单点登录方法及其系统。
【背景技术】
[0002]单点登录(Single Sign On),简称为SS0,是目前比较流行的企业业务整合的解决方案之一。SS0的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,单点登录是一种授权机制和统一认证,目前该技术领域常用的技术CAS(Central Authenticat1n Service)是Yale大学发起的一个开源项目,旨在提供稳定可靠的单点登录解决方案,CAS客户端与受保护的客户端应用部署在一起,以过滤方式保护Web应用的受保护资源,如图1所示,现有CAS (Central Authenticat1n Service)的基本验证过程包括:
[0003]步骤1、CAS客户端(S卩图1中的CAS Client)Web浏览器发起请求,Web浏览器过滤从客户端过来的每一个Web请求,并访问CAS客户端;
[0004]步骤2、CAS客户端分析HTTP请求中是否包含请求Service Ticket,如果没有,则说明该用户是没有经过认证的,CAS客户端会重定向用户请求到CAS服务端,并传递Service(要访问的目的资源地址)给CAS服务端;
[0005]步骤3、用户进行登录操作,提供证书进行认证;
[0006]步骤4、在用户提供了正确的证书后,CAS服务端随机产生一个相当长度、唯一、不可伪造的Service Ticket,并缓存以待将来验证,并且重定向用户到Service所在地址(附带步骤3中产生的Service Ticket),并为Web浏览器设置一个Ticket Granted Cookie(TGC);
[0007]步骤5、CAS客户端在拿到Service和新产生的Ticket过后,与CAS服务端进行身份核实;
[0008]步骤6、CAS服务端返回用户信息,完成验证,确保Service Ticket的合法性。
[0009]上述CAS验证方式,存在以下不足:
[0010]1、在实际环境应用中经常会部署几百甚至上千台应用服务节点,因为CAS本身验证机制的原因,出于安全考虑所有业务链接均要经过CAS服务端的验证,为了认证Ticket串的真实性和获取必要用户信息,需要数次向CAS服务端发起请求,这种高耦合的设计模式致使CAS服务端交互过于频繁,且业务模块对CAS服务端高度依赖,一旦CAS服务端异常,所有的业务模块均会受到影响;
[0011]2、CAS服务认证的只是其颁发的Ticket串,黑客很容易仿造或窃取其Ticket串,并在其他机器上进行重放攻击,造成信息的泄露,安全性不够。

【发明内容】

[0012]本发明要解决的技术问题之一,在于提供一种单点登录方法,通过非对称密钥实现CAS客户端自行校验,大大降低对CAS服务端的依赖度,同时,实现双向认证机制,提高安全性。
[0013]本发明要解决的技术问题之一是这样实现的:一种单点登录方法,包括如下步骤:
[0014]步骤1、通过Web浏览器访问CAS客户端;
[0015]步骤2、通过CAS客户端检测所述Web浏览器是否含有认证信息NewTicket,若是,则进入步骤5,直接进行认证;否则,跳回到浏览器,由Web浏览器重定向到CAS服务端,进入步骤3;
[0016]步骤3、通过Web浏览器进行用户登录,若用户登录账户和密码正确,则进入步骤4,否则,退出认证;
[0017]步骤4、通过CAS服务端根据Web浏览器传来的信息生成认证信息NewTicket,并将认证信息NewTicket与CAS服务端公钥存于Web浏览器,用于下次Web浏览器访问CAS客户端时直接进行认证,所述认证信息NewTicket包括Ticket和签名信息,所述签名信息由Ticket经过一转换方式进行处理后再用CAS服务端的私钥进行加密得到;
[0018]步骤5、通过CAS客户端获取Web浏览器中的认证信息NewTicket,根据CAS服务端公钥对认证信息NewTicket中的签名信息进行解密得到签名内容,并采用所述转换方式对认证信息NewTicket中的Ticket进行处理,若签名内容与处理后的Ticket—致,贝lj认证成功,进入应用界面;否则,认证失败,退出认证。
[0019]进一步的,所述Ticket信息包括版本信息、创建时间、过期时间、浏览器端的设备信息、随机混淆码和用户核心传输数据。
[0020]进一步的,步骤6、在Web浏览器需要获取存于CAS服务端中的信息时,所述Web浏览器通过向CAS客户端发起访问,由CAS客户端向CAS服务端发起请求,所述CAS服务端获取Web浏览器的认证信息NewTicket,根据CAS服务端公钥对认证信息NewTicket中的签名信息进行解密得到签名内容,并采用所述转换方式对认证信息NewTicket中的Ticket进行处理,若签名内容与处理后的Ticket—致且Ticket中的设备信息与发起请求的浏览器端的设备信息一致,则认证成功,获取CAS服务端信息返回给Web浏览器;否则,认证失败,退出认证。[0021 ]进一步的,所述转换方式为哈希散列SHA-1处理。
[0022]进一步的,所述认证信息NewTicket在传输过程中采用base64方式进行加密。
[0023]本发明要解决的技术问题之二,在于提供一种单点登录系统,通过非对称密钥实现CAS客户端自行校验,大大降低对CAS服务端的依赖度,同时,实现双向认证机制,提高安全性。
[0024]本发明要解决的技术问题之二是这样实现的:一种单点登录系统,包括一访问模块、一重定向模块、一登录模块、一加密模块和一认证模块;
[0025]所述访问模块,用于通过Web浏览器访问CAS客户端;
[0026]所述重定向模块,用于通过CAS客户端检测所述Web浏览器是否含有认证信息NewTicket,若是,则执行认证模块,直接进行认证;否则,跳回到浏览器,由Web浏览器重定向到CAS服务端,执行登录模块;
[0027]所述登录模块,用于通过Web浏览器进行用户登录,若用户登录账户和密码正确,则执行加密模块,否则,退出认证;
[0028]所述加密模块,用于通过CAS服务端根据Web浏览器传来的信息生成认证信息NewTicket,并将认证信息NewTicket与CAS服务端公钥存于Web浏览器,用于下次Web浏览器访问CAS客户端时直接进行认证,所述认证信息NewTicket包括Ticket和签名信息,所述签名信息由Ticket经过一转换方式进行处理后再用CAS服务端的私钥进行加密得到;
[0029]所述认证模块,用于通过CAS客户端获取Web浏览器中的认证信息NewTicket,根据CAS服务端公钥对认证信息NewTicket中的签名信息进行解密得到签名内容,并采用所述转换方式对认证信息NewTicket中的Ticket进行处理,若签名内容与处理后的Ticket—致,则认证成功,进入应用界面;否则,认证失败,退出认证。
[0030]进一步的,所述Ticket信息包括版本信息、创建时间、过期时间、浏览器端的设备信息、随机混淆码和用户核心传输数据。
[0031]进一步的,所述系统还包括一双向认证模块,用于在Web浏览器需要获取存于CAS服务端中的信息时,所述Web浏览器通过向CAS客户端发起访问,由CAS客户端向CAS服务端发起请求,所述CAS服务端获取Web浏览器的认证信息NewTicket,根据CAS服务端公钥对认证信息NewTicket中的签名信息进行解密得到签名内容,并采用所述转换方式对认证信息NewTicket中的Ticket进行处理,若签名内容与处理后的Ticket—致且Ticket中的浏览器端的设备信息与发起请求的浏览器端的设备信息一致,则认证成功,获取CAS服务端信息返回给Web浏览器;否则,认证失败,退出认证。
[0032]进一步的,所述转换方式为哈希散列SHA-1处理。
[0033]进一步的,所述认证信息NewTicket在传输过程中采用base64方式进行加密。
[0034]本发明具有如下优点:
[0035]1、通过引入非对称密钥算法实现CAS客户端的自行校验,减少了 CAS客户端与CAS服务器之间的频繁交互,降低了对CAS服务器的依赖度,增强了系统的稳定性;
[0036]2、CAS客户端在首次登录后,将浏览器端的设备信息加入到Ticket串中作为CAS月艮务器对CAS客户端信任的依据,当CAS客户端需要访问CAS服务端信息时,通过CAS服务端验证浏览器端的设备信息并通过CAS客户端验证CAS服务端的数据的完整性,实现双向验证机制,大大提
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1