CN115150113A - 访问内网应用的方法及相关设备 - Google Patents
访问内网应用的方法及相关设备 Download PDFInfo
- Publication number
- CN115150113A CN115150113A CN202110355015.XA CN202110355015A CN115150113A CN 115150113 A CN115150113 A CN 115150113A CN 202110355015 A CN202110355015 A CN 202110355015A CN 115150113 A CN115150113 A CN 115150113A
- Authority
- CN
- China
- Prior art keywords
- vpn
- initiator
- access request
- interface
- target access
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及计算机技术领域,具体提供了一种访问内网应用的方法及相关设备,该方法包括:获取目标访问请求,目标访问请求用于请求访问内网应用;若根据目标访问请求携带的发起方地址确定目标访问请求的发起方位于外网,则获取发起方中登录用户的凭证信息;根据凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口,所述第一接口用于VPN服务端基于凭证信息对登录用户进行授权验证,并在授权验证通过后创建VPN通道;通过VPN通道,将目标访问请求重定向至内网服务器,以访问内网应用;本方案提高了访问内网应用的访问效率。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种访问内网应用的方法及相关设备。
背景技术
机构(例如企业或事业单位)内部往往会部署多个应用,该机构的多个应用部署至不同网络中的承载设备,例如一些应用部署于外网中的设备,一些应用部署于机构的内网中。对于机构级别的应用,该机构的成员基于客户端可能需要访问该机构部署于外网中的应用,也可能需要访问该机构部署于内网中的内网应用。
相关技术中,在用户需要访问内网应用时,需要用户先拨号连接VPN,该拨号连接VPN的过程步骤复杂,导致访问内网应用的效率低。
发明内容
本申请的实施例提供了一种访问内网应用的方法及相关设备,以解决相关技术中内网应用的访问效率低的问题。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种访问内网应用的方法,该方法包括:获取目标访问请求,所述目标访问请求用于请求访问内网应用;若根据所述目标访问请求携带的发起方地址确定所述目标访问请求的发起方位于外网,则获取所述发起方中登录用户的凭证信息;根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口用于所述VPN服务端基于所述凭证信息对所述登录用户进行授权验证,并在授权验证通过后创建VPN通道;通过所述VPN通道,将所述目标访问请求重定向至所述内网服务器,以访问所述内网应用。
根据本申请实施例的一个方面,提供了一种访问内网应用的方法,应用于VPN服务端,包括:接收目标访问请求,在应用代理根据所述目标访问请求所携带的发起方地址确定所述目标访问请求的发起方位于外网时,将所述目标访问请求重定向至所述VPN服务端;所述目标访问请求用于请求访问内网应用;响应于所述目标访问请求,控制所述发起方调用由所述VPN服务端提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口的输入参数包括所述发起方中登录用户的凭证信息和所述VPN服务端的VPN地址;根据所述凭证信息对所述登录用户进行授权验证;若根据所述凭证信息确定所述登录用户是授权用户,基于所述第一接口创建VPN通道;通过所述VPN通道,将所述目标访问请求重定向至所述内网服务器,以访问所述内网应用。
根据本申请实施例的一个方面,提供了一种访问内网应用的装置,所述装置包括:第一获取模块,用于获取目标访问请求,所述目标访问请求用于请求访问内网应用;第二获取模块,用于若根据所述目标访问请求携带的发起方地址确定所述目标访问请求的发起方位于外网,则获取所述发起方中登录用户的凭证信息;第一调用模块,用于根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口用于所述VPN服务端基于所述凭证信息对所述登录用户进行授权验证,并在授权验证通过后创建VPN通道;第一重定向模块,用于通过所述VPN通道,将所述目标访问请求重定向至所述内网服务器,以访问所述内网应用。
根据本申请实施例的一个方面,提供了一种访问内网应用的装置,应用于VPN服务端,所述装置包括:接收模块,用于接收目标访问请求,在应用代理根据所述目标访问请求所携带的发起方地址确定所述目标访问请求的发起方位于外网时,将所述目标访问请求重定向至所述VPN服务端;所述目标访问请求用于请求访问内网应用;控制模块,用于响应于所述目标访问请求,控制所述发起方调用由所述VPN服务端提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口的输入参数包括所述发起方中登录用户的凭证信息和所述VPN服务端的VPN地址;身份验证模块,用于根据所述凭证信息对所述登录用户进行授权验证;创建模块,用于若根据所述凭证信息确定所述登录用户是授权用户,基于所述第一接口创建VPN通道;第二重定向模块,用于通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
根据本申请实施例的一个方面,提供了一种电子设备,包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如上所述访问内网应用的方法。
根据本申请实施例的一个方面,提供了一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被处理器执行时,实现如上所述访问内网应用的方法。
在本申请的方案中,在根据第一客户端所发起目标访问请求携带的发起方地址确定第一客户端位于外网时,根据目标访问请求的发起方中登录用户的凭证信息和预设的VPN地址调用发起方内嵌的第一接口,以使提供该第一接口的VPN服务端根据该凭证信息对发起方中的登录用户进行授权验证,并在授权验证后通过创建VPN通道,使得目标访问请求的发起方可以基于该VPN通道直接访问内网应用,实现了根据第一客户端的访问需要灵活创建VPN通道,即在需要访问内网应用时才调用第一接口创建VPN通道。而且,在第一客户端从外网访问内网应用的过程中,由于不需要引导用户通过复杂的步骤进行拨号连接VPN,而仅根据登录用户的凭证信息进行授权验证,实现了用户无感知地跨网络访问内网应用,提高了VPN通道建立的速度,提高了访问内网应用的访问效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
图2是根据本申请的一个实施例示出的访问内网应用的方法的流程图。
图3是根据本申请另一个实施例示出的访问内网应用的方法的流程图。
图4是根据本申请另一个实施例示出的一种访问内网应用的方法的流程图。
图5是根据本申请一具体实施例示出的实现通过第一客户端访问内网应用的流程图。
图6是根据本申请一具体实施例示出的在第一客户端与内网服务器之间建立VPN通道的信令图。
图7是根据本申请一具体实施例示出的第一客户端访问内网应用的流程图。
图8是根据本申请一实施例示出的访问内网应用的装置的框图。
图9是根据本申请另一实施例示出的访问内网应用的装置的框图。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,该示例性系统架构包括终端设备110、VPN(Virtual PrivateNetwork,虚拟专用网络)服务端120和内网服务端130。其中,内网服务端130位于内网中,用于为部署在内网中的内网应用提供服务。终端设备110可以接入内网或者外网,终端设备110可以是台式电脑、平板电脑、智能手机等。
VPN服务端120是指用于提供VPN服务的网络设备。VPN是建立在实际网络(或物理网络)基础上的一种功能性网络,VPN可以实现不同网络的组件和资源之间的相互连接,其能够利用外网的基础设施为用户创建VPN通道。
外网是指由网络服务提供商建设,供公共用户使用的通信网络,其通信线路是共享给公共用户使用的;外网例如互联网。
内网是指使用私有IP地址(Internet Protocol Address,网际协议地址)空间的网络,私有IP地址无法直接连接外网,需要通过公网IP进行转发,内网例如一企业内的内网,一部门内网等。
在终端设备110接入外网时,若终端设备110需要访问内网应用,由于不同网络之间的隔离,终端设备110不能直接访问内网服务端130,而需要经由VPN服务端120建立终端设备110与内网服务端130之间的VPN通道,然后终端设备110通过所建立的VPN通道访问内网服务器130。具体终端设备110可以按照本申请的方法实现访问内网服务器130,实现访问内网应用。
图1仅仅是示例性举例,不能认为是对本申请使用范围的限制。在其他实施例中,在外网和内网中还可以设置网关设备,从而,终端设备110通过网关设备与VPN服务端120进行通信,内网服务端130通过设于内网中的网关设备与VPN服务端120进行通信。
在本申请的一些实施例中,VPN服务端120可以是部署于公有云上的云服务器。公有云(Public Cloud)通常指第三方提供商为用户提供的能够使用的云,公有云一般可通过Internet(因特网)使用,可能是免费或成本低廉的,公有云的核心属性是共享资源服务。具体在本实施例中,该第三方提供商可以是提供VPN服务的服务商。
在本申请的一些实施例中,内网服务端130可以是部署于私有云上的云服务器。私有云(Private Cloud)是将云基础设施与软硬件资源创建在防火墙内,以供机构或企业内各部门共享数据中心内的资源。创建私有云,除了硬件资源外,一般还有云设备(IaaS,Infrastructure as a Service,基础设施即服务)软件。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图2示出了根据本申请的一个实施例示出的访问内网应用的方法的流程图,该方法可以由具备处理能力的计算机设备执行,例如服务器等,在此不进行具体限定。参照图2所示,该方法至少包括步骤210至240,详细介绍如下:
步骤210,获取目标访问请求,所述目标访问请求用于请求访问内网应用。
内网可以是机构(例如企业、组织机构)内部的网络,例如某一学校的内网、某一公司的内网、某一部门的内网、某一医院的内网等,在此不进行具体限定。内网中设置了为应用提供服务的内网服务器,访问内网应用实际上是访问内网中为该内网应用提供服务的内网服务器。
其中,该目标访问请求的发起方可以是任一终端设备,该终端设备可以是基于所安装的客户端来访问内网应用。为便于区分,将发起方中用于发起目标访问请求的客户端称为第一客户端。下文中,为便于描述,通过第一客户端来代表目标访问请求的发起方。
第一客户端提供了用于访问内网应用的访问入口,该访问入口可以是显示在第一客户端的交互界面中的控件,当该控件被触发,则视为第一客户端发起目标访问请求。该访问入口还可以是进行目标访问地址输入的输入框,所输入的目标访问地址可以是指向内网中内网服务器的网络地址。
在本申请的一些实施例中,可以通过应用代理来管理多个第一客户端所发起的访问请求,第一客户端所发起的访问请求会统一经过应用代理,从而来对多个第一客户端所发起的访问请求进行统一管理。在本申请的一些实施例中,可以通过应用代理来执行本申请的方案。除此之外,该应用代理还可以进行负载均衡、流量控制等。
步骤220,若根据所述目标访问请求携带的发起方地址确定所述目标访问请求的发起方位于外网,则获取所述发起方中登录用户的凭证信息。
目标访问请求所携带的发起方地址即为该目标访问请求的发起方所在终端的网络地址(也可以视为第一客户端所在终端的网络地址),如果目标访问请求携带的发起方地址位于外网所对应的网络地址范围内,则确定第一客户端位于外网。
若确定该目标访问请求的发起方位于外网,由于内网与外网之间的网络隔离,因此,该目标访问请求的发起方无法直接访问内网应用,需要按照下述步骤230-240的过程进行访问。
目标访问请求的发起方中登录用户即为第一客户端所在用户,该凭证信息可以是第一客户端所对应的服务端为注册用户生成的,该凭证信息用于指示该登录用户是该第一客户端所对应服务端中的注册用户。在即时通信应用中,该凭证信息可以是即时通信应用为注册用户生成的code码,code码是用于唯一标识注册用户的编码字符串。
在本申请的一些实施例中,第一客户端中集成了凭证获取接口,因此,通过调用该凭证获取接口来从第一客户端所对应服务端中获取该第一客户端中登录用户的凭证信息。对于第一客户端中的注册用户,第一客户端所对应的服务端对应为该注册用户生成凭证信息并进行存储。
在本申请的一些实施例中,第一客户端所在终端可以在外网和内网中进行切换,若根据目标访问请求所携带的发起方地址确定第一客户端所在终端位于内网所对应的网络地址范围内,则确定第一客户端位于内网中。
在本申请的一些实施例中,若根据所述目标访问请求携带的发起方地址确定所述发起方位于内网中,按照所述目标访问请求携带的目标访问地址直接访问所述内网应用。在该场景下,由于第一客户端也位于内网中,因此,第一客户端可以直接按照目标访问请求中的目标访问地址访问内网中的应用。
步骤230,根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口用于所述VPN服务端基于所述凭证信息对所述登录用户进行授权验证,并在授权验证通过后创建VPN通道。
步骤240,通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
在本申请的一些实施例中,调用第一接口的输入参数可以是所获取到登录用户的凭证信息和预设的VPN地址。其中,该预设的VPN地址可以是在第一客户端对应的服务端预先设定的,也可以是第一客户端所在用户根据需要预先设定的,在此不进行具体限定。预设的VPN地址为VPN服务端的地址。
通过调用第一接口与VPN服务端进行交互。具体的,VPN服务端在接收到针对第一接口的调用请求后,根据调用请求中凭证信息这一输入参数来对该登录用户进行授权验证,若该登录用户通过授权验证后,由该VPN服务端创建VPN通道,所创建的VPN通道连通了位于外网中的发送方和位于内网中的内网服务器。
VPN通道是通过数据加密技术封装出来的一条虚拟数据通信隧道。VPN通道的建立过程如下:在VPN服务端确定登录用户授权验证通过后,VPN服务端通过内网中的VPN网关获取内网服务器的公网地址,VPN服务端将第一客户端的网络地址(此时为外网地址)、内网服务器对应的公网IP地址添加至路由信息中,并为第一客户端和内网服务器分配虚拟数据通信隧道。在分配虚拟数据隧道的基础上,该VPN服务端可以根据该VPN服务端所支持的VPN服务接入协议将第一客户端发往内网服务器的数据包进行加密和地址转换,以保证安全访问内网服务器。其中,内网和外网中均对应设有VPN网关,所创建的VPN通道还可以理解为联通内网中VPN网关和外网中VPN网关之间的虚拟通信隧道。
VPN网关采取双网卡结构,外网卡使用公网IP接入外网。若外网的终端A访问内网的设备B,其发出的访问数据包的目标地址是设备B的内网IP地址。外网中的VPN网关在接收到终端A发出的访问数据包时对其中的目标地址进行检查,如果目标地址属于内网的地址,则将该数据包进行封装,以构造一个VPN数据包,并将封装后的原数据包作为VPN数据包的负载,VPN数据包的目标地址为内网中VPN网关的外网地址。
所进行数据包的封装是与VPN网关所支持的VPN协议相关的,VPN协议例如MPLS(Multiprotocol Label Switching,多协议标记交换)VPN、SSL(Secure Sockets Layer,安全套接字协议)VPN和IPSec(Internet Protocol Security,Internet协议安全性)VPN。下面以IPSec VPN协议为例对数据包的封装过程进行进一步说明。
IPSec VPN协议由两类协议组成,分别为AH(Authentication Header,认证头标)协议和ESP(Encapsulated Security Payload,封装安全负载)协议。在ESP协议的隧道模式下,VPN数据包的格式如下表1所示。
表1
在如上表1中,data部分表示原始数据包中的数据部分;在构建VPN数据包的过程中,先对原始IP报文(包括旧IP头、TCP头和数据)进行加密,得到加密密文;然后,按照摘要算法对ESP头和加密密文的组合进行摘要计算,得到ESP验证数据;最后将新IP头、加密密文、和ESP验证数据进行封装,即得到VPN数据包。
当然,以上仅仅是以ESP协议为例对VPN数据包的格式和封装过程进行的举例,不能认为是对本申请使用范围的限制。
由于VPN数据包的目标地址是内网中VPN网关的外部地址,外网中的VPN网关可以将VPN数据包正确地发送到内网中的VPN网关。内网中的VPN网关对接收到的数据包进行检查,如果发现该数据包是从外网的VPN网关发出的,即可判定该数据包为VPN数据包,并对该数据包进行解包处理。解包的过程主要是先将VPN数据包的包头剥离,再将数据包反向处理还原成原始的数据包。内网中的VPN网关将还原后的原始数据包发送至设备B,由于原始数据包的目标地址是设备B的IP地址,所以该数据包能够被正确地发送到设备B。
在设备B看来,它收到的数据包就和从终端A直接发过来的一样。从终端B返回终端A的数据包处理过程和上述过程一样,这样两个网络内的终端就可以相互通讯了。
在VPN网关对数据包进行处理时,有两个参数对于VPN通讯十分重要:原始数据包的目标地址和远程VPN网关地址。根据原始数据包的目标地址,VPN网关能够判断对哪些数据包进行VPN处理,对于不需要处理的数据包通常情况下可直接转发到上级路由;远程VPN网关地址则指定了处理后的VPN数据包发送的目标地址,即VPN通道的另一端VPN网关地址。由于网络通讯是双向的,VPN通道两端的VPN网关都必须知道VPN目标地址和与此对应的远端VPN网关地址。
通过上述过程,基于所创建的VPN通道,第一客户端发起的目标访问请求可以到达内网中的内网服务器,从而访问该内网中的内网应用。在后续第一客户端与内网服务器交互过程中的数据也是通过所创建的VPN通道进行传输。
为了保证第一客户端通过VPN服务端的授权验证,预先将第一客户端所在用户在VPN服务端中进行登记,从而使该第一客户端所在用户成为该VPN服务端中的授权用户。从而,在需要访问内网应用时,可以直接通过第一客户端的凭证信息登录VPN服务端,而不需要通过拨号方式登录VPN服务端,因此,提高了访问内网应用的速度,而且提高了用户体验。
在本申请的一些实施例中,在VPN服务端中获取到目标访问请求的发起方的凭证信息后,可以通过该凭证信息向发起方或者发起方对应的服务端请求该发起方的用户信息,从而,VPN服务端通过发起方的用户信息和VPN服务端中的授权用户信息来验证该发起方中的登录用户是否为VPN服务端中的授权用户。
在本申请的一些实施例中,本申请的方案可以应用于企业级应用中,对应的,第一客户端为该企业级应用的客户端,例如企业即时通讯应用,用户通过该客户端可以访问外网中的外网应用,也可以访问企业内网中的内网应用。在该种应用场景下,预设VPN地址可以是通过该企业级应用中作为管理员的用户进行设定。
在本申请的方案中,在根据目标访问请求所携带的发起方地址确定第一客户端位于外网时,根据发起方中的登录用户的凭证信息和预设的VPN地址调用发起方内嵌的第一接口,以使VPN服务端根据该凭证信息对该登录用户进行授权验证,并在授权验证后通过创建VPN通道,使得发起方可以基于该VPN通道直接访问内网应用,实现了根据发起方的访问需要灵活创建VPN通道,即在需要访问内网应用的基础上,仅在发起方位于外网时才调用第一接口创建VPN通道,而在发起方位于内网时,不创建VPN通道。而且,在发起方从外网访问内网应用的过程中,由于不需要用户进行拨号连接VPN,实现了用户无感知地跨网络访问内网应用,提高了VPN通道建立的速度,提高了访问内网应用的访问效率。
在本申请的一些实施例中,如图3所示,步骤230包括:
步骤310,按照预设的VPN地址,将所述目标访问请求重定向至所述VPN服务端。步骤320,接收所述VPN服务端返回的指定页面。步骤330,由所接收到的指定页面触发调用由VPN服务端提供的第一接口,所述第一接口的输入参数包括所述凭证信息和所述预设的VPN地址。
指定页面可以根据实际需要进行指定,在此不进行具体限定。在本申请的一些实施例中,指定页面可以是H5应用页面。在本申请的一些实施例中,该指定页面可以是VPN服务端所提供的VPN服务引导页。
发起方在接收到该指定页面后,可以出发调用发起方中内嵌的第一接口,该第一接口是VPN服务端提供的接口函数,该第一接口用于创建VPN通道,该第一接口例如下文中的startVPN这一接口函数。发起方调用第一接口即发起方向VPN服务端发起针对第一接口的调用请求。输入参数又可称为入参,在发起方发起针对第一接口的调用请求后,将输入参数传递至VPN服务端,从而VPN服务端以请求参数为基础,从而调用第一接口对应的服务。
在本申请的一些实施例中,为了提高VPN通道的利用率,发起方中还可以集成第三接口,该第三接口用于停止VPN服务。在本申请的一些实施例中,发起方可以进行VPN通道中数据传输状态的检测,如果VPN通道上的空闲时间超过预设时间阈值,则可以触发调用第三接口,通过该第三接口请求VPN服务端停止VPN服务,从而,解除内网和外网之间的VPN通道。
在本申请的一些实施例中,请继续参阅图3,步骤230之前,该方法还包括:
步骤304,调用所述发起方内嵌的第二接口,所述第二接口用于检测VPN通道的状态。
若根据所述第二接口返回的信息确定未建立VPN通道,则执行步骤230;若根据所述第二接口返回的信息确定已建立VPN通道,则执行步骤340:基于已建立的VPN通道将所述目标访问请求重定向至所述内网服务器。
第二接口是由VPN服务端提供的接口函数,该第二接口函数用于检测VPN通道的状态,其中,VPN通道的状态包括指示已建立VPN通道的状态和指示未建立VPN通道的状态。
在本申请的一些实施例中,所述发起方中集成有软件开发工具包SDK,上述所提及的第一接口、第二接口、以及第三接口可以通过所述SDK内嵌在所述发起方中;所述发起方通过所述SDK与所述VPN服务端通信。其中,该SDK由VPN服务端提供,从而,该SDK可以在发起方和VPN服务端之间进行消息传递。
该软件开发工具包至少是将用于VPN服务端用于对用户进行授权验证和创建VPN通道的功能模块进行封装得到,并在该软件开发工具包中至少提供供外部进行调用的第一接口;从而,集成该软件开发工具包的终端,可以直接通过调用第一接口来请求VPN服务端对用户进行授权验证和创建VPN通道,而不需要用户进行复杂的拨号方式来登录VPN。当然,在发起方中集成第二接口和/或第三接口的实施例中,该软件开发工具包对应封装了用于实现VPN通道状态监测的功能模块和/或停止提供VPN服务的功能模块,并提供第二接口和/或第三接口供外部进行调用。在本申请的一些实施例中,所述SDK通过VPN客户端与所述VPN服务端通信;在该实施例中,请继续参阅图3,步骤301之前,该方法还包括:
步骤301,获取所述发起方所在终端的已安装应用信息。该已安装应用信息指示了发起方所在终端中所安装的全部应用。
步骤302,根据所述已安装应用信息确定所述发起方所在终端是否安装VPN客户端;如果未安装VPN客户端,则执行步骤303,生成安装所述VPN客户端的提示信息;如果已安装VPN客户端,则执行步骤304。
VPN客户端区别于第一客户端,该VPN服务端为VPN客户端提供服务。在具体实施例中,当VPN服务端提供的SDK的体积较大,导致SDK集成在第一客户端中存在困难时,可以采用本实施例SDK结合VPN客户端的方式来与VPN服务端进行交互;在该种应用场景中,SDK中所集成的功能都可以是与VPN服务端进行交互的必要接口函数,而其他的功能由VPN客户端来实现,从而SDK的体积较小,便于集成在第一客户端中。
在本申请的一些实施例中,所生成的安装所述VPN客户端的提示信息可以包括VPN客户端程序的下载链接,从而便于通过触发该下载链接进入VPN客户端程序的下载页面,快速下载VPN客户端程序并安装。在第一客户端所在终端安装完VPN客户端后,执行步骤304。
在实施例的方案中,采用SDK结合VPN客户端结合的方式与VPN服务端进行交互,降低了第一客户端集成SDK的难度。
在本申请的一些实施例中,如果第一客户端的承载能力较大,可以集成较大体积的SDK,则可以将实现创建VPN通道的全部接口函数均集成在SDK中,从而,可以不需要VPN客户端来提供辅助功能,对应的,在该种情况下,也不需要执行上述步骤301-302。
图4是根据一实施例示出的一种访问内网应用的方法的流程图,该方法应用于VPN服务端,可以由图1中的VPN服务端执行,如图4所示,该方法包括:
步骤410,接收目标访问请求,在应用代理根据所述目标访问请求所携带的发起方地址确定所述目标访问请求的发起方位于外网时,将所述目标访问请求重定向至所述VPN服务端;所述目标访问请求用于请求访问内网应用。
步骤420,响应于所述目标访问请求,控制所述发起方调用由所述VPN服务端提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口的输入参数包括所述发起方中登录用户的凭证信息和所述VPN服务端的VPN地址。
在本申请的一些实施例中,步骤420包括:向所述发起方返回指定页面,以使所述发起方根据所述指定页面触发调用由所述VPN服务端所提供的第一接口。
步骤430,根据所述凭证信息对所述登录用户进行授权验证。
在本申请的一些实施例中,步骤430,包括:根据所述凭证信息获取目标访问请求的发起方中登录用户的用户信息;在所述VPN服务端中的授权用户信息中查找登录用户的用户信息;若查找到所述登录用户的用户信息,则确定登录用户是授权用户;反之,若未查找到登录用户的用户信息,则确定该登录用户不是授权用户,在该种情况下,VPN服务端可以向发起方返回登录失败信息。
在本申请的一些实施例中,若第一客户端是企业级应用的客户端,步骤430包括:根据所述凭证信息获取所述登录用户的用户信息,所述用户信息包括所述登录用户的用户标识和所述登录用户所属企业的企业标识;在所述VPN服务端中确定与所述企业标识相关联的授权用户信息;若在与所述企业标识相关联的授权用户信息包括所述登录用户的用户标识,则确定所述登录用户是授权用户。
步骤440,若根据所述凭证信息确定所述登录用户是授权用户,基于所述第一接口创建VPN通道。
在本申请的一些实施例中,步骤440之前,该方法还包括:获取所述发起方中登录用户的用户信息;将所述用户信息存入所述VPN服务端,以使所述发起方中的登录用户成为所述VPN服务端的授权用户。在第一客户端是企业级应用的客户端的应用场景中,可以预先将所注册的企业级应用的管理员所输入的该企业的企业信息,例如企业名称、企业标识、企业的成员信息存储在VPN服务端中,从而,VPN服务端基于给企业中的成员信息所指示的成员为进行授权。
步骤450,通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
下面,结合一具体实施例对本申请的方法进行进一步说明。在本实施例的方案中,采用SDK与VPN客户端结合的方案,从而便于VPN服务端所提供的SDK易于集成在第一客户端中。SDK用于在第一客户端与VPN客户端之间传递信息,起到桥梁作用。
图5示出了采用本申请的方案实现通过第一客户端访问内网应用的流程图。如图5所示,具体包括:
步骤510,打开H5微应用。其中,所打开的H5微应用用于发起访问内网应用的目标访问请求,如果第一客户端检测到了用户触发的对应于内网应用的H5微应用的打开操作,则第一客户端对应发起目标访问请求。
步骤520,第一客户端鉴权。在该步骤中,判断第一客户端所在用户是否为授权登录内网应用的用户。如果不是授权用户,则进行授权提示,如果用户同意授权登录,对该用户进行授权。
步骤530,检测是否安装VPN客户端。如果已安装VPN客户端,则执行步骤540;如果检测未安装VPN客户端,则执行步骤531-533;其中,步骤531,生成安装提示信息;步骤532,检测是否允许下载;步骤533,从指定地址下载VPN客户端;在申请的一些实施例中,可以结合第一客户端所在终端设备的设备信息来确定该指定地址,例如,如果第一客户端所在终端设备的操作系统为Android系统,提供用于下载兼容Android系统的VPN客户端程序下载的指定地址;如果第一客户端所在终端设备的操作系统为IOS系统,提供用于下载兼容IOS系统的VPN客户端程序下载的指定地址。
步骤540,探测VPN通道是否建立。具体的,通过调用第二接口来探测VPN通道是否建立。如果已建立VPN通道,则执行步骤560;如果未建立VPN通道,则执行步骤550。
步骤550,免密登录VPN服务端。具体的,通过调用第一客户端所内嵌的第一接口来实现免密登录VPN服务端。在本实施例中,先将第一客户端所在用户的用户信息在VPN服务端中进行登记,从而,VPN服务端在根据第一客户端的凭证信息确定第一客户端所在用户是VPN服务端的授权用户,则允许第一客户端登录VPN服务端。其中,第一客户端的凭证信息是通过调用第一客户端中的凭证获取接口来获得的。该步骤520中通过鉴权后,可以调用第一客户端的凭证获取接口来获取对应的凭证信息。如果登录成功,则执行步骤560;如果登录失败,则不作处理。
步骤560,访问内网应用。
在本实施例中,第一接口和第二接口通过VPN服务端提供道德SDK接口内嵌在第一客户端中。其中,SDK中还包括第三接口。表2示出了第一接口、第二接口和第三接口的接口名称和功能说明。
表2
接口名称 | 功能 | |
第一接口 | startVPN | 启动L3VPN服务 |
第二接口 | isVPNonline | 检查VPN通道是否建立 |
第三接口 | stopVPN | 停止L3VPN服务 |
具体的,在调用第一接口的过程中,SDK采用Schema协议拉起VPN客户端,进而请求VPN服务端创建VPN通道。
在调用第二接口的过程中,SDK按照约定格式向指定地址A(该指定地址A是VPN客户端添加的一条固定路由地址)发送UDP(User Datagram Protocol,用户数据报协议)数据包,VPN客户端在接收到UDP数据包后,应答SDK;如果SDK在一段时间内(例如50毫秒)内没收到应答,则确定VPN通道未建立;反之,如果SDK在设定时间段内接收到应答,则确定VPN通道已建立。如果确定VPN通道未建立,则通过调用第一接口,通过Schema协议拉起VPN客户端,以请求建立VPN通道。
在调用第三接口的过程中,SDK向VPN客户端发送停止广播,VPN客户端在接收到广播后,请求VPN服务端停止VPN服务。
在本实施例中,VPN服务可以是L3VPN服务,L3VPN(Layer3 VPN)是目前流行的三层VPN实现技术,其是VPN的一个分支,L3VPN用于将内网与外网进行对接。
VPN按照协议分,可以分为MPLS(Multiprotocol Label Switching,多协议标记交换)VPN、SSL(Secure Sockets Layer,安全套接字协议)VPN和IPSec(Internet ProtocolSecurity,Internet协议安全性)VPN。其中,MPLS VPN是基于MPLS技术的VPN,是在网络路由和交换设备上应用MPLS技术,简化核心路由器的路由选择方式,利用结合传统路由技术的标记交换实现的IP虚拟专用网络。
SSL VPN是以HTTPS(Hyper Text Transfer Protocol over Secure SocketLayer,超文本传输安全协议)为基础的VPN,工作在传输层和应用层之间。SSL VPN充分利用了SSL提供的基于证书的身份认证、数据加密和消息完整性验证机制,可以为应用层之间的通信建立安全连接。
IPSec VPN是基于IPSec的VPN,其由IPSec协议提供隧道安全保障。IPSec是一种由IETF设计的端到端的确保基于IP通讯的数据安全性的机制。它为互联网上传输的数据提供了高质量的、可互操作的、基于密码学的安全保证。
图6是根据本申请实施例示出的在第一客户端与内网服务器之间建立VPN通道的信令图。所建立的VPN通道可以是SSL VPN通道。
在访问该内网应用之前,设置该内网应用的入口地址为预设VPN地址。具体的,可以设置指定H5页面的链接地址为VPN引导页地址,并将内网应用的入口地址作为请求参数;若请求访问H5页面链接(对应视为请求请问内网应用),则进行H5页面的初始化,从而触发调用内嵌于第一客户端中的第一接口。
在第一客户端发起针对内网应用的目标访问请求之后,依次执行如下步骤:
步骤611,检测VPN客户端是否安装。即检测第一客户端所在终端中是否安装VPN客户端。如果检测结果指示已安装VPN客户端,则执行步骤612;如果指示未安装VPN客户端,则指示用户进行下载和安装VPN客户端。
步骤612,检测VPN通道是否建立。具体可以通过调用第二接口来检测VPN通道是否建立,如果已建立,基于已建立的VPN通道访问内网应用;如果未建立VPN通道,则执行步骤613;
步骤613,启动VPN客户端。
步骤614,调用第一接口。第一接口可以是如上所举例startVPN这一接口;基于第一接口的请求参数包括第一客户端的凭证信息(code)和预设的VPN地址。具体的,第一客户端根据预先约定的schema进行参数传递。其中,schema是用于描述和规范XML(ExtensibleMarkup Language,可扩展标记语言)文档的逻辑结构的一种语言,它最大的作用就是验证XML文件逻辑结构的正确性。
在一具体实施例中,约定的schema的格式可以是:[schema]://wxwork?vpn_url=[vpn_url]&;code=[code]&;start=[true|false]
在如上的格式中,schema与vpn_url是第一接口startVPN的输入参数,其中,schema表示第一客户端的应用信息;vpn_url表示预设的VPN地址;wxwork为固定的字符串,用于VPN客户端识别第一客户端的身份;code可以通过第一客户端提供的接口来获得,用于获得第一客户端所在用户的凭证信息;start字段用于区分启动或者结束VPN;其中,在启动后VPN后需要向第一客户端返回调用结果:wxwork://jsapi/vpn_result?errcode=
安卓的对intent(意图)的action(动作)约定为:
启动:“com.sangfor.ssl.wxwork.start”;
结束:“com.sangfor.ssl.wxwork.stop”;
Intent又称为意图,其主要是解决Android应用的各项组件之间的通讯。Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此intent的描述,负责找到对应的组件,将intent传递给被调用的组件,并完成组件的调用。
步骤615,携带code验证身份。即VPN客户端请求VPN服务端根据第一客户端的code进行授权验证。
步骤616,根据code获取用户信息。具体的,VPN服务端可以通过第一客户端所对应服务端提供的用户信息获取接口来获取用户信息。在一具体实施例中,用户信息获取接口可以是apigeruserinfo。从而,VPN服务端可以从第一客户端所对应服务端获取到用户的user id(用户标识)。在此基础上,VPN服务端可以根据获取到的user id允许VPN客户端登录,并在VPN登录成功后,向第一客户端返回指示VPN登录成功的指示信息。其中,VPN服务端在允许VPN客户端登录后,对应建立VPN通道,从而,第一客户端在已建立VPN通道后,根据内网应用的地址访问内网应用。
图7是根据本申请一具体实施例示出的第一客户端访问内网应用的流程图。在图7中,内网站点即内网服务器,该内网服务器为内网应用提供服务;VPN服务模块可以包括VPN服务端、内嵌在第一客户端中的SDK、安装在第一客户端所在终端的VPN客户端,该VPN服务模块用于提供VPN服务。如图7所示,具体包括:
步骤710,发起目标访问请求。
在步骤710之前,将目标访问请求所请求访问应用的入口地址设置成预设VPN地址,并将该应用指定开启应用代理。从而,第一客户端发起目标访问请求后,该目标访问请求会先经过应用代理,由应用代理执行步骤720。
步骤720,判断是否位于外网;即判断第一客户端是否位于外网中,如果是,则执行步骤730;如果不是,则执行步骤721:鉴权;鉴权通过后,执行步骤722,访问内网应用。
在第一客户端所在终端在内网和外网中切换的场景,应用代理通过目标访问请求所携带的发起方地址判断第一客户端是否位于外网中,如果位于外网中,则表明第一客户端是外网连接,则需要通过如下步骤730及以后步骤跨网络访问内网应用;如果不是位于外网中,则表明第一客户端位于所要访问应用所在的内网,第一客户端所在终端是内网连接,则可以直接通过步骤721和步骤722直接到达内网服务器,访问内网应用。
步骤730,重定向;即将目标访问请求重定向至指定VPN地址。由于内网应用的入口地址设定为预设VPN地址,该预设VPN地址为VPN服务器的地址,因此,可以按照该预设VPN地址将目标访问请求重定向至VPN服务器。
在重定向至预设VPN地址后,VPN服务端将嵌入JS SDK的指定H5页面返回到第一客户端中,从而使第一客户端根据该指定H5页面执行步骤740:拉起VPN。具体拉起VPN的过程即上述图6所示的过程创建VPN通道。
该指定H5页面中嵌入了SDK,因此,第一客户端也可以基于该SDK与VPN客户端进行信息传递。
VPN服务器在接收到针对第一接口的调用请求后,可以根据调用请求携带的输入参数(预设VPN地址和第一客户端的code码)获取第一客户端所在用户所属企业的成员信息和该第一客户端所在用户的用户信息,如果确定该第一客户端是属于该企业的成员,则通过授权验证。
在本申请的一些实施例中,第一客户端通过授权验证后,还进一步在VPN客户端更新登录用户身份和VPN配置信息。具体的,在用户触发打开第一客户端中的H5应用时,第一客户端会提示用户进行授权登录,在此基础上,用户可以选择通过第一客户端的账号信息、用户的电话号码、用户的生物特征信息(例如人脸、指纹)来进行授权登录。其中,在VPN客户端所更新登录用户身份是指将从第一客户端所获得的授权登录信息进行保存,授权登录信息例如上述举例中第一客户端的账号信息、用户的电话号码、用户的生物特征信息等。通过更新VPN客户端中登录用户身份,从而便于下一次用户登录VPN客户端。其中,更新VPN配置信息是指将授权登录方式进行保存,例如通过第一客户端的账号登录的方式、通过用户的电话号码登录的方式、通过用户的生物特征信息登录的方式等。
在建立VPN通道后,第一客户端重定向请求内网服务器,并基于所建立的VPN通道将该请求发送到应用代理,由应用代理进行鉴权并访问应用。如上所描述,在创建VPN通道后,相当于第一客户端与内网服务器也是内网连接,因此,第一客户端在请求访问内网服务器时,应用代理会判断为内网连接,从而也按照步骤721和步骤722的过程访问内网应用。
在本实施例中,第一客户端可以在外网和内网中切换,在第一客户端切换到外网时,也可以按照本申请的方案实现跨网络访问内网应用;在跨网络访问内网应用的过程中,由于不需要用户拨号登录VPN,而直接借助于第一客户端的凭证信息登录VPN服务端,实现了用户安全无感知地访问内网应用。而在第一客户端切换到内网中时,直接访问内网应用,不需要建立VPN通道,实现了根据实际需要灵活进行VPN通道建立,提高了VPN通道的利用率。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的方法。对于本申请装置实施例中未披露的细节,请参照本申请上述方法实施例。
图8是根据一实施例示出的访问内网应用的装置的框图,如图8所示,该访问内网应用的装置包括:第一获取模块810,用于获取目标访问请求,所述目标访问请求用于请求访问内网应用。第二获取模块820,用于若根据所述目标访问请求携带的发起方地址确定所述目标访问请求的发起方位于外网,则获取所述发起方中登录用户的凭证信息。第一调用模块830,用于根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口用于所述VPN服务端基于所述凭证信息对所述登录用户进行授权验证,并在授权验证通过后创建VPN通道。第一重定向模块840,用于通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
在本申请的一些实施例中,第一调用模块830,包括:重定向单元,用于按照预设的VPN地址,将所述目标访问请求重定向至所述VPN服务端;指定页面接收单元,用于接收所述VPN服务端返回的指定页面;触发调用单元,用于由所接收到的指定页面触发调用由VPN服务端提供的第一接口,所述第一接口的输入参数包括所述凭证信息和所述预设的VPN地址。
在本申请的一些实施例中,访问内网应用的装置还包括:第二接口调用模块,用于调用所述发起方内嵌的第二接口,所述第二接口用于检测VPN通道的状态;若根据所述第二接口返回的信息确定未建立VPN通道,则执行所述根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口的步骤;若根据所述第二接口返回的信息确定已建立VPN通道,则基于已建立的VPN通道将所述目标访问请求重定向至所述内网服务器。
在本申请的一些实施例中,所述发起方中集成有软件开发工具包SDK,所述第一接口和所述第二接口通过所述SDK内嵌在所述发起方中;所述发起方通过所述SDK与所述VPN服务端通信。
在本申请的一些实施例中,所述SDK通过VPN客户端与所述VPN服务端通信;访问内网应用的装置还包括:已安装应用信息获取模块,用于获取所述发起方所在终端的已安装应用信息;提示信息生成模块,用于若根据所述已安装应用信息确定所述发起方所在终端未安装VPN客户端,则生成安装所述VPN客户端的提示信息;若根据所述已安装应用信息确定所述发起方所在终端已安装所述VPN客户端,则执行所述调用所述发起方内嵌的第二接口的步骤。
在本申请的一些实施例中,访问内网应用的装置还包括:若根据所述目标访问请求携带的发起方地址确定所述发起方位于内网中,按照所述目标访问请求携带的目标访问地址直接访问所述内网应用。
图9是根据一实施例示出的访问内网应用的装置的框图,应用于VPN服务端,如图9所示,该访问内网应用的装置包括:接收模块910,用于接收目标访问请求,在应用代理根据所述目标访问请求所携带的发起方地址确定所述目标访问请求的发起方位于外网时,将所述目标访问请求重定向至所述VPN服务端;所述目标访问请求用于请求访问内网应用。控制模块920,用于响应于所述目标访问请求,控制所述发起方调用由所述VPN服务端提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口的输入参数包括所述发起方中登录用户的凭证信息和所述VPN服务端的VPN地址。身份验证模块930,用于根据所述凭证信息对所述登录用户进行授权验证。创建模块940,若根据所述凭证信息确定所述登录用户是授权用户,基于所述第一接口创建VPN通道。第二重定向模块950,用于通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
在本申请的一些实施例中,控制模块920进一步被配置为:向所述发起方返回指定页面,以使所述发起方根据所述指定页面触发调用由所述VPN服务端所提供的第一接口。
在本申请的一些实施例中,身份验证模块930包括:第一获取单元,用于根据所述凭证信息获取所述登录用户的用户信息,所述用户信息包括所述登录用户的用户标识和所述登录用户所属企业的企业标识;授权用户信息确定单元,用于在所述VPN服务端中确定与所述企业标识相关联的授权用户信息;授权用户确定单元,用于若在与所述企业标识相关联的授权用户信息包括所述登录用户的用户标识,则确定所述登录用户是授权用户。
在本申请的一些实施例中,访问内网中应用的装置还包括:第二获取单元,用于获取所述发起方中登录用户的用户信息;存储单元,用于将所述用户信息存入所述VPN服务端,以使所述发起方中的登录用户成为所述VPN服务端的授权用户。
图10示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。需要说明的是,图10示出的电子设备的计算机系统1000仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图10所示,计算机系统1000包括中央处理单元(Central Processing Unit,CPU)1001,其可以根据存储在只读存储器(Read-Only Memory,ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(Random Access Memory,RAM)1003中的程序而执行各种适当的动作和处理,例如执行上述实施例中的方法。在RAM 1003中,还存储有系统操作所需的各种程序和数据。CPU1001、ROM1002以及RAM 1003通过总线1004彼此相连。输入/输出(Input/Output,I/O)接口1005也连接至总线1004。
以下部件连接至I/O接口1005:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被中央处理单元(CPU)1001执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载计算机可读指令,当该计算机可读存储指令被处理器执行时,实现上述任一实施例中的方法。
根据本申请的一个方面,还提供了一种电子设备,其包括:处理器;存储器,存储器上存储有计算机可读指令,计算机可读指令被处理器执行时,实现上述任一实施例中的方法。
根据本申请实施例的一个方面,提供了计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例中的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (14)
1.一种访问内网应用的方法,其特征在于,所述方法包括:
获取目标访问请求,所述目标访问请求用于请求访问内网应用;
若根据所述目标访问请求携带的发起方地址确定所述目标访问请求的发起方位于外网,则获取所述发起方中登录用户的凭证信息;
根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口用于所述VPN服务端基于所述凭证信息对所述登录用户进行授权验证,并在授权验证通过后创建VPN通道;
通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
2.根据权利要求1所述的方法,其特征在于,所述根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口,包括:
按照预设的VPN地址,将所述目标访问请求重定向至所述VPN服务端;
接收所述VPN服务端返回的指定页面;
由所接收到的指定页面触发调用由VPN服务端提供的第一接口,所述第一接口的输入参数包括所述凭证信息和所述预设的VPN地址。
3.根据权利要求1所述的方法,其特征在于,所述根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口之前,所述方法还包括:
调用所述发起方内嵌的第二接口,所述第二接口用于检测VPN通道的状态;
若根据所述第二接口返回的信息确定未建立VPN通道,则执行所述根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口的步骤;
若根据所述第二接口返回的信息确定已建立VPN通道,则基于已建立的VPN通道将所述目标访问请求重定向至所述内网服务器。
4.根据权利要求3所述的方法,其特征在于,所述发起方中集成有软件开发工具包SDK,所述第一接口和所述第二接口通过所述SDK内嵌在所述发起方中;所述发起方通过所述SDK与所述VPN服务端通信。
5.根据权利要求4所述的方法,其特征在于,所述SDK通过VPN客户端与所述VPN服务端通信;
所述调用所述发起方内嵌的第二接口之前,所述方法还包括:
获取所述发起方所在终端的已安装应用信息;
若根据所述已安装应用信息确定所述发起方所在终端未安装VPN客户端,则生成安装所述VPN客户端的提示信息;
若根据所述已安装应用信息确定所述发起方所在终端已安装所述VPN客户端,则执行所述调用所述发起方内嵌的第二接口的步骤。
6.根据权利要求1所述的方法,其特征在于,所述获取目标访问请求之后,所述方法还包括:
若根据所述目标访问请求携带的发起方地址确定所述发起方位于内网中,按照所述目标访问请求携带的目标访问地址直接访问所述内网应用。
7.一种访问内网应用的方法,其特征在于,应用于VPN服务端,包括:
接收目标访问请求,在应用代理根据所述目标访问请求所携带的发起方地址确定所述目标访问请求的发起方位于外网时,将所述目标访问请求重定向至所述VPN服务端;所述目标访问请求用于请求访问内网应用;
响应于所述目标访问请求,控制所述发起方调用由所述VPN服务端提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口的输入参数包括所述发起方中登录用户的凭证信息和所述VPN服务端的VPN地址;
根据所述凭证信息对所述登录用户进行授权验证;
若根据所述凭证信息确定所述登录用户是授权用户,基于所述第一接口创建VPN通道;
通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
8.根据权利要求7所述的方法,其特征在于,所述响应于所述目标访问请求,控制所述发起方调用由所述VPN服务端所提供的第一接口,包括:
向所述发起方返回指定页面,以使所述发起方根据所述指定页面触发调用由所述VPN服务端所提供的第一接口。
9.根据权利要求7所述的方法,其特征在于,所述根据所述发起方的凭证信息对所述登录用户进行授权验证,包括:
根据所述凭证信息获取所述登录用户的用户信息,所述用户信息包括所述登录用户的用户标识和所述登录用户所属企业的企业标识;
在所述VPN服务端中确定与所述企业标识相关联的授权用户信息;
若在与所述企业标识相关联的授权用户信息包括所述登录用户的用户标识,则确定所述登录用户是授权用户。
10.根据权利要求7所述的方法,其特征在于,所述基于所述第一接口创建VPN通道之前,所述方法还包括:
获取所述发起方中登录用户的用户信息;
将所述用户信息存入所述VPN服务端,以使所述发起方中的登录用户成为所述VPN服务端的授权用户。
11.一种访问内网应用的装置,其特征在于,所述装置包括:
第一获取模块,用于获取目标访问请求,所述目标访问请求用于请求访问内网应用;
第二获取模块,用于若根据所述目标访问请求携带的发起方地址确定所述目标访问请求的发起方位于外网,则获取所述发起方中登录用户的凭证信息;
第一调用模块,用于根据所述凭证信息和预设的虚拟局域网VPN地址,调用由VPN服务端所提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口用于所述VPN服务端基于所述凭证信息对所述登录用户进行授权验证,并在授权验证通过后创建VPN通道;
第一重定向模块,用于通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
12.一种访问内网应用的装置,其特征在于,应用于VPN服务端,所述装置包括:
接收模块,用于接收目标访问请求,在应用代理根据所述目标访问请求所携带的发起方地址确定所述目标访问请求的发起方位于外网时,将所述目标访问请求重定向至所述VPN服务端;所述目标访问请求用于请求访问内网应用;
控制模块,用于响应于所述目标访问请求,控制所述发起方调用由所述VPN服务端提供的第一接口,所述第一接口内嵌于所述发起方;所述第一接口的输入参数包括所述发起方中登录用户的凭证信息和所述VPN服务端的VPN地址;
身份验证模块,用于根据所述凭证信息对所述登录用户进行授权验证;
创建模块,用于若根据所述凭证信息确定所述登录用户是授权用户,基于所述第一接口创建VPN通道;
第二重定向模块,用于通过所述VPN通道,将所述目标访问请求重定向至内网服务器,以访问所述内网应用。
13.一种电子设备,其特征在于,包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1-10中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机可读指令,当所述计算机可读指令被处理器执行时,实现如权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110355015.XA CN115150113A (zh) | 2021-03-31 | 2021-03-31 | 访问内网应用的方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110355015.XA CN115150113A (zh) | 2021-03-31 | 2021-03-31 | 访问内网应用的方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115150113A true CN115150113A (zh) | 2022-10-04 |
Family
ID=83405457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110355015.XA Pending CN115150113A (zh) | 2021-03-31 | 2021-03-31 | 访问内网应用的方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115150113A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192529A (zh) * | 2023-03-10 | 2023-05-30 | 广东堡塔安全技术有限公司 | 一种第三方服务器安全管理系统 |
CN116248416A (zh) * | 2023-05-11 | 2023-06-09 | 深圳竹云科技股份有限公司 | 一种身份认证的方法、装置、计算机设备 |
CN118300831A (zh) * | 2024-03-28 | 2024-07-05 | 广州思迈特软件有限公司 | 一种内外网访问权限的控制方法及系统 |
CN118432957A (zh) * | 2024-07-04 | 2024-08-02 | 阿里云计算有限公司 | 一种网络通信的管控方法、可读存储介质、设备及产品 |
-
2021
- 2021-03-31 CN CN202110355015.XA patent/CN115150113A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116192529A (zh) * | 2023-03-10 | 2023-05-30 | 广东堡塔安全技术有限公司 | 一种第三方服务器安全管理系统 |
CN116192529B (zh) * | 2023-03-10 | 2023-09-29 | 广东堡塔安全技术有限公司 | 一种第三方服务器安全管理系统 |
CN116248416A (zh) * | 2023-05-11 | 2023-06-09 | 深圳竹云科技股份有限公司 | 一种身份认证的方法、装置、计算机设备 |
CN118300831A (zh) * | 2024-03-28 | 2024-07-05 | 广州思迈特软件有限公司 | 一种内外网访问权限的控制方法及系统 |
CN118432957A (zh) * | 2024-07-04 | 2024-08-02 | 阿里云计算有限公司 | 一种网络通信的管控方法、可读存储介质、设备及产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110944330B (zh) | Mec平台部署方法及装置 | |
CN115150113A (zh) | 访问内网应用的方法及相关设备 | |
US9584515B2 (en) | Enterprise system authentication and authorization via gateway | |
US9674173B2 (en) | Automatic certificate enrollment in a special-purpose appliance | |
US20220345462A1 (en) | Secure access to a corporate web application with translation between an internal address and an external address | |
JP2020064668A (ja) | ネットワーク接続自動化 | |
US7984157B2 (en) | Persistent and reliable session securely traversing network components using an encapsulating protocol | |
US20150188779A1 (en) | Split-application infrastructure | |
CN109936547A (zh) | 身份认证方法、系统及计算设备 | |
EP3353946A1 (en) | Secure enrolment of security device for communication with security server | |
MX2008014855A (es) | Delegacion de credencial, conducida por politica para signo individual y acceso seguro para recursos de red. | |
EP4319097A1 (en) | Communication method, apparatus, computer-readable medium electronic device, and program product | |
US20240056483A1 (en) | Server-initiated secure sessions | |
CN114844672B (zh) | 一种应用可信身份的确认方法、管理单元及设备 | |
CN111726328B (zh) | 用于对第一设备进行远程访问的方法、系统以及相关设备 | |
CN105518693A (zh) | 一种安全防护方法,及装置 | |
CN110474922A (zh) | 一种通信方法、pc系统及接入控制路由器 | |
CN114301967B (zh) | 窄带物联网控制方法、装置及设备 | |
US20230101920A1 (en) | Proxy ssh public key authentication in cloud environment | |
CN116527733A (zh) | 用户终端的差异化控制方法及装置、设备及存储 | |
CN115086956A (zh) | 通信网络的入网方法、入网装置、介质和电子设备 | |
CN112398718A (zh) | 一种网络传输方法、装置、电子设备及存储介质 | |
CN114928664B (zh) | 网络隧道建立方法及装置、存储介质及电子设备 | |
WO2024022400A1 (zh) | 云资源配置方法及相关设备 | |
EP3580901B1 (en) | Connection apparatus for establishing a secured application-level communication connection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |