对专用网络资源的从该网络之外的远程访问的制作方法

文档序号:7738474阅读:219来源:国知局
专利名称:对专用网络资源的从该网络之外的远程访问的制作方法
对专用网络资源的从该网络之外的远程访问
背景技术
存在不同类型的计算机通信网络。一些是公用网络,其中许多不同用户可以获得对公用网络的访问以及通信,或者网络通信(例如数据分组)可以不受阻地经过公用网络。 其他网络是专用网络。与公用网络形成对比,专用网络可以限制对该网络的访问并且限制到连接至专用网络的网络资源的通信。专用网络可以仅允许经授权的网络通信经过该网络。专用网络的示例包括计算机用户的家庭网络、以及公司企业网,在该公司企业网中,仅仅该公司的雇员可以被允许访问该专用网络。在一些情况下,专用网络可以是另一网络的一部分,比如其中公司企业网络的一部分比整个企业网络更安全,并且具有进一步受限的访问,由此使其在与该公司网络的其余部分相比时成为专用网络。由于受限的访问,专用网络的网络资源不能被处于该专用网络之外的计算设备 (例如连接到该专用网络之外的另一网络(即“外部网络”)的计算设备)自由访问。在一些这样的情况下,外部网络可以可通信地连接到专用网络,使得网络通信可以在被允许的情况下流动,但是该专用网络的安全设定可能阻止一些网络通信进入该专用网络。在一些情况下,所期望的是使得连接到外部网络的计算设备能够与私有网络的网络资源通信。例如,公司的雇员在家工作或者在旅行时可能期望访问该公司的企业网络的网络资源以执行与他或她的工作相关的任务。已经开发出远程访问技术以在连接到外部网络时提供对专用网络的访问。这些远程访问技术的一个示例是虚拟专用联网(VPN)。可以给计算设备配备VPN客户端,该计算设备的用户(例如公司的雇员)将他或她的凭证(比如用户名和口令)输入到该VPN客户端中。然后,VPN客户端可以将这些凭证传递给VPN网关,然后,该VPN网关进而可以认证这些凭证以保证所述凭证是合法的。一旦经过认证,就可以为运行VPN客户端的计算设备打开到专用网络的安全连接(例如通过诸如因特网之类的公用网络),并且可以允许该计算设备在连接到外部网络时访问连接到该专用网络的网络资源。该安全连接可以使用由VPN 客户端创建在该计算设备上的“虚拟”网络接口来形成,该“虚拟”网络接口利用该计算设备的硬件网络接口 /适配器,但是被专用网络分配了网络特性(例如IP地址)。当使用VPN 连接时,客户端可以具有对专用网络和连接到该专用网络的所有网络资源的完全访问。另一远程访问技术被称为链接翻译。链接翻译技术执行由专用网络资源使用的链接或文本标识符的翻译。例如,诸如主控仅对专用网络上的计算设备可用的内联网网站的web服务器之类的专用网络资源可以具有文本标识符“hrweb”,该文本标识符将其标识成人力资源(HR)部门的内联网网站的主机。该标识符可以用于比如在该标识符被输入到 web浏览器时建立到该web服务器的连接。在专用网络之内,标识符(“hrweb”)将使用域名系统(DNS)被解析成该web服务器的IP地址,并且使用该IP地址将建立到web服务器的连接。然而,该标识符在该专用网络之外不能被识别并且不能被解析。由于被标识成 "hrweb"的web服务器不能在该专用网络之外被访问,因此当连接到外部网络的计算设备 (例如在家或旅行时试图通过因特网访问HR部门网站的雇员)尝试连接到“hrweb”时,该用户将遇到错误。因此,计算设备上的链接翻译客户端可以编辑链接——这可包括编辑包含该链接的文档——以用该网络资源的可以被外部网络访问的文本标识符替换内部专用标识符。例如,连接到专用网络并且可以通过外部网络被访问的网关设备可以被向外部网络标识成“gateway, corporate, com”。当未连接到专用网络的计算设备使用该专用文本标识符时,链接翻译客户端不是使用原始的专用标识符(“hrweb”)而是可以用该文本标识符替换网关设备并且连接到该网关设备,并且可以单独地将原始专用标识符(“hrweb”)传递给该网关设备。例如,当使用超文本传输协议(HTTP)打开web服务器的连接时,当用户最初输入“http //hrweb/"时,链接翻译客户端可以将该链接“翻译”成“http //gateway, corporate, com/ ? originalURL =“http://hrweb/”。可以使用经翻译的链接来建立到专用网络的连接(比如到充当逆向代理的专用网络的联网设备的连接)。然后,逆向代理可以再次这些将经翻译的链接翻译回原始的专用标识符,并且建立该专用网络中的到由原始标识符所标识出的网络资源的连接。然后,逆向代理可以在外部网络上的计算设备与专用网络的网络资源之间传递消息。链接翻译的替换过程在采取用于打开到专用网络的连接的任何动作之前执行。是经替换的链接和经替换的标识符(例如“gateway, corporate, com")而不是原始输入的标识符“hrweb”被用于打开该连接。因此,当域名系统(DNQ进程被执行以将域名解析成将用于打开连接的IP地址时,是经替换的标识符“gateway, corporate, com”而不是原始输入的标识符被解析。除了打开连接的计算设备,专用网络的使用链接翻译技术的网关也可以翻译链接。例如,当连接到外部网络的计算设备的用户通过网关设备请求诸如网页或文档之类的信息时,该网关设备可以扫描所有这些信息并且对专用网络资源的任何专用标识符执行替换。例如,如果HR部门的内联网网站包括到会计部门的内联网网站的链接(例如到 “httpV/accoimtingweb/”的链接),则该网关设备可以用可以在外部网络上使用的文本标识符替换该链接。例如,到“httpV/accountingweb”的链接可以被“http://gateway, corporate, com/ ? originalURL = "http://accountingweb/,,替换。

发明内容
申请人:已经认识并了解,在一些情况下,常规的远程访问技术未提供所期望水平的访问、或者所期望水平的精确度和无错的用户体验。例如,VPN技术提供对连接到专用网络的所有网络资源的完全访问,而一些网络管理员可能期望将对专用网络的访问仅限于特定的资源。链接翻译技术具有其他缺点,因为其依靠的是能够检测到传递给外部计算机的信息中的所有专用网络标识符并且将其替换为外部网络标识符。链接翻译客户端可能不知道所有专用网络资源并且因此可能不能对一些标识符执行替换,从而使得这些资源对通过外部网络连接的用户不可用。另外,对嵌入在文档(比如网页)中的标识符的替换是对该文档的持久性编辑,并且因此这些文档可能在用户再次连接到专用网络时被破坏。申请人:已经开发出了新的技术以通过使专用网络标识符可以在外部网络上使用来实现对专用网络的远程访问。在此所讨论的是用于使专用网络标识符可解析并且可以从专用网络之外被使用的各种原理。例如,在一些实施方式中,可以使用外部网络上的DNS来使专用网络资源的专用网络标识符(例如诸如使用域名系统(DNS)所建立的域名之类的文本标识符)成为可解析的。例如,在一个实施例中,当计算设备连接到外部网络并且尝试联系专用网络资源时,可以使用DNS来将专用网络资源的域名解析成该专用网络的边缘资源的因特网协议(IP)地址。然后,专用网络的可以是网关的边缘资源可以实现计算设备与专用网络资源之间的通信,并且在它们之间来回传递通信。在一些实施方式中,到边缘资源、 而不是直接到所期望等专用网络资源的连接可以在打开该连接的计算设备的用户不知道的情况下无缝地完成。在一些实施例中,该连接也可以使用任何合适的安全技术来保护,比如使用因特网协议安全(IPsec)协议。在本发明的一些实施例中,在通过外部网络从计算设备接收连接以后,专用网络的边缘资源(例如网关设备)可以分析通过该连接的通信以确定计算设备期望进行通信的专用网络资源。通信可以根据一个或多个协议在计算设备与边缘资源之间传递,这些协议在通信中嵌入原始用于标识出专用网络资源的标识符(例如由用户原始输入的标识符)。 该标识符然后可以被边缘资源用于将通信传递给所期望的专用网络资源。在一个实施例中,提供了一种用于从专用网络之外的客户端计算机实现对连接到该专用网络的专用网络资源的远程访问的方法,其中该专用网络包括边缘资源。该专用网络资源与如下标识符相关联该标识符可以在专用网络上被解析成该专用网络资源的因特网协议(IP)地址并且可以在该专用网络之外被解析成边缘资源的IP地址。该方法包括 在边缘资源处从客户端计算机接收通信,该通信包括标识符。该方法进一步包括在专用网络上将该标识符解析成专用网络资源的IP地址并且将该通信传输给该专用网络资源。在另一实施例中,提供至少一个计算机可读存储介质,该计算机可读存储介质被用计算机可执行指令编码,所述计算机可执行指令在被计算机执行时致使该计算机执行用于从专用网络之外的客户端计算机实现对连接到该专用网络的专用网络资源的远程访问的方法。该专用网络包括边缘资源。该专用网络资源与如下域名相关联该域名可以在专用网络上被解析成该专用网络资源的因特网协议(IP)地址并且可以在该专用网络之外被解析成边缘资源的IP地址。该方法包括从客户端接收域名系统(DNS)查询。该DNS查询包含与专用网络资源相关联的域名,以及从边缘资源将对DNS查询的包含该边缘资源的IP 地址的响应传输给客户端。该方法进一步包括在边缘资源处接收来自客户端计算机的通信,该通信包括包含与专用网络资源相关联的域名的报头;以及将该通信传输给该专用网络资源。在另一实施例中,提供了一种供用在包括专用网络的计算机系统中的装置,该专用网络具有专用网络资源和能够从该专用网络之外访问的边缘资源。该专用网络资源与如下的域名相关联该域名可以在专用网络上被解析成该专用网络资源的因特网协议(IP) 地址并且可以在该专用网络之外被解析成边缘资源的IP地址。该装置包括至少一个处理器,所述处理器被编程为确定该专用网络内的由边缘资源从专用网络之外的客户端接收的通信的所针对的接收者。所述至少一个处理器被编程为检查通信的报头,该报头包括该通信的所针对的接收者的标识符;在该专用网络上将该标识符解析成该通信的所针对的接收者的IP地址;以及将该通信传递给所针对的接收者的IP地址,该所针对的接收者是该专用网络资源。以上是对由所附权利要求书所定义的本发明的非限定性的概述。


附图不旨在按比例绘制。在附图中,各个附图中示出的每个相同或近乎完全相同的组件由同样的附图标记来表示。出于简明的目的,不是每个组件在每张附图中均被标记。 在附图中图1是示出本发明各实施例可以在其中操作的示例性计算机系统的示图;图2是根据本发明的一些实施例的用于由客户端在连接到外部网络时对与专用网络资源相关联的域名执行域名解析的说明性过程的流程图;图3是根据本发明的一些实施例的用于由专用网络的边缘资源在客户端连接到外部网络时对与专用网络资源相关联的域名执行域名解析的说明性过程的流程图;图4是根据本发明的一些实施例的用于由客户端在连接到外部网络时对与专用网络资源相关联的域名执行域名解析的说明性过程的流程图;图5是根据本发明的一些实施例的用于在客户端连接到外部网络时解析与专用网络资源相关联的部分限定域名的说明性过程的流程图;图6是根据本发明的一些实施例的用于在连接到外部网络的客户端与专用网络的网络资源之间进行通信的说明性过程的流程图;图7是根据本发明的一些实施例的专用网络的边缘资源在规定在连接到外部网络的客户端与专用网络的网络资源之间通信时可以遵循的说明性过程的流程图;图8A和8B是根据本发明的一些实施例的可以由专用网络的边缘资源实现以支持超文本传输协议(HTTP)Cookie功能的说明性过程的流程图;图9是在根据本发明的一些实施例中可以充当客户端计算设备的示例性计算设备的框图;图10是在根据本发明的一些实施例中可以充当专用网络的边缘资源的示例性计算设备的框图。
具体实施例方式如上面提到的那样,现有远程访问技术(例如VPN和链接翻译)具有一些缺点。然而,例如当计算设备已经打开了到专用网络的VPN连接时,该计算设备能够访问专用网络的所有网络资源。(如在此所使用的那样,“网络资源”可以是连接到网络的任何计算设备, 包括客户端计算设备、服务器、诸如路由器和交换机之类的联网设备等等)。然而,专用网络的所有者或管理员可能期望通过限制在远程访问时对专用网络资源的访问来限制网络可能经受的攻击。例如,公司网络的管理员可以确定存储文件的最新副本的文件服务器可能需要被从外部网络远程访问,但是存储这些文件的以前副本的备份服务器可能不需要被远程访问。现有VPN技术未提供这种能力,而是给远程用户提供该用户在该用户直接连接到专用网络的情况下将具有的对所有网络资源的完全访问。另外,在VPN的一些实施方式中一称为“强制隧道(force tunnel) VPN” 一,当计算设备已经建立到专用网络的VPN连接时,该计算设备可能被限制或阻止连接到除了连接到专用网络的网络资源之外的网络资源 (例如主控与该专用网络不相关联的网站的web服务器)。申请人已经认识到,在这种情况下,该限制或阻止可能阻止用户执行他/她的工作或其他任务,这可能对用户体验产生负面影响。
作为另一示例,当使用链接翻译来提供到专用网络资源的远程访问时,当专用网络资源的标识符被检测到时,该专用网络标识符可以被用在外部网络上的标识符替换。然而,链接翻译并不是在所有上下文中都是起作用或者所期望的。例如,为了链接翻译客户端正确运行并且检测所有专用网络资源的专用标识符,链接翻译客户端必须具有查看和处理每种类型的可能包含专用标识符的文件或文档的能力。文本文档的不同格式可能阻碍该能力。另外,即使链路翻译客户端能够审查所有类型的文档,链接翻译客户端仍然必须具有关于所有专用网络资源及其专用标识符的知识以能够确定特定标识符是否是专用标识符以及是否需要被替换。此外,即使所有链接翻译可以被正确完成,其仍然可能不是在所有上下文中都是所期望的,因为链接翻译可能在包含专用标识符的文件中造成持久性替换。如果计算设备直接地重新连接到专用网络,则文件仍然将被编辑,经替换的链接将不能正确地标识出专用网络资源并且该文件将不再是有用的。根据本发明的一个实施例,提供一种远程访问技术,其允许专用网络资源的专用标识符本身能够在外部网络上被用于连接到专用网络资源。专用网络资源的专用标识符可以在尝试使用该标识符访问该专用网络资源的计算设备连接到该专用网络时标识出该专用网络资源,但是可以在该计算设备连接到外部网络时标识出该专用网络的边缘资源(例如网关设备)。通过这种方式,可以将专用标识符本身用于与专用网络资源通信。在此所述的用于使专用网络标识符可通过外部网络使用的技术可以应用于网络资源的任何合适的标识符,并且可用于访问任何专用网络资源(例如连接到专用网络的任何合适的计算设备),因为在此所述的技术在这方面不受限制。在下面所述的一些示例性的实施方式中,可以使用域名系统(DNS)来标识出使用域名的网络资源。域名可以是合适的文本标识符,包括网络资源的任何合适的字母数字标识符,比如主控人力资源(HR)部门的内联网网站的web服务器的“hrweb”。在这些实施方式中,当连接到专用网络的计算设备使用内联网web服务器的域名来形成到该服务器的连接时,域名“hrweb”可以使用DNS被解析成内联网web服务器本身的因特网协议(IP)地址。 然而,当计算设备在连接到外部网络时使用域名“hrweb”时,该域名可以使用DNS被解析成专用网络的边缘资源的IP地址。边缘资源可以是连接到专用网络但是可以从该专用网络之外直接访问的任何合适的计算设备(例如网关设备)。在下面的示例中,边缘资源为便于说明而被称为网关设备和/或逆向代理,但是任何合适的边缘设备都可以用作本发明的实施例,并且在这方面不受限制。当域名“hrweb”被解析成网关设备的IP地址时,计算设备可以就好像网关设备是内联网web服务器那样与网关设备通信。例如,计算设备可以打开到该网关设备的连接,并且与该网关设备交换通信。与网关设备的通信可以以任何合适的方式来执行。在一些实施方式中,这样的通信可以根据在所述通信的至少一些中嵌入用于标识出所期望的网络资源的标识符的协议来进行。该标识符可以是曾被解析成网关的原始标识符或任何其他合适的标识符。在标识符是主控内联网网站的web服务器的域名(例如“hrweb”)的情况下,嵌入在通信中的标识符可以是该域名(例如“hrweb”)。然后,网关设备可以审查针对该域名的通信,并且将其用于标识出该通信将被转发至的专用网络资源一在该情况下,网关设备将使用该域名来标识出其应当将该通信转发给内联网web服务器。然后,网关可以将该通信转发给所标识出的专用网络资源。如果从专用网络资源接收到响应,则网关可以将该响应转发给发起该通信的计算设备。例如,网关设备可以从客户端计算机上的web浏览器接收下载网页的请求,可以将该请求转发给web服务器,可以从该web服务器接收网页,并且然后将该网页转发给发出该请求的计算设备。根据在此所述的原理运行的技术可以在任何合适的环境中实现,包括在包含任何合适数目和类型的计算设备的任何合适的计算机系统中实现。图1示出了在其中可以运行在此所述的原理的示例性实施方式的一个说明性计算机系统,但是应当理解,本发明的实施例不限于在该类型或任何其他特定类型的计算机系统中实现。图1示出了包括专用通信网络106的计算机系统,该专用通信网络106具有专用网络资源102。专用网络106可以将对连接到该网络的资源(包括专用网络资源102)的访问仅限于连接到专用网络106的那些设备。然而,使用在此所述的技术,诸如计算设备100 之类的处于专用网络106之外的设备可以通过外部通信网络104与专用网络资源102通信。尽管外部通信网络104被示为单个网络,但是应当理解,其可以是任何类型的一个或多个网络,包括因特网和到专用网络106的边缘资源108的直接连接。计算设备100可以是用于通过通信网络交换信息的任何合适的计算设备,因为本发明的各方面在这方面不受限制。例如,如图1中所示,计算设备100可以是膝上型个人计算机,但是应当理解,可以使用任何合适的计算设备,包括台式个人计算机、个人数字助理 (PDA)、智能手机或者其他资源。在一些实施例中,计算设备100可以是移动计算设备,该移动计算设备可以在某个时间连接到专用网络106,然后被断开并且被带到另一位置,在该位置处,所期望的可能是通过外部网络104(其例如可以是因特网)连接到专用网络106。例如,专用网络106可以是诸如公司之类的组织的企业网络,并且计算设备100可以是由该公司雇员所使用的膝上型计算机。该雇员的膝上型计算机可能有时连接到专用网络106(比如在该雇员在办公室中时),但是在其他时间,该膝上型计算机可能连接到外部网络104(比如在该雇员在家或旅行时)。如上面所讨论的那样,专用网络资源102可以是连接到专用网络106的任何合适的计算设备。在一些实施方式中,比如在图1所示并且将在下面的各个示例中讨论的实施方式中,专用网络资源102可以是web服务器102。Web服务器102可以是存储在web服务器的数据存储102A中的基于web应用的主机,并且可以将web应用的网页提供给其他计算设备用于显示在那些计算设备的web浏览器中。例如,该web应用可以是与同专用网络106 相关联的公司的HR部门的内联网网站相关联的web应用。然而,应当理解,本发明的实施例不限于与是web服务器的专用网络资源一起运行,因为这些技术可以用于访问专用网络上的任何合适的计算设备。计算设备100在图1中被示为连接到外部网络104,而web服务器102被示为连接到专用网络106。外部网络104和专用网络106每个都可以是任何合适的计算机通信网络, 并且可以包括任何合适的有线和/或无线通信介质。例如,专用网络106可以是被实现为家庭网络的局域网(LAN)、或者被实现为公司企业网的LAN或广域网(WAN)。外部网络104 可以是不是专用网络106的任何网络,包括诸如因特网之类的公众可访问的网络。如上面所讨论的那样,在一些实施方式中,专用网络106可以适于将对连接到该专用网络106的网络资源一比如web服务器102-的访问仅限于连接到专用网络106的其他计算设备。这可以以任何合适的方式实现,并且可以取决于边缘资源108是如何实现的以及使用了哪些安全技术。边缘资源108可以被实现为任何合适的设备,包括网关、防火墙和/或路由器。在一些实施方式中,专用网络106可以适于通过在边缘资源108处实施的安全规则来限制对专用网络资源的访问。边缘资源108可以是作为专用网络106的一部分并且提供(例如从外部网络104)到专用网络的入口点的任何合适的计算设备。边缘资源108可以规定可以传递到专用网络106中以及从专用网络106中传递出的通信。例如,边缘资源 108可以仅仅允许经授权的通信从外部网络104流入专用网络106,并且因此将对专用网络 106的访问仅限于经授权的各方。在下面讨论的一些实施例中,边缘资源108可以被实现为专用网络106的逆向代理108。如在此所使用的那样,术语“逆向代理”是指接收针对专用网络(其可以被认为是处于逆向代理之后)上的一个或多个资源的通信并且确定应当将特定通信传递给哪些资源的任何设备。图1的计算机系统还包括两个DNS服务器110和112。DNS服务器110被示为连接到专用网络106,并且包括外部和专用DNS条目的数据存储110A。这些条目可以用于解析连接到专用网络106和外部网络104 二者的资源的标识符。DNS服务器112连接到外部网络104,并且可以包括外部DNS条目的数据存储110A。这些条目可以用于解析连接到外部网络104的资源(例如通过诸如因特网之类的公用网络可用的资源)的标识符。在DNS中,当用户向计算设备输入域名来发起与由该域名所标识出的资源的通信时,该计算设备上的DNS客户端将查询DNS服务器来将该域名“解析”成IP地址。之所以进行这一动作是因为人类找到包括类似于字母数字标识符的域名在内的容易记忆和使用的文本标识符,但是计算机适于使用诸如IP地址之类的长的数字标识符来执行通信。DNS 服务器在从计算设备上的DNS客户端接收针对域名的查询以后将要么通过其本地可用的信息、要么通过查询其他DNS服务器的DNS条目来检查DNS条目以获得与该查询中的域名相对应的IP地址,并向DNS客户端返回该IP地址。计算设备然后可以使用该IP地址来发起与该资源的通信。本发明的在此所述的方面可以用在包括任何类型的DNS服务器的系统中。逆向代理108可以在本发明的一些实施例中被用于实现专用网络106之外的设备(例如计算设备100)与专用网络106的资源(例如web服务器102)之间的通信。在一些这样的实施例中,计算设备100可以使用诸如“hrweb”之类的域名来标识出web服务器 102。当计算设备100在连接到外部网络104时“解析”域名时,该域名可以被解析成逆向代理108的IP地址,以使得计算设备100能够通过逆向代理108与web服务器104通信。 这可以以任何合适的方式来进行,其示例在下面讨论。下面所述示例包括可以用于使得计算设备100能够从外部网络104访问web服务器102的各种技术。为便于说明,参考图1的示例性计算机系统来描述下面给出的在此所述的技术的示例。然而,应当理解,除非另行说明,这些技术不限于在图1的示例性计算机系统中运行。根据此处描述的原理运行的技术可以在任何适合的计算机系统中实现。为了将域名解析成IP地址,可以给DNS客户端提供该DNS客户端可以将查询发送至的DNS服务器的IP地址。在典型的DNS实施方式中,当计算设备100连接到网络时,给计算设备100提供该网络的DNS服务器的地址。因此,例如当计算设备100连接到外部网络104时,可以在解析域名的情况下给其提供DNS服务器112的地址,并且当计算设备100 连接到专用网络106时,可以给其提供用于解析域名的DNS服务器110的地址。然而,在本发明的与DNS —起运行的一些实施例中,计算设备100上的DNS客户端可以适于不论其连接到的网络如何都总是使用专用网络106的DNS服务器(例如DNS服务器110)来解析域名。在该实施例中,使用技术来使得计算设备100能够从专用网络之外访问专用网络的DNS服务器。图2示出了可以由运行这样的DNS客户端的计算设备100执行的过程。然而,应当理解,过程200仅仅举例说明了可以被实现以执行在此所述的技术的过程的类型,并且其他技术是可能的。过程200在框202中开始,其中计算设备100的DNS客户端被配置为使用专用网络106的DNS服务器110来解析域名。这可以以任何合适的方式进行。例如,计算设备100 的用户(比如管理员)可以将DNS服务器110的地址输入到计算设备110中。该输入可以人工完成,比如通过计算设备100的用户界面,自动完成,比如通过经由可从雷蒙德的微软公司获取的微软Active Directory的组策略分发的网络设定,通过动态主机配置协议 (DHCP)或者以任何其他方式完成。如图1所示,DNS服务器110连接到专用网络106,并且因此对DNS服务器110的访问可能受到限制。在一些这样的实施方式中,专用网络的边缘资源(例如逆向代理108)可以不限制到DNS服务器110的访问,并且可以适于允许DNS查询被传递给DNS服务器110。在其他实施方式中,将DNS客户端配置为使用DNS服务器110可以不包括输入DNS 服务器110本身的地址,而是可以包括输入逆向代理108的地址作为DNS客户端应当使用的DNS服务器的地址。因此,逆向代理108可以将通信中继给DNS服务器。在其他实施方式中,逆向代理108可以附加地充当DNS服务器,并且因此DNS服务器110和逆向代理108 可以被实现在同一设备中。因此,在本发明的一些实施例中,逆向代理108可以执行与解析域名相关的各种功能。下面更详细地描述在本发明的各实施例中可以由逆向代理108执行的示例性功能。无论如何在框202中提供DNS客户端,在框204中,计算设备100都连接到外部网络104。在框206中,(例如从计算设备100的用户或在计算设备100上执行的应用程序) 接收标识出网络资源的域名。该域名可以是任何域名,比如诸如“胃w. microsoft, com”之类的公众可解析的域名或者不能在专用网络106之外使用的诸如“hrweb”之类的专用域名。 专用域名可以与诸如web服务器102之类的专用网络资源相关联。在框208中,计算设备100的DNS客户端使用专用DNS服务器将域名解析成可以用于与指定资源通信的IP地址。该名称解析可以以任何合适的方式进行。在一个实施例中, 该名称解析可以通过查询在框202中配置的DNS服务器来执行。如果在框206中输入的域名是公众可解析的域名,则响应于该DNS查询所接收的IP地址可以是由域名所标识出的资源的IP地址。然而,当域名是诸如web服务器102之类的专用网络资源的专用域名时,则在本发明的一些实施例中,由计算设备100的DNS客户端响应于该解析所接收的IP地址可以是逆向代理108的IP地址,而不是专用网络资源的IP地址。下面详细描述可以用来执行该解析的示例性技术。在框210中,计算设备100执行与由在框208中所接收的IP地址标识出的资源 (例如逆向代理108)的通信。当指定的资源是专用资源(例如web服务器102)时,在一些实施例中,计算设备100可能不知道其直接与除所指定资源(例如web服务器10 以外的设备通信,因为框210的与该资源的通信可以就好像该通信是直接与该资源(例如web服务器10 进行的那样间接通过逆向代理108来执行。下面详细描述可以被逆向代理108 用来实现该通信的示例性技术。一旦执行了通信,过程200就结束。使用图2所示的过程,诸如web服务器102之类的专用网络资源的域名即使在计算设备100连接在专用网络之外(例如连接到外部网络104)的情况下仍然可以被用于与专用网络资源通信。专用域名到逆向代理108的IP地址的解析可以以任何合适的方式进行。因此,在本发明的一些实施例中,逆向代理108可以执行与该解析相关的功能。图 3示出了可以由逆向代理108上的远程访问机构在DNS解析期间执行的说明性过程300。然而,应当理解,过程300仅仅举例说明了可以被实现以执行在此所述的技术的过程的类型, 并且其他技术是可能的。过程300在框302中开始,其中逆向代理108上的远程访问机构从DNS客户端接收DNS查询。该DNS查询可以包含任何合适的域名,包括公共可解析的域名(例如“www. microsoft, com”)、或者专用网络资源的专用域名(例如“hrweb”)。如上面结合图2的框 202所讨论的那样,该DNS查询可以已经被传输给逆向代理108本身——比如在本发明的一实施例中,给DNS客户端提供逆向代理108的IP地址作为DNS服务器的IP地址——或者可以已经被传输给DNS服务器110并且经过了逆向代理108。在框304中,远程访问机构将DNS查询传递给DNS服务器110以将域名解析成IP 地址,并且在框306中从DNS服务器110接收响应。在框308,远程访问机构确定该域名是公众可解析的域名还是专用域名。该确定可以以任何合适的方式进行,包括通过检查在框306中所接收的响应中所包含的IP地址。IP 地址可以根据它们与哪个网络相关联而变化,并且通过确定IP地址是否匹配专用网络106 的IP地址的特性来标识出该域名是否是专用域名是可能的。例如,专用网络106的IP地址可以为“ 10. 1. *. *”的格式(其中*表示任何数字),并且如果响应中的IP地址匹配该格式(例如10. 1. 1. 1),则可以确定该IP地址是与专用网络资源的专用域名相关联的IP地址。与该格式不匹配的IP地址可以被确定为与公众可解析的域名相关联而不是与专用域名或专用网络资源相关联。如果在框308中确定该域名不是专用域名并且不与专用网络资源相关联,则在框 310中,DNS查询的结果可以被传递回DNS客户端以及发出该查询的计算设备100,并且过程300结束。然而,如果在框308中确定该域名是专用域名并且与专用网络资源相关联,则远程访问机构可以采取一个或多个动作以保证发出DNS查询的计算设备100能够与该专用网络资源通信。例如,如果专用网络资源是web服务器120,则在计算设备100尝试使用由DNS 服务器110所返回的IP地址来直接与web服务器102通信的情况下,专用网络106的一个或多个安全机构可能阻止计算设备100执行该通信。远程访问机构可以采取任何合适的动作来使得计算设备100能够与专用资源(例如web服务器102)通信。例如,当在框308中确定域名是专用域名时,则在框312中,逆向代理108可以通过以任何合适的方式存储IP地址来记录在框306中所接收的DNS响应中所返回的IP地址。然后,在框314,逆向代理108可以编辑DNS响应以提供其自己的IP地址(即逆向代理108的IP地址),并且将该经编辑的DNS响应传递给计算设备100,并且过程300结束。通过以这种方式编辑DNS响应,远程访问机构迫使计算设备100——在一些实施方式中在计算设备100不知道的情况下——将针对专用资源(例如web服务器10 的通信定向为被直接发送给逆向代理108。计算设备100可以这样做,因为经编辑的DNS响应仅能指示其中所包含的IP地址(其实际上是逆向代理108的IP地址)是与计算设备100所发出的DNS查询所针对的域名相关联的IP地址。逆向代理108然后可以接收针对专用资源(例如web服务器102)的所有通信,并且通过应用为专用网络106所建立的安全规则来确定是否将这些通信传递给专用资源(例如web服务器10 。通过这种方式,可以保留对专用访问106的安全限制,但是对专用网络106的远程访问可以实现。下面更详细地描述可以由逆向代理108实现的用于对通信进行路由的示例性技术。尽管在图3中未示出,但是在一些实施方式中,当域名在框308中被远程访问机构确定为专用域名时,可以作出关于是否将任何IP地址传递回发送该响应的计算设备100的另一判定。该判定可以根据为专用网络106所建立的安全限制来作出。例如,安全限制可以标识出不能被赋予远程访问的一个或多个网络资源。如果接收到针对这些被禁止的网络资源之一的请求,则远程访问机构可以确定不应当给发出DNS查询的计算设备100赋予该远程访问。在这种情况下,远程访问机构可以创作给DNS查询的指示该域名不能被解析的响应,并且不向计算设备100提供IP地址。在没有用于传输通信的IP地址的情况下,计算设备100将既不能直接、也不能间接地通过逆向代理108与专用资源通信。如上面所讨论的那样,图3的过程300仅仅是可以由远程访问机构执行以允许由专用网络106之外的计算设备解析域名的过程的一个例子,因为其他过程是可能的。如上面所讨论的那样,逆向代理108也可以被配置成DNS服务器,使得逆向代理108和DNS服务器110是同一设备。在本发明的实现这样的设备的实施例中,过程300可以被改变为使得 DNS查询不被传递给单独的设备,而是本地地由逆向代理108的DNS功能来处理。其他过程也可以由计算设备100的DNS客户端来执行以解析域名。如上面结合图 2所讨论的那样,在本发明的一些实施例中,计算设备100的DNS客户端可以被配置为将所有DNS查询传递给专用DNS服务器。在本发明的可替代的实施例中,计算设备100可以被配置为使用诸如外部网络104的DNS服务器112之类的公用DNS服务器来执行针对公众可解析的域名的DNS查询、以及使用专用DNS服务器来执行针对专用网络资源的DNS查询。因此,DNS客户端可以被配置为维持两个不同的DNS服务器。图4示出了可以由计算设备100的DNS客户端执行的说明性过程400,其中该DNS 客户端是利用两个不同DNS服务器来配置的。然而,应当理解,过程400仅仅举例说明了可以被实现以使专用标识符(例如专用域名)能在专用网络之外被解析的过程的类型,并且其他过程是可能的。过程400在框402中开始,其中DNS客户端利用专用网络的DNS服务器110的IP 地址而被配置。这可以以任何合适的方式来进行,包括通过使用上面结合图2的框202所述的任何技术。在框404中,计算设备100可以连接到外部网络104并且可以被配置为与外部网络104通信。配置计算设备100可以包括将计算设备100的DNS客户端配置为使用外部网络104的DNS服务器112来解析域名。这可以以任何合适的方式来完成,包括通过诸如动态主机配置协议(DHCP)之类的已知技术。在框406中,由计算设备100(例如从计算设备100的用户或在计算设备100上执行的应用程序)接收标识出网络资源的域名。该域名可以是任何域名,比如诸如“www. microsoft, com”之类的公众可解析的域名或者不能在专用网络106之外使用的诸如 “hrweb”之类的专用域名。专用域名可以与诸如web服务器102之类的专用网络资源相关联。在框408,在解析在框406中所接收的域名之前,计算设备100的DNS客户端可以确定该域名是公众可解析的域名还是与专用网络资源相关联的专用域名。可以进行该判定以确定应当使用被用来配置DNS客户端的两个DNS服务器中的哪个来解析域名。该确定可以以任何合适的方式进行,比如通过将该域名与已知专用域名的列表(例如已知与专用网络106相关联的域名的列表)相比较。该列表可以以任何合适的方式来存储,比如存储在计算机设备100上的HOSTS文件中或者以任何其他的方式存储。 如果在框408中确定域名不是专用域名,和/或确定其是公众可解析的域名,则在框410中,DNS客户端可以使用外部网络104的DNS服务器112来解析该域名。该解析可以以任何合适的方式来执行,包括通过常规的DNS解析技术。然而,如果在框408中确定该域名是专用域名,则在框412中,DNS客户端可以使用专用网络106的DNS服务器110来解析该域名。该解析可以以任何合适的方式使用专用网络106来执行,包括通过上面结合图3所述的任何技术。—旦域名在框410和412之一中被解析,则计算设备100就可以与由在解析期间获得的IP地址所标识出的资源通信,并且过程400结束。在上述用于解析专用域名的技术中,专用域名是使用诸如专用网络106的DNS服务器110之类的专用DNS服务器被解析的。这可以在本发明的一些实施例中进行。然而, 在其他实施例中,可以使专用域名可被公众地可解析,使得计算设备100不必联系专用DNS 服务器。这可以以任何合适的方式进行。本发明的使专用域名可被公众地可解析的一些实施例可以使用DNS后缀来实现这一点。按照惯例,当接收到亦称部分限定域名的(PQDN)的仅仅部分域名时,DNS客户端使用DNS后缀来作出亦称完全限定域名(FQDN)的完整域名。完全限定域名是完整和无疑义的域名,并且包括顶级域名(TLD)。TLD是FQDN的最后一部分,比如域名的诸如“.com”、 “.org”、“. net”等等之类的公知结尾,但是应当理解,可以将公用或专用的任何标识符用作 TLD。由于DNS仅能解析FQDN (而不是PQDN),因此DNS后缀可以被附加到PQDN以作出 FQDN0例如,当用户输入域名的一部分而不是整个域名时,比如输入“microsoft”而不是 "microsoft, com"时,计算设备的DNS客户端可以将后缀“.com"附加到输入域名以作出可解析的完全限定域名。通常,一次一个地附加后缀,并且使用每个后缀来尝试解析,直到后缀之一产生解析成功的FQDN。DNS中的成功解析可以产生若干合适的结果,包括与FQDN相关联的IP地址。按照惯例,这些后缀限于顶级域名。DNS后缀的附加也可以以对输入后缀被附加到的PQDN的用户或应用透明的方式
1进行。由于后缀仅仅用在DNS解析过程中——即仅仅用在发出DNS查询时——,因此被用户/应用使用的域名仍然是部分限定域名。申请人:已经认识到,专用网络资源常常由部分限定域名而不是FQDN来标识。 另外,专用网络资源常常使用称为“单调名称(flat name)”的仅包括一个标签(比如 "hrweb")而不是多个标签(诸如“hrweb. corp” )的PQDN来进行标识。(但是由PQDN标识出的专用网络资源可以使用任何合适的标识符来标识出)。这样的专用域名一其没有 TLD—不是完全限定域名,并且不需要附加后缀使域名为完全限定的和可解析的。在本发明的一些实施例中,可以给计算设备100的DNS客户端提供标识出专用网络106的DNS后缀。当接收到部分限定域名时,该DNS后缀可以像其他DNS后缀那样被处理并且被附加到PQDN以作出FQDN。例如,专用网络的后缀可以是“remoteaccess. corporate, com”。然后,该后缀可以被附加到PQDN以作出可解析的FQDN。与应当被赋予远程访问的每个专用网络资源相对应的完全限定域名(其例如使用专用域名和后缀形成,比如“hrweb. remoteaccess. corporate, com”)然后可以通过DNS 系统发布,包括通过诸如因特网之类的公众可用的网络。通过这样做,在公用网络上可用的 DNS服务器可以具有与这些FQDN相对应的条目。这些条目也可以指定对应于FQDN的IP地址。如上面所讨论的那样,在本发明的一些实施例中,该IP地址可以是与域名相对应的诸如web服务器102之类的专用网络资源的IP地址。然而,在其他实施例中,该IP地址可以针对另一网络设备,比如逆向代理108的IP地址。图5示出了可以由运行在计算机环境中的计算设备100实现的说明性过程500,其中在该计算机环境中,诸如DNS服务器112之类的公用DNS服务器具有与每个专用网络资源的FQDN相对应的条目。然而,应当理解,过程500仅仅举例说明了可以被实现以在专用网络之外解析专用标识符的过程的类型,并且其他过程是可能的。图5的过程500在框502中开始,其中计算设备100的DNS客户端利用与专用网络106相关联的至少一个后缀被配置。该配置可以以任何合适的方式来进行,包括通过使用上面结合图2的框202所述的任何示例性技术。在框504中,计算设备104连接到诸如外部网络104之类的外部网络,并且可以被配置为与外部网络104通信。该配置可以包括将计算设备100的DNS客户端配置为使用外部网络104的DNS服务器112来解析域名。这可以以任何合适的方式来完成,包括诸如动态主机配置协议(DHCP)之类的已知技术。在框505中,计算设备100接收作为部分限定域名的输入,并且将该PQDN输入到 DNS客户端。该域名可以从任何合适的源接收,包括计算设备100的用户或在计算设备100 上执行的应用程序。在框506中接收的PQDN可以与任何合适的网络资源相关联,包括诸如 web服务器102之类的专用网络资源。在框508,通过由DNS客户端在将框506的PQDN与用来配置DNS客户端的DNS后缀之一相结合来创建FQDN。由于框502的配置,这些后缀之一可以是与诸如“remoteaccess. corporate, com”之类的专用网络106相对应的后缀。DNS客户端可以一次一个地附加用来配置DNS的后缀中的每个,并且通过向外部网络104的DNS服务器112发出DNS查询来尝试解析每个后缀。DNS客户端可以以任何合适的顺序继续尝试这些后缀中的每个,直到其中一个被检测为可以由DNS服务器112解析,并且相应的IP地址作为响应被接收。由于在先发布专用网络资源的FQDN,DNS服务器112可以具有与在506中所接收的域名相对应的条目,比如在原始输入的域名为“hrweb,,时与“hrweb. remoteaccess. corporate, com,,相对应的条目。在一些实施例中,由DNS服务器112执行的解析过程可以包括比如在DNS服务器 112不本地地具有FQDN的条目的情况下,将DNS查询转发给一个或多个其他DNS服务器。 对DNS查询的该转发可以以任何合适的方式执行,包括根据任何已知的DNS技术。在框510,DNS客户端接收对其DNS查询的响应,该响应包括对应于FQDN的IP地址。如在上述其他示例中那样,在本发明的一些实施例中,对应于FQDN的IP地址可以是逆向代理108的IP地址、而不是所期望的专用网络资源(例如web服务器102)的IP地址。 这可以进行以迫使执行DNS解析的计算设备100在可能对此不知道的情况下通过逆向代理 108传递针对专用网络资源的所有通信,使得逆向代理108可以应用一个或多个安全规则以保证保留对专用网络106的安全限制。例如,一旦FQDN被解析并且计算设备100尝试使用IP地址来通信,则逆向代理108就可以请求计算设备100向专用网络106认证其本身 (比如通过提供有效用户名和/或口令),并且如果计算设备100未经过认证,则逆向代理 108可以不允许通信。在框512中,一旦FQDN被解析成在框510中所接收的IP地址,则计算设备100就与由该IP地址所标识出的网络资源通信,并且过程500结束。上面描述了用于使专用网络资源的标识符可用于从外部网络104与专用网络通信的示例性的技术(并且一些将在下面描述)。这些技术是使用域名和域名系统(DNQ描述的。然而,应当理解,可以使用任何合适的解析技术,包括诸如域名系统安全扩展(DNSSEC) 之类的DNS的扩展或DNS以外的任何技术。另外,应当理解,一旦诸如专用网络资源的域名之类的专用网络资源的标识符被解析成IP地址,则就可以以任何合适的方式直接或间接地(例如通过逆向代理服务器)在计算设备与专用网络资源之间进行通信。下面描述用于执行该通信的技术,但是应当理解, 这些技术仅仅是说明性的,并且本发明的实施例不限于根据任何特定技术执行通信。图6示出了本发明的一些实施例中的用于执行该通信的这样的技术,该技术可以由计算设备100实现。图6的所示过程在框602中开始,其中专用网络资源的域名被解析成IP地址。在该示例中,该IP地址是与逆向代理108相关联的IP地址,但是应当理解,该 IP地址可以与专用网络上的任何合适的网络资源相关联。框602的解析可以以任何合适的方式进行,包括根据上述技术中的任一种。在框604中,建立到框602中所标识出的逆向代理108的连接。在本发明的一些实施例中,框604中所建立的连接可以使用一个或多个安全技术来保护。例如,该连接可以使用诸如因特网安全(IPsec)之类的安全技术或任何其他安全技术来加密和/或认证。该安全性可以基于下列项目来实现由用户输入的请求;在连接到逆向代理108以后对逆向代理108的请求(例如当逆向代理108指示计算设备100 提供认证凭证时);计算设备100的配置设定;或者任何其他方式。例如,计算设备100的安全策略可以被配置为要求使用一种或多种安全技术(比如通过IPsec)来保护到逆向代理108的连接。在框606,一旦到逆向代理108的连接被打开和/或被保护,则计算设备100就可以开始与逆向代理108通信。如上面所讨论的那样,计算设备100可以尝试与诸如web服务器102之类的特定专用网络资源通信,但是由于提供逆向代理108的IP地址的DNS解析,计算设备100可以与逆向代理108通信。这可以在计算设备100不知道的情况下进行, 也就是说在一些实施例中,计算设备100可能不知道在框602中所接收到的IP地址不是专用网络资源(例如在上面的示例中为web服务器102)的IP地址,并且可以就好像逆向代理108是专用网络资源那样与逆向代理108通信。然后,逆向代理108可以使用包括下面描述的示例性技术在内的任何合适的技术来将通信转发给专用网络资源(例如web服务器 102)。框606中的通信可以根据任何合适的协议以任何合适的格式来传递。在本发明的一些实施例中,这些通信可以根据如下的协议来传递所述协议将原始输入的标识符嵌入在通信中,使得其可以被逆向代理108用于确定将所接收的通信转发到专用网络106内的何处。例如,尤其是超文本传输协议(HTTP)和传输层安全(TLQ协议可以将报头包括在每个通信中,该报头标识出该通信的各种性质。包括在这些性质中的是通信所针对的“主机”设备的标识符。该标识符可以采取任何合适的形式,并且在结合DNS使用HTTP/TLS的一些环境中,该标识符可以是原始输入的主机设备的域名,该域名已经被输入到DNS客户端以通过DNS过程被解析成IP地址。在本发明的根据诸如HTTP和TLS之类的协议进行通信的实施例中,嵌入在通信的报头中的标识符可以是原始在框602中接收到的域名,并且由计算设备100的DNS客户端来解析。例如,在所接收的域名是“hrweb”并且以任何合适的方式(例如通过将“hrweb” 传递给诸如DNS服务器110之类的DNS服务器、或者通过创建诸如“hrweb. remoteaccess. corporate, com”之类的要被解析的FQDN、或者通过以任何其他方式进行解析)被解析的情况下,嵌入在报头中的标识符可以是原始输入的标识符“hrweb”。包括该报头的通信可以在框606中被传递给远程代理108。在框608,计算设备 100可以通过逆向代理108从所期望的专用网络资源接收响应,比如从web服务器102接收所请求的网页。如框610中所示,框606和608可以一直重复,直到通信完成——例如当与专用网络106相关联的公司的雇员已经远程地完成了任务或者已经完成了工作时——,并且过程600结束。逆向代理108可以以任何合适的方式适于在其接收的通信针对诸如web服务器 102之类的专用网络资源时标识出这些通信的接收者。例如在诸如结合图2和4所描述的实施例之类的一些实施例中,如果计算设备100适于通过逆向代理108传递诸如专用域名之类的专用标识符以利用专用DNS服务器110来解析该专用标识符,则逆向代理108可以维持关于哪些域名被查询以及被哪些计算设备查询的记录。当从计算设备100接收到通信时,则逆向代理108可以从其记录中确定由计算设备100所查询的域名,假定该通信针对所查询的域名,并且将该通信传递给由该域名所标识出的专用网络资源(例如web服务器 102)。类似地,当逆向代理108从专用网络资源接收到响应时,则其可以将该响应转发给由其记录指示将该查询发出给该专用网络资源的计算设备100。然而,在本发明的可替代的实施例中,逆向代理108能够从通信本身中确定该通信所针对的专用网络资源。例如,如上面结合图6所讨论的那样,在一些实施例中,计算设备100可以根据将所期望的网络资源的标识符嵌入在通信中的协议来与逆向代理108交换通信。当逆向代理108接收到这样的通信时,逆向代理108可以检查通信以确定所针对的接收者。图7示出了可以由逆向代理108的远程访问机构实现的过程700的一个示例,该过程用于确定要将从专用网络之外的计算设备(例如计算设备100)接收的通信转发给的专用网络资源。过程700可以在本发明的实施例中实现,其中计算设备100根据将通信所针对的接收者的标识符嵌入在通信中的协议(例如HTTP、TLS等等)来与逆向代理108交换通信。然而,应当理解,过程700仅仅图解说明了可以在本发明的实施例中实现的过程的类型。当实现在此所述的根据这些协议处理通信的技术时,可以实现以其他方式确定如何转发通信的其他过程。另外,应当理解,这些协议仅仅是可以被这些技术实现以进行处理的协议的一个示例,并且可以实现处理其他类型的协议的过程。过程700在框702中开始,其中逆向代理108从连接到外部网络104的计算设备 100接收连接。逆向代理108的远程访问机构可以采取任何合适的动作来打开该连接,包括使用一种或多种包括If3Sec在内的安全技术来保护该连接。在框704中,远程访问机构从计算设备100接收通信,在该通信中已经嵌入了该通信所针对的专用网络资源的标识符。然后,远程访问机构可以分析该通信以对该标识符进行定位。例如,对于根据HTTP协议所传输的通信而言,该通信可以具有包括“主机”设备的标识符的报头。该标识符可以是主机的域名,该域名在连接被打开之前被原始输入到计算设备100。然后,远程访问机构可以使用主机设备的标识符来对应当将通信传递给的专用网络资源(例如web服务器10 进行定位。在框706中,通信可以被传递给在该通信中所标识出的专用网络资源。这可以以任何合适的方式进行。在一些实施方式中,远程访问机构可以将通信中的标识符解析成IP 地址,这可以通过检查域名和IP地址(例如在图3的框312中所创建的IP地址)的本地记录或者将该标识符传递给专用DNS服务器110来完成。在框708,远程访问机构从专用网络资源接收要转发给计算设备100的响应,并且将该响应转发给计算设备100。这可以以任何合适的方式进行,比如通过维持来自外部网络 104上的计算设备的开放连接的列表、这些通信设备与之执行通信的专用网络资源、传输给这些专用网络资源或者向这些专用网络资源请求的信息的类型、和/或任何其他合适的信息。基于该信息,远程访问机构可以确定应当将响应转发给外部网络的104的哪个计算设备,并且在框708中将该响应转发给计算设备100。如框710中所示,框706和708可以一直重复,直到通信完成——例如当与专用网络106相关联的公司的雇员已经远程地完成了任务或者已经完成了工作时——,并且过程 700结束。尽管未在图7中示出,但是应当理解,逆向代理108的远程访问机构可以采取任何合适的动作来应用专用网络106的一个或多个安全策略。例如,当外部网络104的计算设备 100在框702中打开连接时,远程访问机构可以确定计算设备100是否被授权远程访问专用网络106。附加地或可替代地,在框704中,远程访问机构可以确定从计算设备100接收的通信是否与被允许或不被允许的远程访问活动相关联和/或是否针对被允许或不被允许远程访问的专用网络资源。例如,如果在框704中所接收的通信与从web服务器102检索网页相关联,则该通信可以被允许,但是如果该通信是从文件服务器请求特定的安全文件, 则远程访问机构可以不允许该活动。如果某个活动不被远程访问机构允许,则远程访问机构可以采取任何合适的动作作为响应。例如,在一些实施例中,远程访问机构可以向计算设备100通知该活动不被允许。通知计算设备可以以任何合适的方式进行,并且可以取决于所请求或所执行的活动的类型。例如,如果不被允许的通信是请求特定的安全网页,则远程访问机构不允许该活动以防止安全网页被传输到专用网络106之外,相反,远程访问机构可以作为响应传输指示安全限制不允许在专用网络106之外访问该网页的替换网页。附加于或替代于被动地在计算设备100与专用网络资源之间来回传递通信,逆向代理108的远程访问机构可以采取任何合适的动作来编辑这些通信。例如,远程访问机构可以插入和/或移除与安全策略相关的信息。在本发明的一些实施例中,远程访问机构也可以执行如下的功能该功能使得通信能够被正确传递,否则由于实现远程访问的方式而不能实现。例如,在一些实施例中,远程访问机构可以执行与HTTP cookie相关的功能。HTTPcookie是web服务器和/或web客户端可以用来存储与web会话相关的信息的一种方式。例如,如果web客户端具有该web 客户端的用户的用户名,其中该web服务器需要在web服务器将信息提供该web客户端之前将该用户名传递给web服务器,则该信息可以从用户接收,并且本地存储在web客户端上 HTTP cookie中。作为另一示例,如果web客户端收集关于供从商业网站购买的产品的信息,则该web客户端可以将关于这些产品的信息(例如购物车)在web客户端上本地存储在HTTP cookie中以供之后在web客户端的用户选择进行该购买时发送给web服务器。由于HTTP cookie可以存储敏感信息(例如要发送给web服务器的用户名),因此web客户端可以采取各种措施来保证这些HTTP cookie能够以唯一的方式被存储,比如与特定的唯一域名相关联,并且仅能被该特定的唯一域名检索。为了保证HTTP cookie与唯一的域名相关联,web客户端可以将cookie使用仅限于具有完全限定域名(FQDN)的web 服务器。如上面所讨论的那样,用于专用网络资源的诸如web服务器102的域名之类的专用标识符可以是部分限定域名(PQDN)而不是完全限定域名,比如单个标签“hrweb”。即使 FQDN是由要解析PQDN的DNS客户端形成的,PQDN仍然可以是用于访问专用网络资源的标识符。由于存在PQDN可能不是唯一名称的风险,因此从外部网络访问web服务器102的计算设备100的web客户端可以不允许使用与web服务器102相关联的HTTP cookie。然而,一些网站依靠HTTP cookie来正确运行,并且因此在一些情况下,web服务器102的网站在不允许HTTP cookie时不能在计算设备100上正确显示。这样的故障可能影响用户体验。在一些实施例中,逆向代理108的远程访问机构因此可以采取一个或多个动作来启用HTTP cookie以用于计算设备100与逆向代理108之间的连接,但是不是所有的实施例都需要提供这样的功能。图8A和8B示出了可以被逆向代理108的远程访问机构用于实现HTTPcookie的过程的两个示例。然而,应当理解,图8A和8B的过程800A和800B仅仅图解说明了可以由适于启用HTTP cookie的远程访问机构来实现的过程的类型,并且其他过程是可能的。另外,应当理解,不是所有的远程访问机构都可以被实现为启用HTTP cookie,因为本发明的实施例不限于此。过程800A在框802中开始,其中远程访问机构在计算设备100与web服务器102 之间交换信息时检测到该信息将作为HTTP cookie被计算设备100的web客户端存储。该检测可以以任何合适的方式进行,比如通过在web服务器102与计算设备100之间传输的 web内容中检测可能导致HTTP cookie被存储的指令。远程访问机构可能知道计算设备100 的web客户端将不允许cookie,因为远程访问机构可能知道用于连接到web服务器102的标识符不是完全限定域名。因此,在框804中,在进行该检测以后,远程访问机构可以标识出该信息将被存储,并且将其存储得使得其可以被逆向代理108访问。这可以包括本地地在逆向代理108上或者在逆向代理108可访问的远程位置处存储cookie信息。该信息可以以任何合适的方式存储,并且可以与该连接、计算设备100和/或web服务器102相关联。在框806,在计算设备100与web服务器102之间交换信息时,远程访问机构可以检测到将使用本应该存储在HTTP cookie中的信息(该信息可能已经不被计算设备100 的web客户端允许)。该检测可以以任何合适的方式进行,包括通过检查所传输的网页的内容以标识出请求存储在cookie中的信息的网页部分。例如,包括超文本标记语言(HTML)网页代码的网页代码可以包括对应当以cookie存储的信息的引用,并且该代码可以由远程访问机构来检测。可以以任何合适的方式来使用HTTP cookie中的信息,比如通过将其传输给web服务器102,或者通过将其插入到在计算设备100与web服务器102之间传输的内容中。在该检测以后,远程访问机构可以在框808中使用从框804本地存储的HTTP cookie 中的信息来执行所检测的动作(例如将信息传输给web服务器102,将信息插入到内容中等等)本身。通过这种方式,通过本地存储HTTP cookie信息,远程访问机构可以启用HTTP cookie在该连接上的使用并且保持由web服务器102主控的网页在计算设备100上正确运行。图8B示出了用于启用HTTP cookie在计算设备100与web服务器102上的连接使用的可替代的过程800B。过程800B在框822中开始,其中逆向代理108的远程访问机构在计算设备100与 web服务器102之间交换消息时检测到HTTP cookie将被创建和/或使用。该检测可以以任何合适的方式来进行,包括使用上面结合图8A的框802所述的任何示例。远程访问机构可能知道计算设备100的web客户端将不允许cookie,因为远程访问机构可能知道用于连接到web服务器102的标识符不是完全限定域名。然后在框824中,远程访问机构可以通过如下方式启用HTTP cookie在该连接上的使用使用被web客户端允许使用HTTP cookie的标识符(例如与逆向代理108和/或 web服务器102相关联的FQDN)将计算设备100的web客户端定向为重新连接到web服务器102。这可用任何合适的方式来完成,包括根据已知的HTTP重定向技术。在一些情况下, 当执行这样的重定向时,远程访问机构可以存储与该连接的当前状态相关的信息,比如已经使用HTTPP0ST消息被传输的信息。然后,远程访问机构可以以任何合适的方式将该信息应用于该连接,包括根据与上面结合图8A所述的技术类似的技术、存储这样的信息可以允许信息在定向以后仍然被使用,并且防止破坏重定向期间或之后的用户体验。在框826,远程访问机构然后可以通过新的连接根据包括上述任何技术在内的任何合适的技术在web服务器102与计算设备100之间交换信息。过程800B随后结束。根据此处描述的原理操作的技术可通过任何适合的方式来实现。上面描述了一系列示出了各种过程的步骤和动作的流程图,所述过程的步骤使得专用网络资源的专用标识符能够被用于建立从外部网络的连接。以上的流程图的处理和判定框表示可被包括在实现这各种过程的算法中的步骤和动作。从这些过程导出的算法可以被实现为与一个或多个多用途处理器集成并指导其操作的软件、可以被实现为诸如数字信号处理(DSP)电路或专用集成电路(ASIC)等功能上等效的电路、或可以用任何其他适合的方式来实现。应当理解, 此处包括的流程图未描绘任何特定电路的句法或操作,也未描绘任何特定的编程语言或编程语言类型的句法或操作。更确切而言,各流程图示出了本领域普通技术人员可用于制造电路或实现计算机软件算法来执行实现此处描述的各类型的过程的特定装置的处理的功能信息。因此,某些实施例中,此处描述的技术可以用被实现为软件的计算机可执行指令来具体化,软件包括应用软件、系统软件、固件、中间件、或任何其他适合类型的软件。这样的计算机可执行指令可使用多种适合的程序设计语言和/或程序设计或脚本工具中的任何一种来编写,而且它们还可被编译为可执行机器语言代码或在框架或虚拟机上执行的中间代码。当此处描述的技术体现为计算机可执行指令时,这些计算机可执行指令可以以任何合适的方式来实现,包括被实现为多个功能工具,每个功能工具都提供为了完成根据这些技术来操作的算法的执行所需的一个或多个操作。不论是如何实例化的,“功能工具”都是计算机系统的一个结构组件,其在与一个或多个计算机集成并由其执行时使得该一个或多个计算机执行具体操作任务。功能工具可以是软件元素的一部分或是整个软件元素。例如,功能工具可被实现为进程的函数、或被实现为分立的进程、或被实现为任何其他合适的处理单元。如果此处描述的技术被实现为多个功能工具,则每一功能工具可以按其自己的方式来实现;不必将所有功能工具以相同的方式来实现。另外,这些功能工具可在适当时并行或串行执行,并且可使用在其上执行这些模块的计算机上的共享存储器、使用消息传递协议、或以任何其他合适的方式,来在彼此之间传递信息。一般而言,功能工具包括执行特定任务或实现特定抽象数据类型的例程、程序、 对象、组件、数据结构等。通常,功能工具的功能可以如它们在其中操作的系统所需来组合或分布。在某些实施方式中,实现此处的技术的一个或多个功能工具可以一起形成完整的软件包,如作为诸如可从华盛顿州雷蒙德市的微软公司获取的Microsoft Unified Application Gateway (微软统一应用网关)(UGA)或 htelligent Access Gateway (智能访问网关)(IAG)或等软件程序应用。在替换实施例中,这些功能工具可适用于与其他不相关的功能工具和/或进程交互,来实现软件程序应用。在其他实施方式中,功能工具可以适于与其他功能工具交互使得形成操作系统,该操作系统包括可从华盛顿州雷蒙德市的微软公司获得的Windows操作系统。换言之,在某些实现中,功能工具可以可替代地被实现为操作系统的一部分或在操作系统外部实现。用于执行一个或多个任务的某些示例性功能工具已在此处描述。但应当理解,所描述的功能工具和任务划分仅是可实现此处描述的示例性技术的功能工具的类型的说明, 且本发明不限于以任何特定数量、划分、或功能工具类型来实现。在某些实现中,所有功能可在单个功能工具中实现。应当理解,在某些实现中,此处描述的功能工具中的某一些可以与其他功能工具一起实现或分开实现(即,作为单个单元或分开的单元),或者这些功能工具中的某一些可不被实现。在某些实施例中,实现此处描述的技术的计算机可执行指令(但被实现为一个或多个功能工具或以任何其他方式实现时)可以被编码在一个或多个计算机可读存储介质上来向该存储介质提供功能。这些介质包括诸如硬盘驱动器等磁介质、诸如压缩盘(CD)或数字多功能盘(DVD)等光介质、持久或非持久固态存储器(例如,闪存、磁RAM等)、或任何其他合适的存储介质。这样的计算机可读存储介质可被实现为以下图9和10中所述的计算机可读存储介质906或1006 (即作为计算设备900或1000的一部分)或实现为独立的、 单独的存储介质。应当理解,如此处所使用的那样,包括“计算机可读存储介质”的“计算机可读介质”是指具有可在其上记录数据的过程期间用某种方式更改的至少一种物理性质的有形存储介质。例如,计算机可读介质的物理结构的一部分的磁化状态可在记录过程中更改。另外,上面所述的一些技术包括以某些方式存储信息(例如数据和/或指令)以供所述技术使用的动作。在这些技术的一些实施方式中——比如在这些技术被实施成计算机可执行指令的实施方式中——,该信息可以被编码在计算机可读存储介质上。在上面将特定指令描述为用于存储该信息的有利格式时,这些结构可以用于提供这些信息在编码在存储介质上时的物理组织。然后,这些有利的结构可以通过影响与信息交互的一个或多个处理器的操作(例如通过增加由处理器执行的计算机操作的效率)来向存储介质提供功能。在其中各技术可体现为计算机可执行指令的一些但非全部实现中,这些指令可以在任何适合的计算机系统中操作的一个或多个合适的计算设备上执行,包括图1的示例性计算系统。包括这些计算机可执行指令的功能工具可以与单个多用途可编程数字计算机装置、共享处理能力且联合执行此处所描述的技术的两个或更多多用途计算机装置的协作系统、专用于执行此处所描述的技术的单个计算机装置或计算机装置的协作系统(位于同处或在地理上分布)、用于实现此处所描述的技术的一个或多个现场可编程门阵列(FPGA)、 或任何其他合适的系统集成,或指导这些系统的操作。图9示出了计算设备900形式的可用于实现本文描述的技术的系统中的计算设备的一个示例性实现,然而其他实现也是可能的。在本发明的一些实施例中,图9的计算设备 900可以被实现为计算设备100。应理解,图9既不旨在是对用于依照本发明描述的原理操作的计算设备的必要组件的描绘,也不旨在是全面描绘。计算设备900可包括至少一个处理器902、网络适配器904、以及计算机可读存储介质906。计算设备900例如可以台式或膝上型个人计算机、个人数字助理(PDA)、智能移动电话、服务器、无线接入点、或者其他联网元件、或者尝试远程访问专用网络的任何其他合适的计算设备。网络适配器904可以是使得计算设备900能够通过任何适合的计算网络来与任何其他适合的计算设备进行无线通信的任何适合的硬件和/或软件。该计算网络可包括无线接入点以及用于在两个或更多个计算机之间交换数据的任何适合的一个或多个有线和/或无线通信介质,包括因特网。计算机可读介质906适用于存储要由处理器902 处理的数据和/或要由处理器902执行的指令。处理器902能够处理数据和执行指令。这些数据和指令可被存储在计算机可读存储介质906上,并且例如可以启用计算设备900的各组件之间的通信。存储在计算机可读存储介质906上的数据和指令可包括实现根据本文描述的原理操作的技术的计算机可执行指令。在图9的示例中,如上所述,计算机可读存储介质906存储实现各种工具并存储各种信息的计算机可执行指令。计算机可读存储介质906可以存储DNS客户端908以使用包括上述技术在内的任何合适的技术将专用标识符解析成IP地址。计算机可读存储介质906可以进一步存储DNS配置信息910,该DNS配置信息910包括一个或DNS服务器(比如DNS服务器110和/或DNS服务器112)的IP地址912以及一个或多个将被用于形成完全限定域名的DNS后缀914。图10示出了计算设备1000形式的可用于实现本文描述的技术的系统中的计算设备的一个示例性实现,然而其他实现也是可能的。在本发明的一些实施例中,图10的计算设备1000可以被实现为逆向代理108。应理解,图10既不旨在是对用于依照本发明描述的原理操作的计算设备的必要组件的描绘,也不旨在是全面描绘。计算设备1000可包括至少一个处理器1002、网络适配器1004、以及计算机可读存储介质1006。计算设备1000例如可以是服务器、大型计算机、诸如防火墙、网关或路由器之类的联网设备、或者任何其他合适的计算设备。网络适配器1004可以是使得计算设备 1000能够通过任何适合的计算网络来与任何其他适合的计算设备进行无线通信的任何适合的硬件和/或软件。该计算网络可包括无线接入点以及用于在两个或更多个计算机之间交换数据的任何适合的一个或多个有线和/或无线通信介质,包括因特网。计算机可读介质1006适用于存储要由处理器1002处理的数据和/或要由处理器1002执行的指令。处理器1002能够处理数据和执行指令。这些数据和指令可被存储在计算机可读存储介质1006 上,并且例如可以启用计算设备1000的各组件之间的通信。存储在计算机可读存储介质1006上的数据和指令可包括实现根据本文描述的原理操作的技术的计算机可执行指令。在图10的示例中,如上所述,计算机可读存储介质 1006存储实现各种工具并存储各种信息的计算机可执行指令。计算机可读存储介质1006 可以存储远程访问机构1008,该远程访问机构1008实现连接到外部网络的计算设备与连接到专用网络的计算设备之间的通信。计算机可读存储介质1006还存储与一个或多个可能被呈现为开放的或者在过去曾被打开的连接相关的记录1010,该信息可以包括关于该连接的任何合适的信息。HTTP信息1012也可以存储在计算机可读介质1006上并且可以包括诸如可以存储在HTTP cookie中的信息或者使用HTTP POST传输被交换的信息之类的信肩、ο另外,尽管未在图10中示出,但是在本发明的一些实施例中,计算设备1000也可以被实施为DNS服务器,并且可以包括DNS服务器机构和DNS条目的数据存储以解析由计算设备1000所接收的DNS查询。尽管未在图9和10中示出,但是计算设备可以附加地具有一个或多个组件和外围设备,包括输入和输出设备。这些设备主要可用于呈现用户界面。可用于提供用户界面的输出设备的示例包括用于可视地呈现输出的打印机或显示屏和用于可听地呈现输出的扬声器或其它声音生成设备。可用于用户界面的输入设备的示例包括键盘和诸如鼠标、触摸板和数字化输入板等定点设备。作为另一示例,计算设备可以通过语音识别或以其他可听格式来接收输入信息。已经描述了其中各技术以电路和/或计算机可执行指令来实现的本发明的各实施例。应当明白,本发明可被具体化为方法,其示例已经提供。作为该方法的一部分所执行的动作可以按任何适合的方式来排序。因此,可以构建各个实施例,其中各动作以与所示的次序所不同的次序执行,不同的次序可包括同时执行某些动作,即使这些动作在各说明性实施例中被示为顺序动作。本发明的各个方面可单独、组合或以未在前述实施例中特别讨论的各种安排来使用,从而并不将其应用限于前述描述中所述或附图形中所示的组件的细节和安排。例如,可使用任何方式将一个实施例中描述的各方面与其它实施例中描述的各方面组合。在权利要求书中使用诸如“第一”、“第二”、“第三”等序数词来修饰权利要求元素本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、 或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与(若不是使用序数词则)具有同一名字的另一元素区分开的标签以区分各权利要求元素。同样,此处所使用的短语和术语是出于描述的目的而不应被认为是限制。此处对 “包括”、“包含”、“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其他项目。描述了至少一个实施例的若干方面,可以理解,本领域的技术人员可容易地想到各种更改、修改和改进。这样的更改、修改和改进旨在是本发明的一部分,且旨在处于本发明的原理的精神和范围内。从而,上述描述和附图仅用作示例。
权利要求
1.一种用于实现从专用网络之外的客户端计算机(100)对连接到该专用网络(106) 的专用网络资源(102)的远程访问的方法,其中该专用网络包括边缘资源(108),该专用网络资源与如下标识符相关联该标识符能够在该专用网络上被解析成该专用网络资源的因特网协议(IP)地址并且能够在该专用网络之外被解析成该边缘资源的IP地址,该方法包括(A)在该边缘资源处接收(70 来自该客户端计算机的通信,该通信包括该标识符;(B)在该专用网络上将该标识符解析(704)成该专用网络资源的IP地址;以及(C)将该通信传输(706)给该专用网络资源。
2.如权利要求1所述的方法,其特征在于,将该通信传输给所针对的接收者的动作(C) 包括(Cl)应用该专用网络的至少一个安全策略以确定是否应当允许该通信被传输给作为该通信的所针对的接收者的专用网络资源;以及(C2)如果在动作(Cl)确定应当允许该通信,则传输该通信。
3.如权利要求2所述的方法,其特征在于,进一步包括(D)在该边缘资源处接收来自第二客户端计算机的第二通信,该通信包括第二标识符;(E)应用该专用网络的至少一个安全策略以确定是否应当允许该通信被传输给作为第二通信的所针对的接收者的第二专用网络资源;以及(F)如果在动作(E)中确定不应当允许第二通信,则不传输第二通信。
4.如权利要求1所述的方法,其特征在于,进一步包括(D)向该客户端计算机传输(708)来自该专用网络资源的响应。
5.如权利要求4所述的方法,其特征在于,动作(D)由该边缘资源来执行。
6.如权利要求5所述的方法,其特征在于,将该响应传输给该客户端计算机的动作(D) 包括(Dl)在该边缘资源处接收来自该专用网络资源的对动作(C)中所传输的通信的响应;以及(D2)确定该客户端计算机是该通信的源。
7.如权利要求1所述的方法,其特征在于,进一步包括(D)在接收该通信的动作(A)之前,在该边缘资源处接收(30 来自该客户端的标识符解析请求,该标识符解析请求包含与该专用网络资源相关联的标识符;以及(E)从该边缘资源向该客户端传输(314)对该标识符解析请求的响应,该响应包含该边缘资源的IP地址。
8.如权利要求5所述的方法,其特征在于,该标识符是根据域名系统(DNS)的域名,其中该标识符解析请求是DNS查询;以及其中动作⑶包括(Bi)查询(304)该专用网络的专用DNS服务器以确定与该标识符相关联的IP地址。
9.如权利要求1所述的方法,其特征在于,该专用网络资源是连接到该专用网络的web 服务器。
10.如权利要求1所述的方法,其特征在于,进一步包括(D)使用IP安全协议(IPsec)保护(702)该边缘资源与该客户端计算机之间的连接;以及其中在动作(A)中所接收的通信通过动作(D)中受保护的连接来接收。
11.如权利要求1所述的方法,其特征在于,该标识符被包含在该通信的报头内。
12.至少一个计算机可读存储介质,所述计算机可读存储介质被用计算机可执行指令编码,所述计算机可执行指令在被计算机执行时致使该计算机执行一种用于实现从专用网络之外的客户端计算机(100)对连接到该专用网络(106)的专用网络资源(102)的远程访问的方法,其中该专用网络包括边缘资源(108),该专用网络资源与如下的域名相关联该域名能够在该专用网络上被解析成该专用网络资源的因特网协议(IP)地址并且能够在该专用网络之外被解析成该边缘资源的IP地址,该方法包括(A)从该客户端接收(302)域名系统(DNS)查询,该DNS查询包含与该专用网络资源相关联的域名;(B)向该客户端传输(314)来自该边缘资源的对该DNS查询的响应,该响应包含该边缘资源的IP地址;(C)在该边缘资源处接收(704)来自该客户端计算机的通信,该通信包括包含与该专用网络资源相关联的域名的报头;(D)将该通信传输(706)给该专用网络资源。
13.如权利要求12所述的至少一个计算机可读存储介质,其特征在于,传输该通信的动作⑶包括(Dl)应用该专用网络的至少一个安全策略以确定是否应当允许该通信被传输给是该专用网络资源的专用网络资源;以及(D2)如果在动作(Dl)中确定应当允许该通信,则传输该通信。
14.如权利要求12所述的至少一个计算机可读存储介质,其特征在于,该专用网络资源是连接到该专用网络的web服务器。
15.如权利要求11所述的至少一个计算机可读存储介质,其特征在于,该通信是根据 HTTP协议格式化的通信,并且包含在该报头中的标识符是主机的HTTP标识符。
全文摘要
在本发明的一些实施例中,各技术可以使专用网络资源的专用标识符可用于建立从连接到外部网络的计算设备到这些专用网络资源的连接。例如,当计算设备连接到外部网络并且尝试联系专用网络资源时,可以使用DNS来将专用网络资源的域名解析成该专用网络的边缘资源的IP地址。可以根据嵌入原始用于标识出该专用网络资源的标识符的协议在该计算设备与该边缘资源之间传递通信。该专用网络的边缘资源可以分析通过该连接的通信以确定该标识符,并且将其用于将该通信传递给所期望的专用网络资源。
文档编号H04L12/12GK102282801SQ200980155385
公开日2011年12月14日 申请日期2009年12月4日 优先权日2009年1月20日
发明者A·芬克尔斯坦, D·K·克雷默, N·奈斯, N·本-由查那, S·瑟沙德瑞 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1