一种对用户和应用完全透明的web单点登录方法

文档序号:7804719阅读:607来源:国知局

专利名称::一种对用户和应用完全透明的web单点登录方法
技术领域
:本发明涉及网络安全技术,具体涉及对用户和应用完全透明的WEB单点登录技术。
背景技术
:单点登录(SSO)在WEB应用中有很明确的需求,现有的技术主要分为以下几类:(I)简单利用Cookie在二级域名之间实现,通常在某一个网站的多个子站中使用。(2)由某一网站主导,其他网站(或WEB应用)进行集成。如支付宝的用户名/密码可以登录多个网站。(3)完全对等的身份认证实现,如OpenID。(4)利用客户端或浏览器插件实现。但是上述技术在实际的使用过程中存在以下几个不足:首先,上述几种方案都需要WEB应用进行一定程度的改动;再者,在安装客户端或插件的情况下,对用户使用带来一定影响,且不能支持所有的浏览器和操作系统(比如ipad上的safari)
发明内容本发明针对现有单点登录(SSO)在WEB应用中所存在的问题,而提供一种对用户和应用完全透明的WEB单点登录方法,该方法实现对用户和应用完全透明的SS0,且完善支持所有的浏览器和操作系统。为了达到上述目的,本发明采用如下的技术方案:一种对用户和应用完全透明的WEB单点登录方法,所述单点登录方法包括如下步骤:(I)通过透明网桥技术,拦截浏览器(用户)与WEB应用之间的HTTP数据包;(2)利用页面重定向技术,在浏览器首次访问时将其重定向到SSO服务器上的Passport验证服务;(3)SSO服务完成认证后,将浏览器重定向回WEB应用,并设置两个安全令牌(token),分别针对SSO认证服务本身的ptoken(登录服务器的全局令牌)和应用的atoken(应用访问令牌,即应用a的访问令牌);(4)浏览器再次访问应用时,SSO网关检查安全Token,如果有效即可通过。进一步的,所述步骤(I)中利用透明网桥拦截HTTP数据包的具体实施步骤如下:(11)利用brctl命令将两个网卡进行桥接;(12)通过ebtables命令,在链路层将访问相应WEB应用(如Alice应用)的数据包截获,定向到本机的IP层;(13)通过iptables命令,在IP层将数据包进一步定向到本机的应用层;(14)Agent(SS0网关上的代理服务)在3128端口接收到被拦截的数据包;(15)Agent检测atoken;(16)如果检测到atoken并验证通过,则将数据通过socket发送往相应WEB应用(如Alice应用);(17)Socket调用将数据再次送入本机的IP层;(18)数据离开本机,发向相应WEB应用(如Alice应用)。进一步的,所述步骤(2)中的页面重定向的实现方式如下:(21)通过在HTTP响应中设置301或302状态码,并在Location字段中指明新的URL地址;(22)通过返回的页面中的javascript控制页面跳转实现。进一步的,所述步骤(3)中采用基于通讯协议的认证方式或基于表单页面的认证方式来完成SSO服务认证。进一步的,所述ptoken和atoken通过Cookie的方式存放在浏览器本地。根据上述方案得到的本发明具有以下优点:(I)完全利用HTTP协议的特性,不依赖于客户端或插件,支持所有的浏览器和操作系统。(2)对应用和用户都完全透明,不需要改动网络部署和原先的访问习惯。(3)可以实现WEB应用的单点登录,而且可以跨越一级域名。以下结合附图和具体实施方式来进一步说明本发明。图1为利用本发明访问第一个应用时的通讯和认证流程图。图2为利用本发明访问第二个应用时的通讯和认证流程图。图3为本发明中利用透明网桥进行HTTP数据拦截流程图。具体实施例方式为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。为了实现对用户和应用完全透明的SS0,且完善支持所有的浏览器和操作系统,本发明设计了特有的技术方案,主要原理如下:(I)通过透明网桥技术,拦截用户(浏览器)与WEB应用之间的HTTP数据包;(2)利用页面重定向技术,在用户首次访问时将其重定向到SSO服务器;(3)SSO服务完成认证后,将浏览器重定向回WEB应用,并设置两个安全token,—个针对SSO认证服务本身的ptoken和另一个针对应用的atoken;(4)浏览器再次访问应用时,SSO网关检查安全Token,如果有效即可通过。基于上述原理,本发明的具体实施如下:该实例描述用户浏览器访问两个应用(Alice和Bob)时的详细通讯和认证步骤,该实例的实施环境主要由以下主体构成(如图1和图2):Browser:浏览器,如InternetExplorer,Firefox等应用Alice和应用Bob:使用两个不同的一级域名的WEB应用。SSO网关,由两个服务组成:PassportService-认证服务,实现对用户身份的验证,可以支持不同的认证方式。AgentService——代理服务,利用透明网桥截获浏览器和应用之间的数据包后,对HTTP数据进行分析处理。参见图1,其上所示I至10步骤是访问Alice,其具体过程如下:1、浏览器发起对应用Alice的访问,此时的HTTP请求为GET/HTTP/1.0Host:alice...2、SSO网关利用网桥技术截获了浏览器到应用Alice之间的数据包,并定向到自身的AgentService进·行处理。Agent检查url参数或cookie中是否存在atoken,因为是第一次访问应用bob,所以此时还不存在atoken。3>Agent构造一个含有自动提交的form的页面,返回给浏览器。200OK<html><body>〈formname="loginForm"action="https://PassportService/login"><inputname="random"type="hidden"value="12345678"/>〈inputname="url"type="hidden"value="http://alice/"/></form><script>document.loginForm.submit();</script></body></html>4、浏览器自动提交该FORM到PassportServer(为保护通讯,此处可以采用HTTPS进行加密)。POST/loginHTTP/1.0Host:PassportServicerandom=12345678&url=http://alice/5>PassportService根据配置的认证方式来进行不同的处理:I)对于基于通讯协议的认证方式(如双向SSL,HTTPBasic/Digest认证),此时认证已经结束;2)对于基于表单页面的认证方式,此时需要向浏览器返回一个页面,要求用户输入用户名/密码,图片验证码等进行继续认证。认证通过后,PassportService根据random计算得到两个token:I)一个针对全局的ptoken,2)另一个针对应用Alice的atoken。然后向浏览器返回302重定向,在URL参数中设置atoken,在cookie中设置Sticket0权利要求1.一种对用户和应用完全透明的WEB单点登录方法,其特征在于,所述单点登录方法包括如下步骤:(1)通过透明网桥技术,拦截浏览器与WEB应用之间的HTTP数据包;(2)利用页面重定向技术,在浏览器首次访问时将其重定向到SSO服务器上的Passport验证服务;(3)SSO服务完成认证后,将浏览器重定向回WEB应用,并设置两个安全令牌,分别针对SSO认证服务本身的登录服务器的全局令牌和应用的应用访问令牌;(4)浏览器再次访问应用时,SSO网关检查安全令牌,如果有效即可通过。2.根据权利要求1所述的一种对用户和应用完全透明的WEB单点登录方法,其特征在于,所述步骤(I)中利用透明网桥拦截HTTP数据包的具体实施步骤如下:(11)利用brctl命令将两个网卡进行桥接;(12)通过ebtables命令,在链路层将访问相应WEB应用的数据包截获,定向到本机的IP层;(13)通过iptables命令,在IP层将数据包进一步定向到本机的应用层;(14)SSO网关上的代理服务在3128端口接收到被拦截的数据包;(15)SSO网关上的代理服务检测应用访问令牌;(16)如果检测到应用访问令牌并验证通过,则将数据通过socket发送往相应WEB应用;(17)Socket调用将数据再次送入本机的IP层;(18)数据离开本机,发向相应WEB应用。3.根据权利要求1所述的一种对用户和应用完全透明的WEB单点登录方法,其特征在于,所述步骤(2)中的页面重定向的实现方式如下:(21)通过在HTTP响应中设置301或302状态码,并在Location字段中指明新的URL地址;(22)通过返回的页面中的javascript控制页面跳转实现。4.根据权利要求1所述的一种对用户和应用完全透明的WEB单点登录方法,其特征在于,所述步骤(3)中采用基于通讯协议的认证方式或基于表单页面的认证方式来完成SSO服务认证。5.根据权利要求1所述的一种对用户和应用完全透明的WEB单点登录方法,其特征在于,所述登录服务器的全局令牌和应用访问令牌通过Cookie的方式存放在浏览器本地。全文摘要本发明公开了一种对用户和应用完全透明的WEB单点登录方法,实施步骤如下1.通过透明网桥技术,拦截用户(浏览器)与WEB应用之间的HTTP数据包;2.利用页面重定向技术,在用户首次访问时将其重定向到SSO服务器;3.SSO服务完成认证后,将浏览器重定向回WEB应用,并设置安全Token;4.浏览器再次访问应用时,SSO网关检查安全Token,如果有效即可通过。本发明无需安装客户端或插件,也无需应用进行任何改动,就可以实现WEB应用的单点登录,而且可以跨越一级域名。文档编号H04L29/08GK103188295SQ20111044912公开日2013年7月3日申请日期2011年12月28日优先权日2011年12月28日发明者掌晓愚,杨茂江,谭武征,应哲峰,陈海雷申请人:上海格尔软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1