客户端零存储的单点登录方法

文档序号:7835333阅读:301来源:国知局
客户端零存储的单点登录方法
【专利摘要】本发明公开了一种客户端零存储的单点登录方法,本方法中,所有应用系统的登录页面都是由登录认证中心提供的,用户登录后的用户信息存储在登录认证中心,同时同步到应用系统的服务器上,客户端不存储用户信息、不存储会话ID(或票据)。运用本发明,用户信息在登录认证中心和应用服务上存储、传输和同步,避免了在客户端将不必要的信息传来传去,且不存在会话ID(或票据)被盗用的风险,简化了单点登录应用系统的开发过程,提升了系统安全性能。
【专利说明】客户端零存储的单点登录方法

【技术领域】
[0001]本发明适用于软件领域,尤其是BS架构的软件更适合采用本方法以实现系统的单点登录。

【背景技术】
[0002]现有的单点登录方法多采用了诸如以下技术客户电脑的USB 口上插入认证介质,2客户端存储登录后的用户信息,3客户保存单点登录的话ID,4客户端安装单点登录插件。
[0003]上述4种方案中,客户电脑的USB插入USB认证介质种方案,其用户数量必然收到限制,且介质的分发、管理过程很麻烦;客户端存储登录后的用户信息是适合富客户端的应用;客户端安装插件会带来用户体验上的下降。
[0004]客户端存储单点登录会话ID (或票据),是在客户端存储信息最少的模式,大多数BS应用都采用了这种方式,在当前的BS应用中,这个会话ID的保存方式通常有如下几种:I保存在网页的HTML文本中,2保存在网页的脚本中,3保存的浏览器的地址栏,4保存在浏览器的Cookie中,总之,客户端是需要存储的。
[0005]客户端存储会话ID (或票据)的方式存在如下不足会话ID (或票据)对系统来说是一个无用的信息,必须转化为用户的ID才可被系统使用;2会话ID (或票据)存储在客户端也是无用的,因为数据的读取都是在服务端完成的;3客户端存储票据是不方便的,不像的服务端只在Sess1n中存储一份即可,需要来回反复地在网页间传递。
[0006]由此可见,设计出一种客户端零存储的单点登录方法是非常必要的。


【发明内容】

[0007]针对现有单点登录方案中的不足,本发明公开了一种客户端零存储的单点登录方法,应用本方法用户信息都存储在服务端上,客户端是零存储的,既不保存用户信息也不保存会话ID (或票据),无论客户来自哪个应用系统,都得到登录认证中心进行登录,登录认证中心首先存储了当前的用户信息,在接下来的访问中,应用服务器再从登录认证中心获取当前用户并存储到本地的服务器上,从而实现了登录认证中心、应用服务的同步存储,客户端零存储的软件模型。
[0008]为实现上述目标,本发明采用了如下技术方案:
过程1:用户在访问应用服务(A或B)时,如果应用服务(A或B)本地没有存储当前用户的信息,就会将用户导向登录认证中心(S)的登录页面。
[0009]过程2:用户在登录认证中心(S)输入用户名和密码,并成功登录后,继续访问应用服务(A或B)。
[0010]过程3:应用服务(A或B)将登录认证中心(S)存储的用户信息同步到应用服务(A或B)的本地。
[0011]在所述过程I中,用户信息一般是应用服务(A或B)和登录认证中心(S)同步存储的,只有应用服务(A或B)本地没有存储用户信息的时候,才会向认证中心发起请求,也就是页面跳转。
[0012]在所述过程I中,应用服务(A或B)发起的页面跳转,在此过程中有二个环节,一是应用服务(A或B)生成了一个调用guid,并存储于应用服务(A或B)本地,二是向登录认证中心(S)传递要返回的地址和调用guid,同时实现页面跳转。
[0013]如图3所示,现对所述过程2分析如下:无论什么情况,只要是用户(V)访问到登录认证中心(S)的登录页面,就说明在应用服务(A或B)端没有存储当前用户的信息,用户在登录认证中心登录完成后,要将用户信息反馈给应用服务(A或B);用户在登录认证中心登录成功后,或者发现已经登录(sess1n中存储有用户信息),必须跳转至用户原本要访问的页面,并返回用户信息给应用服务(A或B)。
[0014]如图3所示,在所述过程2中,如果当前用户已经通过其他应用系统登录过登录认证中心(S),也就是已登录,对于已登录的用户,登录认证中心(S)直接执行跳转过程,对于未登录的用户,登录认证中心(S)导向登录页面,登录成功后,登录认证中心(S)将当前用户的信息存储与sess1n变量中,再执行跳转过程。
[0015]如图2所示,在所述过程2中,登录认证中心(S)在用户登录成功后,或者发现用户已经登录后,都会去执行跳转过程,该跳转过程除了页面跳转外,还需要以应用服务(A或B)传递的调用guid为关键字,在全局变量中存储一份当前用户的信息。
[0016]在所述过程3中,在该过程中应用服务(A或B)通过存储与本地的调用guid为关键字,向单点登录认证中心(S)索取登录到应用服务(A或B)的当前用户的信息,也就是调用登录认证中心(S)的函数,获取到用户信息后,将该信息存储到本地的sess1n变量中,用户在以后的访问过程中,就不再访问登录认证中心(S )。
[0017]本发明的优点是:
用户信息在登录认证中心和应用服务上存储、传输和同步,客户端不存储用户信息,不存储会话ID(或票据),避免了在客户的应用中将不必要的信息传来传去,不存在会话ID(或票据)被盗用的风险,简化了单点登录应用系统的开发过程,提升了系统的安全性。

【专利附图】

【附图说明】
[0018]图1:客户端零存储的单点登录模型。
[0019]图2:登录认证中心工作流程。
[0020]图3:应用服务工作流程。

【具体实施方式】
[0021]本发明客户端零存储的单点登录方法,所有应用系统的登录页面都是由登录认证中心提供的,用户登录后的用户信息存储在登录认证中心,同时同步到应用系统的服务器上,客户端不存储用户信息、不存储会话ID (或票据)。
[0022]如图2所示,本发明的关键过程有3个:
过程1:用户在访问应用服务A或应用服务B时,如果应用服务(A或B)本地没有存储当前用户的信息,就会将用户导向登录认证中心的登录页面;
过程2:用户在登录认证中心输入用户名和密码,并成功登录后,继续访问应用服务(A或B);
过程3:应用服务A或B将登录认证中心存储的用户信息同步到应用服务(A或B)的本地。
[0023]在实际使用中,用户信息常包含:用代码、用户名、所在部分、可操作的系统,在各个系统中的角色,在各个系统中的权限等。
[0024]上述过程I中,也就是客户通过浏览器访问业务系统(A或B)页面的过程,该过程检查服务端是否存储有用户信息,如果没有则将页面跳转至登录认证中心(S)的登录页面,这里有二个环节,一是检查用户信息,二是跳转页面,只有本地没有存储用户信息的时候,才会有页面跳转,在实际使用中,一般提供一个辅助函数CheckUser,上述过程都是在这个函数中完成的,业务系统每个页面Page_Load事件中都调用CheckUser函数,该函数返回true时继续处理当前页面的业务,否则就终止操作,表示页面的处理已经交给了单点登录认证过程,从而,用户访问业务系统的任何页面都会检查用户是否登录。
[0025]未登录的用户访问页面时,其访问过程有二个,一是首次访问,二是用户登录完成后,再返回到该业务页面。前面所述的过程3 (从登录认证中心同步用户信息)一般就是在对业务页面的第二次访问过程中。
[0026]上述过程中的第二个环节,也就是没有检查到用户信息,跳转到登录认证中心登录页面的环节,这个过程是客户浏览器上的页面跳转,在实际过程中,通常是采用POST技术来完成,用POST技术既可以实现页面的跳转,又可以传递参数,规避了 GET技术将参数显示在URL中的尴尬,这个过程中传递的参数有二个,一个参数是返回路径,用户登录成功后将跳转至该页面,这个地址一般是用户当前访问页面的地址,也就是说,用户在认证完成后继续当前的工作;另一个参数是应用服务器(A或B)临时产生的用以与服务器会话的调用guid,该调用guid存储在应用服务器的sess1n中,应用服务器在后续的过程中依此取回登录到登录认证中心的当前用户。
[0027]上述过程2中,只有业务系统没有存储用户信息的时候才会发生,该过程无论是首次登录的系统,还是连接其他的系统,无论是有连接的进入,还是浏览器的直接输入,其处理过程都是一样的,上述的过程I是进入该过程的流程,该过程中,已经将登录成功后的返回地址和用以传递当前用户信息的调用guid传递过来了,此时用户信息的传递是服务器对服务器的,应用服务(A或B)要从单点登录服务器上获取用户信息,该过程不能通过sess1n来进行访问,无论用户是否已经登录,在跳转至用于的返回地址前,都要用户信息存储于以调用guid为关键字的全局变量中。
[0028]上述过程3,其发生的时机是:应用服务器(A或B)已经生成过调用guid,该调用guid已经传递到单点登录认证中心(S),用户已经输入用户名和密码并通过权限验证,且在上述的过程2中,登录认证中心(S)已经将用户信息存储在以调用guid为关键字的全局变量中。在此过程中应用服务(A或B)通过登录认证中心(S)提供的函数,以调用guid为参数获取用户信息即可,获取的用户信息保存在用户的sess1n中。在实际使用中,为确保该返回值是存储在用户的sess1n变量中,该调用过程植入在上述过程I中所述的CheckUser函数中,以保证单点登录的开发过程最简单,调用条件为本地的sess1n变量中存储有调用guid,而没有用户信息。
[0029]本发明的优点是: 用户信息在登录认证中心和应用服务上存储、传输和同步,客户端不存储用户信息,不存储会话ID(或票据),避免了在客户的应用中将不必要的信息传来传去,不存在会话ID(或票据)被盗用的风险,简化了单点登录应用系统的开发过程,提升了系统安全性能。
[0030]以上所述是本发明的较佳实施例及其所运用的技术原理,对于本领域的技术人员来说,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案基础上的等效变换、简单替换等显而易见的改变,均属于本发明保护范围之内。
【权利要求】
1.客户端零存储的单点登录方法,其特征在于: 本方法包括三个过程:A用户在访问应用服务时,如果应用服务本地没有存储当前用户的信息,就会将用户导向登录认证中心的登录页面;B用户在登录认证中心输入用户名和密码,并成功登录后,继续访问应用服务;C应用服务将登录认证中心存储的用户信息同步到应用服务的本地。
2.如权利要求1所述的客户端零存储的单点登录方法,其特征在于: 权利要求1中所述的过程A,用户信息一般是应用服务和登录认证中心同步存储的,只有应用服务本地没有存储用户信息的时候,才会向认证中心发起请求,也就是页面跳转。
3.如权利要求2所述的客户端零存储的单点登录方法,其特征在于: 权利要求2中所述过程A中应用服务发起的页面跳转,在此过程中有二个环节,一是应用服务生成了一个调用guid,并存储于应用服务本地,二是向登录认证中心传递要返回的地址和调用guid,同时实现页面跳转。
4.如权利要求1所述的客户端零存储的单点登录方法,其特征在于: 权利要求1中所述的过程B,如果当前用户已经通过其他应用系统登录过登录认证中心,也就是已登录,对于已登录的用户,登录认证中心直接执行跳转过程,对于未登录的用户,登录认证中心导向登录页面,登录成功后,登录认证中心将当前用户的信息存储与sess1n变量中,再执行跳转过程。
5.如权利要求4所述的客户端零存储的单点登录方法,其特征在于: 登录认证中心在用户登录成功后,或者发现用户已经登录后,都会去执行跳转过程,该跳转过程除了页面跳转外,还需要以应用服务传递的调用guid为关键字,在全局变量中存储一份当前用户的信息。
6.如权利要求1所述的客户端零存储的单点登录方法,其特征在于: 权利要求1中所述的过程C,在该过程中应用服务通过存储与本地的调用guid为关键字,向单点登录认证中心索取登录到应用服务的当前用户的信息,也就是调用登录认证中心的函数,获取到用户信息后,将该信息存储到本地的sess1n变量中,用户在以后的访问过程中,就不再访问登录认证中心。
【文档编号】H04L29/06GK104506555SQ201510004231
【公开日】2015年4月8日 申请日期:2015年1月6日 优先权日:2015年1月6日
【发明者】尹宪文, 李玉奎, 杜春辉, 尹搏 申请人:北京艾力泰尔信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1