一种接口加密数据传输的单点登录方法与流程

文档序号:20875605发布日期:2020-05-26 16:28阅读:313来源:国知局
一种接口加密数据传输的单点登录方法与流程

本发明涉及数据传输技术领域,具体涉及一种接口加密数据传输的单点登录方法。



背景技术:

随着公司的快速发展壮大,各个系统如雨后春笋般拔地而起。每个系统都有自己独立的用户以及权限管理系统,即使用户和密码相同,登录不同的系统也需要多次登录。这样既影响了用户的工作效率也不利于企业资源的整合。因此把各个系统进行统一的整合,实现一次登录处处访问是目前比较流行的企业整合方案之一,也就是单点登录sso。

现行基于cas单点登录方案主要有以下几点:1、大多集中在互通网段的系统集成,主要为cas流程上的改造,内外网不能通信的情况下的单点登录极少有所涉及。2、对于cas接口改造,大多采用https加密传输甚至是明文传输。3、公用一个单点登录的页面。

现行的基于cas单点登录方案的缺点如下:1、网络不通的情况不能集成。2、对于接口的改造大多采用https安全传输,但是https加密门槛较高,需要配置安全证书,配置比较繁琐且每年需要交一定的费用。3、单点登录共用一个登录页面,不能满足子系统的独特性。



技术实现要素:

本发明主要解决在内外网环境下进行单点登录,并对cas框架进行改造,构建一套安全算法,实现接口的安全性数据传输,并保留子系统认证的一些独特性,本发明提供一种接口加密数据传输的单点登录方法。

本发明的技术方案是:

本发明技术方案提供一种接口加密数据传输的单点登录方法,包括如下步骤:

s1:客户端接收用户发起的访问请求并判断该用户是否已经登录,若是,执行步骤s5;若否,执行步骤s2;

s2:客户端将接收的请求信息重定向到sso服务器进行单点登录,登录完成后客户端接收sso服务器返回的用户名;

s3:客户端根据接收的用户名搜索本地数据库确定是否存在此用户,若是,执行步骤s5;若否,执行步骤s4;

s4:客户端对sso服务器接口发起用户数据抽取的操作并接收sso服务器返回的数据;

s5:客户端根据接收的访问请求输出数据。

进一步的,所述的步骤s1之前还包括步骤s01:

s01:在dmz区域部署sso服务器并在内外网分别部署客户端,每个客户端设有一个唯一的客户端id。

进一步的,所述的步骤s01中,内外网客户端之间进行物理隔离不进行相互通信且内外网客户端分别主动访问dmz区域sso服务器。部署sso服务器到dmz区域,客户端主动访问sso服务器。

进一步的,所述的步骤s2中,sso服务器端进行单点登录的步骤包括:

s21:sso服务器根据客户端的ip和端口显示不同的登录页面;

s22:sso服务器验证通过客户端输入的用户名、密码登录成功后同时生成token,sso服务器将携带token的信息重定向到客户端,客户端将接收到的token发送到sso服务器;

s23:sso服务器接收客户端发来的token进行验证,验证成功后,sso服务器返回用户名到客户端。

sso服务器根据客户端的ip、端口信息显示不同登录页。登录成功后,sso服务器返回客户端登录用户名,如果用户名不存在,客户端采用设定的加密算法调用sso服务器的接口获取此用户的全量信息。

进一步的,所述的步骤s4具体包括:

s41:客户端随机生成设定位数的数字作为aes密钥;

s42:客户端使用生成的aes密钥对接口参数进行加密;

s43:客户端将加密后生成的加密数据转码后传递给sso服务器进行处理;

s44:客户端接收sso服务器返回的数据并将接收到的数据用生成的aes密钥进行解码得到所需要的数据。

进一步的,所述的步骤s41之后还包括:

s41-1:sso服务器生成rsa公钥并用生成的rsa公钥对aes密钥和客户端id进行数字签名。

进一步的,所述的步骤s43中的加密数据包括步骤s42中的接口参数加密后的密文和步骤s41-1中数字签名后的签名数据。

进一步的,所述的步骤s43中,sso服务器对接收到的加密数据进行处理的具体步骤包括:

s431:sso服务器用ras公钥对签名数据进行解密得到aes密钥和客户端id。

s432:sso服务器搜索本地数据库,验证是否存在请求的客户端id,若不存在,则调用接口失败;若存在,执行步骤s433:

s433:sso服务器用步骤s431中解密得到的aes密钥对接收到的步骤s42中的密文进行解密,得到接口参数;

s434:sso服务器利用接口参数搜索数据库,获取返回数据;

s435:sso服务器用步骤s431中解密得到的aes密钥对返回数据进性加密,将加密数据转码传递给客户端。

从以上技术方案可以看出,本发明具有以下优点:保留了客户端的登录个性化,同时设计了加密算法保证数据的同时双向加密安全传输。填补涉及内外网的单点登录方案,改善了现有单点登录只能有一个登录页面的情况,保证加密安全的前提下,减少了加密成本和加密复杂度。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的单点登录部署图。

图2是本发明实施例提供的接口加密数据传输的单点登录方法的示意性流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

实施例一

如图2所示,本发明技术方案提供一种接口加密数据传输的单点登录方法,包括如下步骤:

s1:客户端接收用户发起的访问请求并判断该用户是否已经登录,若是,执行步骤s5;若否,执行步骤s2;

如图1所示,本实施例中,所述的步骤s1之前还包括步骤:在dmz区域部署sso服务器并在内外网分别部署客户端,每个客户端设有一个唯一的客户端id。内外网客户端之间进行物理隔离不进行相互通信且内外网客户端分别主动访问dmz区域sso服务器。部署sso服务器到dmz区域,客户端主动访问sso服务器。

s2:客户端将接收的请求信息重定向到sso服务器进行单点登录,登录完成后客户端接收sso服务器返回的用户名;针对步骤s2单点登录过程如下:

用户访问client受保护的资源,如果没有登录,则重定向到ssoserver端。ssoserver根据client的ip和端口显示不同的登录页面,保持了一定的子系统的独特性。ssoserver验证用户名、密码登录成功后,重定向到client,并带上ssoserver生成的token;client拿到token后去ssoserver进行验证,确认token的真实性。验证成功后,ssoserver返回登录用户名。

s3:客户端根据接收的用户名搜索本地数据库确定是否存在此用户,若是,执行步骤s5;若否,执行步骤s4;

s4:客户端对sso服务器接口发起用户数据抽取的操作并接收sso服务器返回的数据;

s5:客户端根据接收的访问请求输出数据。

实施例二

本发明技术方案提供一种接口加密数据传输的单点登录方法,包括如下步骤:

s1:客户端接收用户发起的访问请求并判断该用户是否已经登录,若是,执行步骤s5;若否,执行步骤s2;

本实施例中,所述的步骤s1之前还包括步骤:在dmz区域部署sso服务器并在内外网分别部署客户端,每个客户端设有一个唯一的客户端id。内外网客户端之间进行物理隔离不进行相互通信且内外网客户端分别主动访问dmz区域sso服务器。部署sso服务器到dmz区域,客户端主动访问sso服务器。

s2:客户端将接收的请求信息重定向到sso服务器进行单点登录,登录完成后客户端接收sso服务器返回的用户名;

本实施例中,所述的步骤s2中,sso服务器端进行单点登录的步骤包括:

s21:sso服务器根据客户端的ip和端口显示不同的登录页面;

s22:sso服务器验证通过客户端输入的用户名、密码登录成功后同时生成token,sso服务器将携带token的信息重定向到客户端,客户端将接收到的token发送到sso服务器;

s23:sso服务器接收客户端发来的token进行验证,验证成功后,sso服务器返回用户名到客户端。

sso服务器根据客户端的ip、端口信息显示不同登录页。登录成功后,sso服务器返回客户端登录用户名,如果用户名不存在,客户端采用设定的加密算法调用sso服务器的接口获取此用户的全量信息。

s3:客户端根据接收的用户名搜索本地数据库确定是否存在此用户,若是,执行步骤s5;若否,执行步骤s4;

s4:客户端对sso服务器接口发起用户数据抽取的操作并接收sso服务器返回的数据;

所述的步骤s4具体包括:

s41:客户端随机生成设定位数的数字作为aes密钥;所述的步骤s41之后还包括:

s41-1:sso服务器生成rsa公钥并用生成的rsa公钥对aes密钥和客户端id进行数字签名;

s42:客户端使用生成的aes密钥对接口参数进行加密;

s43:客户端将加密后生成的加密数据转码后传递给sso服务器进行处理;所述的步骤s43中的加密数据包括步骤s42中的接口参数加密后的密文和步骤s41-1中数字签名后的签名数据;

本实施例中,所述的步骤s43中,sso服务器对接收到的加密数据进行处理的具体步骤包括:

s431:sso服务器用ras公钥对签名数据进行解密得到aes密钥和客户端id。

s432:sso服务器搜索本地数据库,验证是否存在请求的客户端id,若不存在,则调用接口失败;若存在,执行步骤s433:

s433:sso服务器用步骤s431中解密得到的aes密钥对接收到的步骤s42中的密文进行解密,得到接口参数;

s434:sso服务器利用接口参数搜索数据库,获取返回数据;

s435:sso服务器用步骤s431中解密得到的aes密钥对返回数据进性加密,将加密数据转码传递给客户端。

s44:客户端接收sso服务器返回的数据并将接收到的数据用生成的aes密钥进行解码得到所需要的数据。总的来说,本步骤中,抽取用户数据加密流程:client随机生成32位的数字作为aes密钥,使用rsa公钥对aes密钥和clientsystemid进性数字签名。使用生成的aes密钥对接口参数加密。将数字签名的签名数据以及几口参数加密的数据用base64转码后传递给ssoserver;ssoserver接收到参数加密数据后,首先用ras公钥对签名数据进行解密得到aes密钥和clientsystemid,搜索本地数据库,验签是否存在请求的clientsystemid,如果不存在,则调用接口失败;如果存在,则用上述解密的到的aes密钥对加密的数据进性解密,得到接口参数。利用接口参数搜索数据库,获取返回数据。并用解密的到的aes密钥对返回数据进性加密。加密数据base64转码传递给client。client用生成的aes密钥对返回数据进行解码,得到需要的数据。

s5:客户端根据接收的访问请求输出数据。

本实施例基于java编程语言,使用themyleaf+bootstrap+springboot+spring+jdbctemplate+rsa+aes以及cas框架实现一整套单点登录系统。主要实现的功能点为:把企业内外网系统整合在一起,实现内外网系统单点登录。改造cas框架并设计一套安全的加密算法,实现子系统安全抽取登录域用户信息并且保留原系统的独特性。表1为本发明中的中英文对照表。

表1

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

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