异构应用单点登录系统及其单点登录方法

文档序号:7806508阅读:177来源:国知局
异构应用单点登录系统及其单点登录方法
【专利摘要】本发明实施例提供了一种异构系统间单点登录的方法、装置和系统,异构应用单点登录系统包括单点登录控制子系统、SSO服务器端、应用客户端和服务器端,该方法包括:单点登录控制子系统在浏览器中打开、登录并拉起应用客户端的进程/线程;应用客户端向浏览器发送重定位请求,用于通过浏览器向SSO服务器端发送ST请求以获取应用的ST信息;SSO服务器端根据ST请求向浏览器发送应用的ST信息,以便浏览器将应用的ST信息发送给应用客户端;应用客户端接收并根据应用的ST信息向应用服务器端发送会话建立请求;应用服务器端根据应用的ST信息向SSO服务器端请求鉴权,并在鉴权成功后创建与应用客户端的会话信息。
【专利说明】异构应用单点登录系统及其单点登录方法

【技术领域】
[0001] 本发明实施例涉及计算机网络领域,并且更具体地,涉及一种异构应用单点登录 系统及其单点登录方法。

【背景技术】
[0002] 由于web技术的迅速发展,一些系统都从之前的C/S模式渐渐演进为B/S模式。但 对于一些大型系统,需经过相当长的一段开发实现才能实现全系统功能的web化,所以在 这段时间内,会存在C/S与B/S模式共存的情况。从而出现了"web浏览器应用与本地进程 应用相互交互"的应用场景。
[0003] 在上述场景中,若用户通过web浏览器登录后,用户在浏览器中执行操作时,若需 要调用本地应用,则浏览器需要拉起一个本地应用。此时,由于本地应用与浏览器运行环境 隔离,无法共享用户角色信息(B/S环境下用户信息缓存在浏览器进程中,而C/S的本地进 程无法获取),而如果将用户标识传递给本地应用,则又存在一定的安全隐患。


【发明内容】

[0004] 本发明实施例提供一种异构应用单点登录系统及其单点登录方法,能够在B/S模 式下支持C/S模式应用的单点登录,并能够避免直接传递用户信息标识带来的安全风险, 提高系统的安全性能。
[0005] 第一方面,提供了一种异构应用单点登录系统的单点登录方法,所述异构应用单 点登录系统包括单点登录控制子系统、单点登录SS0服务器端、应用客户端和所述应用服 务器端,所述方法包括:所述单点登录控制子系统在浏览器中打开、登录并拉起所述应用客 户端的进程/线程,其中,所述应用客户端在所述浏览器所在的本地主机上;所述应用客户 端向所述浏览器发送重定位请求,其中,所述重定位请求用于通过所述浏览器向所述SS0 服务器端发送服务票据ST请求,所述ST请求携带所述应用的标识信息,所述ST请求用于 获取所述应用的ST信息;所述SS0服务器端根据所述ST请求向所述浏览器发送所述应用 的ST信息,以便所述浏览器根据所述重定位请求将所述应用的ST信息发送给所述应用客 户端;所述应用客户端接收所述应用的ST信息,并根据所述应用的ST信息向所述应用服务 器端发送会话建立请求,其中,所述会话建立请求携带所述应用的ST信息;所述应用服务 器端根据所述应用的ST信息向所述SS0服务器端请求鉴权,并在鉴权成功后创建与所述应 用客户端的会话信息。
[0006] 结合第一方面,在第一种可能的实现方式中,所述异构应用单点登录系统还包括 服务管理模块,所述服务管理模块为所述本地主机上的应用服务,用于传递所述单点登录 控制子系统与所述应用客户端之间的通信信息或所述浏览器与所述应用客户端之间的通 息,
[0007] 所述单点登录控制子系统拉起所述应用客户端的进程/线程包括:所述单点登录 控制子系统通过所述服务管理模块拉起所述应用客户端的进程/线程;
[0008] 所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端向所述服务 管理模块发送重定位请求指示,所述服务管理模块根据所述重定位请求指示向所述浏览器 发送重定位请求,所述重定位请求指示用于指示所述服务管理模块向所述浏览器发送所述 重定位请求;
[0009] 所述应用客户端接收所述应用的ST信息包括:所述应用客户端接收所述服务管 理模块转发的所述应用的ST信息,其中,所述服务管理模块转发的所述应用的ST信息由所 述浏览器根据所述重定位请求从所述SS0服务器端获取并反馈给所述服务管理模块。
[0010] 结合第一方面,在第二种可能的实现方式中,所述异构应用单点登录系统还包括 服务管理子系统的服务器端和客户端,所述服务管理子系统的客户端位于所述本地主机 上,所述服务管理子系统通过所述服务管理子系统的服务器端和所述服务管理子系统的客 户端传递所述单点登录控制子系统与所述应用客户端之间的通信信息或所述浏览器与所 述应用客户端之间的通信信息,其中,
[0011] 所述单点登录控制子系统拉起所述应用客户端的进程/线程包括:所述单点登录 控制子系统通过所述服务管理子系统的服务器端发送应用拉起请求,使得所述服务管理子 系统的服务器端通过所述服务管理子系统的客户端拉起所述应用客户端的进程/线程;
[0012] 所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端通过所述 服务管理子系统的客户端向所述服务管理子系统的服务器端发送重定位请求指示,所述服 务管理子系统的服务器端根据所述重定位请求指示向所述浏览器发送所述重定位请求,其 中,所述重定位请求指示用于指示所述服务管理子系统的服务器端发送所述重定位请求;
[0013] 所述应用客户端接收所述应用的ST信息包括:所述应用客户端通过所述服务管 理子系统的客户端接收所述服务管理子系统的服务器端转发的所述应用的ST信息,其中, 所述服务管理子系统的服务器端转发的所述应用的ST信息由所述浏览器根据所述重定位 请求从所述SS0服务器端获取并反馈给所述服务管理子系统的服务器端。
[0014] 结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的 实现方式,在第三种可能的实现方式中,具体实现为:所述应用客户端包含web服务模块, 所述web服务模块用于接收发送给所述应用客户端的消息,其中,所述应用客户端通过所 述web服务模块接收所述单点登录控制子系统及所述浏览器直接或间接发送的消息。
[0015] 结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的 实现方式,在第四种可能的实现方式中,具体实现为:所述异构应用单点登录系统还包括 web服务器,所述web服务器为独立于所述应用客户端的进程/线程,所述web服务器用于 接收消息并转发给所述应用客户端,其中,所述应用客户端通过所述web服务器接收所述 单点登录控制子系统及所述浏览器直接或间接发送的消息。
[0016] 结合第一方面或第一方面的第一种可能的实现方式至第一方面的第四种可能的 实现方式中任一种可能的实现方式,在第五种可能的实现方式中,所述应用客户端包括SS0 客户端模块,所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端通过所 述SS0客户端模块向所述浏览器发送所述重定位请求。
[0017] 第二方面,提供了一种异构应用单点登录系统,该异构应用单点登录系统包括:单 点登录控制子系统、单点登录SS0服务器端、应用客户端和所述应用服务器端,其中,所述 单点登录控制子系统用于在浏览器中打开并登录后,拉起所述应用客户端进程;所述应用 客户端,位于所述浏览器所在的本地主机上,用于向所述浏览器发送重定位请求,其中,所 述重定位请求用于通过所述浏览器向所述SSO服务器端发送服务票据ST请求,所述ST请 求携带所述应用的标识信息,所述ST请求用于获取所述应用的ST信息;所述SSO服务器 端,用于根据所述ST请求向所述浏览器发送所述应用的ST信息,以便所述浏览器根据所 述重定位请求将所述应用的ST信息发送给所述应用客户端;所述应用客户端还用于接收 所述应用的ST信息,并根据所述应用的ST信息向所述应用服务器端发送会话建立请求, 其中,所述会话建立请求携带所述应用的ST信息;所述应用服务器端,用于根据所述应用 的ST信息向所述SSO服务器端请求鉴权,并在鉴权成功后创建与所述应用客户端的会话信 息;所述SSO服务器端还用于对所述应用服务器端发送的ST信息进行鉴权
[0018] 结合第二方面,在第一种可能的实现方式中,所述异构应用单点登录系统还包括 服务管理模块,所述服务管理模块为所述本地主机上的应用服务,用于传递所述单点登录 控制子系统与所述应用客户端之间的通信信息或所述浏览器与所述应用客户端之间的通 信信息,包括:
[0019] 接收所述单点登录控制子系统的应用拉起请求,并拉起所述应用客户端的进程/ 线程;
[0020] 接收所述应用客户端的重定位请求指示,并根据所述重定位请求指示向所述浏览 器发送重定位请求,其中,所述重定位请求指示用于指示所述服务管理模块向所述浏览器 发送所述重定位请求;
[0021] 接收所述浏览器根据所述重定位请求从所述SS0服务器端获取并反馈的所述应 用的ST信息,并将所述应用的ST信息发送给所述应用客户端。
[0022] 结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述异构 应用单点登录系统还包括服务管理子系统的服务器端和客户端,所述服务管理子系统的客 户端位于所述本地主机上,所述服务管理子系统用于通过所述服务管理子系统的服务器端 和所述服务管理子系统的客户端传递所述单点登录控制子系统与所述应用客户端之间的 通信信息或所述浏览器与所述应用客户端之间的通信信息,其中,
[0023] 所述服务管理子系统的服务器端用于接收所述单点登录控制子系统发送的应用 拉起请求,并转发给所述服务管理子系统的客户端,所述应用拉起请求用于请求拉起所述 应用客户端的进程/线程;
[0024] 所述服务管理子系统的客户端用于根据所述应用拉起请求拉起所述应用客户端 的进程/线程;
[0025] 所述服务管理子系统的客户端还用于接收所述应用客户端发送的重定位请求指 示,并转发给所述服务管理子系统的服务器端,所述重定位请求指示用于指示所述服务管 理子系统向所述浏览器发送所述重定位请求;
[0026] 所述服务管理子系统的服务器端用于根据所述重定位请求指示向所述浏览器发 送所述重定位请求;
[0027] 所述服务管理子系统的服务器端还用于接收所述浏览器根据所述重定位请求从 所述SS0服务器端获取并反馈的所述应用的ST信息,并转发给所述服务管理子系统的客户 端;
[0028] 所述服务管理子系统的客户端还用于将所述应用的ST信息转发给所述应用客户 端。
[0029] 结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的 实现方式,在第三种可能的实现方式中,具体实现为:所述应用客户端包含web服务模块, 所述web服务模块用于接收发送给所述应用客户端的消息,其中,所述应用客户端通过所 述web服务模块接收所述单点登录控制子系统及所述浏览器直接或间接发送的消息。
[0030] 结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的 实现方式,在第四种可能的实现方式中,所述异构应用单点登录系统还包括web服务器,所 述web服务器为独立于所述应用客户端的进程/线程,所述web服务器用于接收消息并转 发给所述应用客户端,其中,所述应用客户端通过所述web服务器接收所述单点登录控制 子系统及所述浏览器直接或间接发送的消息。
[0031] 结合第二方面或第二方面的第一种可能的实现方式至第二方面的第四种可能的 实现方式中任一种可能的实现方式,在第五种可能的实现方式中,具体实现为:所述应用客 户端包括SS0客户端模块,其中,所述应用客户端通过所述SS0客户端模块向所述浏览器发 送所述重定位请求。
[0032] 基于以上技术方案,本发明实施例的异构应用单点登录系统及其单点登录方法, 通过向单点登录控制子系统所在的浏览器中发送重定位请求以向SS0服务器端请求C/S模 式应用的ST票据,根据该ST票据向C/S模式应用服务器端发送会话建立请求,并在ST鉴 权成功后建立会话,从而能够在B/S模式下支持C/S模式应用的单点登录,并能够避免直接 传递用户信息标识带来的安全风险,提高系统的安全性能。

【专利附图】

【附图说明】
[0033] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中 所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实 施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图 获得其他的附图。
[0034] 图1是本发明实施例异构应用单点登录系统的单点登录方法流程图。
[0035] 图2是本发明实施例异构应用单点登录系统下单点登录方法的交互流程图。
[0036] 图3是本发明实施例异构应用单点登录系统下单点登录方法的另一交互流程图。
[0037] 图4是本发明实施例异构应用单点登录系统下单点登录方法的再一交互流程图。
[0038] 图5是本发明实施例异构应用单点登录系统下单点登录方法的再一交互流程图。
[0039] 图6是本发明实施例异构应用单点登录系统的结构示意图。
[0040] 图7是本发明实施例异构应用单点登录系统的另一结构示意图。
[0041] 图8是本发明实施例异构应用单点登录系统的再一结构示意图。
[0042] 图9是本发明实施例异构应用单点登录系统的再一结构示意图。
[0043] 图10是本发明实施例异构应用单点登录系统的再一结构示意图。

【具体实施方式】
[0044] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发 明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0045] 为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要 素。
[0046] 单点登录(Single Sign On, SS0),是目前比较流行的企业业务整合的解决方案之 一。SS0的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用 系统。
[0047] 票据生成票据(Ticket Grangting Ticket, TGT) :TGT 是中央授权服务(Central Authentication Service, CAS)为用户签发的登录票据,拥有了 TGT,用户就可以证明自己 在CAS成功登录过。TGT封装了 Cookie值以及此Cookie值对应的用户信息。用户在CAS 认证成功后,CAS生成Cookie,写入浏览器,同时生成一个TGT对象,放入自己的缓存,TGT对 象的ID就是Cookie的值。当HTTP再次请求到来时,如果传过来的有CAS生成的Cookie, 则CAS以此Cookie值为关键字(key)查询缓存中有无 TGT,如果有的话,则说明用户之前登 录过,如果没有,则用户需要重新登录。本发明实施例中,SS0服务器端提供CAS服务。
[0048] 服务票据(Service Ticket,ST):现有技术中,ST是CAS为用户签发的访问某一 service的票据。用户访问service时,service发现用户没有会话信息,贝U要求用户去CAS 获取ST。用户向CAS发出获取ST的请求,如果用户的请求中包含Cookie,则CAS会以此 Cookie值为key查询缓存中有无 TGT,如果存在TGT,则用此TGT签发一个ST,返回给用户。 用户凭借ST去访问service, service拿ST去CAS验证,验证通过后,允许用户访问资源, 同时,ST失效。
[0049] Jetty :一个开源的servlet容器,为基于Java的web内容(例如JSP和servlet 等)提供运行环境。Jetty是使用Java语言编写的,其API以一组JAR包的形式发布。开 发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的 Java应用提供网络和web连接。
[0050] 图1是本发明实施例异构应用单点登录系统的单点登录方法流程图。其中,该异 构应用单点登录系统包括单点登录控制子系统、单点登录SS0服务器端、应用客户端和该 应用服务器端,该方法包括:
[0051] 101,单点登录控制子系统在浏览器中打开、登录并拉起应用客户端的进程/线 程。
[0052] 其中,该应用客户端在该浏览器所在的本地主机上。
[0053] 单点登录控制子系统在浏览器中登录后,浏览器会得到SS0服务器端为登录用户 签发的登录票据TGT,TGT中封装Cookie值对应的用户信息。当浏览器再次发起HTTP请求 时,可根据该TGT向SS0服务器端发送HTTP请求,而无需再次登录。
[0054] 102,该应用客户端向该浏览器发送重定位请求。
[0055] 该重定位请求用于通过该浏览器向SS0服务器端发送ST请求,该ST请求携带该 应用的标识信息,该ST请求用于获取该应用的ST信息。
[0056] 浏览器在接收到重定位请求后,可根据TGT和该重定位请求向SS0服务器端发送 ST请求,以从SS0服务器端获取应用的ST信息,使得应用客户端能够根据ST信息,通过应 用服务器端向SS0服务器端请求鉴权。
[0057] 103,该SS0服务器端根据该ST请求向该浏览器发送该应用的ST信息,以便该浏 览器根据该重定位请求将该应用的ST信息发送给该应用客户端。
[0058] 104,该应用客户端接收该应用的ST信息,并根据该应用的ST信息向该应用服务 器端发送会话建立请求。
[0059] 其中,该会话建立请求携带该应用的ST信息。
[0060] 在会话建立请求中携带应用的ST信息,能够使得应用服务器端根据该应用的ST 信息向SS0服务器端请求鉴权。
[0061] 105,该应用服务器端根据该应用的ST信息向该SS0服务器端请求鉴权,并在鉴权 成功后创建与该应用客户端的会话信息。
[0062] 本发明实施例中,通过向单点登录控制子系统所在的浏览器中发送重定位请求以 向SS0服务器端请求C/S应用的ST票据,根据该ST票据向C/S模式应用服务器端发送会 话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用的单 点登录,并能够避免直接传递用户信息标识带来的安全风险,提高系统的安全性能。
[0063] 可选地,作为一个实施例,该异构应用单点登录系统还包括服务管理模块,该服务 管理模块为该本地主机上的应用服务,用于传递该单点登录控制子系统与该应用客户端之 间的通信信息或该浏览器与该应用客户端之间的通信信息。其中,步骤1中,单点登录控 制子系统拉起该应用客户端的进程/线程具体可实现为:该单点登录控制子系统通过该服 务管理模块拉起该应用客户端的进程/线程;步骤102具体可实现为:该应用客户端向该 服务管理模块发送重定位请求指示,该服务管理模块根据该重定位请求指示向该浏览器发 送重定位请求,其中,该重定位请求指示用于指示该服务管理模块向该浏览器发送该重定 位请求;步骤104具体可实现为:该应用客户端接收该服务管理模块转发的该应用的ST信 息,其中,该服务管理模块转发的该应用的ST信息由该浏览器根据该重定位请求从该SS0 服务器端获取并反馈给该服务管理模块。本发明实施例中,通过在本地建立一个应用服务 来传递单点登录控制子系统/浏览器与应用客户端之间的通信,能够屏蔽c\s模式应用和 B/S模式应用的拉起请求的服务地址(IP地址)的差异,因而能够在C\S模式应用转换成 B/S模式应用后,无需对单点登录控制子系统进行修改,从而减少C\S模式应用升级为B/S 模式应用的代价开销。
[0064] 进一步地,作为本实施例的一种具体实现方式,该服务管理模块可通过HTTP连 接、socket连接或远程API调用函数向该应用客户端传递信息。
[0065] 可选地,作为另一个实施例,该异构应用单点登录系统还包括服务管理子系统的 服务器端和客户端,该服务管理子系统的客户端位于该本地主机上,该服务管理子系统通 过该服务管理子系统的服务器端和该服务管理子系统的客户端传递该单点登录控制子系 统与该应用客户端之间的通信信息或该浏览器与该应用客户端之间的通信信息。其中,步 骤1中,单点登录控制子系统拉起该应用客户端的进程/线程具体可实现为:该单点登录控 制子系统通过该服务管理子系统的服务器端发送应用拉起请求,使得该服务管理子系统的 服务器端通过该服务管理子系统的客户端拉起该应用客户端的进程/线程;步骤102具体 可实现为:该应用客户端通过该服务管理子系统的客户端向该服务管理子系统的服务器端 发送重定位请求指示,该服务管理子系统的服务器端根据该重定位请求指示向该浏览器发 送该重定位请求,其中,该重定位请求指示用于指示该服务管理子系统的服务器端向该浏 览器发送该重定位请求;步骤104具体可实现为:该应用客户端通过该服务管理子系统的 客户端接收该服务管理子系统的服务器端转发的该应用的ST信息,其中,该服务管理子系 统的服务器端转发的该应用的ST信息由该浏览器根据该重定位请求从该SSO服务器端获 取并反馈给该服务管理子系统的服务器端。本发明实施例中,在单点登录控制子系统/浏 览器与应用客户端之间的通信引入服务管理子系统的服务器端和客户端,服务管理子系统 的服务器端通过本地主机上的服务管理子系统的客户端与本地主机上的应用进行通信,能 够屏蔽C\s模式应用和B/S模式应用的拉起请求的服务地址(IP地址)的差异,因而能够在 C\S模式应用转换成B/S模式应用后,无需对单点登录控制子系统进行修改,从而减少C\S 模式应用升级为B/S模式应用的代价开销。
[0066] 进一步地,作为本实施例的一种具体实现方式,该服务管理子系统的客户端可通 过HTTP连接、socket连接或远程API调用函数向该应用客户端传递信息。
[0067] 可选地,作为一个实施例,该应用客户端包含web服务模块,该web服务模块用于 接收发送给该应用客户端的消息,其中,该应用客户端通过该web服务模块接收该单点登 录控制子系统及该浏览器直接或间接发送的消息。
[0068] 进一步地,作为本实施例的一种具体实现方式,该web服务模块能够接收基于超 文本传输协议HTTP连接的消息或基于套接字socket连接的消息。
[0069] 可选地,作为另一个实施例,该异构应用单点登录系统还包括web服务器,该web 服务器为独立于该应用客户端的进程/线程,该web服务器用于接收消息并转发给该应用 客户端,其中,该应用客户端通过该web服务器接收该单点登录控制子系统及该浏览器直 接或间接发送的消息。
[0070] 进一步地,作为本实施例的一种具体实现方式,该web服务器能够接收基于HTTP 连接的消息或基于socket连接的消息。
[0071] 可选地,该应用客户端还可包括SS0客户端模块,步骤102具体可实现为:该应用 客户端通过该SS0客户端模块向该浏览器发送该重定位请求。
[0072] 下面,将结合具体的实施例,对本发明实施例的方法作进一步的描述。
[0073] 图2是本发明实施例异构应用单点登录系统下单点登录方法的交互流程图。在图 2所示的实施例中,异构应用单点登录系统可包括单点登录控制子系统、单点登录SS0服务 器端、应用客户端、应用服务器端。其中,应用为C\S模式的应用,单点登录控制子系统和应 用客户端都在本地主机上。另外,本发明实施例中,网页(web)服务器作为应用客户端的一 个嵌入模块集成在应用客户端中,该web服务器可用于接收基于HTTP连接的消息。
[0074] 201,在浏览器中打开单点登录控制子系统并登录。
[0075] 本发明实施例中,单点登录控制子系统为B/S模式的应用程序,用于管理异构应 用单点登录系统下包括B/S模式应用以及C/S模式应用的登录。
[0076] 在浏览器中打开单点登录控制子系统并登录后,浏览器中可呈现单点登录控制子 系统的主界面。此时,浏览器的TGT中,存储着单点登录控制子系统已登录用户的标识信 肩、。
[0077] 202,单点登录控制子系统发送拉起请求,拉起应用客户端。
[0078] 在浏览器打开的的单点登录控制子系统中,可向应用客户端发送拉起请求。其中, 该拉起请求可用来拉起应用客户端。具体的,该拉起请求中可包含应用的标识信息。该应 用的标识信息,可以是应用的名称,应用的本地地址,或者是其它能够被用来确定应用、拉 起应用的信息。
[0079] 服务管理子系统服务器端与服务管理子系统客户端之间可采用多种方式进行通 信,例如HTTP连接、socket连接、远程API调用函数等。
[0080] 一种具体的实现方式,单点登录控制子系统可通过HTTP连接向应用客户端发送 拉起请求。
[0081] 在发送拉起请求之间,单点登录控制子系统可通过其它方式先打开应用客户端。 此时,应用客户端中对应的业务相关内容尚未启动,但应用客户端的web服务器已经启动。 web服务器启动后,才能够接收单点登录控制子系统下发的拉起请求。在web服务器接受到 请求后,在web服务器的实现代码中拉起应用客户端,以准备启动应用客户端的相关业务。 一种具体的实现方式,当应用客户端为Java客户端时,可基于Jetty (-个开源的servlet 容器,为基于Java的web内容提供运行环境)实现web服务器,在应用客户端中实现web 服务器的功能,使得web服务器与应用客户端部署在一个进程中。当然,还可采用不同的开 发语言开发应用客户端,实现web服务器的方式也不限于Jetty的方式,本发明实施例在此 不作限制。
[0082] 基于HTTP连接的拉起请求中,可包括本地主机地址及应用的标识信息。一个具体 的HTTP请求的调用例子如下 :
[0083] http://localhost ? appserver = appl〇
[0084] 在上述例子中,localhost在计算机网络中表示本机地址,当然,localhost也可 以用127. 0. 0. 1或者本地主机的实际网络地址代替;appserver为表示应用的关键字,在实 际的应用中,也可能采用其它的关键字;appl为要调用的应用的标识信息。
[0085] 在现有技术中,web服务器模块还可具备处理socket连接的能力。本发明实施例 的另一种具体的实现方式,当本发明实施例应用客户端的web服务器模块具备处理socket 连接的能力时,单点登录控制子系统也可通过websocket长连接向应用客户端发送拉起请 求。
[0086] 本发明实施例的再一种具体实现方式,如果单点登录子系统所在的浏览器嵌入在 一个具体的应用(例如,Java应用等)中,则单点登录子系统可通过远程API调用函数向 应用的客户顿发送拉起请求。
[0087] 当然,也不排除其它拉起应该客户端的实现方式,本发明实施例在此不再赘述。
[0088] 另外,应理解,本发明实施例中,单点登录控制子系统的拉起请求也可用于调用B/ S模式的应用。此时,appserver的赋值内容可以为B/S模式的应用的标识信息。单点登录 调用B/S模式的应用的方法可参考现有技术,本发明实施例在此不再赘述。
[0089] 203,应用客户端发送重定位请求,请求应用的ST信息。
[0090] 另外,本发明实施例中,应用客户端还可包括一个SS0客户端模块。
[0091] 由于拉起请求中不包含应用所需要的用户信息,在应用客户端启动后,应用客户 端的SS0客户端模块可向单点登录控制子系统所在的浏览器发送重定位请求,通过该浏览 器向SS0服务器端请求应用的ST信息。
[0092] 一种具体的实现方式,可通过HTTP连接发送重定位请求,具体内容如下: redirect = http://SSOServerlP/getST ? service = http://localhost ? appserver = appl 〇
[0093] 其中,redirect表示重定位请求,SSOServerIP表示SSO服务器端的IP地址, getST 表不向 SS0 服务器端获取 ST 票据,service = http://localhost ? appserver = appl表示该ST票据是针对"http://localhost ? appserver = appl"生成的,该ST票据 生成后要返回给appl所指向的应用客户端。
[0094] 另一种具体的实现方式,如果浏览器(或单点登录控制子系统)是通过远程API 调用函数向应用客户端发送拉起请求的,则应用客户端可通过远程API调用函数来传输重 定位请求。
[0095] 204,浏览器发送ST请求,请求应用的ST信息。
[0096] 浏览器在接收到重定位请求后,可从浏览器的TGT提取到单点登录空子子系统已 登录用户的ST信息,并根据该ST信息和该重定位请求向SS0服务器端发送ST请求,向SS0 服务器端请求应用的ST信息。
[0097] 浏览器发送ST请求的一个具体例子如下所示:
[0098] http://SSOServerIP/getST ? service = http://localhost ? appserver = appl 〇
[0099] 205, SSO服务器端反馈应用的ST信息。
[0100] SSO服务器端接收到ST请求后,可根据该ST请求,将应用的ST信息反馈给浏览 器。应用的ST信息是SS0服务器端为应用生成的鉴权信息,通常为一串字符串,其内容从 字符串上没有什么规律,且一次鉴权后即不再生效,使得浏览器跨进程传递ST的风险要远 小于直接传递用户信息,从而保证系统的安全。一个具体的例子,SS0服务器端反馈的ST信 息如下所示:
[0101] st = Iasdlfkjl#2k34jl23j'$% '%
[0102] 206,浏览器转发应用的ST信息。
[0103] 浏览器根据ST请求得到SS0服务器端反馈的应用的ST信息后,则可根据重定位 请求中携带的应用标识信息,将应用的ST信息转发给应用客户端。
[0104] 浏览器转发应用的ST信息所采用的传输方式可与发送拉起请求的传输方式类 似。
[0105] 207,应用客户端发送会话建立请求,携带应用的ST信息。
[0106] 应用客户端接收到ST信息后,可根据应用的ST信息向应用服务器端发送会话建 立请求,请求建立会话。其中,该会话建立请求中可携带应用的ST信息,以便应用服务器端 根据应用的ST信息进行鉴权操作。
[0107] 208,应用服务器端发送鉴权请求。
[0108] 应用服务器端接收到会话建立请求后,从中提取应用的ST信息,并基于应用的ST 信息向SS0服务器端发送鉴权请求,请求校验应用的ST信息的合法性,以实现对应用客户 端的鉴权。其中,该鉴权请求可携带该应用的ST信息。
[0109] 209, SS0服务器端反馈ST鉴权结果。
[0110] SS0服务器端根据鉴权请求,对应用的ST信息进行鉴权,并反馈应用的ST信息的 鉴权结果。
[0111] 正常情况下,应用的ST信息可以通过鉴权,鉴权结果为表示ST信息有效的标识。
[0112] 如果ST信息是伪造的,则ST信息的鉴权结果为表示ST信息无效的标识。
[0113] 210,应用服务器端根据鉴权结果确定是否建立会话。
[0114] 应用服务器端根据ST信息的鉴权结果,确定是否与应用客户顿建立会话。
[0115] 如果鉴权结果为表示ST信息有效的标识,则对应用客户端的鉴权通过,建立会 话,实现与应用客户端的业务通信。
[0116] 如果鉴权结果为表示ST信息无效的标识,则对应用客户端的鉴权失败,向应用客 户端反馈鉴权失败的标识。
[0117] 本发明实施例中,通过向单点登录控制子系统所在的浏览器中发送重定位请求以 向SS0服务器端请求C/S模式应用的ST票据,根据该ST票据向C/S模式应用服务器端发 送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用 的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高系统的安全性能。
[0118] 图3是本发明实施例异构应用单点登录系统下单点登录方法的另一交互流程图。 在图3所示的实施例中,异构应用单点登录系统可包括单点登录控制子系统、单点登录SS0 服务器端、应用客户端、应用服务器端。其中,应用为C\S模式的应用,单点登录控制子系统 和应用客户端都在本地主机上。
[0119] 另外,本发明实施例中,web服务器作为应用客户端以外的一个独立进程,驻留在 本地主机的内存中。
[0120] 301,在浏览器中打开单点登录控制子系统并登录。
[0121] 步骤301与图2的步骤201类似,本发明实施例在此不再赘述。
[0122] 302,单点登录控制子系统发送拉起请求,拉起应用客户端。
[0123] 在浏览器打开的单点登录控制子系统中,可向web服务器发送拉起请求,以通过 网页(web)服务器拉起应用客户端。优选地,web服务器可根据单点登录控制子系统发送 的多个不同的拉起请求,分别拉起多个不同的应用客户端。本发明实施例中,以web服务器 接收一个拉起请求拉起一个应用客户端为例,对本发明实施例的方法进行说明。
[0124] 单点登录控制子系统可通过多种方式向web服务器发送拉起请求,例如HTTP连 接、socket连接、远程API调用函数等,本发明实施例在此不再赘述。
[0125] 303,拉起应用客户端。
[0126] web服务器在接收到拉起请求后,根据拉起请求中的应用标识,拉起应用客户端。
[0127] 304,应用客户端发送重定位请求,请求应用的ST信息。
[0128] 305,浏览器发送ST请求,请求应用的ST信息。
[0129] 306, SS0服务器端反馈应用的ST信息。
[0130] 步骤304-306与图2的步骤203-205类似,本发明实施例在此不再赘述。
[0131] 306,浏览器转发应用的ST信息。
[0132] 浏览器根据ST请求得到SS0服务器端反馈的应用的ST信息后,可将应用的ST信 息转发给web服务器。
[0133] 307,web服务器转发应用的ST信息。
[0134] web服务器可将应用的ST信息,转发给应用客户端。
[0135] 308,应用客户端发送会话建立请求,携带应用的ST信息。
[0136] 309,应用服务器端发送鉴权请求。
[0137] 310, SS0服务器端反馈ST鉴权结果。
[0138] 311,应用服务器端根据鉴权结果确定是否建立会话。
[0139] 步骤308-311与图2的步骤207-210类似,本发明实施例在此不再赘述。
[0140] 本发明实施例中,通过web服务器接收拉起请求,通过向单点登录控制子系统所 在的浏览器中发送重定位请求以向SS0服务器端请求C/S模式应用的ST票据,再通过web 服务器接收ST票据,并根据该ST票据向C/S模式应用服务器端发送会话建立请求,并在ST 鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用的单点登录,并能够避免直 接传递用户信息标识带来的安全风险,提高系统的安全性能。
[0141] 图4是本发明实施例异构应用单点登录系统下单点登录方法的交互流程图。在图 4所示的实施例中,异构应用单点登录系统可包括单点登录控制子系统、单点登录SS0服务 器端、服务管理模块、应用客户端、应用服务器端。其中,应用为C\S模式的应用,单点登录 控制子系统和应用客户端都在本地主机上。服务管理模块为本地主机上的应用服务,能够 接收并处理HTTP消息,用于传递单点登录控制子系统与应用客户端之间的通信信息或单 点登录控制子系统所在的浏览器与应用客户端之间的通信信息。
[0142] 401,在浏览器中打开单点登录控制子系统并登录。
[0143] 本发明实施例中,单点登录控制子系统为B/S模式的应用程序,用于管理异构应 用单点登录系统下包括B/S模式应用以及C/S模式应用的登录。
[0144] 在浏览器中打开单点登录控制子系统并登录后,浏览器中可呈现单点登录控制子 系统的主界面。此时,浏览器的TGT中,存储着单点登录控制子系统已登录用户的标识信 肩、。
[0145] 402,单点登录控制子系统发送拉起请求,请求拉起应用客户端。
[0146] 在浏览器的单点登录控制子系统中,向服务管理模块发送拉起请求,请求服务管 理模块拉起应用客户端的进程/线程。
[0147] 本发明实施例中,单点登录控制子系统可采用HTTP连接、socket连接、远程API调 用函数等向服务管理模块发送拉起请求,以通过服务管理模块拉起应用客户端的进程/线 程。
[0148] 403,服务管理模块拉起应用客户端。
[0149] 本发明实施例中,服务管理模块可通过HTTP连接、socket连接或远程API调用函 数拉起应用客户端。
[0150] 例如,服务管理模块可以直接通过socket连接或远程API调用函数向应用客户端 发送拉起请求。
[0151] 又例如,当应用客户端包含web服务模块时,服务管理模块可通过HTTP连接向应 用客户端603发送拉起请求。
[0152] 又例如,当异构应用单点登录系统包括web服务器,服务管理模块可通过HTTP连 接向web服务器发送拉起请求,通过web服务器拉起应用客户端。
[0153] 当然,服务管理模块还可能存在其它拉起应用客户端的具体实现方式,本发明实 施例在此不作限制。
[0154] 404,应用客户端指示发送重定位请求。
[0155] 与图2的步骤203类似,由于拉起请求中不包含应用所需要的用户信息,在应用客 户端启动后,应用客户端的SSO客户端模块需要向SSO服务器端请求应用的ST信息。
[0156] 本发明实施例中,应用客户端可向服务管理模块发送重定位请求指示,用于指示 服务管理模块向浏览器发送重定位请求,以向SS0服务器端请求应用的ST信息。
[0157] 应用客户端可通过HTTP连接、socket连接、远程API调用函数等向服务管理模块 发送信息。
[0158] 405,服务管理模块发送重定位请求,请求应用的ST信息。
[0159] 服务管理模块在接收到应用客户端的指示后,可向浏览器发送重定位请求,请求 应用的ST信息,其具体实现方式与图2的步骤203中应用客户端向浏览器发送重定位请求 的实现方式类似,本发明实施例在此不再赘述。
[0160] 406,浏览器发送ST请求,请求应用的ST信息。
[0161] 步骤406与图2的步骤204类似,本发明实施例在此不再赘述。
[0162] 407, SS0服务器端反馈应用的ST信息。
[0163] 步骤407与图2的步骤205类似,本发明实施例在此不再赘述。
[0164] 408,浏览器转发应用的ST信息。
[0165] 浏览器根据ST请求得到SS0服务器端反馈的应用的ST信息后,则可根据重定位 请求,将应用的ST信息转发给服务管理模块。
[0166] 409,服务管理模块转发应用的ST信息。
[0167] 服务管理模块可将浏览器转发的应用的ST信息转发给应用客户端。
[0168] 410,应用客户端发送会话建立请求,携带应用的ST信息。
[0169] 411,应用服务器端发送鉴权请求。
[0170] 412, SS0服务器端反馈鉴权结果。
[0171] 413,应用服务器端根据鉴权确定是否建立会话。
[0172] 步骤410-413与图2的步骤207-210类似,本发明实施例在此不再赘述。
[0173] 本发明实施例中,通过向单点登录控制子系统所在的浏览器中发送重定位请求以 向SS0服务器端请求C/S模式应用的ST票据,根据该ST票据向C/S模式应用服务器端发 送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用 的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高系统的安全性能。另 夕卜,通过在单点登录控制子系统和C/S模式应用客户端之间引入服务管理模块,能够屏蔽 C\s模式应用和B/S模式应用的拉起请求的服务地址(IP地址)的差异,使得C\S模式应用 在转换成B/S模式应用后,无需对单点登录控制子系统进行修改,从而减少C\S模式应用升 级为B/S模式应用的代价开销。
[0174] 另外,本发明实施例中,如果应用客户端本身不具备web服务器的功能,还可在异 构应用单点登录系统中引入一个web服务器,用于接收发给应用客户端的消息,并将该消 息传递给应用客户端。
[0175] 图5是本发明实施例异构应用单点登录系统下单点登录方法的交互流程图。在图 5所示的实施例中,异构应用单点登录系统可包括单点登录控制子系统、单点登录SS0服务 器端、服务管理子系统服务器端、服务管理子系统客户端、应用客户端、应用服务器端。其 中,应用为C\S模式的应用,单点登录控制子系统、服务管理子系统客户端、应用客户端都 在本地主机上。服务管理子系统服务器端可以在本地主机上,也可以在本地主机以外的网 络主机上,能够接收并处理HTTP消息,用于传递单点登录控制子系统与应用客户端之间的 通信信息或单点登录控制子系统所在的浏览器与应用客户端之间的通信信息。
[0176] 501,在浏览器中打开单点登录控制子系统并登录。
[0177] 本发明实施例中,单点登录控制子系统为B/S模式的应用程序,用于管理异构应 用单点登录系统下包括B/S模式应用以及C/S模式应用的登录。
[0178] 在浏览器中打开单点登录控制子系统并登录后,浏览器中可呈现单点登录控制子 系统的主界面。此时,浏览器的TGT中,存储着单点登录控制子系统已登录用户的标识信 肩、。
[0179] 502,单点登录控制子系统发送拉起请求,请求拉起应用客户端。
[0180] 在浏览器的单点登录控制子系统中,向服务管理子系统服务器端发送拉起请求, 请求服务管理子系统服务器端拉起应用客户端的进程/线程。
[0181] 本发明实施例中,单点登录控制子系统可采用HTTP连接或socket连接向服务管 理子系统服务器端发送拉起请求,以便服务管理子系统服务器端通过服务管理子系统客户 端拉起应用客户端的进程/线程。
[0182] 503,服务管理子系统服务器端推送拉起请求。
[0183] 服务管理子系统服务器端可将拉起请求推送至服务管理子系统客户端,指示服务 管理子系统客户端拉起应用客户端的进程/线程。
[0184] 服务管理子系统服务器端与服务管理子系统客户端之间可采用多种方式进行通 信,例如HTTP连接、socket连接、远程API调用函数等。
[0185] 504,服务管理子系统客户端拉起应用客户端。
[0186] 本发明实施例中,服务管理子系统客户端可通过HTTP连接、socket连接或远程 API调用函数拉起应用客户端。
[0187] 例如,服务管理子系统客户端可以直接通过socket连接或远程API调用函数向应 用客户端发送拉起请求。
[0188] 又例如,当应用客户端包含web服务模块时,服务管理子系统客户端可通过HTTP 连接向应用客户端603发送拉起请求。
[0189] 又例如,当异构应用单点登录系统包括web服务器,服务管理子系统客户端可通 过HTTP连接向web服务器发送拉起请求,通过web服务器拉起应用客户端。
[0190] 当然,服务管理子系统客户端还可能存在其它拉起应用客户端的具体实现方式, 本发明实施例在此不作限制。
[0191] 505,应用客户端指示发送重定位请求。
[0192] 与图2的步骤203类似,由于拉起请求中不包含应用所需要的用户信息,在应用客 户端启动后,应用客户端的SS0客户端模块需要向SS0服务器端请求应用的ST信息。
[0193] 本发明实施例中,应用客户端可向服务管理子系统客户端发送重定位请求指示, 用于指示服务管理子系统客户端通过服务管理子系统服务器端向浏览器发送重定位请求, 以向SS0服务器端请求应用的ST信息。
[0194] 应用客户端可通过HTTP连接、socket连接、远程API调用函数等向服务管理子系 统客户端发送信息。
[0195] 506,服务管理子系统客户端推送指示信息。
[0196] 服务管理子系统客户端向服务管理子系统服务器端推送该重定位请求指示,指示 服务管理子系统服务器端向浏览器发送重定位请求。
[0197] 507,服务管理子系统服务器端发送重定位请求,请求应用的ST信息。
[0198] 服务管理模块在接收到应用客户端的指示后,可向浏览器发送重定位请求,请求 应用的ST信息,其具体实现方式与图2的步骤203中应用客户端向浏览器发送重定位请求 的实现方式类似,本发明实施例在此不再赘述。
[0199] 508,浏览器发送ST请求,请求应用的ST信息。
[0200] 步骤508与图2的步骤204类似,本发明实施例在此不再赘述。
[0201] 509, SS0服务器端反馈应用的ST信息。
[0202] 步骤509与图2的步骤205类似,本发明实施例在此不再赘述。
[0203] 510,浏览器转发应用的ST信息。
[0204] 浏览器根据ST请求得到SS0服务器端反馈的应用的ST信息后,则可根据重定位 请求,将应用的ST信息转发给服务管理子系统服务器端。
[0205] 511,服务管理子系统服务器端转发应用的ST信息。
[0206] 服务管理子系统服务器端可将浏览器转发的应用的ST信息转发给服务管理子系 统客户端。
[0207] 512,服务管理子系统客户端转发应用的ST信息。
[0208] 服务管理子系统客户端可将服务管理子系统服务器端转发的应用的ST信息转发 给应用客户端。
[0209] 513,应用客户端发送会话建立请求,携带应用的ST信息。
[0210] 514,应用服务器端发送鉴权请求。
[0211] 515, SS0服务器端反馈鉴权结果。
[0212] 516,应用服务器端根据鉴权结果确定是否建立会话。
[0213] 步骤513-516与图2的步骤207-210类似,本发明实施例在此不再赘述。
[0214] 本发明实施例中,通过向单点登录控制子系统所在的浏览器中发送重定位请求以 向SS0服务器端请求C/S模式应用的ST票据,根据该ST票据向C/S模式应用服务器端发 送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用 的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高系统的安全性能。另 夕卜,通过在单点登录控制子系统和C/S模式应用客户端之间引入服务管理管理子系统的服 务器端和客户端,能够屏蔽C\s模式应用和B/S模式应用的拉起请求的服务地址(IP地址) 的差异,使得C\s模式应用在转换成B/S模式应用后,无需对单点登录控制子系统进行修 改,从而减少C\S模式应用升级为B/S模式应用的代价开销。
[0215] 另外,本发明实施例中,如果应用客户端本身不具备web服务器的功能,还可在异 构应用单点登录系统中引入一个web服务器,用于接收发给应用客户端的消息,并将该消 息传递给应用客户端。
[0216] 图6是本发明实施例异构应用单点登录系统600的结构示意图。异构应用单点登 录系统600可包括单点登录控制子系统601、SS0服务器端602、应用客户端603和应用服 务器端604。其中,
[0217] 单点登录控制子系统601,用于在浏览器中打开并登录后,拉起应用客户端603进 程。
[0218] 应用客户端603,位于该浏览器所在的本地主机上,用于向该浏览器发送重定位请 求。
[0219] 其中,该重定位请求用于通过该浏览器向SS0服务器端602发送服务票据ST请 求,该ST请求携带该应用的标识信息,该ST请求用于获取该应用的ST信息。
[0220] SS0服务器端602,用于根据该ST请求向该浏览器发送该应用的ST信息,以便该 浏览器根据该重定位请求将该应用的ST信息发送给应用客户端603。
[0221] 应用客户端603还用于接收该应用的ST信息,并根据该应用的ST信息向应用服 务器端604发送会话建立请求。
[0222] 其中,该会话建立请求携带该应用的ST信息。
[0223] 应用服务器端604,用于根据该应用的ST信息向SS0服务器端602请求鉴权,并在 鉴权成功后创建与应用客户端603的会话信息。
[0224] SS0服务器端602还用于对应用服务器端604发送的ST信息进行鉴权。
[0225] 本发明实施例中,异构应用单点登录系统600通过向单点登录控制子系统所在的 浏览器中发送重定位请求以向SS0服务器端请求C/S应用的ST票据,根据该ST票据向C/ s模式应用服务器端发送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式 下支持C/S模式应用的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提 高系统的安全性能。
[0226] 可选地,作为一个实施例,如图7所示,应用客户端603可包含web服务模块6031, web服务模块6031用于接收发送给应用客户端603的消息,其中,应用客户端603通过web 服务模块6031接收单点登录控制子系统601及该浏览器直接或间接发送的消息。
[0227] 进一步地,作为本实施例的一种具体实现方式,web服务模块6031能够接收基于 超文本传输协议HTTP连接的消息或基于套接字socket连接的消息。
[0228] 可选地,作为另一个实施例,如图8所示,异构应用单点登录系统600还可包括web 服务器608, web服务器608为独立于应用客户端603的进程/线程,web服务器608用于 接收消息并转发给应用客户端603,其中,应用客户端603通过web服务器608接收单点登 录控制子系统601及该浏览器直接或间接发送的消息。
[0229] 进一步地,作为本实施例的一种具体实现方式,该web服务器能够接收基于HTTP 连接的消息或基于socket连接的消息。
[0230] 可选地,应用客户端603还可包括SS0客户端模块,应用客户端603通过该SS0客 户端模块向该浏览器发送该重定位请求。
[0231] 可选地,作为一个实施例,如图9所示,异构应用单点登录系统还可包括服务管理 模块605,服务管理模块605为该本地主机上的应用服务,用于传递单点登录控制子系统 601与应用客户端603之间的通信信息或该浏览器与应用客户端603之间的通信信息,具 体用于:接收单点登录控制子系统601的应用拉起请求,并拉起应用客户端603的进程/线 程;接收应用客户端603的重定位请求指示,并根据该重定位请求指示向该浏览器发送重 定位请求,其中,该重定位请求指示用于指示该服务管理模块向该浏览器发送该重定位请 求;接收该浏览器根据该重定位请求从SS0服务器端602获取并反馈的该应用的ST信息, 并将该应用的ST信息发送给应用客户端603。本发明实施例中,通过在本地建立一个应用 服务来传递单点登录控制子系统/浏览器与应用客户端之间的通信,能够屏蔽c\s模式应 用和B/S模式应用的拉起请求的服务地址(IP地址)的差异,因而能够在C\S模式应用转 换成B/S模式应用后,无需对单点登录控制子系统进行修改,从而减少C\S模式应用升级为 B/S模式应用的代价开销。
[0232] 进一步地,作为本实施例的一种具体实现方式,服务管理模块605可通过HTTP连 接、socket连接或远程API调用函数向该应用客户端传递信息。例如,服务管理模块605可 以直接通过socket连接或远程API调用函数向应用客户端603发送消息。或者,当应用客 户端603包含web服务模块6031时,服务管理模块605可向应用客户端603发送HTTP连 接来传递消息。或者,当异构应用单点登录系统600包括web服务器608时,服务管理模块 605可向web服务器608发送HTTP连接,通过web服务器608向应用客户端603传递消息。
[0233] 可选地,作为另一个实施例,如图10所示,异构应用单点登录系统600还可包括服 务管理子系统服务器端606和服务管理子系统客户端607。服务管理子系统服务器端606 和服务管理子系统客户端607用于传递单点登录控制子系统601与应用客户端603之间的 通信信息或该浏览器与应用客户端603之间的通信信息。具体地,服务管理子系统服务器 端606端用于接收单点登录控制子系统601发送的应用拉起请求,并转发给服务管理子系 统客户端607,其中,该应用拉起请求用于请求拉起应用客户端603的进程/线程;服务管 理子系统客户端607用于根据该应用拉起请求拉起应用客户端603的进程/线程;服务管 理子系统客户端607还用于接收应用客户端603发送的重定位请求指示,并转发给服务管 理子系统服务器端606端,该重定位请求指示用于指示该服务管理子系统向该浏览器发送 该重定位请求;服务管理子系统服务器端606端用于根据该重定位请求指示向该浏览器发 送该重定位请求;服务管理子系统服务器端606端还用于接收该浏览器根据该重定位请求 从SS0服务器端602获取并反馈的该应用的ST信息,并转发给服务管理子系统客户端607 ; 服务管理子系统客户端607还用于将该应用的ST信息转发给应用客户端603。本发明实施 例中,在单点登录控制子系统/浏览器与应用客户端之间的通信引入服务管理子系统的服 务器端和客户端,服务管理子系统的服务器端通过本地主机上的服务管理子系统的客户端 与本地主机上的应用进行通信,能够屏蔽C\S模式应用和B/S模式应用的拉起请求的服务 地址(IP地址)的差异,因而能够在C\S模式应用转换成B/S模式应用后,无需对单点登录 控制子系统进行修改,从而减少C\S模式应用升级为B/S模式应用的代价开销。
[0234] 进一步地,作为本实施例的一种具体实现方式,服务管理子系统客户端607可通 过HTTP连接、socket连接或远程API调用函数向该应用客户端传递信息。例如,服务管理 子系统客户端607可以直接通过socket连接或远程API调用函数向应用客户端603发送消 息。或者,当应用客户端603包含web服务模块6031时,服务管理子系统客户端607可向 应用客户端603发送HTTP连接来传递消息。或者,当异构应用单点登录系统600包括web 服务器608时,服务管理子系统客户端607可向web服务器608发送HTTP连接,通过web 服务器608向应用客户端603传递消息。
[0235] 另外,异构应用单点登录系统600还可执行图1的方法,并具备异构应用单点登录 系统在图1至图5所示实施例中的功能,具体实现可参考图1至图5所示的具体实施例,本 发明实施例在此不再赘述。
[0236] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单 元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟 以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员 可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出 本发明的范围。
[0237] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、 装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0238] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以 通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的 划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件 可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或 讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦 合或通信连接,可以是电性,机械或其它的形式。
[0239] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显 示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个 网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0240] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0241] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以 存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说 对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计 算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个 人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存 储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0242] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何 熟悉本【技术领域】的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
【权利要求】
1. 一种异构应用单点登录系统的单点登录方法,其特征在于,所述异构应用单点登录 系统包括单点登录控制子系统、单点登录SSO服务器端、应用客户端和所述应用服务器端, 所述方法包括: 所述单点登录控制子系统在浏览器中打开、登录并拉起所述应用客户端的进程/线 程,其中,所述应用客户端在所述浏览器所在的本地主机上; 所述应用客户端向所述浏览器发送重定位请求,其中,所述重定位请求用于通过所述 浏览器向所述SSO服务器端发送服务票据ST请求,所述ST请求携带所述应用的标识信息, 所述ST请求用于获取所述应用的ST信息; 所述SSO服务器端根据所述ST请求向所述浏览器发送所述应用的ST信息,以便所述 浏览器根据所述重定位请求将所述应用的ST信息发送给所述应用客户端; 所述应用客户端接收所述应用的ST信息,并根据所述应用的ST信息向所述应用服务 器端发送会话建立请求,其中,所述会话建立请求携带所述应用的ST信息; 所述应用服务器端根据所述应用的ST信息向所述SSO服务器端请求鉴权,并在鉴权成 功后创建与所述应用客户端的会话信息。
2. 如权利要求1所述的方法,其特征在于,所述异构应用单点登录系统还包括服务管 理模块,所述服务管理模块为所述本地主机上的应用服务,用于传递所述单点登录控制子 系统与所述应用客户端之间的通信信息或所述浏览器与所述应用客户端之间的通信信息, 所述单点登录控制子系统拉起所述应用客户端的进程/线程包括:所述单点登录控制 子系统通过所述服务管理模块拉起所述应用客户端的进程/线程; 所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端向所述服务管理 模块发送重定位请求指示,所述服务管理模块根据所述重定位请求指示向所述浏览器发送 重定位请求,所述重定位请求指示用于指示所述服务管理模块向所述浏览器发送所述重定 位请求; 所述应用客户端接收所述应用的ST信息包括:所述应用客户端接收所述服务管理模 块转发的所述应用的ST信息,其中,所述服务管理模块转发的所述应用的ST信息由所述浏 览器根据所述重定位请求从所述SSO服务器端获取并反馈给所述服务管理模块。
3. 如权利要求1所述的方法,其特征在于,所述异构应用单点登录系统还包括服务管 理子系统的服务器端和客户端,所述服务管理子系统的客户端位于所述本地主机上,所述 服务管理子系统通过所述服务管理子系统的服务器端和所述服务管理子系统的客户端传 递所述单点登录控制子系统与所述应用客户端之间的通信信息或所述浏览器与所述应用 客户端之间的通信信息,其中, 所述单点登录控制子系统拉起所述应用客户端的进程/线程包括:所述单点登录控制 子系统通过所述服务管理子系统的服务器端发送应用拉起请求,使得所述服务管理子系统 的服务器端通过所述服务管理子系统的客户端拉起所述应用客户端的进程/线程; 所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端通过所述服务管 理子系统的客户端向所述服务管理子系统的服务器端发送重定位请求指示,所述服务管理 子系统的服务器端根据所述重定位请求指示向所述浏览器发送所述重定位请求,其中,所 述重定位请求指示用于指示所述服务管理子系统的服务器端发送所述重定位请求; 所述应用客户端接收所述应用的ST信息包括:所述应用客户端通过所述服务管理子 系统的客户端接收所述服务管理子系统的服务器端转发的所述应用的ST信息,其中,所述 服务管理子系统的服务器端转发的所述应用的ST信息由所述浏览器根据所述重定位请求 从所述SSO服务器端获取并反馈给所述服务管理子系统的服务器端。
4. 如权利要求1至3任一项所述的方法,其特征在于, 所述应用客户端包含web服务模块,所述web服务模块用于接收发送给所述应用客户 端的消息,其中,所述应用客户端通过所述web服务模块接收所述单点登录控制子系统及 所述浏览器直接或间接发送的消息。
5. 如权利要求1至3任一项所述的方法,其特征在于, 所述异构应用单点登录系统还包括web服务器,所述web服务器为独立于所述应用客 户端的进程/线程,所述web服务器用于接收消息并转发给所述应用客户端,其中,所述应 用客户端通过所述web服务器接收所述单点登录控制子系统及所述浏览器直接或间接发 送的消息。
6. 如权利要求1至5任一项所述的方法,其特征在于,所述应用客户端包括SSO客户端 模块,所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端通过所述SSO 客户端模块向所述浏览器发送所述重定位请求。
7. -种异构应用单点登录系统,其特征在于,包括:单点登录控制子系统、单点登录 SSO服务器端、应用客户端和所述应用服务器端,其中, 所述单点登录控制子系统用于在浏览器中打开并登录后,拉起所述应用客户端进程; 所述应用客户端,位于所述浏览器所在的本地主机上,用于向所述浏览器发送重定位 请求,其中,所述重定位请求用于通过所述浏览器向所述SSO服务器端发送服务票据ST请 求,所述ST请求携带所述应用的标识信息,所述ST请求用于获取所述应用的ST信息; 所述SSO服务器端,用于根据所述ST请求向所述浏览器发送所述应用的ST信息,以便 所述浏览器根据所述重定位请求将所述应用的ST信息发送给所述应用客户端; 所述应用客户端还用于接收所述应用的ST信息,并根据所述应用的ST信息向所述应 用服务器端发送会话建立请求,其中,所述会话建立请求携带所述应用的ST信息; 所述应用服务器端,用于根据所述应用的ST信息向所述SSO服务器端请求鉴权,并在 鉴权成功后创建与所述应用客户端的会话信息; 所述SSO服务器端还用于对所述应用服务器端发送的ST信息进行鉴权。
8. 如权利要求7所述的异构应用单点登录系统,其特征在于, 所述异构应用单点登录系统还包括服务管理模块,所述服务管理模块为所述本地主机 上的应用服务,用于传递所述单点登录控制子系统与所述应用客户端之间的通信信息或所 述浏览器与所述应用客户端之间的通信信息,包括: 接收所述单点登录控制子系统的应用拉起请求,并拉起所述应用客户端的进程/线 程; 接收所述应用客户端的重定位请求指示,并根据所述重定位请求指示向所述浏览器发 送重定位请求,其中,所述重定位请求指示用于指示所述服务管理模块向所述浏览器发送 所述重定位请求; 接收所述浏览器根据所述重定位请求从所述SSO服务器端获取并反馈的所述应用的 ST信息,并将所述应用的ST信息发送给所述应用客户端。
9. 如权利要求7所述的异构应用单点登录系统,其特征在于, 所述异构应用单点登录系统还包括服务管理子系统的服务器端和客户端,所述服务管 理子系统的客户端位于所述本地主机上,所述服务管理子系统用于通过所述服务管理子系 统的服务器端和所述服务管理子系统的客户端传递所述单点登录控制子系统与所述应用 客户端之间的通信信息或所述浏览器与所述应用客户端之间的通信信息,其中, 所述服务管理子系统的服务器端用于接收所述单点登录控制子系统发送的应用拉起 请求,并转发给所述服务管理子系统的客户端,所述应用拉起请求用于请求拉起所述应用 客户端的进程/线程; 所述服务管理子系统的客户端用于根据所述应用拉起请求拉起所述应用客户端的进 程/线程; 所述服务管理子系统的客户端还用于接收所述应用客户端发送的重定位请求指示,并 转发给所述服务管理子系统的服务器端,所述重定位请求指示用于指示所述服务管理子系 统向所述浏览器发送所述重定位请求; 所述服务管理子系统的服务器端用于根据所述重定位请求指示向所述浏览器发送所 述重定位请求; 所述服务管理子系统的服务器端还用于接收所述浏览器根据所述重定位请求从所述 SSO服务器端获取并反馈的所述应用的ST信息,并转发给所述服务管理子系统的客户端; 所述服务管理子系统的客户端还用于将所述应用的ST信息转发给所述应用客户端。
10. 如权利要求7至9任一项所述的异构应用单点登录系统,其特征在于,所述应用客 户端包含web服务模块,所述web服务模块用于接收发送给所述应用客户端的消息,其中, 所述应用客户端通过所述web服务模块接收所述单点登录控制子系统及所述浏览器直接 或间接发送的消息。
11. 如权利要求7至9任一项所述的异构应用单点登录系统,其特征在于,所述异构应 用单点登录系统还包括web服务器,所述web服务器为独立于所述应用客户端的进程/线 程,所述web服务器用于接收消息并转发给所述应用客户端,其中,所述应用客户端通过所 述web服务器接收所述单点登录控制子系统及所述浏览器直接或间接发送的消息。
12. 如权利要求7至11任一项所述的异构应用单点登录系统,其特征在于,所述应用客 户端包括SSO客户端模块,其中,所述应用客户端通过所述SSO客户端模块向所述浏览器发 送所述重定位请求。
【文档编号】H04L29/06GK104052746SQ201410273322
【公开日】2014年9月17日 申请日期:2014年6月18日 优先权日:2014年6月18日
【发明者】殷一石 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1