一种移动应用单点登录方法及装置与流程

文档序号:11959960阅读:685来源:国知局
一种移动应用单点登录方法及装置与流程

本发明涉及单点登录领域,特别涉及一种移动应用单点登录方法及装置。



背景技术:

随着移动智能终端设备、手机越来越普及,促进了移动互联网平台下各种新兴业务的快速展开和应用。在时间不断的推移和移动互联网高歌猛进推进下,各个公司企业纷纷上马了自己的移动应用,单个公司的移动应用越来越多,很多应用本身没有实现自动登录功能,而且相同账号的移动应用也不能做到单点登录。

因此在使用这些应用时,并不方便。用户每次使用,都必须输入用户名称和用户密码,进行身份验证;而且应用不同,用户账号就不同,用户必须同时牢记多套用户名称和用户密码。特别是对于应用数目较多,用户数目也很多,这个问题就尤为突出。问题的原因并不是应用开发出现失误,而是缺少整体规划,缺乏统一的用户登录平台,使用单点登录(Single Sign On,SSO)技术可以解决以上这些问题。

SSO是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。应用系统能够识别已经登录过的用户,能自动判断当前用户是否登录过,从而自动完成登录功能。

传统意义上的SSO实现机制是当用户第一次访问应用系统A的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统B和应用系统C了。

由于移动互联网领域人员流动性很大,系统众多,因此没有更多时间维护改 造系统,在这种没有人力又需要实现自动登录功能的情况下,投入人力强行更改原系统的风险很大,成本也很高,通过使用伪SSO可以很好的解决这方面问题。



技术实现要素:

本发明的目的在于提供一种移动应用单点登录方法及装置,能更好地避免修改移动应用客户端和服务端源代码来实现单点登录。

根据本发明的一个方面,提供了一种移动应用单点登录方法,包括:

当首次进行移动应用单点登录时,终端经由伪单点登录服务器将携带用户登录信息、第一应用的包名、用户标识的第一登录验证请求发送至应用服务器,使所述伪单点登录服务器在所述应用服务器验证所述第一登录验证请求之后,获取伪密码;

当再次进行移动应用单点登录时,终端利用所述用户标识,从所述伪单点登录服务器获取所述伪密码,以登录第二应用;

终端利用所述用户登录信息和伪密码,进行第二应用的单点登录处理;

其中,所述第一应用和第二应用的用户登录信息相同,并通过所述用户标识相互关联。

优选地,终端经由伪单点登录服务器将携带用户登录信息、第一应用的包名、用户标识的第一登录验证请求发送至应用服务器之前,终端拦截用来首次进行移动应用单点登录的携带用户登录信息的请求,并在所述请求中加入第一应用的包名、用户标识,形成第一登录验证请求。

优选地,所述用户登录信息包括用户账号和密码,所述的终端利用所述用户登录信息和伪密码,进行第二应用的单点登录处理的步骤包括:

终端拦截用来再次进行移动应用单点登录的携带用户账号和伪密码的请求;

在所述请求中加入第二应用的包名、用户标识,形成第二登录验证请求,并发送至伪单点登录服务器,以供伪单点登录服务器将所述第二登录验证请求中的伪密码替换为密码后发送至应用服务器进行登录验证。

根据本发明的另一方面,提供了一种移动应用单点登录方法,包括:

当终端首次进行移动应用单点登录时,伪单点登录服务器将收到的携带用户登录信息、第一应用的包名和用户标识的第一登录验证请求发送至应用服务器;

在所述应用服务器验证所述第一登录验证请求之后,所述伪单点登录服务器获取伪密码,并保存所述登录信息、第一应用的包名、用户标识和伪密码;

当终端再次进行移动应用单点登录时,所述伪单点登录服务器通过接收的来自终端的第二应用的包名和用户标识,将其保存的伪密码发送至终端,以供终端利用所述伪密码,进行第二应用的单点登录处理;

其中,所述第一应用和第二应用的用户登录信息相同,并通过所述用户标识相互关联。

优选地,所述用户登录信息包括用户账号和密码,在所述伪单点登录服务器将其保存的伪密码发送至终端之后,所述伪单点登录服务器接收携带用户账号、伪密码、第二应用的包名和用户标识的第二登录验证请求,并将所述第二登录验证请求中的伪密码替换为密码后,发送至相应的应用服务器进行验证。

根据本发明的另一方面,提供了一种移动应用单点登录装置,包括:

客户端请求拦截器,用于当首次进行移动应用单点登录时,经由伪单点登录服务器将携带用户登录信息、第一应用的包名、用户标识的第一登录验证请求发送至应用服务器,使所述伪单点登录服务器在所述应用服务器验证所述第一登录验证请求之后,获取伪密码;

自动登录处理器,用于当再次进行移动应用单点登录时,利用所述用户标识,从所述伪单点登录服务器获取所述伪密码,并利用所述用户登录信息和伪密码,进行第二应用的单点登录处理;

其中,所述第一应用和第二应用的用户登录信息相同,并通过所述用户标识相互关联。

优选地,所述客户端请求拦截器经由伪单点登录服务器将携带用户登录信息、第一应用的包名、用户标识的第一登录验证请求发送至应用服务器之前,拦截用来首次进行移动应用单点登录的携带用户登录信息的请求,并在所述请求中加入第一应用的包名、用户标识,形成第一登录验证请求。

优选地,所述用户登录信息包括用户账号和密码,所述客户端请求拦截器拦截用来再次进行移动应用单点登录的携带用户账号和伪密码的请求,在所述请求中加入第二应用的包名、用户标识,形成第二登录验证请求,并发送至伪单点登录服务器,以供伪单点登录服务器将所述第二登录验证请求中的伪密码替换为密 码后发送至应用服务器进行登录验证。

根据本发明的另一方面,提供了一种移动应用单点登录装置,包括:

收发模块,用于当终端首次进行移动应用单点登录时,将收到的携带用户登录信息、第一应用的包名和用户标识的第一登录验证请求发送至应用服务器;

获取模块,用于在所述应用服务器验证所述第一登录验证请求之后,获取伪密码,并保存所述用户登录信息、第一应用的包名、用户标识和伪密码;

处理模块,用于当终端再次进行移动应用单点登录时,通过接收的来自终端的第二应用的包名和用户标识,将其保存的伪密码经由所述收发模块发送至终端,以供终端利用所述伪密码,进行第二应用的单点登录处理;

其中,所述第一应用和第二应用的用户登录信息均相同,并通过所述用户标识相互关联。

优选地,所述用户登录信息包括用户账号和密码,在将所述伪密码发送至终端之后,所述处理模块经由所述收发模块接收携带用户账号、伪密码、第二应用的包名和用户标识的第二登录验证请求,并将所述第二登录验证请求中的伪密码替换为密码后,经由所述收发模块发送至相应的应用服务器进行登录验证。

与现有技术相比较,本发明的有益效果在于:

本发明不需要改动应用的客户端和服务端源代码,就能实现“一次登录,多次使用”的功能,避免用户多次输入用户名和密码等用户登录信息的麻烦,也可以减少应用再次开发带来的成本和风险。

附图说明

图1是本发明实施例提供的移动应用单点登录第一方法原理框图;

图2是本发明实施例提供的移动应用单点登录第一装置框图;

图3是本发明实施例提供的移动应用单点登录第二方法原理框图;

图4是本发明实施例提供的移动应用单点登录第二装置框图;

图5是本发明实施例提供的移动应用单点登录流程图;

图6是本发明实施例提供的加壳流程图。

具体实施方式

以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1是本发明实施例提供的移动应用单点登录第一方法原理框图,如图1所示,步骤包括:

步骤S101:当首次进行移动应用单点登录时,终端经由伪单点登录服务器将携带用户登录信息(包括用户账号和密码)、第一应用的包名、用户标识的第一登录验证请求发送至应用服务器,使所述伪单点登录服务器在所述应用服务器验证所述第一登录验证请求之后,获取伪密码。

终端经由伪单点登录服务器将携带用户登录信息、第一应用的包名、用户标识的第一登录验证请求发送至应用服务器之前,终端拦截用来首次进行移动应用单点登录的携带用户登录信息的请求,并在所述请求中加入第一应用的包名、用户标识,形成第一登录验证请求。

步骤S102:当再次进行移动应用单点登录时,终端利用所述用户标识,从所述伪单点登录服务器获取所述伪密码,以自动登录第二应用。

步骤S103:终端利用所述用户登录信息和伪密码,进行第二应用的单点登录处理。

终端模拟用户输入用户账号和伪密码后,生成用来再次进行移动应用单点登录的携带用户账号和伪密码的请求,终端拦截所述请求,在所述请求中加入第二应用的包名、用户标识,形成第二登录验证请求,并发送至伪单点登录服务器,以供伪单点登录服务器将所述第二登录验证请求中的伪密码替换为密码后发送至应用服务器进行登录验证。

其中,所述第一应用和第二应用的用户登录信息相同,并通过所述用户标识相互关联。也就是说,一个用户标识可以与多个具有相同用户账号和密码的移动应用相关联,这样即便所述第二应用是首次登录,也可以实现自动登录,而无需用户再次手动输入用户账号和密码,实现同账号的多个移动应用的单点登录。

需要说明的是,上述步骤S101和步骤S102中的终端可以是同一终端,也可以是不同终端,当两个终端不同时,实现跨终端的应用单点登录。

综上,本发明具体的使用场景是在不修改原系统源代码的情况下实现应用本身的单点登录功能、同账号的多个移动应用的单点登录、跨终端的应用单点登录。

图2是本发明实施例提供的移动应用单点登录第一装置框图,如图2所示,包括设置在移动终端侧的客户端请求拦截器11和自动登录处理器12。

客户端请求拦截器11用于当首次进行移动应用单点登录时,经由伪单点登录服务器将携带用户登录信息(包括用户账号和密码)、第一应用的包名、用户标识的第一登录验证请求发送至应用服务器,使所述伪单点登录服务器在所述应用服务器验证所述第一登录验证请求之后,获取伪密码,并保存所述用户账号、密码、第一应用的包名、用户标识和伪用户。

进一步地,客户端请求拦截器11经由伪单点登录服务器将携带用户登录信息、第一应用的包名、用户标识的第一登录验证请求发送至应用服务器之前,拦截用来首次进行移动应用单点登录的携带用户登录信息的请求,并在所述请求中加入第一应用的包名、用户标识,形成第一登录验证请求。

自动登录处理器12用于当再次进行移动应用单点登录时,利用所述用户标识,从所述伪单点登录服务器获取所述伪密码,并利用所述用户登录信息和伪密码,进行第二应用的单点登录处理。具体地说,自动登录处理器12自动模拟用户输入操作填写所获取的用户账号和伪密码,并发出用来再次进行移动应用单点登录的携带用户账号和伪密码的请求,此时客户端请求拦截器11拦截请求,在所述请求中加入第二应用的包名、用户标识,形成第二登录验证请求,并发送至伪单点登录服务器,以供伪单点登录服务器将所述第二登录验证请求中的伪密码替换为密码后发送至应用服务器进行登录验证。

上述第一应用和第二应用具有相同用户账号和密码,并与同一用户标识相关联,从而实现应用本身的单点登录功能、同账号的多个移动应用的单点登录、跨终端的应用单点登录。

图3是本发明实施例提供的移动应用单点登录第二方法原理框图,如图3所示,步骤包括:

步骤S201:当终端首次进行移动应用单点登录时,伪单点登录服务器将收到的携带用户登录信息(包括用户账号和密码)、第一应用的包名和用户标识的第一登录验证请求发送至应用服务器。

步骤S202:在所述应用服务器验证所述第一登录验证请求之后,所述伪单点登录服务器获取伪密码,并保存所述用户登录信息、第一应用的包名、用户标 识和伪密码。

步骤S203:当终端再次进行移动应用单点登录时,所述伪单点登录服务器通过接收的第二应用的包名和用户标识,将其保存的伪密码发送至终端,以供终端利用所述伪密码,进行第二应用的单点登录处理。

其中,所述第一应用和第二应用的用户登录信息相同,并通过所述用户标识相互关联。

在所述伪单点登录服务器将其保存的伪密码发送至终端之后,所述伪单点登录服务器接收携带用户账号、伪密码、第二应用的包名和用户标识的第二登录验证请求,并将所述第二登录验证请求中的伪密码替换为密码后,发送至相应的应用服务器进行验证。在验证结束后,将校验结果通过伪单点登录服务器返回给终端。

图4是本发明实施例提供的移动应用单点登录第二装置框图,如图4所示,包括设置在伪单点登录服务器上的收发模块21、获取模块22、处理模块23。所述伪单点登录服务器设置在终端和应用服务器之间。

收发模块21用于当终端首次进行移动应用单点登录时,将收到的携带用户登录信息(包括用户账号和密码)、第一应用的包名和用户标识的第一登录验证请求发送至应用服务器。具体地说,收发模块21携带用户账号、密码、用户标识、第一应用的包名的第一登录验证请求发送至应用服务器,由应用服务器对用户身份进行校验,并在校验结束后,将校验结果返回至终端。

获取模块22用于在所述应用服务器验证所述第一登录验证请求之后,获取伪密码,并保存所述用户登录信息、第一应用的包名、用户标识和伪密码。其中,获取模块22可以在确认所述第一登录验证请求通过验证后自动生成伪密码,作为替代方案,也可以预先配置好伪密码。

处理模块23用于当终端再次进行移动应用单点登录时,通过接收的来自终端的第二应用的包名和用户标识,将其保存的伪密码经由所述收发模块21发送至终端,以供终端利用所述伪密码,进行第二应用的单点登录处理。在将所述伪密码发送至终端之后,所述处理模块23经由所述收发模块接收携带用户账号、伪密码、第二应用的包名和用户标识的第二登录验证请求,并将所述第二登录验证请求中的伪密码替换为密码后,经由所述收发模块21发送至相应的应用服务 器进行登录验证。

其中,所述第一应用和第二应用的用户登录信息账号和密码均相同,并通过所述用户标识相互关联。

图1至图4可以采用给应用加壳的方式实现,具体包括四个部分:加壳实现、移动设备管理(MDM)管理器、壳代码工程功能、伪SSO服务器部分。

一、加壳实现

需要伪单点登录功能的APK应用,采用加壳技术,将伪单点登录的壳代码融入到应用APK中,使得用户在使用加壳后的APK应用的时候,必须先经过伪单点登录的控制系统才能使用应用的后续功能。

加壳采用ApkTool工具首先反编译原始的APK,然后合并伪SSO壳代码及资源到反编译的原始APK中,包括处理AndroidManifest.xml文件、合并string.xml等资源文件,再使用ANT脚本工具将合并后的工程重新打包成APK。

二、MDM管理器

MDM管理器应用用于产生唯一的用户标识,用于跨终端的单点登录实现,如果单终端的单点登录可以不使用MDM管理器,只需要使用设备唯一的移动设备国际身份码(International Mobile Equipment Identity,IMEI)或MAC地址作为唯一标识。

MDM管理器提供AIDL服务,当用户登录MDM管理器应用时产生唯一的用户标识,当打开关联的加壳后的应用时,从AIDL服务中取得此唯一的用户标识登录,携带此用户标识到伪SSO服务器;后续在另一个设备上用同一账户登录MDM管理器,再登录关联的加壳后的应用时,从MDM管理器的AIDL服务取到唯一的用户标识传到伪SSO服务器取到伪登录信息,实现自动登录。

三、壳代码工程功能

壳代码工程实现两部分功能,即客户端请求拦截器和自动登录处理器的功能。

1、客户端请求拦截器

要实现伪SSO功能,就必须能够拦截系统的登录请求,企业应用的请求一般是采用HTTP协议,因此可以在登录请求中添加设备信息(IMEI、MAC地址)、应用包名信息,然后携带这些信息引导到伪SSO服务器。

此处采用代理拦截技术来实现,代理拦截技术是基于代理服务器实现的。通过更改应用默认的代理选择器,来引导应用的登录请求首先转到自身的拦截器,添加额外的设备、用户标识和应用包名信息后,转发请求到伪SSO服务器。

2、自动登录处理器

自动登录处理器从伪SSO服务器取得已经登录过的用户名和伪密码,并且把所取到的用户名和伪密码自动的填充到对应登录界面的输入框中,然后自动进行登录。

四、伪SSO服务器

伪SSO服务器配置需要自动登录应用的信息,包括应用包名、登录url、请求消息格式、用户名和密码的标识字段、伪密码、响应消息格式、登录是否成功的标识以及哪些应用属于关联应用(使用相同的用户名和密码),以便能够正确解析登录请求,并转发请求到真正的应用认证服务器,当应用服务器告知认证成功后,保存登录用户名、密码、包名、标记等信息,为实现自动登录准备信息数据。

五、登录

安装加壳后的应用并启动,如果用户没有登录过应用,那么手动输入用户名和密码进行登录,如果已经登录过本应用或其它相关联的应用,壳代码工程的自动登录处理器的控制模块就会从伪SSO服务器获取用户名和伪密码,转到登录页面时,自动输入用户名、伪密码等信息,实现自动登录。

可见本发明不是通过统一的ticket来验证用户的合法性,而是当用户第一次访问系统时,将用户的登录信息记录到统一的用户管理平台,当用户以后再次访问本系统或其它相关系统时从用户平台取得用户的登录信息,模拟用户输入用户登录信息,自动进行登录。

图5是本发明实施例提供的移动应用单点登录流程图,包括以下步骤:

步骤1.1:当用户第一次访问应用系统1的时候,因为还没有登录,用户通过登录界面进行登录;

步骤1.2:拦截登录请求,携带唯一标识(imei、mac或其它标识)、应用包名,引导用户登录请求到伪SSO服务器。

步骤1.3:伪SSO服务器引导登录请求到应用服务器的认证系统进行身份校 验。

步骤1.4:应用服务器返回校验结果,例如通过校验。

步骤1.5:伪SSO服务器保存用户的登录信息。

步骤2.1:用户访问此应用或者别的相关应用,例如应用系统2。

步骤2.2:将应用唯一标识(imei、mac或其它标识)、应用包名带上,发送至伪SSO服务器,以获取用户账号和伪密码。

步骤2.3:伪SSO服务器根据唯一标识获取伪密码。

步骤2.4:将伪密码发送至终端,转到登录界面时,自动模拟用户填上取得的用户账号和伪密码,并自动登录。

步骤2.5:当引导登录请求到伪SSO服务器后,将伪密码替换为真正的密码;

步骤2.6:转发请求到应用服务器的认证系统进行校验,检查用户和真正的密码的合法性。

步骤2.7:应用服务器返回校验结果,例如通过效验,这样用户就可以在不用手动登录的情况下访问应用系统2和应用系统3了。

图6是本发明实施例提供的加壳流程图,如图6所示,包括以下步骤:

步骤S301:加壳开始。

步骤S302:APKTool反编译原始的APK文件。

步骤S303:拷贝伪SSO壳工程到目标目录。

步骤S304:合并伪SSO工程的AndroidManifest.xml和原始APK的AndroidManifest.xml,除了应用名称修改为伪SSO壳的应用名称之外,其它的应用信息修改为原始APK的信息,入口activity修改为伪SSO壳的activity。

步骤S305:合并伪SSO工程和解压后的原始APK资源文件

步骤S306:打包合并后的目录为加壳后APK。

步骤S307:加壳结束。

本发明除了可以支持单应用的伪单点登录,也可以支持同账号多应用的伪单点登录和跨终端的伪单点登录。

同账号多应用的伪单点登录需要在伪SSO服务器测配置哪些应用属于同一个系统,只要其中的一个应用已经登录过,其它的应用再启动后就可以根据客户端 端应用包名和唯一标识信息、伪SSO服务端配置信息,取到其它应用已经登录过得的登录账号和伪密码进行自动登录。

跨终端的伪单点登录使用MDM管理器应用实现,用户先登录此管理器产生唯一标记信息,当在一个设备上启动容器里面的某一个应用登录时,传递此标记信息、和应用包名到伪SSO服务器保存登录的用户名和密码,当在另一个设备上用同一个账号登录容器并启动应用时,根据客户端端应用报名、标记信息等、伪SSO服务端配置信息,取到应用的登录账号和伪密码进行自动登录。.

综上所述,本发明具有以下技术效果:

1、移动互联网领域人员流动性很大,原来应用开发、设计等人员可能已经离职、系统众多,也没有更多时间维护改造系统,在这种没有人力情况下又需要实现自动登录功能,更改原来的系统新进员工又不是很熟悉的状况下,强行修改风险很大,又要投入人力熟悉原来的代码和流程,改造成本巨大,通过使用伪SSO可以很好的解决这方面问题。

2、采用本发明,首先使用简单,只需要提供终端应用安装包,就可以为应用添加伪SSO壳,无需修改第三方的源码,结合伪SSO服务器就可以实现单点登录功能,节省企业成本和降低应用二次开发带来的潜在风险。

3、用户使用加壳后的应用时,只需要手动登录一次,以后就可以自动登录。用户不再需要每次手动输入用户名称和用户密码,伪SSO改善了用户使用应用系统的体验。

尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1