一种跨域的单点登录实现方法及系统的制作方法

文档序号:7801278阅读:358来源:国知局
专利名称:一种跨域的单点登录实现方法及系统的制作方法
技术领域
本发明涉及网络技术领域,尤其涉及一种跨域的单点登录实现方法及系统。
背景技术
目前一个大型的互联网环境中通常包括很多应用系统,如网络店铺系统、支付系统、Web頂系统、桌面客户端系统、手机客户端系统、论坛系统、博客系统等等。这些应用系统为网站提供了丰富的互联网应用,同时也为网站运营方带来了良好的效益,但是网络用户在使用这些应用系统时,并不方便。因为网络用户每次使用系统应用都需要输入用户名和密码进行验证,特别是对于应用系统数目较多、平台较多(web平台、桌面平台、移动终端平台)的系统,该问题尤为突出。对于传统企业应用系统来说有很多通用的解决方法,如用户访问应用系统A时,会跳转到认证系统进行登录,登录完毕后返回用户一个认证的凭据,用户再次访问应用系统B时,将凭据传递给B,B将该凭据传递到认证中心进行再次校验,完成应用系统间的切换,这种认证方式不适合Web2.0的互联网应用,他的缺点如下反复跳转,影响用户体验;基于过滤器的机制进行应用系统的重定向,采用该方式对于高并发的互联网应用来说认证中心成为了瓶颈;无法实现桌面客户端、移动终端的统一认证。

发明内容
本发明提供一种跨域的单点登录实现方法及系统,本发明所提供的方法和装置对于高并发的互联网应用,用户终端不需要在登录任何应用系统时都向认证中心鉴权,从而减小了认证中心的认证压力。本发明提供一种跨域的单点登录实现方法,包括:第一应用系统接收到用户的登录信息后,向单点登录SSO认证系统发送所述登录信息,并接收SSO认证系统返回的第一认证状态信息及同步登录串,所述同步登陆串包括所述用户登录多个第二应用系统时所需的第二认证状态信息;如果根据所述第一认证状态信息确定所述用户认证通过,将所述同步登录串发送到所述多个第二应用系统,使所述用户登录所述多个第二应用系统中的任一个时,第二应用系统根据接收到的同步登录串确定所述用户是否通过统一认证。根据上述方法本发明还提供一种跨域的单点登录实现系统,包括SSO认证系统、第一应用系统和多个第二应用系统:SSO认证系统,用于在接收到第一应用系统发送来的登录信息后,验证所述登录信息,并返回的第一认证状态信息及同步登录串;第一应用系统,用于接收到用户的登录信息后,向单点登录SSO认证系统发送所述登录信息,并接收SSO认证系统返回的第一认证状态信息及同步登录串,所述同步登陆串包括所述用户登录多个第二应用系统时所需的第二认证状态信息,如果根据所述第一认证状态信息确定所述用户认证通过,将所述同步登录串发送到所述多个第二应用系统;第二应用系统,用于接收所述同步登录串,当所述用户登录时,根据接收到的同步登录串确定所述用户是否通过统一认证。上述技术方案中的一个或两个,至少具有如下技术效果:本发明实施例所提供的方法和系统在用户通过第一应用系统减少用户应用系统登录时,请求的反复跳转;另外,对于高并发的互联网应用,用户终端不用登录任何应用系统都需向认证中心鉴权,从而减小了认证中心的认证压力。


图1为本发明实施例一种跨域的单点登录实现方法的流程图;图2为应用本发明实施例所提供的方法用户进行跨域认证的方法流程图;图3为本发明实施例一种跨域的单点登录实现方法的系统的结构示意图。
具体实施例方式本发明实施例提供一种跨域的单点登录实现方法,该方法包括:第一应用系统接收到用户的登录信息后,向单点登录SSO认证系统发送所述登录信息,并接收SSO认证系统返回的第一认证状态信息及同步登录串,所述同步登陆串包括所述用户登录多个第二应用系统时所需的第二认证状态信息;如果根据所述第一认证状态信息确定所述用户认证通过,将所述同步登录串发送到所述多个第二应用系统,使所述用户登录所述多个第二应用系统中的任一个时,第二应用系统根据接收到的同步登录串确定所述用户是否通过统一认证。如图1所示,本发明实施例提供一种跨域的单点登录实现方法,下面结合说明书附图对本发明的具体实施方式
进行详细说明:在本发明实施例中选择单点登录系统,实现用户在多个应用系统间的漫游,其中单点登录(Single Sign-On, SS0)是身份管理中的一部分。SSO的一种较为通俗的定义是:SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不需要重新登录验证。步骤101,第一应用系统接收到用户的登录信息后,向单点登录SSO认证系统发送所述登录信息,并接收SSO认证系统返回的第一认证状态信息及同步登录串,所述同步登陆串包括所述用户登录除所述第一应用系统外的多个第二应用系统时所需的第二认证状态息;步骤102,根据所述第一认证状态信息确定所述用户是否认证通过,如果认证通过,则转入步骤103,否则返回登录失败信息。步骤103,将所述认证状态信息保存到本地,并将所述同步登录串发送到所述多个第二应用系统,使所述用户登录所述多个第二应用系统中的任一个时,第二应用系统根据接收到的同步登录串确定所述用户是否通过统一认证。所述第一应用系统通过广播方式将所述同步登录串发送到所述多个第二应用系统。在本发明实施例中广播方式是最优的选择,在具体的应用中也可以选用多播或者是单播的方式向多个第二应用系统发送同步登录串。步骤103在具体应用时,即用户漫游到除第一应用系统外的其他应用系统(即任意一个第二应用系统)后,其他应用系统判断是否有统一认证系统颁发的凭证信息,该凭证信息是从接收到的同步登陆串中解析得到的与当前应用系统对应的认证信息。如果当前应用系统的本地存储有凭证信息,则根据所述凭证信息完成对所述用户的认证流程。进一步,本发明实施例所提供的同步登录串还包括有效期信息,当所述用户登录所述多个第二应用系统时,所述多个应用系统根据所述有效期信息确定所述用户的认证信息是否过期,如果过期,则拒绝所述用户登录。在本发明实施例中,第一应用系统和其他应用系统在解析出所述认证状态信息后,需要将认证状态信息保存到本地,其中,具体保存在本地session或cookie中。根据上述本发明实施例提供的实现步骤,SSO的同步登录串内容格式如下:
< xm1 Version=551.055 encoding=,,utf-8,, >
〈SSOUSER >
<status> 1:成功 0:失败</status〉
<loginName> 登录名 </> <uid>用户 id<uid>
<611^1>用户电子邮箱</email>
〈certificate〉当获取用户妒展信息是,将该值传递给SSO同步接口</cetificate>
<6\口知(1>凭证过期时间</expired>
〈passport〉同步登录凭证〈/passport〉
<synLoginStr><! [CDATA[同步登录串]]</ synLoginStr >
〈/SS0USER >进一步,为了便于应用系统获取登录用户的详细信息,本发明实施例还包括:步骤104,当所述第一应用系统需要获取用户的详细信息时,向单点登录SSO认证系统发送用户获取详细信息的请求,并接收返回的用户详细信息。在本发明实施例中,所述用户详细信息具体可以包括:昵称、注册日期、密码、邮箱、头像和省份等,在反馈用户信息时的具体实现格式可以是:< xm1 version="1.0" encoding="GBK" > <SSOUSER><status> -1:解密用户名密码出现异常 -2:用户信息为空 -3:用户名或密码为空 1:正常〈/status〉 <loginName> 登录名 </loginName><uld>28</uld> <nickName> 昵称 </nickName><joindate>注册曰期(2008-12-31 16:53:39)</joindate>〈password〉密 码 Md5(2277abf5b2c03fc316G662e0226c27c)</password>
〈email〉邮箱〈/email〉 <faceUrl200px>http://头像 url</faceUrl200px> <faceUrl7Opx>http://头像 url</faceUrl70px> <lastLogin>2009-03-3000:00:00</lastLogin> 〈province〉省份 id</province><sex>l:男 0:女</sex> <city>城市 id</city><1\11^^11^>真实姓名 </fullName> <birthday>2008-12-3 l</birthday><idCard> 身份证号 </idCard> <telphone> 电话号码 </telphone> <isReal>实名认证状态1:实名认证通过O:未通过</isReal> <usertype>0:普通用户 1:机构用户 </usertype> <识8(^>用户等级</grade><卩0丨111;>用户积分</point> </SSOUSER>
如图2所示,当用户从应用系统A漫游到应用系统B时,应用本发明实施例所提供的一种跨域的单点登录实现方法具体实现步骤包括:
步骤201,用户终端在应用系统A输入用户名(普通MSN或其他)及密码,并选择登陆类型(登录类型包括:加密传输、非加密传输和默认为加密传输);
步骤202,应用系统A应用3DES(或称为Triple DES,是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)块密码的通称)对所述登陆信息加密,并将加密后的登录信息发送给SSO登陆接口,其中登录信息包括登录名、登录密码和登录类型(即Login Name+Pwd+type);
步骤203, SSO 验证解密后的(Log in Name) +Pwd
步骤204,验证通过返回加密的XML (可扩展标记语言Extensible MarkupLanguage, XML)格式同步登陆串(Uid, Log in Name, email);否则返回登录失败信息(ERROR);
步骤205,应用系统A接收到SSO系统返回的同步登录串后,同步到应用系统B,应用系统B建立自己session或cookie执行接收到的同步登录串;
步骤206,若应用系统A或者B需要 额外的用户数据,则将(Log in Name)+Pwd和需要的用户信息目录用DES加密后发给SSO的数据接口 ;
步骤207,SSO验证通过应用系统Log in Name+Pwd返回XML用户详细信息。
如图3所示,根据图1所示的方法,本发明实施例还提供一种跨域的单点登录实现系统,包括SSO认证系统301、第一应用系统302和多个第二应用系统303:
SSO认证系统301,用于在接收到第一应用系统发送来的登录信息后,验证所述登录信息,并返回的第一认证状态信息及同步登录串;
第一应用系统302,用于接收到用户的登录信息后,向单点登录SSO认证系统发送所述登录信息,并接收SSO认证系统返回的第一认证状态信息及同步登录串,所述同步登陆串包括所述用户登录多个第二应用系统时所需的第二认证状态信息,如果根据所述第一认证状态信息确定所述用户认证通过,将所述同步登录串发送到所述多个第二应用系统;
所述第一应用系统302如果根据所述第一认证状态信息确定所述用户认证通过后,还用于按照接口标准将所述第一认证状态写入本地session信息或cookie信息。
另外,所述第一应用系统302还用于通过广播方式将所述同步登录串发送到所述多个第二应用系统。
第二应用系统303,用于接收所述同步登录串,当所述用户登录时,根据接收到的同步登录串确定所述用户是否通过统一认证。
减少用户应用系统登录时,请求的反复跳转;另外,对于高并发的互联网应用,用户终端不用登录任何应用系统都需向认证中心鉴权,从而减小了认证中心的认证压力。
本申请实施例中的上述一个或多个技术方案,至少具有如下的技术效果:
本发明所述的方法并不限于具体实施方式
中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种跨域的单点登录实现方法,其特征在于,包括: 第一应用系统接收到用户的登录信息后,向单点登录SSO认证系统发送所述登录信息,并接收SSO认证系统返回的第一认证状态信息及同步登录串,所述同步登陆串包括所述用户登录多个第二应用系统时所需的第二认证状态信息; 如果根据所述第一认证状态信息确定所述用户认证通过,将所述同步登录串发送到所述多个第二应用系统,使所述用户登录所述多个第二应用系统中的任一个时,第二应用系统根据接收到的同步登录串确定所述用户是否通过统一认证。
2.如权利要求1所述的方法,其特征在于,如果根据所述第一认证状态信息确定所述用户认证通过后,进一步包括: 按照接口标准将所述第一认证状态写入本地session信息或cookie信息。
3.如权利要求1所述的方法,其特征在于,对于统一认证SSO与应用系统间的跨域访问采用P3P头的方式进行所述同步登录串的传输。
4.如权利要求1所述的方法,其特征在于,所述同步登录串还包括有效期信息,当所述用户登录所述多个第二应用系统时,所述多个第二应用系统根据所述有效期信息确定所述用户的认证信息是否过期,如果过期,则拒绝所述用户登录。
5.如权利要求1所述的方法,其特征在于,将所述同步登录串发送到所述多个第二应用系统包括: 所述第一应用系统通过广播方式将所述同步登录串发送到所述多个第二应用系统。
6.如权利要求1所述的方法,其特征在于,当所述第一应用系统需要获取用户的详细信息时,向单点登录SSO认证系统发送用户获取详细信息的请求,并接收返回的用户详细信息。
7.如权利要求1所述的方法,其特征在于,所述登录信息包括:用户名信息及密码信息和登陆类型信息,其中,所述登录类型包括加密传输、非加密传输和默认为加密传输。
8.一种跨域的单点登录实现系统,其特征在于,包括SSO认证系统、第一应用系统和多个第二应用系统: SSO认证系统,用于在接收到第一应用系统发送来的登录信息后,验证所述登录信息,并返回的第一认证状态信息及同步登录串; 第一应用系统,用于接收到用户的登录信息后,向单点登录SSO认证系统发送所述登录信息,并接收SSO认证系统返回的第一认证状态信息及同步登录串,所述同步登陆串包括所述用户登录多个第二应用系统时所需的第二认证状态信息,如果根据所述第一认证状态信息确定所述用户认证通过,将所述同步登录串发送到所述多个第二应用系统; 第二应用系统,用于接收所述同步登录串,当所述用户登录时,根据接收到的同步登录串确定所述用户是否通过统一认证。
9.如权利要求8所述的系统,其特征在于,所述第一应用系统如果根据所述第一认证状态信息确定所述用户认证通过后,还用于按照接口标准将所述第一认证状态写入本地session信息或cookie信息。
10.如权利要求8所述的系统,其特征在于,所述第一应用系统还用于通过广播方式将所述同步登录串发送到所述多个第二应用系统。
全文摘要
本发明公开了一种跨域的单点登录实现方法及系统,应用于网络技术领域。该方法包括第一应用系统接收到用户的登录信息后,向单点登录SSO认证系统发送所述登录信息,并接收SSO认证系统返回的第一认证状态信息及同步登录串,所述同步登陆串包括所述用户登录多个第二应用系统时所需的第二认证状态信息;如果确定所述用户认证通过,将所述同步登录串发送到所述多个第二应用系统,使所述用户登录所述多个第二应用系统中的任一个时,第二应用系统根据接收到的同步登录串确定所述用户是否通过统一认证。本发明公开的方法和系统对于高并发的互联网应用,用户终端不需要在登录任何应用系统时都向认证中心鉴权,从而减小了认证中心的认证压力。
文档编号H04L29/06GK103188207SQ20111044505
公开日2013年7月3日 申请日期2011年12月27日 优先权日2011年12月27日
发明者蔡林 申请人:北大方正集团有限公司, 北京北大方正电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1