一种跨网站服务器的登录认证方法
【专利摘要】本发明公布了一种跨网站服务器的登录认证方法,包括以下步骤:S1生成密钥文件对;S2将B网站的入口地址改造为A网站域内地址,A网站对用户身份校验;S3当不是A网站的用户时,将B网站的入口地址返回给用户浏览器,要求重定向;S4当是A网站的用户时,根据会话ID生成标识符UUID,其与用户登录账号组成用户信息字符串;S5利用私钥文件对用户信息字符串加密,并将浏览器重定向到B网站的入口地址;S6 B网站提取请求中的UUID并判断其有效性;S7若有效,则用公钥文件对密文解密得到用户的会话ID及登录账号;S8若无效,则B网站将当前用户作为普通未登录用户处理。本发明实现在不同的网站服务器之间安全经济的共享用户登录信息。
【专利说明】—种跨网站服务器的登录认证方法
【技术领域】
[0001]本发明属于网站设计开发领域,是一种服务器对用户会话的识别和标记技术。
【背景技术】
[0002]随着web2.0技术的普及,大量企业都将自己的业务及工作流程放到网站上实现,以达到高效、规范的办公能力。随着企业的发展,这种业务系统的企业级架构会越来越复杂,不同子系统的开发可能由不同的部门主导。这些子系统的设计实现往往存在较大的差异,且实现技术、开发语言甚至服务器所处地理位置也不相同,这种差异性导致各网站子系统之间数据的标准化及共享成为一个难题。其中最困扰企业及开发者的问题在于,用户在各个网站子系统之间跳转时,为了保证用户数据的安全性,用户需要多次输入账号密码进行重登录,这种在一个网站系统内部,反复多次的要求用户登录自己账号的做法给用户带来了极差的使用体验。更有甚者,同一个用户在不同的子系统上账号和密码都不一致,需要用户记忆多套账号密码。
[0003]为了应对这种跨网站服务器系统的用户身份识别问题,目前主流的做法是采用以OpenSSO为代表的单点登录系统(SSO)。单点登录是目前比较流行的解决企业业务整合的方案之一,主要就是用于解决上面提到的问题,使用户在复杂网站系统中只需要登录一次就可以访问所有相互信任的子应用系统。但是单点登录系统也存在一些问题,表现在,第一、需要单独部署认证服务器,对架构略微简单的网站系统来讲,这样做增加了经济预算也增加了维护成本;第二、如果不是在整个企业级系统一开始设计时就考虑到单点登录机制,而是在现有各子系统整合过程中加入,则需要对现有生产环境上的子系统进行重构,对用户认证模块重写,这样做花费的精力较大,且存在系统升级风险。
【发明内容】
[0004]为解决上述问题,本发明提供一种跨网站服务器的登录认证方法。
[0005]技术方案:一种跨网站服务器的登录认证方法,假设存在两个网站服务器,A网站和B网站,并分别部署于不同的网络环境,其特征在于,包括以下步骤:
[0006]S1.通过openssl生成密钥文件对,将私钥文件部署在A网站,将公钥文件部署在B网站;
[0007]S2.将跳入B网站的入口地址改造成为A网站域内地址,用户在页面上向B网站跳转时,请求首先发到A网站,A网站对所述用户身份进行校验;
[0008]S3.当步骤S2的所述校验结果为用户不是登录A网站的用户时,将B网站的入口地址返回给用户浏览器,要求浏览器重定向;
[0009]S4.当步骤S2的所述校验结果为用户是登录A网站的用户时,根据当前用户的会话ID,生成一个唯一标识符UUID,将所述UUID与用户登录账号组合成用户信息字符串;
[0010]S5.利用步骤SI所述私钥文件对步骤S4所述用户信息字符串加密形成密文,所述密文作为URL参数传回用户浏览器,并通知浏览器带上密文参数重定向到B网站的入口地址;
[0011]S6.B网站提取请求中的UUID,并判断所述UUID的有效性;
[0012]S7.若步骤S6的所述判断结果为用户是A网站的合法用户,则通过步骤SI的所述公钥文件,对用户信息密文做解密操作,得到用户的会话ID及登录账号,将用户会话标识为登录状态,并根据该账号的权限为其分配相应的操作权限;
[0013]S8.若步骤S6的所述判断结果为用户不是A网站的合法用户,B网站将当前用户作为普通未登录用户处理。
[0014]进一步的,步骤SI所述的通过openssl生成密钥文件对时,采用的算法为RSA算法。
[0015]进一步的,步骤S2所述的A网站对用户身份进行校验的校验内容包括:用户是否是A
[0016]网站的登录用户,登录名是什么。
[0017]进一步的,步骤S4所述的UUID存放于A网站自身的缓存系统,设置其状态为有效,并设置5秒超时时限。步骤S6判断所述UUID的有效性是根据步骤S4所述的状态有效性与所述时限来判定的,若步骤S6中B网站提取请求中的UUID在A网站中的状态有效且未超时,则判断结果为用户是A网站的合法用户,否则判断结果为用户不是A网站的合法用户。
[0018]进一步的,在所述步骤S6与所述步骤S7之间还要进行以下操作,A网站将存储其内的UUID标识为无效,或直接删除。
[0019]进一步的,所述B网站的入口地址在HTTPS的保护下,以避免用户信息被恶意截取。
[0020]由于采用了上述技术方案,本发明具有以下有益效果:
[0021](I)满足用户的会话跨服务器登录的需求;
[0022](2)安全的传递用户隐私数据,能够既不影响用户的上网体验,又保证用户数据在跨服务器传输时安全可靠;
[0023](3)既避免了现有技术中需要增加经济成本部署庞大的单点登录服务器,又避免了对现有网站服务器系统进行较大的改造,并且在实现登录认证的过程中对A、B网站的域名没有特殊要求;
[0024](4)既能满足同一企业级架构下不同子系统间的通信要求,又能满足两个完全独立网站之间的跨站点用户识别,快速适应企业网站应用的需求,节约成本。
【专利附图】
【附图说明】
[0025]图1是本发明的流程示意图;
[0026]图2是B网站识别A网站登录用户认证的时序关系图。
【具体实施方式】
[0027]在介绍本发明的具体实施例之前,先对本发明欲实现的功能需求作一简单介绍。
[0028]在大多数应用场合,实际需求只需要用户从一个已登录站点到达另一个未登录站点时,未登录站点能够识别出用户在上个站点中的用户身份。对于存在这种需求的应用场景,具备以下特征:
[0029]1.用户在两个网站系统中具有相同的账号密码;
[0030]I1.在两个网站系统中,用户的会话信息不需要共享,仅仅提供用户身份(账号)识别能力即可;
[0031]II1.在大多数情况中,这种身份识别是单向的,即只需要支持从A网站到达B网站时,B网站能够辨识用户是否在A上做过登录,且得到用户的身份信息即可;
[0032]IV.至于用户在A网站上有没有登出系统,B网站并不关心,B网站对A网站的登录认证过程完全信任,用户从A网站登出后,任然可以在B网站进行各项基于身份认证的业务操作。
[0033]为了满足具有上述特征的需求,本发明设计了一种跨网站服务器的登录认证方法,并且该方法是基于RSA算法及SSL协议,同时解决了现有技术中引入单点登录系统的成本和安全风险的问题。
[0034]下面结合附图对本实施例作进一步说明。
[0035]假设用户从A网站到B网站需要传递身份认证信息,即应用场景中存在两个网站服务器系统,A网站和B网站,用户经常访问A网站,偶尔需要进入B网站寻求服务,A网站和B网站部署于不同的网络环境,B网站需要知道用户是否在A网站进行过登录,如果登录则需要知道用户的登录账号,并以该账号作为凭证,向用户提供服务。
[0036]如图1所示,一种跨网站服务器的登录认证方法,包括如下步骤:
[0037]S1.首先安装OpenSSL软件,用RSA协议生成密钥文件对,该密钥文件对用于A网站系统和B网站系统进行参数加解密使用,将私钥文件部署于A网站,将公钥文件部署于B网站。
[0038]根据需要,为B网站申请数字证书,用于保护用户到B网站的通信过程。
[0039]S2.A网站中,跳入B网站的入口地址改造成为A网站域内地址,从A网站上跳转B网站的超链接地址不直接指向B网站,改为指向A网站的一个处理用户跳转的URL地址。用户需要向B网站跳转时,不是直接通过浏览器跳转,而是请求A网站的地址,由A网站对其进行请求重定向。
[0040]S3.用户在A网站未登录情况下,向B网站跳转;
[0041]A网站判断到用户是未登录用户,简单将B网站入口地址返回给用户浏览器,要求浏览器侧重定向即可,此时B网站会将该用户作为普通未登录用户处理。
[0042]S4.用户在A网站登录成功情况下,向B网站跳转;
[0043]A网站判断当前用户是其自身登录用户后,根据当前用户的会话ID,生成一个唯一标识符(UUID),将UUID与用户登录账号(或其他A、B服务器之间共同协商的信息)组合成用户信息字符串。A网站将该UUID存放于自身的缓存系统,设置状态为有效,并设置5秒超时时间(该时间参数可根据需要调整)。
[0044]S5.然后A网站利用部署于自身设备的私钥文件对步骤S4中的用户信息字符串进行加密,将加密后的密文作为URL参数传回用户浏览器,并通知浏览器带上密文参数重定向到B网站的入口地址。B网站获取到请求后,发现请求信息中带有UUID参数及用户信息密文,判断当前用户是在A网站中的登录用户。
[0045]S6.B网站提取请求中的UUID,将其发送到A网站的认证接口判断该UUID的有效性;
[0046]该判断结束之后,即UUID在A网站进行验证后,无论有效或无效,A网站都会将其标识为无效,或直接删除该UUID标记,避免该UUID被重复利用。
[0047]S7.如果步骤S6中的UUID在A网站上没有超时,且状态为有效,则认为该用户是A网站的合法用户,B网站通过部署于自身服务器上的公钥文件,对用户信息密文做解密操作,得到用户在A网站上登录的账号,将该用户会话表示为已登录状态,并根据自身服务器设置为当前用户授予适配的权限。
[0048]S8.如果步骤S6的判定结果为该用户不是A网站的合法用户,则B网站将当前用户作为普通未登录用户处理。
[0049]至此,用户完成了从A网站到B网站的跨网站服务器登录认证,在B网站上实现了登录状态标识,并获取B网站的后续服务。另外,本发明中,B网站的认证入口地址,在HTTPS的保护下,避免了用户信息被恶意截取。
[0050]如图2所示,是用户成功从A网站登录认证到B网站(即用户是A网站的合法用户并需要访问B网站的情况)的时序关系图,如下:
[0051]第一步:请求从A网站跳转至B网站;
[0052]第二步:通过Sess1nId生成并缓存UUID ;
[0053]第三步:构造用户信息并用私钥加密;
[0054]第四步:为用户生成重定向地址;
[0055]第五步:根据A网站的重定向地址请求B网站;
[0056]第六步:对UUID的有效性进行认证;
[0057]第七步:UUID认证成功;
[0058]第八步:通过公钥解密用户信息;
[0059]第九步:标示用户身份并记录会话;
[0060]第十步:提供登录用户服务。
[0061]以上实施方式列举了从A网站到B网站的单向用户跨服务器登录认证过程,也可以根据需要,对称的实现B网站到A网站的用户跨服务器登录认证过程,以满足站点间的双向跨服务器登录认证需求。本发明是基于现有RSA、HTTPS协议基础上的交互机制,与具体的编程语言无关。
[0062]综上,本发明在满足用户会话跨服务器登录的需求时,既避免了增加经济成本部署庞大的单点登录服务器,又避免了对现有网站服务器系统进行较大的改造,并且对A、B网站的域名没有特殊要求;既能满足同一企业级架构下不同子系统间的通信要求,又能满足两个完全独立网站之间的跨站点用户识别,快速适应企业网站应用的需求,节约成本。
[0063]本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
【权利要求】
1.一种跨网站服务器的登录认证方法,假设存在两个网站服务器,A网站和B网站,并分别部署于不同的网络环境,其特征在于,包括以下步骤: 51.通过openssl生成密钥文件对,将私钥文件部署在A网站,将公钥文件部署在B网站; 52.将跳入B网站的入口地址改造成为A网站域内地址,用户在页面上向B网站跳转时,请求首先发到A网站,A网站对所述用户身份进行校验; 53.当步骤S2的所述校验结果为用户不是登录A网站的用户时,将B网站的入口地址返回给用户浏览器,要求浏览器重定向; 54.当步骤S2的所述校验结果为用户是登录A网站的用户时,根据当前用户的会话ID,生成一个唯一标识符UUID,将所述UUID与用户登录账号组合成用户信息字符串; 55.利用步骤SI所述私钥文件对步骤S4所述用户信息字符串加密形成密文,所述密文作为URL参数传回用户浏览器,并通知浏览器带上密文参数重定向到B网站的入口地址; 56.B网站提取请求中的UUID,并判断所述UUID的有效性; 57.若步骤S6的所述判断结果为用户是A网站的合法用户,则通过步骤SI的所述公钥文件,对用户信息密文做解密操作,得到用户的会话ID及登录账号,将用户会话标识为登录状态,并根据该账号的权限为其分配相应的操作权限; 58.若步骤S6的所述判断结果为用户不是A网站的合法用户,B网站将当前用户作为普通未登录用户处理。
2.根据权利要求1所述的一种跨网站服务器的登录认证方法,其特征在于:步骤SI所述的通过openssl生成密钥文件对时,采用的算法为RSA算法。
3.根据权利要求1所述的一种跨网站服务器的登录认证方法,其特征在于,步骤S2所述的A网站对用户身份进行校验的校验内容包括:用户是否是A网站的登录用户,登录名是什么。
4.根据权利要求1所述的一种跨网站服务器的登录认证方法,其特征在于:步骤S4所述的UUID存放于A网站自身的缓存系统,设置其状态为有效,并设置5秒超时时限。
5.根据权利要求4所述的一种跨网站服务器的登录认证方法,其特征在于:步骤S6判断所述UUID的有效性是根据步骤S4所述的状态有效性与所述时限来判定的,若步骤S6中B网站提取请求中的UUID在A网站中的状态有效且未超时,则判断结果为用户是A网站的合法用户,否则判断结果为用户不是A网站的合法用户。
6.根据权利要求1所述的一种跨网站服务器的登录认证方法,其特征在于:在所述步骤S6与所述步骤S7之间还要进行以下操作,A网站将存储其内的UUID标识为无效,或直接删除。
7.根据权利要求1所述的一种跨网站服务器的登录认证方法,其特征在于:所述B网站的入口地址在HTTPS的保护下,以避免用户信息被恶意截取。
【文档编号】H04L29/06GK104243488SQ201410513419
【公开日】2014年12月24日 申请日期:2014年9月29日 优先权日:2014年9月29日
【发明者】蔡淼 申请人:成都西山居互动娱乐科技有限公司