CN104052746A - 异构应用单点登录***及其单点登录方法 - Google Patents
异构应用单点登录***及其单点登录方法 Download PDFInfo
- Publication number
- CN104052746A CN104052746A CN201410273322.3A CN201410273322A CN104052746A CN 104052746 A CN104052746 A CN 104052746A CN 201410273322 A CN201410273322 A CN 201410273322A CN 104052746 A CN104052746 A CN 104052746A
- Authority
- CN
- China
- Prior art keywords
- application
- applications client
- service management
- browser
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种异构***间单点登录的方法、装置和***,异构应用单点登录***包括单点登录控制子***、SSO服务器端、应用客户端和服务器端,该方法包括:单点登录控制子***在浏览器中打开、登录并拉起应用客户端的进程/线程;应用客户端向浏览器发送重定位请求,用于通过浏览器向SSO服务器端发送ST请求以获取应用的ST信息;SSO服务器端根据ST请求向浏览器发送应用的ST信息,以便浏览器将应用的ST信息发送给应用客户端;应用客户端接收并根据应用的ST信息向应用服务器端发送会话建立请求;应用服务器端根据应用的ST信息向SSO服务器端请求鉴权,并在鉴权成功后创建与应用客户端的会话信息。
Description
技术领域
本发明实施例涉及计算机网络领域,并且更具体地,涉及一种异构应用单点登录***及其单点登录方法。
背景技术
由于web技术的迅速发展,一些***都从之前的C/S模式渐渐演进为B/S模式。但对于一些大型***,需经过相当长的一段开发实现才能实现全***功能的web化,所以在这段时间内,会存在C/S与B/S模式共存的情况。从而出现了“web浏览器应用与本地进程应用相互交互”的应用场景。
在上述场景中,若用户通过web浏览器登录后,用户在浏览器中执行操作时,若需要调用本地应用,则浏览器需要拉起一个本地应用。此时,由于本地应用与浏览器运行环境隔离,无法共享用户角色信息(B/S环境下用户信息缓存在浏览器进程中,而C/S的本地进程无法获取),而如果将用户标识传递给本地应用,则又存在一定的安全隐患。
发明内容
本发明实施例提供一种异构应用单点登录***及其单点登录方法,能够在B/S模式下支持C/S模式应用的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高***的安全性能。
第一方面,提供了一种异构应用单点登录***的单点登录方法,所述异构应用单点登录***包括单点登录控制子***、单点登录SSO服务器端、应用客户端和所述应用服务器端,所述方法包括:所述单点登录控制子***在浏览器中打开、登录并拉起所述应用客户端的进程/线程,其中,所述应用客户端在所述浏览器所在的本地主机上;所述应用客户端向所述浏览器发送重定位请求,其中,所述重定位请求用于通过所述浏览器向所述SSO服务器端发送服务票据ST请求,所述ST请求携带所述应用的标识信息,所述ST请求用于获取所述应用的ST信息;所述SSO服务器端根据所述ST请求向所述浏览器发送所述应用的ST信息,以便所述浏览器根据所述重定位请求将所述应用的ST信息发送给所述应用客户端;所述应用客户端接收所述应用的ST信息,并根据所述应用的ST信息向所述应用服务器端发送会话建立请求,其中,所述会话建立请求携带所述应用的ST信息;所述应用服务器端根据所述应用的ST信息向所述SSO服务器端请求鉴权,并在鉴权成功后创建与所述应用客户端的会话信息。
结合第一方面,在第一种可能的实现方式中,所述异构应用单点登录***还包括服务管理模块,所述服务管理模块为所述本地主机上的应用服务,用于传递所述单点登录控制子***与所述应用客户端之间的通信信息或所述浏览器与所述应用客户端之间的通信信息,
所述单点登录控制子***拉起所述应用客户端的进程/线程包括:所述单点登录控制子***通过所述服务管理模块拉起所述应用客户端的进程/线程;
所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端向所述服务管理模块发送重定位请求指示,所述服务管理模块根据所述重定位请求指示向所述浏览器发送重定位请求,所述重定位请求指示用于指示所述服务管理模块向所述浏览器发送所述重定位请求;
所述应用客户端接收所述应用的ST信息包括:所述应用客户端接收所述服务管理模块转发的所述应用的ST信息,其中,所述服务管理模块转发的所述应用的ST信息由所述浏览器根据所述重定位请求从所述SSO服务器端获取并反馈给所述服务管理模块。
结合第一方面,在第二种可能的实现方式中,所述异构应用单点登录***还包括服务管理子***的服务器端和客户端,所述服务管理子***的客户端位于所述本地主机上,所述服务管理子***通过所述服务管理子***的服务器端和所述服务管理子***的客户端传递所述单点登录控制子***与所述应用客户端之间的通信信息或所述浏览器与所述应用客户端之间的通信信息,其中,
所述单点登录控制子***拉起所述应用客户端的进程/线程包括:所述单点登录控制子***通过所述服务管理子***的服务器端发送应用拉起请求,使得所述服务管理子***的服务器端通过所述服务管理子***的客户端拉起所述应用客户端的进程/线程;
所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端通过所述服务管理子***的客户端向所述服务管理子***的服务器端发送重定位请求指示,所述服务管理子***的服务器端根据所述重定位请求指示向所述浏览器发送所述重定位请求,其中,所述重定位请求指示用于指示所述服务管理子***的服务器端发送所述重定位请求;
所述应用客户端接收所述应用的ST信息包括:所述应用客户端通过所述服务管理子***的客户端接收所述服务管理子***的服务器端转发的所述应用的ST信息,其中,所述服务管理子***的服务器端转发的所述应用的ST信息由所述浏览器根据所述重定位请求从所述SSO服务器端获取并反馈给所述服务管理子***的服务器端。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,具体实现为:所述应用客户端包含web服务模块,所述web服务模块用于接收发送给所述应用客户端的消息,其中,所述应用客户端通过所述web服务模块接收所述单点登录控制子***及所述浏览器直接或间接发送的消息。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第四种可能的实现方式中,具体实现为:所述异构应用单点登录***还包括web服务器,所述web服务器为独立于所述应用客户端的进程/线程,所述web服务器用于接收消息并转发给所述应用客户端,其中,所述应用客户端通过所述web服务器接收所述单点登录控制子***及所述浏览器直接或间接发送的消息。
结合第一方面或第一方面的第一种可能的实现方式至第一方面的第四种可能的实现方式中任一种可能的实现方式,在第五种可能的实现方式中,所述应用客户端包括SSO客户端模块,所述应用客户端向所述浏览器发送重定位请求包括:所述应用客户端通过所述SSO客户端模块向所述浏览器发送所述重定位请求。
第二方面,提供了一种异构应用单点登录***,该异构应用单点登录***包括:单点登录控制子***、单点登录SSO服务器端、应用客户端和所述应用服务器端,其中,所述单点登录控制子***用于在浏览器中打开并登录后,拉起所述应用客户端进程;所述应用客户端,位于所述浏览器所在的本地主机上,用于向所述浏览器发送重定位请求,其中,所述重定位请求用于通过所述浏览器向所述SSO服务器端发送服务票据ST请求,所述ST请求携带所述应用的标识信息,所述ST请求用于获取所述应用的ST信息;所述SSO服务器端,用于根据所述ST请求向所述浏览器发送所述应用的ST信息,以便所述浏览器根据所述重定位请求将所述应用的ST信息发送给所述应用客户端;所述应用客户端还用于接收所述应用的ST信息,并根据所述应用的ST信息向所述应用服务器端发送会话建立请求,其中,所述会话建立请求携带所述应用的ST信息;所述应用服务器端,用于根据所述应用的ST信息向所述SSO服务器端请求鉴权,并在鉴权成功后创建与所述应用客户端的会话信息;所述SSO服务器端还用于对所述应用服务器端发送的ST信息进行鉴权
结合第二方面,在第一种可能的实现方式中,所述异构应用单点登录***还包括服务管理模块,所述服务管理模块为所述本地主机上的应用服务,用于传递所述单点登录控制子***与所述应用客户端之间的通信信息或所述浏览器与所述应用客户端之间的通信信息,包括:
接收所述单点登录控制子***的应用拉起请求,并拉起所述应用客户端的进程/线程;
接收所述应用客户端的重定位请求指示,并根据所述重定位请求指示向所述浏览器发送重定位请求,其中,所述重定位请求指示用于指示所述服务管理模块向所述浏览器发送所述重定位请求;
接收所述浏览器根据所述重定位请求从所述SSO服务器端获取并反馈的所述应用的ST信息,并将所述应用的ST信息发送给所述应用客户端。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述异构应用单点登录***还包括服务管理子***的服务器端和客户端,所述服务管理子***的客户端位于所述本地主机上,所述服务管理子***用于通过所述服务管理子***的服务器端和所述服务管理子***的客户端传递所述单点登录控制子***与所述应用客户端之间的通信信息或所述浏览器与所述应用客户端之间的通信信息,其中,
所述服务管理子***的服务器端用于接收所述单点登录控制子***发送的应用拉起请求,并转发给所述服务管理子***的客户端,所述应用拉起请求用于请求拉起所述应用客户端的进程/线程;
所述服务管理子***的客户端用于根据所述应用拉起请求拉起所述应用客户端的进程/线程;
所述服务管理子***的客户端还用于接收所述应用客户端发送的重定位请求指示,并转发给所述服务管理子***的服务器端,所述重定位请求指示用于指示所述服务管理子***向所述浏览器发送所述重定位请求;
所述服务管理子***的服务器端用于根据所述重定位请求指示向所述浏览器发送所述重定位请求;
所述服务管理子***的服务器端还用于接收所述浏览器根据所述重定位请求从所述SSO服务器端获取并反馈的所述应用的ST信息,并转发给所述服务管理子***的客户端;
所述服务管理子***的客户端还用于将所述应用的ST信息转发给所述应用客户端。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,具体实现为:所述应用客户端包含web服务模块,所述web服务模块用于接收发送给所述应用客户端的消息,其中,所述应用客户端通过所述web服务模块接收所述单点登录控制子***及所述浏览器直接或间接发送的消息。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第四种可能的实现方式中,所述异构应用单点登录***还包括web服务器,所述web服务器为独立于所述应用客户端的进程/线程,所述web服务器用于接收消息并转发给所述应用客户端,其中,所述应用客户端通过所述web服务器接收所述单点登录控制子***及所述浏览器直接或间接发送的消息。
结合第二方面或第二方面的第一种可能的实现方式至第二方面的第四种可能的实现方式中任一种可能的实现方式,在第五种可能的实现方式中,具体实现为:所述应用客户端包括SSO客户端模块,其中,所述应用客户端通过所述SSO客户端模块向所述浏览器发送所述重定位请求。
基于以上技术方案,本发明实施例的异构应用单点登录***及其单点登录方法,通过向单点登录控制子***所在的浏览器中发送重定位请求以向SSO服务器端请求C/S模式应用的ST票据,根据该ST票据向C/S模式应用服务器端发送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高***的安全性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例异构应用单点登录***的单点登录方法流程图。
图2是本发明实施例异构应用单点登录***下单点登录方法的交互流程图。
图3是本发明实施例异构应用单点登录***下单点登录方法的另一交互流程图。
图4是本发明实施例异构应用单点登录***下单点登录方法的再一交互流程图。
图5是本发明实施例异构应用单点登录***下单点登录方法的再一交互流程图。
图6是本发明实施例异构应用单点登录***的结构示意图。
图7是本发明实施例异构应用单点登录***的另一结构示意图。
图8是本发明实施例异构应用单点登录***的再一结构示意图。
图9是本发明实施例异构应用单点登录***的再一结构示意图。
图10是本发明实施例异构应用单点登录***的再一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。
单点登录(Single Sign On,SSO),是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用***中,用户只需要登录一次就可以访问所有相互信任的应用***。
票据生成票据(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,如果有的话,则说明用户之前登录过,如果没有,则用户需要重新登录。本发明实施例中,SSO服务器端提供CAS服务。
服务票据(Service Ticket,ST):现有技术中,ST是CAS为用户签发的访问某一service的票据。用户访问service时,service发现用户没有会话信息,则要求用户去CAS获取ST。用户向CAS发出获取ST的请求,如果用户的请求中包含Cookie,则CAS会以此Cookie值为key查询缓存中有无TGT,如果存在TGT,则用此TGT签发一个ST,返回给用户。用户凭借ST去访问service,service拿ST去CAS验证,验证通过后,允许用户访问资源,同时,ST失效。
Jetty:一个开源的servlet容器,为基于Java的web内容(例如JSP和servlet等)提供运行环境。Jetty是使用Java语言编写的,其API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
图1是本发明实施例异构应用单点登录***的单点登录方法流程图。其中,该异构应用单点登录***包括单点登录控制子***、单点登录SSO服务器端、应用客户端和该应用服务器端,该方法包括:
101,单点登录控制子***在浏览器中打开、登录并拉起应用客户端的进程/线程。
其中,该应用客户端在该浏览器所在的本地主机上。
单点登录控制子***在浏览器中登录后,浏览器会得到SSO服务器端为登录用户签发的登录票据TGT,TGT中封装Cookie值对应的用户信息。当浏览器再次发起HTTP请求时,可根据该TGT向SSO服务器端发送HTTP请求,而无需再次登录。
102,该应用客户端向该浏览器发送重定位请求。
该重定位请求用于通过该浏览器向SSO服务器端发送ST请求,该ST请求携带该应用的标识信息,该ST请求用于获取该应用的ST信息。
浏览器在接收到重定位请求后,可根据TGT和该重定位请求向SSO服务器端发送ST请求,以从SSO服务器端获取应用的ST信息,使得应用客户端能够根据ST信息,通过应用服务器端向SSO服务器端请求鉴权。
103,该SSO服务器端根据该ST请求向该浏览器发送该应用的ST信息,以便该浏览器根据该重定位请求将该应用的ST信息发送给该应用客户端。
104,该应用客户端接收该应用的ST信息,并根据该应用的ST信息向该应用服务器端发送会话建立请求。
其中,该会话建立请求携带该应用的ST信息。
在会话建立请求中携带应用的ST信息,能够使得应用服务器端根据该应用的ST信息向SSO服务器端请求鉴权。
105,该应用服务器端根据该应用的ST信息向该SSO服务器端请求鉴权,并在鉴权成功后创建与该应用客户端的会话信息。
本发明实施例中,通过向单点登录控制子***所在的浏览器中发送重定位请求以向SSO服务器端请求C/S应用的ST票据,根据该ST票据向C/S模式应用服务器端发送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高***的安全性能。
可选地,作为一个实施例,该异构应用单点登录***还包括服务管理模块,该服务管理模块为该本地主机上的应用服务,用于传递该单点登录控制子***与该应用客户端之间的通信信息或该浏览器与该应用客户端之间的通信信息。其中,步骤1中,单点登录控制子***拉起该应用客户端的进程/线程具体可实现为:该单点登录控制子***通过该服务管理模块拉起该应用客户端的进程/线程;步骤102具体可实现为:该应用客户端向该服务管理模块发送重定位请求指示,该服务管理模块根据该重定位请求指示向该浏览器发送重定位请求,其中,该重定位请求指示用于指示该服务管理模块向该浏览器发送该重定位请求;步骤104具体可实现为:该应用客户端接收该服务管理模块转发的该应用的ST信息,其中,该服务管理模块转发的该应用的ST信息由该浏览器根据该重定位请求从该SSO服务器端获取并反馈给该服务管理模块。本发明实施例中,通过在本地建立一个应用服务来传递单点登录控制子***/浏览器与应用客户端之间的通信,能够屏蔽C\S模式应用和B/S模式应用的拉起请求的服务地址(IP地址)的差异,因而能够在C\S模式应用转换成B/S模式应用后,无需对单点登录控制子***进行修改,从而减少C\S模式应用升级为B/S模式应用的代价开销。
进一步地,作为本实施例的一种具体实现方式,该服务管理模块可通过HTTP连接、socket连接或远程API调用函数向该应用客户端传递信息。
可选地,作为另一个实施例,该异构应用单点登录***还包括服务管理子***的服务器端和客户端,该服务管理子***的客户端位于该本地主机上,该服务管理子***通过该服务管理子***的服务器端和该服务管理子***的客户端传递该单点登录控制子***与该应用客户端之间的通信信息或该浏览器与该应用客户端之间的通信信息。其中,步骤1中,单点登录控制子***拉起该应用客户端的进程/线程具体可实现为:该单点登录控制子***通过该服务管理子***的服务器端发送应用拉起请求,使得该服务管理子***的服务器端通过该服务管理子***的客户端拉起该应用客户端的进程/线程;步骤102具体可实现为:该应用客户端通过该服务管理子***的客户端向该服务管理子***的服务器端发送重定位请求指示,该服务管理子***的服务器端根据该重定位请求指示向该浏览器发送该重定位请求,其中,该重定位请求指示用于指示该服务管理子***的服务器端向该浏览器发送该重定位请求;步骤104具体可实现为:该应用客户端通过该服务管理子***的客户端接收该服务管理子***的服务器端转发的该应用的ST信息,其中,该服务管理子***的服务器端转发的该应用的ST信息由该浏览器根据该重定位请求从该SSO服务器端获取并反馈给该服务管理子***的服务器端。本发明实施例中,在单点登录控制子***/浏览器与应用客户端之间的通信引入服务管理子***的服务器端和客户端,服务管理子***的服务器端通过本地主机上的服务管理子***的客户端与本地主机上的应用进行通信,能够屏蔽C\S模式应用和B/S模式应用的拉起请求的服务地址(IP地址)的差异,因而能够在C\S模式应用转换成B/S模式应用后,无需对单点登录控制子***进行修改,从而减少C\S模式应用升级为B/S模式应用的代价开销。
进一步地,作为本实施例的一种具体实现方式,该服务管理子***的客户端可通过HTTP连接、socket连接或远程API调用函数向该应用客户端传递信息。
可选地,作为一个实施例,该应用客户端包含web服务模块,该web服务模块用于接收发送给该应用客户端的消息,其中,该应用客户端通过该web服务模块接收该单点登录控制子***及该浏览器直接或间接发送的消息。
进一步地,作为本实施例的一种具体实现方式,该web服务模块能够接收基于超文本传输协议HTTP连接的消息或基于套接字socket连接的消息。
可选地,作为另一个实施例,该异构应用单点登录***还包括web服务器,该web服务器为独立于该应用客户端的进程/线程,该web服务器用于接收消息并转发给该应用客户端,其中,该应用客户端通过该web服务器接收该单点登录控制子***及该浏览器直接或间接发送的消息。
进一步地,作为本实施例的一种具体实现方式,该web服务器能够接收基于HTTP连接的消息或基于socket连接的消息。
可选地,该应用客户端还可包括SSO客户端模块,步骤102具体可实现为:该应用客户端通过该SSO客户端模块向该浏览器发送该重定位请求。
下面,将结合具体的实施例,对本发明实施例的方法作进一步的描述。
图2是本发明实施例异构应用单点登录***下单点登录方法的交互流程图。在图2所示的实施例中,异构应用单点登录***可包括单点登录控制子***、单点登录SSO服务器端、应用客户端、应用服务器端。其中,应用为C\S模式的应用,单点登录控制子***和应用客户端都在本地主机上。另外,本发明实施例中,网页(web)服务器作为应用客户端的一个嵌入模块集成在应用客户端中,该web服务器可用于接收基于HTTP连接的消息。
201,在浏览器中打开单点登录控制子***并登录。
本发明实施例中,单点登录控制子***为B/S模式的应用程序,用于管理异构应用单点登录***下包括B/S模式应用以及C/S模式应用的登录。
在浏览器中打开单点登录控制子***并登录后,浏览器中可呈现单点登录控制子***的主界面。此时,浏览器的TGT中,存储着单点登录控制子***已登录用户的标识信息。
202,单点登录控制子***发送拉起请求,拉起应用客户端。
在浏览器打开的的单点登录控制子***中,可向应用客户端发送拉起请求。其中,该拉起请求可用来拉起应用客户端。具体的,该拉起请求中可包含应用的标识信息。该应用的标识信息,可以是应用的名称,应用的本地地址,或者是其它能够被用来确定应用、拉起应用的信息。
服务管理子***服务器端与服务管理子***客户端之间可采用多种方式进行通信,例如HTTP连接、socket连接、远程API调用函数等。
一种具体的实现方式,单点登录控制子***可通过HTTP连接向应用客户端发送拉起请求。
在发送拉起请求之间,单点登录控制子***可通过其它方式先打开应用客户端。此时,应用客户端中对应的业务相关内容尚未启动,但应用客户端的web服务器已经启动。web服务器启动后,才能够接收单点登录控制子***下发的拉起请求。在web服务器接受到请求后,在web服务器的实现代码中拉起应用客户端,以准备启动应用客户端的相关业务。一种具体的实现方式,当应用客户端为Java客户端时,可基于Jetty(一个开源的servlet容器,为基于Java的web内容提供运行环境)实现web服务器,在应用客户端中实现web服务器的功能,使得web服务器与应用客户端部署在一个进程中。当然,还可采用不同的开发语言开发应用客户端,实现web服务器的方式也不限于Jetty的方式,本发明实施例在此不作限制。
基于HTTP连接的拉起请求中,可包括本地主机地址及应用的标识信息。一个具体的HTTP请求的调用例子如下:
http://localhost?appserver=app1。
在上述例子中,localhost在计算机网络中表示本机地址,当然,localhost也可以用127.0.0.1或者本地主机的实际网络地址代替;appserver为表示应用的关键字,在实际的应用中,也可能采用其它的关键字;app1为要调用的应用的标识信息。
在现有技术中,web服务器模块还可具备处理socket连接的能力。本发明实施例的另一种具体的实现方式,当本发明实施例应用客户端的web服务器模块具备处理socket连接的能力时,单点登录控制子***也可通过websocket长连接向应用客户端发送拉起请求。
本发明实施例的再一种具体实现方式,如果单点登录子***所在的浏览器嵌入在一个具体的应用(例如,Java应用等)中,则单点登录子***可通过远程API调用函数向应用的客户顿发送拉起请求。
当然,也不排除其它拉起应该客户端的实现方式,本发明实施例在此不再赘述。
另外,应理解,本发明实施例中,单点登录控制子***的拉起请求也可用于调用B/S模式的应用。此时,appserver的赋值内容可以为B/S模式的应用的标识信息。单点登录调用B/S模式的应用的方法可参考现有技术,本发明实施例在此不再赘述。
203,应用客户端发送重定位请求,请求应用的ST信息。
另外,本发明实施例中,应用客户端还可包括一个SSO客户端模块。
由于拉起请求中不包含应用所需要的用户信息,在应用客户端启动后,应用客户端的SSO客户端模块可向单点登录控制子***所在的浏览器发送重定位请求,通过该浏览器向SSO服务器端请求应用的ST信息。
一种具体的实现方式,可通过HTTP连接发送重定位请求,具体内容如下:redirect=http://SSOServerIP/getST?service=http://localhost?appserver=app1。
其中,redirect表示重定位请求,SSOServerIP表示SSO服务器端的IP地址,getST表示向SSO服务器端获取ST票据,service=http://localhost?appserver=app1表示该ST票据是针对“http://localhost?appserver=app1”生成的,该ST票据生成后要返回给app1所指向的应用客户端。
另一种具体的实现方式,如果浏览器(或单点登录控制子***)是通过远程API调用函数向应用客户端发送拉起请求的,则应用客户端可通过远程API调用函数来传输重定位请求。
204,浏览器发送ST请求,请求应用的ST信息。
浏览器在接收到重定位请求后,可从浏览器的TGT提取到单点登录空子子***已登录用户的ST信息,并根据该ST信息和该重定位请求向SSO服务器端发送ST请求,向SSO服务器端请求应用的ST信息。
浏览器发送ST请求的一个具体例子如下所示:
http://SSOServerIP/getST?service=http://localhost?appserver=app1。
205,SSO服务器端反馈应用的ST信息。
SSO服务器端接收到ST请求后,可根据该ST请求,将应用的ST信息反馈给浏览器。应用的ST信息是SSO服务器端为应用生成的鉴权信息,通常为一串字符串,其内容从字符串上没有什么规律,且一次鉴权后即不再生效,使得浏览器跨进程传递ST的风险要远小于直接传递用户信息,从而保证***的安全。一个具体的例子,SSO服务器端反馈的ST信息如下所示:
st=lasdlfkj1#2k34j123j^$%^%
206,浏览器转发应用的ST信息。
浏览器根据ST请求得到SSO服务器端反馈的应用的ST信息后,则可根据重定位请求中携带的应用标识信息,将应用的ST信息转发给应用客户端。
浏览器转发应用的ST信息所采用的传输方式可与发送拉起请求的传输方式类似。
207,应用客户端发送会话建立请求,携带应用的ST信息。
应用客户端接收到ST信息后,可根据应用的ST信息向应用服务器端发送会话建立请求,请求建立会话。其中,该会话建立请求中可携带应用的ST信息,以便应用服务器端根据应用的ST信息进行鉴权操作。
208,应用服务器端发送鉴权请求。
应用服务器端接收到会话建立请求后,从中提取应用的ST信息,并基于应用的ST信息向SSO服务器端发送鉴权请求,请求校验应用的ST信息的合法性,以实现对应用客户端的鉴权。其中,该鉴权请求可携带该应用的ST信息。
209,SSO服务器端反馈ST鉴权结果。
SSO服务器端根据鉴权请求,对应用的ST信息进行鉴权,并反馈应用的ST信息的鉴权结果。
正常情况下,应用的ST信息可以通过鉴权,鉴权结果为表示ST信息有效的标识。
如果ST信息是伪造的,则ST信息的鉴权结果为表示ST信息无效的标识。
210,应用服务器端根据鉴权结果确定是否建立会话。
应用服务器端根据ST信息的鉴权结果,确定是否与应用客户顿建立会话。
如果鉴权结果为表示ST信息有效的标识,则对应用客户端的鉴权通过,建立会话,实现与应用客户端的业务通信。
如果鉴权结果为表示ST信息无效的标识,则对应用客户端的鉴权失败,向应用客户端反馈鉴权失败的标识。
本发明实施例中,通过向单点登录控制子***所在的浏览器中发送重定位请求以向SSO服务器端请求C/S模式应用的ST票据,根据该ST票据向C/S模式应用服务器端发送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高***的安全性能。
图3是本发明实施例异构应用单点登录***下单点登录方法的另一交互流程图。在图3所示的实施例中,异构应用单点登录***可包括单点登录控制子***、单点登录SSO服务器端、应用客户端、应用服务器端。其中,应用为C\S模式的应用,单点登录控制子***和应用客户端都在本地主机上。
另外,本发明实施例中,web服务器作为应用客户端以外的一个独立进程,驻留在本地主机的内存中。
301,在浏览器中打开单点登录控制子***并登录。
步骤301与图2的步骤201类似,本发明实施例在此不再赘述。
302,单点登录控制子***发送拉起请求,拉起应用客户端。
在浏览器打开的单点登录控制子***中,可向web服务器发送拉起请求,以通过网页(web)服务器拉起应用客户端。优选地,web服务器可根据单点登录控制子***发送的多个不同的拉起请求,分别拉起多个不同的应用客户端。本发明实施例中,以web服务器接收一个拉起请求拉起一个应用客户端为例,对本发明实施例的方法进行说明。
单点登录控制子***可通过多种方式向web服务器发送拉起请求,例如HTTP连接、socket连接、远程API调用函数等,本发明实施例在此不再赘述。
303,拉起应用客户端。
web服务器在接收到拉起请求后,根据拉起请求中的应用标识,拉起应用客户端。
304,应用客户端发送重定位请求,请求应用的ST信息。
305,浏览器发送ST请求,请求应用的ST信息。
306,SSO服务器端反馈应用的ST信息。
步骤304-306与图2的步骤203-205类似,本发明实施例在此不再赘述。
306,浏览器转发应用的ST信息。
浏览器根据ST请求得到SSO服务器端反馈的应用的ST信息后,可将应用的ST信息转发给web服务器。
307,web服务器转发应用的ST信息。
web服务器可将应用的ST信息,转发给应用客户端。
308,应用客户端发送会话建立请求,携带应用的ST信息。
309,应用服务器端发送鉴权请求。
310,SSO服务器端反馈ST鉴权结果。
311,应用服务器端根据鉴权结果确定是否建立会话。
步骤308-311与图2的步骤207-210类似,本发明实施例在此不再赘述。
本发明实施例中,通过web服务器接收拉起请求,通过向单点登录控制子***所在的浏览器中发送重定位请求以向SSO服务器端请求C/S模式应用的ST票据,再通过web服务器接收ST票据,并根据该ST票据向C/S模式应用服务器端发送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高***的安全性能。
图4是本发明实施例异构应用单点登录***下单点登录方法的交互流程图。在图4所示的实施例中,异构应用单点登录***可包括单点登录控制子***、单点登录SSO服务器端、服务管理模块、应用客户端、应用服务器端。其中,应用为C\S模式的应用,单点登录控制子***和应用客户端都在本地主机上。服务管理模块为本地主机上的应用服务,能够接收并处理HTTP消息,用于传递单点登录控制子***与应用客户端之间的通信信息或单点登录控制子***所在的浏览器与应用客户端之间的通信信息。
401,在浏览器中打开单点登录控制子***并登录。
本发明实施例中,单点登录控制子***为B/S模式的应用程序,用于管理异构应用单点登录***下包括B/S模式应用以及C/S模式应用的登录。
在浏览器中打开单点登录控制子***并登录后,浏览器中可呈现单点登录控制子***的主界面。此时,浏览器的TGT中,存储着单点登录控制子***已登录用户的标识信息。
402,单点登录控制子***发送拉起请求,请求拉起应用客户端。
在浏览器的单点登录控制子***中,向服务管理模块发送拉起请求,请求服务管理模块拉起应用客户端的进程/线程。
本发明实施例中,单点登录控制子***可采用HTTP连接、socket连接、远程API调用函数等向服务管理模块发送拉起请求,以通过服务管理模块拉起应用客户端的进程/线程。
403,服务管理模块拉起应用客户端。
本发明实施例中,服务管理模块可通过HTTP连接、socket连接或远程API调用函数拉起应用客户端。
例如,服务管理模块可以直接通过socket连接或远程API调用函数向应用客户端发送拉起请求。
又例如,当应用客户端包含web服务模块时,服务管理模块可通过HTTP连接向应用客户端603发送拉起请求。
又例如,当异构应用单点登录***包括web服务器,服务管理模块可通过HTTP连接向web服务器发送拉起请求,通过web服务器拉起应用客户端。
当然,服务管理模块还可能存在其它拉起应用客户端的具体实现方式,本发明实施例在此不作限制。
404,应用客户端指示发送重定位请求。
与图2的步骤203类似,由于拉起请求中不包含应用所需要的用户信息,在应用客户端启动后,应用客户端的SSO客户端模块需要向SSO服务器端请求应用的ST信息。
本发明实施例中,应用客户端可向服务管理模块发送重定位请求指示,用于指示服务管理模块向浏览器发送重定位请求,以向SSO服务器端请求应用的ST信息。
应用客户端可通过HTTP连接、socket连接、远程API调用函数等向服务管理模块发送信息。
405,服务管理模块发送重定位请求,请求应用的ST信息。
服务管理模块在接收到应用客户端的指示后,可向浏览器发送重定位请求,请求应用的ST信息,其具体实现方式与图2的步骤203中应用客户端向浏览器发送重定位请求的实现方式类似,本发明实施例在此不再赘述。
406,浏览器发送ST请求,请求应用的ST信息。
步骤406与图2的步骤204类似,本发明实施例在此不再赘述。
407,SSO服务器端反馈应用的ST信息。
步骤407与图2的步骤205类似,本发明实施例在此不再赘述。
408,浏览器转发应用的ST信息。
浏览器根据ST请求得到SSO服务器端反馈的应用的ST信息后,则可根据重定位请求,将应用的ST信息转发给服务管理模块。
409,服务管理模块转发应用的ST信息。
服务管理模块可将浏览器转发的应用的ST信息转发给应用客户端。
410,应用客户端发送会话建立请求,携带应用的ST信息。
411,应用服务器端发送鉴权请求。
412,SSO服务器端反馈鉴权结果。
413,应用服务器端根据鉴权确定是否建立会话。
步骤410-413与图2的步骤207-210类似,本发明实施例在此不再赘述。
本发明实施例中,通过向单点登录控制子***所在的浏览器中发送重定位请求以向SSO服务器端请求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模式应用的代价开销。
另外,本发明实施例中,如果应用客户端本身不具备web服务器的功能,还可在异构应用单点登录***中引入一个web服务器,用于接收发给应用客户端的消息,并将该消息传递给应用客户端。
图5是本发明实施例异构应用单点登录***下单点登录方法的交互流程图。在图5所示的实施例中,异构应用单点登录***可包括单点登录控制子***、单点登录SSO服务器端、服务管理子***服务器端、服务管理子***客户端、应用客户端、应用服务器端。其中,应用为C\S模式的应用,单点登录控制子***、服务管理子***客户端、应用客户端都在本地主机上。服务管理子***服务器端可以在本地主机上,也可以在本地主机以外的网络主机上,能够接收并处理HTTP消息,用于传递单点登录控制子***与应用客户端之间的通信信息或单点登录控制子***所在的浏览器与应用客户端之间的通信信息。
501,在浏览器中打开单点登录控制子***并登录。
本发明实施例中,单点登录控制子***为B/S模式的应用程序,用于管理异构应用单点登录***下包括B/S模式应用以及C/S模式应用的登录。
在浏览器中打开单点登录控制子***并登录后,浏览器中可呈现单点登录控制子***的主界面。此时,浏览器的TGT中,存储着单点登录控制子***已登录用户的标识信息。
502,单点登录控制子***发送拉起请求,请求拉起应用客户端。
在浏览器的单点登录控制子***中,向服务管理子***服务器端发送拉起请求,请求服务管理子***服务器端拉起应用客户端的进程/线程。
本发明实施例中,单点登录控制子***可采用HTTP连接或socket连接向服务管理子***服务器端发送拉起请求,以便服务管理子***服务器端通过服务管理子***客户端拉起应用客户端的进程/线程。
503,服务管理子***服务器端推送拉起请求。
服务管理子***服务器端可将拉起请求推送至服务管理子***客户端,指示服务管理子***客户端拉起应用客户端的进程/线程。
服务管理子***服务器端与服务管理子***客户端之间可采用多种方式进行通信,例如HTTP连接、socket连接、远程API调用函数等。
504,服务管理子***客户端拉起应用客户端。
本发明实施例中,服务管理子***客户端可通过HTTP连接、socket连接或远程API调用函数拉起应用客户端。
例如,服务管理子***客户端可以直接通过socket连接或远程API调用函数向应用客户端发送拉起请求。
又例如,当应用客户端包含web服务模块时,服务管理子***客户端可通过HTTP连接向应用客户端603发送拉起请求。
又例如,当异构应用单点登录***包括web服务器,服务管理子***客户端可通过HTTP连接向web服务器发送拉起请求,通过web服务器拉起应用客户端。
当然,服务管理子***客户端还可能存在其它拉起应用客户端的具体实现方式,本发明实施例在此不作限制。
505,应用客户端指示发送重定位请求。
与图2的步骤203类似,由于拉起请求中不包含应用所需要的用户信息,在应用客户端启动后,应用客户端的SSO客户端模块需要向SSO服务器端请求应用的ST信息。
本发明实施例中,应用客户端可向服务管理子***客户端发送重定位请求指示,用于指示服务管理子***客户端通过服务管理子***服务器端向浏览器发送重定位请求,以向SSO服务器端请求应用的ST信息。
应用客户端可通过HTTP连接、socket连接、远程API调用函数等向服务管理子***客户端发送信息。
506,服务管理子***客户端推送指示信息。
服务管理子***客户端向服务管理子***服务器端推送该重定位请求指示,指示服务管理子***服务器端向浏览器发送重定位请求。
507,服务管理子***服务器端发送重定位请求,请求应用的ST信息。
服务管理模块在接收到应用客户端的指示后,可向浏览器发送重定位请求,请求应用的ST信息,其具体实现方式与图2的步骤203中应用客户端向浏览器发送重定位请求的实现方式类似,本发明实施例在此不再赘述。
508,浏览器发送ST请求,请求应用的ST信息。
步骤508与图2的步骤204类似,本发明实施例在此不再赘述。
509,SSO服务器端反馈应用的ST信息。
步骤509与图2的步骤205类似,本发明实施例在此不再赘述。
510,浏览器转发应用的ST信息。
浏览器根据ST请求得到SSO服务器端反馈的应用的ST信息后,则可根据重定位请求,将应用的ST信息转发给服务管理子***服务器端。
511,服务管理子***服务器端转发应用的ST信息。
服务管理子***服务器端可将浏览器转发的应用的ST信息转发给服务管理子***客户端。
512,服务管理子***客户端转发应用的ST信息。
服务管理子***客户端可将服务管理子***服务器端转发的应用的ST信息转发给应用客户端。
513,应用客户端发送会话建立请求,携带应用的ST信息。
514,应用服务器端发送鉴权请求。
515,SSO服务器端反馈鉴权结果。
516,应用服务器端根据鉴权结果确定是否建立会话。
步骤513-516与图2的步骤207-210类似,本发明实施例在此不再赘述。
本发明实施例中,通过向单点登录控制子***所在的浏览器中发送重定位请求以向SSO服务器端请求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模式应用的代价开销。
另外,本发明实施例中,如果应用客户端本身不具备web服务器的功能,还可在异构应用单点登录***中引入一个web服务器,用于接收发给应用客户端的消息,并将该消息传递给应用客户端。
图6是本发明实施例异构应用单点登录***600的结构示意图。异构应用单点登录***600可包括单点登录控制子***601、SSO服务器端602、应用客户端603和应用服务器端604。其中,
单点登录控制子***601,用于在浏览器中打开并登录后,拉起应用客户端603进程。
应用客户端603,位于该浏览器所在的本地主机上,用于向该浏览器发送重定位请求。
其中,该重定位请求用于通过该浏览器向SSO服务器端602发送服务票据ST请求,该ST请求携带该应用的标识信息,该ST请求用于获取该应用的ST信息。
SSO服务器端602,用于根据该ST请求向该浏览器发送该应用的ST信息,以便该浏览器根据该重定位请求将该应用的ST信息发送给应用客户端603。
应用客户端603还用于接收该应用的ST信息,并根据该应用的ST信息向应用服务器端604发送会话建立请求。
其中,该会话建立请求携带该应用的ST信息。
应用服务器端604,用于根据该应用的ST信息向SSO服务器端602请求鉴权,并在鉴权成功后创建与应用客户端603的会话信息。
SSO服务器端602还用于对应用服务器端604发送的ST信息进行鉴权。
本发明实施例中,异构应用单点登录***600通过向单点登录控制子***所在的浏览器中发送重定位请求以向SSO服务器端请求C/S应用的ST票据,根据该ST票据向C/S模式应用服务器端发送会话建立请求,并在ST鉴权成功后建立会话,从而能够在B/S模式下支持C/S模式应用的单点登录,并能够避免直接传递用户信息标识带来的安全风险,提高***的安全性能。
可选地,作为一个实施例,如图7所示,应用客户端603可包含web服务模块6031,web服务模块6031用于接收发送给应用客户端603的消息,其中,应用客户端603通过web服务模块6031接收单点登录控制子***601及该浏览器直接或间接发送的消息。
进一步地,作为本实施例的一种具体实现方式,web服务模块6031能够接收基于超文本传输协议HTTP连接的消息或基于套接字socket连接的消息。
可选地,作为另一个实施例,如图8所示,异构应用单点登录***600还可包括web服务器608,web服务器608为独立于应用客户端603的进程/线程,web服务器608用于接收消息并转发给应用客户端603,其中,应用客户端603通过web服务器608接收单点登录控制子***601及该浏览器直接或间接发送的消息。
进一步地,作为本实施例的一种具体实现方式,该web服务器能够接收基于HTTP连接的消息或基于socket连接的消息。
可选地,应用客户端603还可包括SSO客户端模块,应用客户端603通过该SSO客户端模块向该浏览器发送该重定位请求。
可选地,作为一个实施例,如图9所示,异构应用单点登录***还可包括服务管理模块605,服务管理模块605为该本地主机上的应用服务,用于传递单点登录控制子***601与应用客户端603之间的通信信息或该浏览器与应用客户端603之间的通信信息,具体用于:接收单点登录控制子***601的应用拉起请求,并拉起应用客户端603的进程/线程;接收应用客户端603的重定位请求指示,并根据该重定位请求指示向该浏览器发送重定位请求,其中,该重定位请求指示用于指示该服务管理模块向该浏览器发送该重定位请求;接收该浏览器根据该重定位请求从SSO服务器端602获取并反馈的该应用的ST信息,并将该应用的ST信息发送给应用客户端603。本发明实施例中,通过在本地建立一个应用服务来传递单点登录控制子***/浏览器与应用客户端之间的通信,能够屏蔽C\S模式应用和B/S模式应用的拉起请求的服务地址(IP地址)的差异,因而能够在C\S模式应用转换成B/S模式应用后,无需对单点登录控制子***进行修改,从而减少C\S模式应用升级为B/S模式应用的代价开销。
进一步地,作为本实施例的一种具体实现方式,服务管理模块605可通过HTTP连接、socket连接或远程API调用函数向该应用客户端传递信息。例如,服务管理模块605可以直接通过socket连接或远程API调用函数向应用客户端603发送消息。或者,当应用客户端603包含web服务模块6031时,服务管理模块605可向应用客户端603发送HTTP连接来传递消息。或者,当异构应用单点登录***600包括web服务器608时,服务管理模块605可向web服务器608发送HTTP连接,通过web服务器608向应用客户端603传递消息。
可选地,作为另一个实施例,如图10所示,异构应用单点登录***600还可包括服务管理子***服务器端606和服务管理子***客户端607。服务管理子***服务器端606和服务管理子***客户端607用于传递单点登录控制子***601与应用客户端603之间的通信信息或该浏览器与应用客户端603之间的通信信息。具体地,服务管理子***服务器端606端用于接收单点登录控制子***601发送的应用拉起请求,并转发给服务管理子***客户端607,其中,该应用拉起请求用于请求拉起应用客户端603的进程/线程;服务管理子***客户端607用于根据该应用拉起请求拉起应用客户端603的进程/线程;服务管理子***客户端607还用于接收应用客户端603发送的重定位请求指示,并转发给服务管理子***服务器端606端,该重定位请求指示用于指示该服务管理子***向该浏览器发送该重定位请求;服务管理子***服务器端606端用于根据该重定位请求指示向该浏览器发送该重定位请求;服务管理子***服务器端606端还用于接收该浏览器根据该重定位请求从SSO服务器端602获取并反馈的该应用的ST信息,并转发给服务管理子***客户端607;服务管理子***客户端607还用于将该应用的ST信息转发给应用客户端603。本发明实施例中,在单点登录控制子***/浏览器与应用客户端之间的通信引入服务管理子***的服务器端和客户端,服务管理子***的服务器端通过本地主机上的服务管理子***的客户端与本地主机上的应用进行通信,能够屏蔽C\S模式应用和B/S模式应用的拉起请求的服务地址(IP地址)的差异,因而能够在C\S模式应用转换成B/S模式应用后,无需对单点登录控制子***进行修改,从而减少C\S模式应用升级为B/S模式应用的代价开销。
进一步地,作为本实施例的一种具体实现方式,服务管理子***客户端607可通过HTTP连接、socket连接或远程API调用函数向该应用客户端传递信息。例如,服务管理子***客户端607可以直接通过socket连接或远程API调用函数向应用客户端603发送消息。或者,当应用客户端603包含web服务模块6031时,服务管理子***客户端607可向应用客户端603发送HTTP连接来传递消息。或者,当异构应用单点登录***600包括web服务器608时,服务管理子***客户端607可向web服务器608发送HTTP连接,通过web服务器608向应用客户端603传递消息。
另外,异构应用单点登录***600还可执行图1的方法,并具备异构应用单点登录***在图1至图5所示实施例中的功能,具体实现可参考图1至图5所示的具体实施例,本发明实施例在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
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客户端模块向所述浏览器发送所述重定位请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410273322.3A CN104052746B (zh) | 2014-06-18 | 2014-06-18 | 异构应用单点登录***及其单点登录方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410273322.3A CN104052746B (zh) | 2014-06-18 | 2014-06-18 | 异构应用单点登录***及其单点登录方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104052746A true CN104052746A (zh) | 2014-09-17 |
CN104052746B CN104052746B (zh) | 2017-06-20 |
Family
ID=51505110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410273322.3A Active CN104052746B (zh) | 2014-06-18 | 2014-06-18 | 异构应用单点登录***及其单点登录方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104052746B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796408A (zh) * | 2015-03-25 | 2015-07-22 | 广州视睿电子科技有限公司 | 单点直播登录方法及单点直播登录装置 |
CN105592035A (zh) * | 2015-04-03 | 2016-05-18 | ***股份有限公司 | 一种用于多个应用***的单点登录方法 |
CN106331042A (zh) * | 2015-07-01 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 一种异构用户***的单点登录方法及其装置 |
CN106685949A (zh) * | 2016-12-24 | 2017-05-17 | 上海七牛信息技术有限公司 | 一种容器访问方法、装置以及*** |
CN106790063A (zh) * | 2016-12-20 | 2017-05-31 | 兴唐通信科技有限公司 | 一种异构web***单点登录的方法 |
CN106911714A (zh) * | 2017-04-05 | 2017-06-30 | 南京南瑞集团公司 | Android设备基于进程间通信的移动应用单点登录方法 |
CN109495486A (zh) * | 2018-11-30 | 2019-03-19 | 成都知道创宇信息技术有限公司 | 一种基于JWT的单页Web应用集成CAS的方法 |
CN109698828A (zh) * | 2018-12-21 | 2019-04-30 | 浪潮软件集团有限公司 | 一种用户认证的***及方法 |
CN110519296A (zh) * | 2019-09-17 | 2019-11-29 | 焦点科技股份有限公司 | 一种异构web***的单点登录与登出方法 |
CN111353142A (zh) * | 2019-02-15 | 2020-06-30 | 鸿合科技股份有限公司 | 一种用户信息共享方法及装置、电子设备 |
CN111736830A (zh) * | 2020-06-17 | 2020-10-02 | 浙江申跃信息科技有限公司 | 一种基于符号路径解析的页面集成方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159557A (zh) * | 2007-11-21 | 2008-04-09 | 华为技术有限公司 | 单点登录的方法、装置及*** |
CN101193027A (zh) * | 2006-11-28 | 2008-06-04 | 深圳市永兴元科技有限公司 | 一种整合异构***的单点登录***及方法 |
-
2014
- 2014-06-18 CN CN201410273322.3A patent/CN104052746B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101193027A (zh) * | 2006-11-28 | 2008-06-04 | 深圳市永兴元科技有限公司 | 一种整合异构***的单点登录***及方法 |
CN101159557A (zh) * | 2007-11-21 | 2008-04-09 | 华为技术有限公司 | 单点登录的方法、装置及*** |
Non-Patent Citations (2)
Title |
---|
郑伟: "多异构应用环境下的单点登录研究与设计", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
雷传锐: "CAS的跨平台安全单点登录服务的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑 》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104796408B (zh) * | 2015-03-25 | 2018-11-02 | 广州视睿电子科技有限公司 | 单点直播登录方法及单点直播登录装置 |
CN104796408A (zh) * | 2015-03-25 | 2015-07-22 | 广州视睿电子科技有限公司 | 单点直播登录方法及单点直播登录装置 |
CN105592035A (zh) * | 2015-04-03 | 2016-05-18 | ***股份有限公司 | 一种用于多个应用***的单点登录方法 |
CN106331042A (zh) * | 2015-07-01 | 2017-01-11 | 阿里巴巴集团控股有限公司 | 一种异构用户***的单点登录方法及其装置 |
CN106331042B (zh) * | 2015-07-01 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 一种异构用户***的单点登录方法及其装置 |
CN106790063B (zh) * | 2016-12-20 | 2020-07-17 | 兴唐通信科技有限公司 | 一种异构web***单点登录的方法 |
CN106790063A (zh) * | 2016-12-20 | 2017-05-31 | 兴唐通信科技有限公司 | 一种异构web***单点登录的方法 |
CN106685949A (zh) * | 2016-12-24 | 2017-05-17 | 上海七牛信息技术有限公司 | 一种容器访问方法、装置以及*** |
CN106911714A (zh) * | 2017-04-05 | 2017-06-30 | 南京南瑞集团公司 | Android设备基于进程间通信的移动应用单点登录方法 |
CN106911714B (zh) * | 2017-04-05 | 2020-06-19 | 南京南瑞集团公司 | Android设备基于进程间通信的移动应用单点登录方法 |
CN109495486A (zh) * | 2018-11-30 | 2019-03-19 | 成都知道创宇信息技术有限公司 | 一种基于JWT的单页Web应用集成CAS的方法 |
CN109495486B (zh) * | 2018-11-30 | 2020-12-22 | 成都知道创宇信息技术有限公司 | 一种基于JWT的单页Web应用集成CAS的方法 |
CN109698828A (zh) * | 2018-12-21 | 2019-04-30 | 浪潮软件集团有限公司 | 一种用户认证的***及方法 |
CN111353142A (zh) * | 2019-02-15 | 2020-06-30 | 鸿合科技股份有限公司 | 一种用户信息共享方法及装置、电子设备 |
CN110519296A (zh) * | 2019-09-17 | 2019-11-29 | 焦点科技股份有限公司 | 一种异构web***的单点登录与登出方法 |
CN110519296B (zh) * | 2019-09-17 | 2021-10-15 | 焦点科技股份有限公司 | 一种异构web***的单点登录与登出方法 |
CN111736830A (zh) * | 2020-06-17 | 2020-10-02 | 浙江申跃信息科技有限公司 | 一种基于符号路径解析的页面集成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104052746B (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104052746A (zh) | 异构应用单点登录***及其单点登录方法 | |
CN103139200B (zh) | 一种Web service单点登录的方法 | |
CN105337949B (zh) | 一种SSO认证方法、web服务器、认证中心和token校验中心 | |
CN103501344A (zh) | 多应用实现单点登录的方法及*** | |
US8689339B2 (en) | Method, system and apparatus for game data transmission | |
KR20190114023A (ko) | 패킷 기반 데이터 통신의 디바이스 식별자 의존적 오퍼레이션 프로세싱 | |
CN102638473A (zh) | 一种用户数据授权方法、装置及*** | |
CN104113551A (zh) | 一种平台授权方法、平台服务端及应用客户端和*** | |
CN104158802A (zh) | 一种平台授权方法、平台服务端及应用客户端和*** | |
CN101394371A (zh) | 用于实现聊天应用程序代理服务器的方法和*** | |
CN104335523A (zh) | 一种权限控制方法、客户端及服务器 | |
CN106470184A (zh) | 安全认证方法、装置及*** | |
CN102143131B (zh) | 用户注销方法及认证服务器 | |
CN109495486B (zh) | 一种基于JWT的单页Web应用集成CAS的方法 | |
CN109150800A (zh) | 一种登录访问方法、***和存储介质 | |
CN104168304A (zh) | Vdi环境下的单点登录***及方法 | |
CN104079611A (zh) | 用于防止跨站点请求伪造的方法、相关装置及*** | |
CN113411324B (zh) | 基于cas与第三方服务器实现登录认证的方法和*** | |
US20090129378A1 (en) | Surreptitious web server bias towards desired browsers | |
CN112825521A (zh) | 区块链应用可信身份管理方法、***、设备及存储介质 | |
CN105100068A (zh) | 一种实现单点登录的***及方法 | |
CN106657271A (zh) | 一种本地控件的调用方法和装置 | |
CN102194062B (zh) | 一种文稿***中异地登录的控制方法及装置 | |
KR101839049B1 (ko) | 서버단 세션 관리 방식 및 쿠키 정보 공유 방식을 병행 지원하는 싱글 사인온 인증 방법 | |
CN106470186B (zh) | 一种以跳转方式访问第三方资源的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |