单一登入方法

文档序号:7918613阅读:256来源:国知局
专利名称:单一登入方法
技术领域
本发明是有关于一种登入方法,尤其涉及一种单一登入方法。
背景技术
单一登入(Single Sign-On,简称为SSO)机制是指多个应用系统(applications)经过集成之后,使用者只要经过一次身份认证(通常为帐号/密码)登入后,即可使用这些应用系统的服务,而不必在每切换到一个应用系统时就要再做一次登入动作。在这里,应用系统是为了某种特定的用途而被开发的软件,它可以是一个特定的程序,也可以是一个由众多独立程序组成的庞大的软件系统,如ERP(企业资源计划)、CRM (客户关系管理)系统。
以企业信息入口网站(Enterprise Information Portal,简称为EIP)为例,其集成多个应用系统的服务,如新闻浏览、收发电子邮件、行事历、专案计划管理、ERP、 CRM等应用系统,如果没有SSO机制,使用者在进入各应用系统前都必须执行登入动作以进行身份认证,相当不便。所以,对使用者而言,SSO机制可以减少多次身份认证所花费的时间,还可以避免同时保有多个身份认证信息而产生混淆的可能性;对管理者而言,能通过单一的维护机制来管理帐号的变化,减少维护的成本。
SSO机制对于Web应用系统已有解决方案,目前的做法通常是将所有Web应用系统集成到一个伺服器,由所述伺服器在验证身份认证信息成功后产生登入钥匙(SignOnKey,简称为SOK)并设定到使用者端的Cookie,用来表示已经登入,而后通过网页浏览的机制来存取Cookie中的登入钥匙,使用者不必在每切换到一个Web应用系统时就要再做一次登入动作。但是,目前这样的SSO机制对于Non-Web应用系统不能达到预期的效果,这是因为Non-Web应用系统无法以浏览器进行网页的浏览、操作,导致无法取得Cookie中的登入钥匙,也就不能达到SSO的效果。有一种做法是将Non-Web应用系统加以Web化,但这样必须去修改原Non-Web应用系统,既花费时间金钱还可能产生原本没有的错误(bug)。在这里,Web应用系统是一种可通过浏览器浏览操作的应用系统,其使用者接口为超文本(hypertext)可由网页浏览器显示;而Non-Web应用系统不是通过浏览器执行的应用系统,例如以VB、 C/C++、 Delphi...等程序语言所发展的应用系统。
由于大部分企业的旧系统(legacy system)仍有很多Non-Web应用系统,因此很需要一种SSO机制,在不影响原有Non-Web应用系统架构下,让使用者只要经过一次身份认证登入后,即可在Web应用系统及/或Non-Web应用系统之间切换时不必再做任何登入动作。

发明内容
本发明的目的在于提供一种单一登入方法,在不影响原有Non-Web应用系统架构下达到Web及Non-Web应用系统之间的单一登入效果。
为了达成上述目的与其他目的,本发明提供了一种单一登入方法,适用于一单一登入系统,所述单一登入系统包括用户端计算机、单一登入伺服器以及验证伺服器,且用户端计算机中安装Non-Web应用系统。在此方法中,在以一身份认证信息第一次成功登入单一登入系统后,单一登入伺服器产生一登入钥匙并存放在用户端计算才几中,接下来即可在Web及Non-Web应用系统之间切换而不必再次登入。首先,在网页上点击与Non-Web应用系统有关的超链接,以启动超链接所链接到的JNLP文件产生程序,JNLP文件产生程序在单一登入伺服器中执行。接着,JNLP文件产生程序动态产生一 JNLP文件,并4爪取用户端计算机中的登入钥匙作为JNLP文件的参数。用户端计算机会读取JNLP文件,以触发安装在用户端计算机的Java Web Start应用程序。然后,用户端计算机从单一登入伺服器下载一启动程序,并在用户端计算机中执行启动程序,启动程序将由JNLP文件取得的登入钥匙通过一网络服务(web service)向单一登入伺服器要求验证。若验证成功,则单一登入伺服器将经过认证后的身份认证信息回传到用户端计算机。最后,启动程序以经过认证后的身份认证信息登入并启动Non-Web应用系统。
本发明在已登入此单一登入系统而在用户端计算机上设置有登入钥匙的情形下,因采用Java Web Start技术而能在网页浏览器显示的网页上点击与Non-Web应用系统有关的超链接之后,动态产生JNLP文件且加入登入钥匙作为一参数,进而在用户端计算机上执行启动程序,通过网络服务安全机制传送登入钥匙到单 一登入伺服器配合验证伺服器进行验证并回传验证结果,验证成
功则得以登入并启动Non-Web应用系统。因此,在不影响原有Non-Web应用系统架构下达到Web及Non-Web应用系统之间的单一登入效果。


图1为依照本发明一实施例所绘示的单一登入系统的方块图2A及图2B为依照本发明一实施例所绘示的单一登入方法的流程图,显示使用者预备登入一 Web应用系统的各个步骤;
图3A及图3B为依照本发明 一 实施例所绘示的单一登入方法的流程图,显示使用者预备登入一 Non-Web应用系统的各个步骤。
附图标记说明100-单一登入(SSO)系统;110-用户端计算机;112-网页浏览器;114-Cookie; 116-Non-Web应用系统;120-网页伺服器;126-Web应用系统;130-单一登入(SSO)伺服器;132-JNLP文件产生程序;134-启动程序;140-验证伺服器;200-网络;S201-请求Web应用系统的登入页面;S203-重导到SSO系统的登入页面;S205-判断是否第一次登入;S207-第一次登入,要求输入帐号/密码;S209-输入帐号/密码;S211-请求验证帐号/密码;S213-验证;S215-验证结果;S217-验证成功,产生SOK和ST; S219-将SOK写入Cookie; S221-将ST回传;S223-请求验证ST/Web应用系统的网址;S225-验证;S227-验证成功,将帐号回传;S229-登入Web应用系统;S231-重导到Web应用系统登入后首页;S301-点击网页上Non-Web应用系统的超链接导到网页伺服器;S303-导到JNLP文件产生程序;S305-JNLP文件产生程序抓取Cookie中的SOK; S307-将SOK作为参数加入产生的JNLP文件;S309-网页浏览器读取JNLP文件而触发JWS;S311-下载启动程序;S313-执行启动程序;S315-取得SSO伺服器的公钥;S317-产生对称加密用的SK; S319-以公钥加密SOK及SK; S321-传送加密后的SOK及SK; S323-用SSO伺服器的私钥解密;S325-请求验证SOK; S327-验证;S329-验证结果;S331-验证成功,以SK加密帐号;S333-传送加密后的帐号;S335-解密取得帐号,以此帐号登入Non-Web应用系统。
具体实施例方式
以下结合附图,对发明上述的和另外的技术特征和优点作更详细的说明。图1为依照本发明一实施例所绘示的单一登入系统的方块图。请参照图1,
6本发明的单一登入(SSO)系统100包括用户端计算机110、网页伺服器120、单 一登入(SSO)伺服器130以及验证伺服器140,彼此之间通过网络200相连接。 虽然本实施例中SSO系统100包括一台用户端计算机110、一台网页伺服器120、 一台SSO伺服器130以及一台验证伺服器140,但并非仅限于此;例如,本发 明的SSO系统可以包括多台用户端计算机以及多台网页伺服器,这些用户端计 算机可以分别提供各自的使用者进行单一登入动作,而这些网页伺服器可以分 别挂载(plug in)不同的Web应用系统,让使用者通过网络使用不同的Web应用 系统。另夕卜,网络200可以是互联网(Internet)/企业内部网络(Intranet)/企业外部 网络(Extranet)、区域网络/广域网络,但并非仅限于此。
所述用户端计算机110为安装有用户端程序(client)的本地端计算机。在这 里,计算机为根据一系列指令来对数据进行处理的机器,如个人计算机、行动 电话、个人数字助理(PDA)等;用户端程序为安装在如用户端计算机110的本地 端计算机上,为使用者提供本地服务的程序,如网页浏览器112;用户端程序通 过网络与伺服端程序(server)互相配合运行,其中伺服端程序安装在如伺服器 120、 130、 140的远端计算机上,管理资源并为使用者提供服务的程序,如微软 公司的IIS伺服端程序。另外,用户端计算机110还可安装有Non-Web应用系 统116。
所述网页伺服器120为管理Web应用系统126的网页元件(如登入页面等) 和回应所述网页浏览器112的请求的计算机。在本实施例中,所述Web应用系 统126挂载到所述网页伺服器120上,因此使用者可借着所述网页浏览器112 通过网络200沟通网页伺服器120,进而远端操作所述Web应用系统126,但并 不仅限于此;例如,所述Web应用系统126可放在专门的应用系统伺服器 (application server)。所述SSO伺服器130为管理所述SSO系统100的网页元件 (如登入页面、JNLP文件产生程序132、启动程序134等)和回应所述网页浏览 器112的请求的计算机。在本实施例中,所述SSO伺服器130将配合所述验证 伺服器140对使用者输入的身份认证信息(如帐号/密码)进行验证。
图2A~图3B为依照本发明实施例所绘示的单一登入方法的流程图,适用 于图1所示的SSO系统100。其中,图2A及图2B以Pl P4相连接,显示使 用者预备登入一 Web应用系统的各个步骤;而图3A及图3B以Ql Q4相连接, 显示使用者预备登入一 Non-Web应用系统的各个步骤。
请先同时参照图1、图2A及图2B,使用者预备登入Web应用系统126。使用者通过所述用户端计算机110的网页浏览器112的操作,如直接输入所述
Web应用系统126的URL(或称为网页地址、网址),使所述网页浏览器112向 所述网页伺服器120请求所述Web应用系统126的登入页面(S201)。所述网页 伺服器120接收到所述网页浏览器112的请求后,并不会将所述Web应用系统 126的登入页面导向所述网页浏览器112显示,而是重导到所述SSO系统100 的登入页面(S203),此时相当于所述网页浏览器112向所述SSO伺月良器130请 求放在所述SSO祠服器130的SSO系统100的登入页面。所述SSO伺服器130 判断使用者是否第一次登入所述SSO系统100 (S205),若是则将所述SSO系统 100的登入页面导向所述网页浏览器112显示,要求使用者输入身份认证信息, 在本实施例为帐号/密码(S207)。
当使用者输入帐号/密码(S209)之后,SSO伺服器130向验证伺服器140请 求验证使用者输入的帐号/密码(S211)。验证伺服器140对此帐号/密码进行验证 (S213),此时验证伺服器140需要向用来管理使用者身份认证信息的数据库(图 中未绘示,如Oracle、 SQL Server等等)要求验证。SSO伺服器130接收验证伺 服器140回传的验证结果(S215),若验证结果为验证失败,则SSO伺服器130 将验证失败的网页导向网页浏览器112显示;若验证结果表示验证成功,则SSO 伺服器130产生一登入钥匙(Sign On Key,简称为SOK)及一服务票据(Service Ticket,简称为ST)(S217),其中登入钥匙(SOK)例如是依据使用者帐号、SSO伺 服器130的网址、钥匙有效时间等信息编码后的字串,用以提供是否已登入SSO 系统100的验证;而服务票据(ST)例如是依据登入钥匙(SOK)、Web应用系统126 的名称或网址等信息编码后的字串,用以提供登入Web应用系统126的验证, 且可据以向SSO伺服器130请求其它Web应用系统的服务票据(ST)而达成SSO 效果。SSO伺服器130将此登入钥匙(SOK)写入到用户端计算机110中网页浏览 器112的临时文本文件Cookie 114 (S219),并将此服务票据(ST)回传到网页伺服 器120 (S221),即将此服务票据(ST)当作参数加在Web应用系统126的URL后 面来回4专。
系统126,但是为了防止第三者在将此服务票据(ST)回传到网页伺服器120的时 候通过在URL后面加入其它服务票据(ST),进而非法取得其它Web应用系统的 使用权限,因此在网页伺服器120取得此服务票据(ST)之后,必须先向SSO伺 服器130请求验证(S223)。 SSO伺服器130对服务票据(ST)及其相应的Web应用系统126的名称或网址进行验证(S225),若验证失败,则SSO伺服器130将 验证失败的网页导向网页浏览器112显示;若验证成功,则SSO伺服器130回 传前述第一次登入使用者所输入且经过验证成功的帐号到网页伺服器120 (S227),网页伺服器120将以此帐号登入Web应用系统126 (S229),并将Web 应用系统126登入后的首页重导到网页浏览器112显示(S231),此时使用者可通 过网页浏览器112以此帐号操作Web应用系统126。
在此必须说明,图2A及图2B所示仅是本发明的单一登入方法在使用者预 备登入一 Web应用系统126的一实施例,但并非仅限于此。事实上,只要第一 次登入后可产生登入钥匙(SOK)且登入钥匙(SOK)可通过网络流通散播的单一登 入方法均适用于本发明。另外,在步骤S207、 S209、 S211由于会传送帐号/密 码,因此必须采用如SSL、 TLS等的网络安全传输协议来传送信息。
请再同时参照图1、图3A及图3B,在已登入SSO系统100的前提下,即 SSO系统100已产生有登入钥匙(SOK),使用者预备登入Non-Web应用系统116。 使用者在网页浏览器112所显示的网页上点击与Non-Web应用系统116有关的 超链接(hyperlink),这个超链接将链接导到一网页伺服器,例如是网页伺服器120 (S301),接着这个网页伺服器120再将这个链接导到SSO伺服器130的JNLP 文件产生程序132 (S303),其中JNLP为Java Network Launching Protocol (Java 网络载入协议)的简称。JNLP文件产生程序132其实是一个在伺服器上执行的程 序(servlet),用以动态产生JNLP文件,而JNLP文件用以触发本地端计算机的 Java Web Start (简称JWS)应用程序。
当使用者借着用户端计算机110的网页浏览器112对网页伺服器12 0进行 要求时,网页浏览器112会对网页伺服器120送出一些信息,如表单、Cookie 等信息,这些信息将会储存在网页伺服器120的Request物件中。当网页伺服器 120将链接导到SSO伺服器130,这些网页浏览器112送出的信息会跟着传送并 储存在SSO伺服器130的R叫uest物件中。因此,在JNLP文件产生程序132 产生JNLP文件的过程中,就可以借着Request物件的操作而从SSO伺服器130 的Request物件所包含的Cookie中取得登入钥匙(SOK),此相当于JNLP文件产 生程序132从用户端计算机110抓取Cookie 114中的登入钥匙(SOK)(S305),将 其作为一个参数加入JNLP文件中(S307)。接着网页浏览器112自动读取JNLP 文件而触发用户端计算机110的JWS应用程序(S309), JWS应用程序接着从SSO 伺服器130下载一启动程序134 (S311)暂存在用户端计算机110,并执行此启动程序134(S3B)。此时启动程序134已借着JNLP文件取得登入钥匙(SOK),接 下来启动程序134将通过网络服务安全(web service security)机制向SSO伺服器 130请求验证登入钥匙(SOK),验证成功则得以登入并启动Non-Web应用系统 116而不需要使用者再进行一次登入动作,达到SSO效果。
以下将详细说明启动程序134通过网络服务安全机制向SSO伺服器130请 求验证登入钥匙(SOK),验证成功则得以登入并启动Non-Web应用系统116。首
这个公钥是公开而可供下载,任何要传送到SSO伺服器130的信息均可以此公 钥加密,SSO伺服器130接收到以此公钥加密的信息后再以其私钥解密即可取 得此信息,这个私钥则是不公开而只有SSO伺服器130拥有。
接着,用户端计算机110随机产生作对称加密用的对称钥匙(SessionKey, 简称为SK)(S317),这个对称钥匙(SK)将连同登入钥匙(SOK)以SSO伺服器130 的公钥加密(S319)后再回传给SSO伺服器130 (S321)。再来,SSO伺服器130 用SSO伺服器130的私钥解密取得对称钥匙(SK)及登入钥匙(SOK)(S323),此时 用户端计算机110及SSO伺服器130都拥有对称钥匙(SK),因此SSO伺服器130 可以此对称钥匙(SK)加密信息后再传送到用户端计算机110,用户端计算机110 就可以此对称钥匙(SK)解密而取得SSO伺服器130传送的信息。
SSO伺服器130用私钥解密后还会取得登入钥匙(SOK),其会向验证伺服器 140请求验证此登入钥匙(SOK)(S325)。验证伺服器140对登入钥匙(SOK)进行验 证(S327)后将验证结果回传SSO祠服器130 (S329),若验证结果为验证失败,则 SSO伺服器130将验证失败的网页导向网页浏览器112显示;若验证结果表示 验证成功,表示使用者已经输入帐号/密码成功登入过SSO系统100,因此SSO 伺服器130将此认证后的帐号以对称钥匙(SK)加密(S331),然后回传到用户端计 算机110(S333)。最后,用户端计算机IIO再以对称钥匙(SK)解密取得此认证后 的巾长号,以此巾艮号登入用户端计算才几110上的Non-Web应用系统116。
综上所述,本发明在已登入SSO系统100而在用户端计算机110上设置有 登入钥匙(SOK)的情形下,因采用Java Web Start技术而能在网页浏览器112显 示的网页上点击与Non-Web应用系统116有关的超链接之后,动态产生JNLP 文件且加入登入钥匙(SOK)作为一参数,进而在用户端计算机110上执行启动程 序134,通过网络服务安全机制传送登入钥匙(SOK)到SSO伺服器130配合验证 伺服器140进行验证并回传验证结果,验证成功则得以登入并启动Non-Web应用系统116。因此,在不影响原有Non-Web应用系统架构下达到Web及Non-Web 应用系统之间的单一登入效果。
以上说明对发明而言只是说明性的,而非限制性的,本领域普通技术人员 理解,在不脱离以下所附权利要求所限定的精神和范围的情况下,可做出许多 修改,变化,或等效,但都将落入本发明的保护范围内。
权利要求
1、一种单一登入方法,适用于一单一登入系统,所述单一登入系统包括一用户端计算机、一单一登入伺服器以及一验证伺服器,所述用户端计算机中安装一Non-Web应用系统,其特征在于,所述单一登入方法包括在以一身份认证信息第一次成功登入所述单一登入系统后,所述单一登入伺服器产生一登入钥匙并存放在所述用户端计算机中;在网页上点击与所述Non-Web应用系统有关的一超链接,以启动所述超链接所链接到的一JNLP文件产生程序,所述JNLP文件产生程序在所述单一登入伺服器中执行;所述JNLP文件产生程序动态产生一JNLP文件,并抓取所述用户端计算机中的登入钥匙作为所述JNLP文件的参数;所述用户端计算机读取所述JNLP文件,以触发安装在所述用户端计算机的Java Web Start应用程序;所述用户端计算机从所述单一登入伺服器下载一启动程序,并在所述用户端计算机中执行所述启动程序;所述启动程序将由所述JNLP文件取得的所述登入钥匙通过一网络服务向所述单一登入伺服器要求验证,若验证成功,则所述单一登入伺服器将经过认证后的所述身份认证信息回传到所述用户端计算机;以及所述启动程序以经过认证后的所述身份认证信息登入并启动所述Non-Web应用系统。
2、 如权利要求1所述的单一登入方法,其特征在于,所述网络服务包括 所述用户端计算机从所述单一登入伺服器下载取得所述单一登入伺服器的公钥;所述用户端计算机随机产生作对称加密用的一对称钥匙;所述用户端计算机以所述单一登入伺服器的公钥加密所述对称钥匙及所述 登入钥匙后密后回传给所述单 一登入伺服器;所述单一登入伺服器以所述单一登入伺服器的私钥解密,取得所述对称钥 匙及所述登入钥匙;以及所述单一登入伺服器向所述验证伺服器请求验证所述登入钥匙,若验证成 功,则以所述对称钥匙加密取得验证的身份认证信息并回传给到所述用户端计算机,而所述用户端计算机以所述对称钥匙解密取得经过认证后的身份认证信自
3、 如权利要求1所述的单一登入方法,其特征在于,所述用户端计算机包括个人计算机、行动电话或个人数字助理。
4、 如权利要求1所述的单一登入方法,其特征在于,所述登入钥匙存放在所述用户端计算机的Cookie中。
5、 如权利要求1所述的单一登入方法,其特征在于,所述身份认证信息包括帐号及密码。
全文摘要
本发明提供了一种适用于单一登入系统的单一登入方法,所述单一登入系统包括用户端计算机、单一登入伺服器以及验证伺服器,且用户端计算机中安装Non-Web应用系统。在已登入此单一登入系统而在用户端计算机上设置有登入钥匙的情形下,因采用Java Web Start技术而能在网页浏览器显示的网页上点击与Non-Web应用系统有关的超链接之后,动态产生JNLP文件且加入登入钥匙作为一参数,进而在用户端计算机上执行启动程序,通过网络服务安全机制传送登入钥匙到单一登入伺服器配合验证伺服器进行验证并回传验证结果,验证成功则得以登入并启动Non-Web应用系统。因此,在不影响原有Non-Web应用系统架构下达到Web及Non-Web应用系统之间的单一登入效果。
文档编号H04L29/06GK101656714SQ20081014629
公开日2010年2月24日 申请日期2008年8月18日 优先权日2008年8月18日
发明者曾信诚 申请人:鼎新电脑股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1