一种非入侵式的WEB系统单点登录和访问控制实现方法与流程

文档序号:14179048阅读:1383来源:国知局

本发明涉及网络系统中的数据交换领域。



背景技术:

自从进入互联网时代以来,b/s架构大行其道,在多系统共存的应用环境中,实现单点登录机制是一个刚性需求,不仅大大地方便了用户使用系统,还能有效的简化运维管理,同时还能整体提高系统群的安全性,增强抗攻击和抗入侵能力。由于b/s系统的客户端都是浏览器,浏览器的一些安全特性和会话隔离机制,使得单点登录机制实现起来较为困难,也很难达到真正的无缝对接、统一登录、统一注销的效果。

现有技术中的b/s系统实现单点登录的方法有很多种,总结下来,其核心机制都是想办法突破浏览器跨域的限制,实现在不同的web站点之间共享或传递用户信息,比如通过cookie、jsonp、或url参数等传递ticket/token等方式,架构一般有两大类:

第一种是基于个业务系统之间相互信任、相互配合、传递用户信息,一起来共同实现单点登录机制。

第二种是基于建立独立的、各业务系统共同信任的统一认证服务,通过共享独立的统一认证服务实现单点登录机制。

现有的单点登录方案,都是在绕开突破浏览器跨域和会话隔离的限制,通过cookie、jsonp、或url参数等在不同站点之间传递ticket/token,这种实现方案实际实施起来是比较复杂的,需要对原有的系统进行一系列改造,比如,需要添加统一的拦截器、重定向页面、加/解密ticket/token等等,不仅实现繁琐,安全性低,最终的效果也不好,而且由于http协议天生的无状态特性,常常会不明原因的登录会话丢失、混乱,或者无法统一地、同步地进行登录注销,这对于用户会话敏感的业务操作类型web系统,这些缺陷往往会造成严重的系统bug。

故,需要一种新的技术方案以解决上述问题。



技术实现要素:

发明目的:提供一个抛开浏览器限制,能够具有较高便捷性、兼容性、安全性和可扩展性的web系统单点登录和访问控制实现方法。

技术方案:为达到上述目的,本发明可采用如下技术方案:

一种非入侵式的web系统单点登录和访问控制实现方法,其特征在于,包括:

业务系统置于反向代理服务器之后,所有来自客户端的请求,都先经反向代理服务器的反向代理拦截过滤,通过分析httpauthorization信息,识别该请求是否合法,如果合法,反向代理放行并转发请求到对应的后端业务系统,否则不予放行;

当用户在客户端打开浏览器,首次访问业务系统时,此时用户是未经认证的,故会被反向代理拦截,浏览器显示的登录提示页面,提示页面可以自动检测客户端是否运行、是否已经登录认证,如果正在运行并且已经登录,浏览器通过跨域请求获取到登录的用户信息,并对反向代理服务器发起带用户信息的httpauthorization请求,反向代理服务器截获httpauthorization后,判断合法,即进入正常的请求转发状态,整个认证过程完成。

有益效果:本发明所提出的方法具备良好的便捷性、兼容性、安全性和可扩展性,可以有效避免传统的单点登录方案具有侵入性和复杂性,可以在不改造已有系统的情况下,实现信息系统的自动化单点登录和全站保护模式的访问控制;可以兼容所有的主流浏览器;可以实现登录会话的实时监控和强制注销,注销登录不仅阻断网络访问,还可以实现已登录会话外部进程的主动强制注销。

进一步的,浏览器向客户端请求登录用户信息时,客户端通过端口查找的方法,反查浏览器的进程id,在返回用户信息的同时,对浏览器进程进行实时监控,一旦客户端注销或退出,将杀死所有已被监控浏览器进程,实现强制注销。

进一步的,提供cas认证服务器,客户端自身的登录认证过程由客户端与cas认证服务独立交互完成。

进一步的,所述业务系统为多个,所有业务系统均置于反向代理服务器之后。

进一步的,客户端的请求包含用户登录信息。

附图说明

图1为本发明中采用的硬件结构示意图。

具体实施方式

本发明中采用的技术术语:

身份认证:身份认证也称为“身份验证”或“身份鉴别”,是指在计算机及计算机网络系统中识别、确认访问者或操作者身份的过程。

单点登录:用户在访问多个独立的应用系统时,可以自动在应用系统之间共享身份信息。即只需要登录一次,在未注销登录之前,再次访问其中任何一个系统时,不需要用户再次进行登录认证。

访问控制:指系统在确定了访问用户身份后,根据某种既有的策略来确定该用户是否具有对某种资源的访问和使用权限,防止攻击者假冒合法用户获得资源的访问权限,保证系统和数据的安全。

实施例:

请结合图1所示,本发明中提供客户端模块、cas认证服务器和反向代理服务器,其技术架构实现原理示意图。在该硬件设施基础上,本发明公开一种非入侵式的web系统单点登录和访问控制实现方法,其具体方案为:所有的业务系统都置于反向代理服务③之后,所有来自客户端的请求,都先经反向代理拦截过滤,通过分析httpauthorization信息,识别该请求是否合法(包含用户登录信息),如果合法,反向代理放行并转发请求到对应的后端业务系统,否则不予放行,并向浏览器输出登录提示的页面。

当用户在终端打开浏览器,首次访问业务系统时,此时用户是未经认证的,故会被反向代理拦截,浏览器显示的登录提示页面,提示页面可以自动检测客户端①是否运行、是否已经登录认证,如果正在运行并且已经登录(客户端①自身的登录认证过程由客户端与cas认证服务②独立交互完成),浏览器可以通过跨域请求获取到登录的用户信息,并对反向代理服务器③发起带用户信息的httpauthorization请求,反向代理服务器截获httpauthorization后,判断合法,即进入正常的请求转发状态,整个认证过程完成。

此方案中利用浏览器能自动记忆httpauthorization的原理,实际运行中,浏览器仅需要在第一次被方向代理拦截时从客户端获取登录用户信息,之后对业务服务器的访问都会自动携带httpauthorization(不需要每个请求都从客户端获取用户信息),因此非常高效。

同时,浏览器向客户端请求登录用户信息时,客户端通过端口查找的方法,反查浏览器的进程id,在返回用户信息的同时,对浏览器进程进行实时监控,一旦客户端注销或退出,将杀死所有已被监控浏览器进程,实现强制注销。

本发明所提出的方法具备良好的便捷性、兼容性、安全性和可扩展性,可以有效避免传统的单点登录方案具有侵入性和复杂性,可以在不改造已有系统的情况下,实现信息系统的自动化单点登录和全站保护模式的访问控制;可以兼容所有的主流浏览器;可以实现登录会话的实时监控和强制注销,注销登录不仅阻断网络访问,还可以实现已登录会话外部进程的主动强制注销。

另外,本发明的具体实现方法和途径很多,以上所述仅是本发明的优选实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

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