本发明专利技术公开了基于CAS的级联认证方法,用户在首次登陆时,由各个跨域的认证服务分别对用户进行一次认证,认证成功就为客户端分配一个TGT,用户客户端只要具备各个认证域的TGT,就可以实现在不同的部署单位之间跨域访问;在CAS框架基础之上,优化和扩展SSO认证机制,打破原有的不能跨部署单位的单点登陆,可以实现各个不同域的认证服务器间的认证联动,用户仅需在其中一个域进行一次登陆,就可以安全地访问其它部署单位,在有权限的业务系统,无需二次登陆,支撑了大型集团公司的跨单位应用整合需求,也提升了用户的应用体验。
【技术实现步骤摘要】
本专利技术涉及信息
,具体的说,是基于CAS的级联认证方法。
技术介绍
CAS是主流的SSO开源解决方案,主要实现基于B/S结构的应用系统用户SS0,交互协议主要基于http及安全的https。传统的SSO技术只能支撑用户在同一个部署单位内的业务系统SS0,无法实现跨部署单位(域)的SSO。原生CAS技术提供的SSO认证机制如下: 1.由客户端和服务端两部分组成;在应用时,客户端被集成到业务系统运行时环境中(此处的业务系统是指需要集成SSO认证的系统),服务端则独立部署。2.用户访问业务系统时,内置的CAS客户端组件会拦截用户请求,并检查用户会话有效性。如果会话有效,则允许访问;如果会话无效,则将用户请求转发至服务端,进入下一步。3.CAS服务端检测用户客户端是否存储了 TGT,如果有则说明已经登陆过,则自动为客户端生成用于访问业务系统使用的ST,并将请求再次转发到业务系统端。业务系统根据第2步的描述再次进行ST和会话校验。但如果检测到客户端没有TGT,服务端将会展现登陆界面,要求用户登陆,并进入下一步。4.用户输入登陆认证信息并提交,CAS服务器对登陆信息进行校验,校验通过则为客户端生成TGT,同时产生ST,然后将请求转发到业务系统。此时用户将成功进入系统,并建立有效的Sess1n。这种机制只能支持本部署单位(域)范围内的系统单点登陆。如果同一个用户在不同单位都具备某套系统的访问权限,那么该用户必须分别在不同的单位进行一次登陆,用户体验较差,而在大型集团公司,此类应用场景十分普遍。在大型集团公司的应用架构中,往往存着一些业务系统采用分级/分单位部署,例如总部和各分子公司均单独部署。但分子公司与总部业务系统又具有系统整合需求,这种系统整合主要采用界面集成的方式,最典型的就是企业门户系统。界面的集成,尤其是跨单位、跨域的场景下,就必须依赖具备级联能力的SSO技术支撑。标准的开源CAS框架,只能做到相同部署单位内业务系统的用户单点登陆(SS0),无法做到跨部署单位的SSO贯穿。这样的限制,无法支撑大型集团公司的跨单位的应用整合,因此必须寻求突破,为了支撑集团各单位与总部的系统整合,提升用户体验,必须打破原有的SSO限制,实现跨部署单位间的单点登陆共享,最终支撑业务系统整合。
技术实现思路
本专利技术的目的在于提供基于CAS的级联认证方法,在CAS框架基础之上,优化和扩展SSO认证机制,打破原有的不能跨部署单位的单点登陆,可以实现各个不同域的认证服务器间的认证联动,用户仅需在其中一个域进行一次登陆,就可以安全地访问其它部署单位,在有权限的业务系统,无需二次登陆,支撑了大型集团公司的跨单位应用整合需求,也提升了用户的应用体验。本专利技术通过下述技术方案实现:基于CAS的级联认证方法,用户在首次登陆时,由各个跨域的认证服务分别对用户进行一次认证,认证成功就为客户端分配一个TGT,用户客户端只要具备各个认证域的TGT,就可以实现在不同的部署单位之间跨域访问;具体包括以下步骤: 1)在CAS客户端组件中,新开发一个Servlet程序,向请求端返回“目标认证服务”地址; 2)在CAS服务端,新开发一个基于http协议的“握手接口”,接收用户登陆凭证输入,生成一个FT,再以FT为标识将用户登陆凭证缓存起来,最后向调用端返回FT字段串; 3)在CAS服务端处理用户登陆凭证校验时,若用户登陆凭证正确,则将用户登陆凭证缓存起来,生成合法凭证,缓存标识采用当前用户的TGT字段串; 4)新开发一个专门用于处理“跨域认证”的http控制器程序,名为“目标控制器”,请求访问时要求传入“目标业务系统”的访问地址; 5)“目标控制器”从用户浏览器中获取TGT,然后通过TGT将记录在缓存中的合法凭证取出; 6)“目标控制器”向CAS客户端组件中新开发的Servlet程序发起http请求,获取到“目标业务系统”集成的“目标认证服务”地址; 7)“目标控制器”调用“握手接口”,在“握手接口”的缓存中临时存储用户登陆凭证,发送用户登陆凭证,并获得FT; 8)“目标控制器”将用户请求转发至“目标业务系统”集成的“目标认证服务”,转发时将FT作为参数附带,用于进行登陆过程; 9)“目标认证服务”在处理用户登陆流程时,从用户请求的参数中获取FT,再根据FT从“握手接口 ”的缓存中提取用户登陆凭证,对用户登陆凭证进行校验,续继执行其它CAS登陆过程。在CAS框架基础之上,优化和扩展SSO认证机制,打破原有的不能跨部署单位的单点登陆,可以实现各个不同域的认证服务器间的认证联动,用户仅需在其中一个域进行一次登陆,就可以安全地访问其它部署单位,在有权限的业务系统,无需二次登陆,支撑了大型集团公司的跨单位应用整合需求,也提升了用户的应用体验。进一步的,为更好的实现本专利技术,在所述步骤8)中,“目标控制器”将用户请求转发至“目标业务系统”集成的“目标认证服务”时,用户客户端收到一个跳转响应,跳转地址是“目标认证服务”的认证地址,向“目标认证服务”发起一个登陆认证请求,“目标认证服务”将收到用户客户端的“跨域认证请求”,在处理“跨域认证请求”时,首先从用户客户端解析是否具备有效的TGT,如果有效,则为用户客户端生成一个ST,然后将请求转发“系统访问流程”;如果无效则返回进行步骤9)。进一步的,为更好的实现本专利技术,在所述步骤9)中,对用户登陆凭证进行校验包括以下步骤: 9.1)、身份验证成功: 9.1.1)、生成TGT、写Cookie 跨域认证身份”校验成功,进入标准的CAS功能流程,即为用户客户端生成TGT,并将TGT写入CAS客户端Cookie中; 9.1.2)、生成ST、响应跳转:TGT产生成功后,再根据TGT为用户生成ST,然后将用户请求跳转至“系统访问流程”; 9.2)身份验证无效则响应登陆页面:在“跨域认证身份”校验失败的情况下,将返回一个登陆页面给用户客户端,要求用户进行登陆。进一步的,为更好的实现本专利技术,所述“跨域认证身份”为“级联认证身份”。进一步的,为更好的实现本专利技术,所述“系统访问流程”包括以下步骤: (1)访问拦截:由“目标业务系统”处理,内置在“目标业务系统”中的“目标认证服务”的“认证客户端组件”将拦截到用户访问请求并调用“会话/ST校验”来决定下一步流程; (2)“会话/ST校验”:由认证客户端组件检查“目标业务系统”中是否具备有效的Sess1n会话,如果有效,则允许用户访问系统资源;如果没有会话,则检查访问请求中是否提供了有效的ST,如果具备有效的ST,则为用户创建一个有效的Sess1n,并允许用户访问系统资源,如果没有提供有效的ST,则将请求转发至步骤8),重新进行登陆过程。进一步的,为更好的实现本专利技术,所述“目标业务系统”为“级联目标业务系统”;所述“目标认证服务”为“级联目标认证服务”;所述“跨域认证”为“级联认证”;所述“握手接口 ”为“级联握手接口 ” ;所述“目标控制器”为“级联控制器”。本专利技术与现有技术相比,具有以下优点及有益效果: (I)本专利技术在CAS框架基础之上,优化和扩展SSO认证机制,打破原有的不能跨部署单位的单点登陆,可以实现各个不同域的认证服务器间的认证联动本文档来自技高网...
【技术保护点】
基于CAS的级联认证方法,其特征在于:用户在首次登陆时,由各个跨域的认证服务分别对用户进行一次认证,认证成功就为客户端分配一个TGT,用户客户端只要具备各个认证域的TGT,就可以实现在不同的部署单位之间跨域访问;具体包括以下步骤:1)在CAS客户端组件中,新开发一个Servlet程序,向请求端返回“目标认证服务”地址;2)在CAS服务端,新开发一个基于http协议的“握手接口”,接收用户登陆凭证输入,生成一个FT,再以FT为标识将用户登陆凭证缓存起来,最后向调用端返回FT字段串;3)在CAS服务端处理用户登陆凭证校验时,若用户登陆凭证正确,则将用户登陆凭证缓存起来,生成合法凭证,缓存标识采用当前用户的TGT字段串;4)新开发一个专门用于处理“跨域认证”的http控制器程序,名为“目标控制器”,请求访问时要求传入“目标业务系统”的访问地址;5)“目标控制器”从用户浏览器中获取TGT,然后通过TGT将记录在缓存中的合法凭证取出;6)“目标控制器”向CAS客户端组件中新开发的Servlet程序发起http请求,获取到“目标业务系统”集成的“目标认证服务”地址;7)“目标控制器”调用“握手接口”,在“握手接口”的缓存中临时存储用户登陆凭证,发送用户登陆凭证,并获得FT;8)“目标控制器”将用户请求转发至“目标业务系统”集成的“目标认证服务”,转发时将FT作为参数附带,用于进行登陆过程;9)“目标认证服务”在处理用户登陆流程时,从用户请求的参数中获取FT,再根据FT从“握手接口”的缓存中提取用户登陆凭证,对用户登陆凭证进行校验,续继执行其它CAS登陆过程。...
【技术特征摘要】
【专利技术属性】
技术研发人员:林志达,梁志宏,吕华辉,张晓韬,彭永勇,
申请(专利权)人:中国南方电网有限责任公司,四川中电启明星信息技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。