一种SSLVPN的IP接入方法及装置与流程

文档序号:25992097发布日期:2021-07-23 21:04阅读:495来源:国知局
一种SSL VPN的IP接入方法及装置与流程

本申请涉及通信领域,特别涉及一种sslvpn的ip接入方法及装置。



背景技术:

为了给用户远程访问内部网络提供安全保证,可以采用以https(hypertexttransferprotocoloversecuresocketlayer,超文本传输安全协议)为基础的sslvpn技术进行远程访问。sslvpn是利用ssl(securesocketslayer安全套接字)协议提供的基于证书的身份认证、数据加密和消息完整性验证机制等的vpn(virtualprivatenetwork,虚拟专用网络)技术。在通过sslvpn远程访问内部网络资源时,有三种常用的接入方式,分别为web接入方式,tcp接入方式以及ip接入方式。

在使用sslvpn的ip接入方式访问内部网络资源的过程中,当用户启动浏览器登录时,需要在浏览器上安装插件,以控制sslvpn客户端软件的启动、关闭以及浏览器中的sslvpn页面与客户端的消息通讯。

但是不同的浏览器与插件之间存在兼容性问题,需要针对各个浏览器定制浏览器插件,工作量较大。因此,实现一种可以在不同浏览器间通用的sslvpn的ip接入方法,以降低研发工作量是有必要的。



技术实现要素:

本申请公开了一种sslvpn的ip接入方法及装置,以实现在不同浏览器间通用,以降低研发工作量。

根据本申请实施例的第一方面,提供一种sslvpn的ip接入方法,该方法应用于终端设备上的浏览器,包括:

在以ip接入方式访问sslvpn服务端资源的过程中,当接收到sslvpn网关返回的认证成功信息时,所述认证成功信息至少包括sslvpn网关ip地址和sslvpn认证成功标识,则向终端设备上的指定端口发送websocket连接建立请求消息,所述指定端口为sslvpn客户端在本设备上运行websocket服务的端口,所述websocket连接用于和sslvpn客户端进行通信;

若在指定时间内接收到sslvpn客户端通过所述指定端口返回的websocket连接建立响应消息,则确定所述websocket连接建立成功,通过该websocket连接将所述认证成功信息发送给sslvpn客户端;

当检测到外部输入的启动sslvpn的指令时,通过所述websocket连接向sslvpn客户端发送启动命令消息,以控制sslvpn客户端依据所述认证成功信息与sslvpn网关建立连接并访问sslvpn服务端资源。

根据本申请实施例的第二方面,提供一种sslvpn的ip接入方法,该方法应用于终端设备上的sslvpn客户端,包括:

在接收到本设备上浏览器向指定端口发送的websocket连接建立请求消息时,所述指定端口为sslvpn客户端在本设备上运行websocket服务的端口,通过所述指定端口向所述浏览器返回websocket连接建立响应消息,以建立websocket连接,所述websocket连接用于和浏览器进行通信;

接收并保存所述浏览器通过websocket连接发送的认证成功信息,所述认证成功信息至少包括sslvpn网关ip地址和sslvpn认证成功标识;

当接收到所述浏览器通过websocket连接发送的启动命令消息时,依据所述认证成功信息与sslvpn网关建立连接,以访问sslvpn服务端资源。

根据本申请实施例的第三方面,提供一种sslvpn的ip接入装置,该装置应用于终端设备上的浏览器,包括:

websocket连接建立单元,用于在以ip接入方式访问sslvpn服务端资源的过程中,当接收到sslvpn网关返回的认证成功信息时,所述认证成功信息至少包括sslvpn网关ip地址和sslvpn认证成功标识,则向终端设备上的指定端口发送websocket连接建立请求消息,所述指定端口为sslvpn客户端在本设备上运行websocket服务的端口,所述websocket连接用于和sslvpn客户端进行通信;

认证成功信息发送单元,用于若在指定时间内接收到sslvpn客户端通过所述指定端口返回的websocket连接建立响应消息,则确定所述websocket连接建立成功,通过该websocket连接将所述认证成功信息发送给sslvpn客户端;

sslvpn客户端控制单元,用于当检测到外部输入的启动sslvpn的指令时,通过所述websocket连接向sslvpn客户端发送启动命令消息,以控制sslvpn客户端依据所述认证成功信息与sslvpn网关建立连接并访问sslvpn服务端资源。

根据本申请实施例的第四方面,提供一种sslvpn的ip接入装置,该装置应用于终端设备上的sslvpn客户端,包括:

websocket连接建立单元,用于在接收到本设备上浏览器向指定端口发送的websocket连接建立请求消息时,所述指定端口为sslvpn客户端在本设备上运行websocket服务的端口,通过所述指定端口向所述浏览器返回websocket连接建立响应消息,以建立websocket连接,所述websocket连接用于和浏览器进行通信;

认证成功信息保存单元,用于接收并保存所述浏览器通过websocket连接发送的认证成功信息,所述认证成功信息至少包括sslvpn网关ip地址和sslvpn认证成功标识;

命令消息接收单元,用于当接收到所述浏览器通过websocket连接发送的启动命令消息时,依据所述认证成功信息与sslvpn网关建立连接,以访问sslvpn服务端资源。

本申请的实施例提供的技术方案可以包括以下有益效果:

由以上技术方案可知,本申请提供的方案将浏览器作为websocket客户端,sslvpn客户端作为websocket服务端,通过在浏览器和sslvpn客户端之间建立websocket连接,使浏览器可以通过建立的websocket连接和sslvpn客户端进行通信,以实现以ip接入方式访问sslvpn服务端资源。并且由于目前流行的浏览器都支持websocket协议,不同浏览器都可以通过和sslvpn客户端之间建立websocket连接,来控制sslvpn客户端实现sslvpn的ip接入。所以本申请实际上提供了一种可以在不同浏览器间通用的sslvpn的ip接入方法,以降低研发工作量。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本申请实施例提供的应用于浏览器的实现sslvpn的ip接入的方法流程图;

图2是本申请实施例提供的建立websocket连接的方法流程图;

图3是本申请实施例提供的应用于sslvpn客户端的实现sslvpn的ip接入的方法流程图;

图4是本申请实施例提供的应用于浏览器的实现sslvpn的ip接入的装置示意图;

图5是本申请实施例提供的应用于sslvpn客户端的实现sslvpn的ip接入的装置示意图;

图6是本申请实施例提供的一种电子设备的硬件结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,在相关技术中,使用sslvpn的ip接入方式访问内部网络资源的过程中,用户首先需要启动终端设备上的浏览器以进入sslvpn的登陆页面。在登陆成功时,将触发终端设备从sslvpn网关处下载并安装使用ip接入方式所需要的浏览器插件,并且该浏览器插件必须与上述的浏览器匹配。该插件会下载和安装sslvpn客户端并负责sslvpn客户端的启动、关闭以及浏览器中的sslvpn页面与sslvpn客户端的消息通讯。

需要说明的是,以上方案中,针对各类型浏览器,需要定制开发与各类浏览器匹配的浏览器插件,以防止出现浏览器与浏览器插件不兼容导致sslvpn的ip接入方式在实现时出现异常。但是定制开发与各类浏览器匹配的浏览器插件,所需要的软件复杂度高,工作量较大,很难进行维护,而且也不适用于所有终端设备如智能手机。

另外,还存在不支持浏览器插件的浏览器,这类浏览器无法使用sslvpn的ip接入方式。因此本申请实施例提供了一种可以在不同浏览器间通用的sslvpn的ip接入方法,以降低研发工作量,并适用于不支持浏览器插件的浏览器。

为了使本申请实施例的上述目的、特征和优点能够更加明显易懂,在介绍本申请的sslvpn的ip接入方法和装置前,先对以下3个专业术语进行简述:

sslvpn:基于ssl(securesocketslayer安全套接字协议)协议建立远程安全访问通道的vpn技术,其中ssl协议是在传输通信协议(tcp/ip)上实现的一种安全协议。

ip接入:使用安装在用户终端设备上的sslvpn客户端软件来建立终端设备与sslvpn服务器在网络层之间的安全通道,进而实现终端设备远程访问sslvpn服务器。

websocket(简称ws):其是一种网络传输协议,可在单个tcp连接上进行全双工通信,位于osi模型的应用层。websocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在websocket的api中,浏览器和服务器只需要完成一次握手,两者之间就可以建立持久性的连接,并进行双向数据传输。wss(websocketsecure)是websocket的加密版本。在websocketapi是纯事件驱动的,应用程序代码需要监听websocket对象上的事件,以便处理输入数据和连接状态的改变。其包含以下4个不同的事件:

open事件:一旦服务器响应了websocket连接请求,open事件触发并建立一个连接。open事件对应的回调函数称作onopen

message事件:message事件在接收到消息时触发,对应于该事件的回调函数是onmessage。

error事件:error事件在响应意外故障的时候触发。与该事件对应的回调函数为onerror。

close事件:close事件在websocket连接关闭时触发。对应于close事件的回调函数是onclose。

另外websocket对象有两个方法:send方法和close方法。send方法可以从客户端向服务器发送消息。在发送一条或者多条消息之后,可以保持连接打开,或者调用close方法终止连接。调用close方法,可以关闭连接或者终止建立连接的尝试,如果连接已经关闭,该方法就什么都不做。并且在调用close方法之后,不能在已经关闭的websocket连接上发送任何数据。

下面结合附图对本申请实施例中技术方案作进一步详细的说明。

参见图1,图1为本申请实施例提供的实现sslvpn的ip接入的方法流程图。作为一个实施例,图1所示的流程可以应用于终端设备上的浏览器。

如图1所示,该流程可以包括以下步骤:

步骤101,在以ip接入方式访问sslvpn服务端资源的过程中,当接收到sslvpn网关返回的认证成功信息时,则向终端设备上的指定端口发送websocket连接建立请求消息。

具体实现时,在以ip接入方式访问sslvpn服务端资源的过程中,用户首先会通过浏览器打开sslvpn登录页面,根据sslvpn登录页面上的提示信息输入并提交用于账户认证的认证信息。在用户提交认证信息之后,将触发浏览器将该认证信息发送给sslvpn网关,以使sslvpn网关可以将认证信息发送给sslvpn认证服务器,使sslvpn认证服务器对接收到的认证信息进行认证。这里sslvpn网关和sslvpn认证服务器可以是一台设备,也可以是两台不同的设备,具体认证过程可参考相关技术,本申请在此不做详述。

在本申请实施例中,若上述账户认证成功,sslvpn认证服务器将生成认证成功信息,并通过sslvpn网关向浏览器返回认证成功信息,该认证成功信息至少包括sslvpn网关ip地址和sslvpn认证成功标识。其中sslvpn认证成功标识用于指示当前需要以ip接入方式访问sslvpn服务端资源的用户为有资格访问sslvpn服务端资源的用户。

如本步骤101所示,本设备上的浏览器在接收到sslvpn网关返回的认证成功信息时,将向终端设备上的指定端口发送websocket连接建立请求消息。其中指定端口为sslvpn客户端在本设备上运行websocket服务的端口。这里之所以发送websocket连接建立请求消息,是为了建立用于和sslvpn客户端进行通信的websocket连接。

作为一个实施例,浏览器在接收到认证成功信息之后,需要初始化websocket的四个事件,即上述介绍的open事件、message事件、error事件和close事件,这四个事件用于和sslvpn客户端通信,以处理不同事件。

步骤102,若在指定时间内接收到sslvpn客户端通过所述指定端口返回的websocket连接建立响应消息,则确定所述websocket连接建立成功,通过该websocket连接将所述认证成功信息发送给sslvpn客户端。

在一些实施例中,将认证成功信息发送给sslvpn客户端后,sslvpn客户端将会对接收到认证成功信息进行记录,并回复一个接收成功响应。

可选的,本申请实施例可以将通过如图2所示的方法建立websocket连接,具体实现过程将在下文描述图2所示方法时详述,这里暂不赘述。

步骤103,当检测到外部输入的启动sslvpn的指令时,通过所述websocket连接向sslvpn客户端发送启动命令消息,以控制sslvpn客户端依据所述认证成功信息与sslvpn网关建立连接并访问sslvpn服务端资源。

作为一个实施例,当用户在sslvpn登录页面成功登录,即浏览器接收到sslvpn网关返回的认证成功信息时,浏览器所显示的sslvpn登录页面将跳转到用于控制vpn和显示vpn信息的sslvpn控制页面。当用户需要访问sslvpn服务端资源时,可以根据sslvpn控制页面上的提示信息触发启动sslvpn的指令,比如点击指示启动sslvpn的按钮触发启动sslvpn的指令。该指令用于指示浏览器通过所述websocket连接向sslvpn客户端发送启动命令消息。

进一步的,浏览器可以通过调用websocketsend方法向sslvpn客户端发送启动命令消息,以控制sslvpn客户端依据所述认证成功信息与sslvpn网关建立ssl连接并访问sslvpn服务端资源。而sslvpn客户端接收到启动命令消息后,则会返回携带启动结果的消息,浏览器可以通过message事件,对收到的返回的消息进行解析,并将返回内容显示到前端的sslvpn控制页面上。

同时,为了使用户可以更好的了解vpn的状态,可以通过websocket连接向sslvpn客户端定时发送vpn状态获取请求消息,以获取并显示所述vpn状态。vpn状态用于指示所述sslvpn客户端与sslvpn网关之间的连接的状态,可以通过获取sslvpn客户端与sslvpn网关之间的连接上的数据包统计信息、流量信息等反应vpn状态。

在一些实施例中,浏览器所获取的vpn状态可以显示在sslvpn控制页面上,以便用户根据vpn状态控制vpn。比如当用户需要访问sslvpn服务端资源,而页面上显示的vpn状态为“vpn当前已关闭”时,用户可以根据vpn状态得知当前无法访问sslvpn服务端资源,需要启动sslvpn。

作为另一个实施例,当用户不再需要访问sslvpn服务端资源时,可以根据sslvpn控制页面上的提示信息触发关闭sslvpn的指令,比如点击指示关闭sslvpn的按钮以触发关闭sslvpn的指令。

当浏览器检测到外部输入的关闭sslvpn的指令时,将通过websocket连接向sslvpn客户端发送关闭命令消息,以控制所述sslvpn客户端与所述sslvpn网关断开连接。而sslvpn客户端接收到关闭命令消息后,会断开与sslvpn网关的连接,并销毁建立连接时所占用的cpu、内存等资源,并返回携带关闭结果的消息。浏览器依然可以通过message事件,对收到的返回的消息进行解析,并将返回内容显示到前端的sslvpn控制页面上。

至此,完成图1所示流程。

通过图1所示的流程可以看出,本实施例中通过将浏览器作为websocket客户端,sslvpn客户端作为websocket服务端,在浏览器和sslvpn客户端之间建立websocket连接,使浏览器可以通过建立的websocket连接和sslvpn客户端进行通信,以控制sslvpn客户端与sslvpn网关建立连接,即实现sslvpn的ip接入。并且由于目前流行的浏览器都支持websocket协议,不同浏览器都可以通过和sslvpn客户端之间建立websocket连接,来控制sslvpn客户端实现sslvpn的ip接入。所以本申请实际上提供了一种可以在不同浏览器间通用的sslvpn的ip接入方法,以降低研发工作量。

需要说明的是上述所提到的websocket连接可以是未加密的websocket(简述为ws)连接,也可以是加密版本的websocket连接(即wss,websocketsecure)。

以上举例只是为了便于理解,本申请实施例并不具体限定。

下面将对如何建立websocket连接的一个实施例进行描述。

请参见图2,为本申请实施例提供的一种建立websocket连接的流程示意图。

步骤201,向终端设备上的指定端口发送websocket连接建立请求消息。

步骤202,确定是否在指定时间内接收到sslvpn客户端通过所述指定端口返回的websocket连接建立响应消息,如果是,则确定websocket连接建立成功,结束流程,如果否,则继续执行步骤203。

步骤203,检测已记录的向所述指定端口发送websocket连接建立请求消息的次数是否小于指定值,若小于指定值,则返回执行步骤201,否则,确定websocket连接建立失败,进一步执行步骤204。

步骤204,触发sslvpn客户端安装事件,所述sslvpn客户端安装事件用于在终端设备上安装并启动运行sslvpn客户端。

需要说明的是,步骤203中websocket连接建立失败的原因可能是终端设备上没有安装sslvpn客户端或者sslvpn客户端进程没有启动,因此可以触发sslvpn客户端安装事件以建立websocket连接。

示例性的,上述指定值可以由用户根据需求预先设置,也可以在实现本申请实施例的代码中预先设置,比如可以设置指定值为3。

示例性的,触发sslvpn客户端安装事件是指跳转到sslvpn客户端下载页面,该页面可以引导用户根据页面提示信息下载和安装sslvpn客户端。并且在sslvpn客户端安装完成后,将以服务的形式自动启动并运行sslvpn客户端,即启动sslvpn客户端进程。

至此,完成图2所示的建立websocket连接的方法流程。该方法只是实现websocket连接的其中一个实施例,在具体实现时,还可以通过多种方法建立websocket连接,本申请不做限定。

由于本申请实施例需要在浏览器和sslvpn客户端之间建立websocket连接,因此,本申请实施例还提供了一种应用于sslvpn客户端的sslvpn的ip接入方法。

参见图3,图3为本申请实施例提供的另一种实现sslvpn的ip接入的方法流程图。作为一个实施例,图3所示的流程可以应用于终端设备上的sslvpn客户端。

如图3所示,该流程可以包括以下步骤:

步骤301,在接收到本设备上浏览器向指定端口发送的websocket连接建立请求消息时,通过所述指定端口向所述浏览器返回websocket连接建立响应消息,以建立websocket连接。

本步骤301中指定端口为sslvpn客户端在本设备上运行websocket服务的端口。比如,该指定端口可以为默认情况下,websocket协议所使用的80端口。

在建立websocket连接之后,sslvpn客户端将使用该websocket连接与浏览器进行通信,比如接收浏览器发送的控制指令、向浏览器定时反馈vpn状态等。

步骤302,接收并保存所述浏览器通过websocket连接发送的认证成功信息,所述认证成功信息至少包括sslvpn网关ip地址和sslvpn认证成功标识。

作为一个实施例,在接收到浏览器发送的认证成功信息后,将进一步记录该认证成功信息以便后续连接sslvpn网关,并向浏览器返回接收成功响应,以告知浏览器该认证成功信息已成功接收。

步骤303,当接收到所述浏览器通过websocket连接发送的启动命令消息时,依据所述认证成功信息与sslvpn网关建立连接,以访问sslvpn服务端资源。

在本申请实施例中,当接收到浏览器通过websocket连接发送的关闭命令消息时,则断开与所述sslvpn网关之间的连接。

在一些实施例中,浏览器还会通过websocket连接向本sslvpn客户端定时发送的vpn状态获取请求消息。当接收到该vpn状态获取请求消息时,sslvpn客户端将按照指定格式将读取到的vpn状态信息(比如:数据包统计信息、流量信息)返回给浏览器,以使所述浏览器获取并显示所述vpn状态。

可选的,本sslvpn客户端也可以设置在与浏览器建立websocket连接之后,定时向浏览器反馈vpn状态信息。

至此,完成图3所示流程。

通过图3所示的流程可以看出,本实施例中通过将sslvpn客户端作为websocket服务端,以在浏览器和sslvpn客户端之间建立websocket连接。sslvpn客户端可以接收浏览器通过websocket连接发送的各种指令,以满足用户的各种需求如以ip接入的方式启动vpn访问sslvpn服务端资源等。并且该sslvpn客户端和支持websocket协议的不同类型浏览器都可以建立websocket连接,进而本实施例可以在不同浏览器间通用。

以上对本申请实施例提供的方法进行了描述。下面对本申请实施例提供的装置进行描述:

参见图4,图4为本申请实施例提供的一种用于实现sslvpn的ip接入的装置示意图,该装置实施例应用于终端设备上的浏览器。该装置包括:

websocket连接建立单元401,用于在以ip接入方式访问sslvpn服务端资源的过程中,当接收到sslvpn网关返回的认证成功信息时,所述认证成功信息至少包括sslvpn网关ip地址和sslvpn认证成功标识,则向终端设备上的指定端口发送websocket连接建立请求消息,所述指定端口为sslvpn客户端在本设备上运行websocket服务的端口,所述websocket连接用于和sslvpn客户端进行通信。

认证成功信息发送单元402,用于若在指定时间内接收到sslvpn客户端通过所述指定端口返回的websocket连接建立响应消息,则确定所述websocket连接建立成功,通过该websocket连接将所述认证成功信息发送给sslvpn客户端。

sslvpn客户端控制单元403,用于当检测到外部输入的启动sslvpn的指令时,通过所述websocket连接向sslvpn客户端发送启动命令消息,以控制sslvpn客户端依据所述认证成功信息与sslvpn网关建立连接并访问sslvpn服务端资源。

至此,完成图4所示装置实施例的结构图。

参见图5,图5为本申请实施例提供的另一种用于实现sslvpn的ip接入的装置示意图,该装置实施例应用于终端设备上的sslvpn客户端。该装置包括:

websocket连接建立单元501,用于在接收到本设备上浏览器向指定端口发送的websocket连接建立请求消息时,所述指定端口为sslvpn客户端在本设备上运行websocket服务的端口,通过所述指定端口向所述浏览器返回websocket连接建立响应消息,以建立websocket连接,所述websocket连接用于和浏览器进行通信。

认证成功信息保存单元502,用于接收并保存所述浏览器通过websocket连接发送的认证成功信息,所述认证成功信息至少包括sslvpn网关ip地址和sslvpn认证成功标识。

命令消息接收单元503,用于当接收到所述浏览器通过websocket连接发送的启动命令消息时,依据所述认证成功信息与sslvpn网关建立连接,以访问sslvpn服务端资源。

至此,完成图5所示装置实施例的结构图。

以上是对本申请实施例提供的实现sslvpn的ip接入的装置实施例的描述,

对应地,本申请实施例还提供了一种电子设备的硬件结构图,具体如图6所示,该电子设备可以为上述实施sslvpn的ip接入的设备。如图6所示,该硬件结构包括:处理器和存储器。

其中,所述存储器,用于存储机器可执行指令;

所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所示的sslvpn的ip接入方法实施例。

作为一个实施例,存储器可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,存储器可以是:易失存储器、非易失性存储器或者类似的存储介质。具体地,存储器可以是ram(radomaccessmemory,随机存取存储器)、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

至此,完成图6所示电子设备的描述。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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