JP2012516112A - ネットワークの外部からのプライベートネットワークリソースへのリモートアクセス - Google Patents

ネットワークの外部からのプライベートネットワークリソースへのリモートアクセス Download PDF

Info

Publication number
JP2012516112A
JP2012516112A JP2011547928A JP2011547928A JP2012516112A JP 2012516112 A JP2012516112 A JP 2012516112A JP 2011547928 A JP2011547928 A JP 2011547928A JP 2011547928 A JP2011547928 A JP 2011547928A JP 2012516112 A JP2012516112 A JP 2012516112A
Authority
JP
Japan
Prior art keywords
private network
communication
resource
domain name
identifier
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
Application number
JP2011547928A
Other languages
English (en)
Inventor
ナイス ニル
フィンケルスタイン アミット
クレーメル クレーメル ドロール
ベン−ヨチャナン ノーム
セシャドリ シャム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2012516112A publication Critical patent/JP2012516112A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/30Types of network names
    • H04L2101/355Types of network names containing special suffixes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal

Abstract

本発明のいくつかの実施形態において、外部ネットワークに対して接続されるコンピュータデバイスからプライベートネットワークリソースへの接続を確立するために使用可能な、プライベートネットワークリソースのプライベート識別子を作成する技術が記載される。例えば、コンピュータデバイスが外部ネットワークに対して接続されて、プライベートネットワークリソースへのコンタクトしようとすると、DNSが使用されて、プライベートネットワークリソースのドメイン名をプライベートネットワークのエッジリソースのIPアドレスに解決することができる。元々はプライベートネットワークリソースを識別するために使用される識別子を埋め込むプロトコルに従って、通信をコンピュータデバイスとエッジリソースとの間で渡すことができる。プライベートネットワークのエッジリソースは、接続全体の通信を分析してこの識別子を判定すること、また、それを使用して所望のプライベートネットワークリソースに通信を渡すこと、ができる。

Description

本発明は、ネットワークの外部からのプライベートネットワークリソースへのリモートアクセスするための方法に関する。
コンピュータ通信ネットワークにはタイプの異なるものが存在する。その中で、多くの異なるユーザがアクセスおよび通信することができ、または、通過するネットワークトラフィック(例えば、データパケット)が妨げられないものが、公衆ネットワークである。その他のネットワークがプライベートネットワークである。公衆ネットワークとは対照的に、プライベートネットワークでは、アクセスをそのネットワークに制限し、かつ、通信をプライベートネットワークに接続されるネットワークリソースに制限する。プライベートネットワークは、承認されたネットワークトラフィックがネットワークを通過することを許可することだけができる。プライベートネットワークの例には、コンピュータユーザのホームネットワーク、および、企業の従業員のみがそのプライベートネットワークへのアクセスを許可される企業ネットワーク、が含まれる。いくつかの場合、プライベートネットワークは、別のネットワークの一部であることがあり、例えば、企業ネットワークの一部が、企業ネットワーク全体より安全であり、また、アクセスがさらに制限され、従って、企業ネットワークの残りの部分と比較した場合に、プライベートネットワークとなる。
アクセスが制限されるため、プライベートネットワークのネットワークリソースに、プライベートネットワークの外部のコンピュータデバイス(例えば、プライベートネットワークの外部の別のネットワーク、すなわち「外部ネットワーク」、に対して接続されるコンピュータデバイス)には、自由にアクセスすることができない。そのような場合、外部ネットワークを、プライベートネットワークに通信可能に接続させることができる場合があり、許可されればネットワークトラフィックを流すことができるが、プライベートネットワークのセキュリティの設定により、何らかのネットワークトラフィックがプライベートネットワークに入ることを止めることができる。
いくつかの状況においては、外部ネットワークに対して接続されるコンピュータデバイスを、プライベートネットワークのネットワークリソースと通信可能にさせることが望ましい。例えば、自宅でまたは移動中に仕事をする企業の従業員は、企業ネットワークのネットワークリソースにアクセスして自分の業務に関連する仕事を行いたいかもしれない。
外部ネットワークに対して接続される場合にプライベートネットワークへのアクセスを提供する、リモートアクセスの技術が開発されてきた。リモートアクセスの技術の一例に、仮想プライベートネットワーク(Virtual Private Networking:VPN)がある。コンピュータデバイスには、VPNクライアントが提供され、そこにコンピュータデバイスのユーザ(例えば、企業の従業員)が、ユーザ名およびパスワード等の自分の認証情報を入力することができる。次に、VPNクライアントは、それらの認証情報をVPNゲートウェイに渡すことができ、今度はVPNゲートウェイが、それらの認証情報を認証して、認証情報が正規のものであることを確実にする。一度認証されると、セキュアな接続が(例えば、インターネット等の公衆ネットワークを介して)、VPNクライアントを稼働させるコンピュータデバイスのためのプライベートネットワークに対して開かれ、また、プライベートネットワークに接続され、一方で外部ネットワークに対して接続されるネットワークリソースに、コンピュータデバイスがアクセスすることを許可することができる。このセキュアな接続を、「仮想」ネットワークインターフェースを使用して形成すること、VPNクライアントによりコンピュータデバイス上に作成することができ、VPNクライアントは、コンピュータデバイスのハードウェアネットワークインターフェース/アダプタを使用するが、プライベートネットワークによりネットワーク特性(例えば、IPアドレス)に対してアサインされる。VPN接続を使用する時、クライアントは、プライベートネットワークへのフルアクセスと、プライベートネットワークに接続される全てのネットワークリソースとを有することができる。
別のリモートアクセスの技術では、リンク変換が既知である。リンク変換技術では、プライベートネットワークリソースにより使用されるリンクすなわちテキスト識別子の変換を実行する。例えば、プライベートネットワーク上のコンピュータデバイスにのみが利用可能なイントラネットウェブサイトをホストするウェブサーバ等のプライベートネットワークリソースは、人事(Human Resources:HR)部のイントラネットウェブサイトのホストであることを識別するテキスト識別子「hrweb」を持つことができる。この識別子を使用して、これがウェブブラウザに入力される時などに、ウェブサーバへの接続を確立することができる。プライベートネットワーク内において、識別子(「hrweb」)が、ドメイン名システム(Domain Name System:DNS)を使用してウェブサーバのIPアドレスが解決(リゾルブ)され、また、そのIPアドレスを使用してウェブサーバに対して接続が確立される。
しかし、この識別子は、プライベートネットワークの外部では認知されず、解決されることはない。「hrweb」として識別されるウェブサーバには、プライベートネットワークの外部ではアクセスできないため、外部ネットワークに対して接続されるコンピュータデバイスが「hrweb」に接続しようとすると(例えば、自宅または移動中の従業員がインターネットを介して人事部のウェブサイトにアクセスを試みるなど)、ユーザにはエラーが出される。コンピュータデバイス上のリンク変換クライアントは、従って、リンクを編集して−リンクを含む文書の編集を含むことができる−内部のプライベート識別子に置き換えて、外部ネットワークにアクセス可能なネットワークリソースのテキスト識別子を使用することができる。例えば、プライベートネットワークに接続され、かつ、外部ネットワークを介してアクセス可能なゲートウェイデバイスは、外部ネットワークに対して「gateway.corporate.com」として識別される。プライベートネットワークに接続されないコンピュータデバイスがプライベートテキスト識別子を使用している時、リンク変換クライアントは、元のプライベート識別子(「hrweb」)を使用する代わりに、テキスト識別子をゲートウェイデバイスに置き換えて使用して、ゲートウェイデバイスに接続することができ、また、別個に、元のプライベート識別子(「hrweb」)をゲートウェイデバイスに渡すことができる。例えば、ハイパーテキスト転送プロトコル(HyperText Transfer Protocol:HTTP)を使用してウェブサーバへの接続を開く時、ユーザが最初に「http://hrweb/」を入力すると、リンク変換クライアントは、リンクを「http://gateway.corporate.com/?originalURL=”http://hrweb/」に「変換」することができる。変換されたリンクを使用してプライベートネットワーク、例えば、リバースプロキシとして動作するプライベートネットワークのネットワークデバイス、に対して接続を確立することができる。リバースプロキシは次に、これらの変換されたリンクを元のプライベート識別子に再度変換し、元の識別子により識別されるネットワークリソースに対してプライベートネットワークにおいて接続を確立することができる。リバースプロキシは次に、外部ネットワーク上のコンピュータデバイスとプライベートネットワークのネットワークリソースとの間でメッセージを渡すことができる。
リンク変換の置き換え処理は、プライベートネットワークへの接続を開くために任意の動作がとられる前に実行される。これは置き換えられたリンクであり、かつ、接続を開くために使用される置き換えられた識別子(例えば、「gateway.corporate.com」)であり、元々入力される識別子「hrweb」ではない。従って、ドメイン名システム(DNS)の処理が実行されて、ドメイン名が、接続を開くために使用されるIPアドレスに解決されると、置き換えられた識別子、「gateway.corporate.com」が解決され、これは元々入力される識別子ではない。
接続を開くコンピュータデバイスに加えて、リンク変換技術を使用するプライベートネットワークのゲートウェイデバイスもまた、リンクを変換する。例えば、外部ネットワークに対して接続されるコンピュータデバイスのユーザがウェブページおよび文書等の情報をゲートウェイデバイスを介して要求すると、ゲートウェイデバイスは、全ての情報をスキャンし、プライベートネットワークリソースの任意のプライベート識別子に対して置き換えを実行することができる。例えば、人事部のイントラネットウェブサイトに、経理部のイントラネットウェブサイトへのリンク(例えば、「http://accountingweb/」へのリンク)が含まれる場合、ゲートウェイデバイスは、外部ネットワーク上で使用することができるテキスト識別子でそのリンクを置き換えることができる。例えば、「http://accountingweb/」へのリンクを、「http://gateway.corporate.com/?originalURL=”http://accountingweb/」で置き換えることができる。
出願人は、従来のリモートアクセスの技術では、所望のレベルのアクセス、または、所望のレベルの精度および所望のレベルでユーザに対してエラーフリーであること、が提供されない場合があることを認知かつ理解している。例えば、VPN技術では、プライベートネットワークに接続される全てのネットワークリソースへの全アクセスを提供する一方、ネットワーク管理者はプライベートネットワークへのアクセスを特定のリソースに制限することを望んでも良い。リンク変換技術には、他にも欠点があり、これは、外部のコンピュータに渡される情報内の全てのプライベートネットワーク識別子を検出して、それに置き換えて外部ネットワーク識別子を使用することができることに依る。リンク変換クライアントは、全てのプライベートネットワークリソースを認識できるわけではないため、このことにより、ある識別子の置き換えができないことがあり、それらのリソースを外部ネットワークを介して接続されるユーザに利用できないようにしてしまう。さらに、文書に埋め込まれる識別子(ウェブページ等)に対して実行される置き換えは、文書に対する永久的な編集であるため、ユーザが再度プライベートネットワークに接続する時には、これらの文書は壊れているかもしれない。
出願人は、外部ネットワーク上でプライベートネットワーク識別子を使用可能にすることにより、プライベートネットワークへのリモートアクセスを可能にする新しい技術を開発した。本明細書において、プライベートネットワーク識別子を解決可能にし、かつ、プライベートネットワークの外部から使用可能にするための種々の原理が説明される。例えば、いくつかの実装において、プライベートネットワークリソースのプライベートネットワーク識別子(例えば、ドメイン名システム(DNS)を使用して確立されるドメイン名のようなテキスト識別子)を、外部ネットワーク上でDNSを使用して解決可能にすることができる。例えば、一実施形態において、コンピュータデバイスが外部ネットワークに対して接続されて、プライベートネットワークリソースにコンタクトしようとすると、DNSが使用されて、プライベートネットワークリソースのドメイン名を、プライベートネットワークのエッジリソースのインターネットプロトコル(Internet Protocol:IP)アドレスに解決することができる。プライベートネットワークのエッジリソースは、ゲートウェイデバイスとすることができ、コンピュータデバイスとプライベートネットワークリソースとの間の通信を可能にし、それらの間の通信を双方向で渡すことができる。いくつかの実装において、エッジリソースへのこの通信は、むしろ所望のプライベートネットワークリソースへの直接の通信よりも、通信を開いているコンピュータデバイスのユーザが知ることなく、シームレスに行うことができる。この接続はまた、いくつかの実装において、インターネットプロトコルセキュリティ(Internet Protocol Security:IPsec)プロトコルを使用するなど、任意の適切な技術を使用してセキュアにされる。
本発明のいくつかの実施形態において、外部ネットワークを介してコンピュータデバイスからの接続を受け取ると、プライベートネットワークのエッジリソース(例えば、ゲートウェイデバイス)は、接続全体の通信を分析して、コンピュータデバイスが通信することを望むプライベートネットワークリソースを判定することができる。元々はプライベートネットワークリソースを識別するために使用される識別子(例えば、元々はユーザにより入力された識別子)を通信内に埋め込む1つまたは複数のプロトコルに従って、通信をコンピュータデバイスとエッジリソースとの間で渡すことができる。この識別子は次にエッジリソースにより使用されて、所望のプライベートネットワークリソースに通信を渡すことができる。
一実施形態において、プライベートネットワークの外部のクライアントコンピュータから、プライベートネットワークに接続されるプライベートネットワークリソースへの、リモートアクセスを可能にするための方法が提供され、プライベートネットワークはエッジリソースを含む。プライベートネットワークリソースは、プライベートネットワーク上でプライベートネットワークリソースのインターネットプロトコル(IP)アドレスに解決可能、かつ、プライベートネットワークの外部でエッジリソースのIPアドレスに解決可能、である識別子に関連する。方法は、エッジリソースにおいて、クライアントコンピュータから識別子を含む通信を受信する動作を含む。方法は、プライベートネットワーク上で、識別子をプライベートネットワークリソースのIPアドレスに解決する動作と、通信をプライベートネットワークリソースに伝送する動作とをさらに含む。
別の実施形態において、コンピュータ実行可能命令で符号化される少なくとも1つのコンピュータ可読記憶媒体が提供され、コンピュータ実行可能命令はコンピュータにより実行されると、コンピュータに、プライベートネットワークの外部のクライアントコンピュータから、プライベートネットワークに接続されるプライベートネットワークリソースへの、リモートアクセスを可能にするための方法を実行させる。プライベートネットワークはエッジリソースを含む。プライベートネットワークリソースは、プライベートネットワーク上でプライベートネットワークリソースのインターネットプロトコル(IP)アドレスに解決可能、かつ、プライベートネットワークの外部でエッジリソースのIPアドレスに解決可能、であるドメイン名に関連する。方法は、クライアントからドメイン名システム(DNS)クエリを受信する動作をであって、DNSクエリがプライベートネットワークリソースに関連するドメイン名を含有する動作と、DNSクエリに対するエッジリソースから、エッジリソースのIPアドレスを含有する応答を、クライアントに伝送する動作と、を含む。方法は、エッジリソースにおいて、クライアントコンピュータから通信を受信する動作であって、通信がプライベートネットワークリソースに関連するドメイン名を含有するヘッダを含む、動作と、通信をプライベートネットワークリソースに伝送する動作と、をさらに含む。
さらなる実施形態において、プライベートネットワークの外部からアクセス可能なエッジリソースおよびプライベートネットワークリソースを有するプライベートネットワークを含む、コンピュータシステムにおいて使用するための装置が提供される。プライベートネットワークリソースは、プライベートネットワーク上でプライベートネットワークリソースのインターネットプロトコル(IP)アドレスに解決可能、かつ、プライベートネットワークの外部でエッジリソースのIPアドレスに解決可能、であるドメイン名に関連する。装置には、プライベートネットワークの外部のクライアントからエッジリソースにより受信された通信の、プライベートネットワーク内における所定の受け手を判定するようプログラムされる、少なくとも1つのプロセッサが含まれる。少なくとも1つのプロセッサは、通信の所定の受け手の識別子を含有する通信のヘッダを検査し、プライベートネットワーク上で、識別子を通信の所定の受け手のIPアドレスに解決し、所定の受け手のIPアドレスに通信を伝送する、ようにプログラムされ、所定の受け手はプライベートネットワークリソースである。
前述の内容は、本発明の非制限的な要約であり、添付の請求項により定義される。
添付の図面では正確な縮尺で描くことは意図されていない。図面においては、種々の図面に例示される同一またはほぼ同一の各要素は、同様の数字で表される。明確にする目的のため、全ての要素が全ての図面においでラベル付けされるわけではない。
本発明のいくつかの実施形態が動作することができる例示のコンピュータシステムを例示する図である。 外部ネットワークに対して接続されると、プライベートネットワークリソースに関連するドメイン名に対して、クライアントによりドメイン名の解決を実行するための、本発明のいくつかの実施形態に従う例示の処理のフローチャートである。 クライアントが外部ネットワークに対して接続されると、プライベートネットワークリソースに関連するドメイン名に対して、プライベートネットワークのエッジリソースによりドメイン名の解決を実行するための、本発明のいくつかの実施形態に従う例示の処理のフローチャートである。 外部ネットワークに対して接続されると、プライベートネットワークリソースに関連するドメイン名に対して、クライアントによりドメイン名の解決を実行するための、本発明のいくつかの実施形態に従う例示の処理のフローチャートである。 クライアントが外部ネットワークに対して接続されると、プライベートネットワークリソースに関連する部分的修飾ドメイン名を解決するための、本発明のいくつかの実施形態に従う例示の処理のフローチャートである。 外部ネットワークに対して接続されるクライアントとプライベートネットワークのネットワークリソースとの間で通信するための、本発明のいくつかの実施形態に従う例示の処理のフローチャートである。 外部ネットワークに対して接続されるクライアントとプライベートネットワークのネットワークリソースとの間の通信を制御する時に、プライベートネットワークのエッジリソースが進むことができる、本発明のいくつかの実施形態に従う例示の処理のフローチャートである。 プライベートネットワークのエッジリソースにより実装されて、ハイパーテキスト転送プロトコル(HTTP)のクッキー機能をサポートすることができる、本発明のいくつかの実施形態に従った例示の処理のフローチャートである。 プライベートネットワークのエッジリソースにより実装されて、ハイパーテキスト転送プロトコル(HTTP)のクッキー機能をサポートすることができる、本発明のいくつかの実施形態に従った例示の処理のフローチャートである。 本発明のいくつかの実施形態において、クライアントコンピュータデバイスとして動作することができる例示のコンピュータデバイスのブロック図である。 本発明のいくつかの実施形態において、プライベートネットワークのエッジリソースとして動作することができる例示のコンピュータデバイスのブロック図である。
上述したように、既存のリモートアクセスの技術(例えば、VPNおよびリンク変換)には、いくつかの欠点がある。例えば、コンピュータデバイスがプライベートネットワークへのVPN接続を開くと、コンピュータデバイスはプライベートネットワークの全てのネットワークリソースへのアクセスができてしまう。(本明細書において使用される時、「ネットワークリソース」は、ネットワークに対して接続される任意のコンピュータデバイス、例えば、クライアントコンピュータデバイス、サーバ、ルータおよびスイッチその他等のネットワークデバイス、とすることができる。)しかし、プライベートネットワークの所有者および管理者は、リモートでアクセスされる時にプライベートネットワークリソースへのアクセスを制限することにより、可能性のある攻撃に対してネットワークを露出することを制限したいかもしれない。例えば、企業ネットワークの管理者は、ファイルの最新のコピーを記憶するファイルサーバは外部ネットワークからリモートでアクセスできることが良いが、それらのファイルの旧コピーを記憶するバックアップサーバにはリモートでアクセスできないほうが良いと判定するかもしれない。既存のVPN技術はこの能力を提供しておらず、代わりに、リモートのユーザに全てのネットワークリソースへのフルアクセスを与え、そのユーザは、プライベートネットワークに直接接続している場合には、全ネットワークリソースへのフルアクセスができてしまう。さらに、「強制トンネル(force tunnel)」VPNとして知られるVPNのいくつかの実装において、コンピュータデバイスがプライベートネットワークへのVPN接続を確立すると、そのコンピュータデバイスが、プライベートネットワークに対して接続されるネットワークリソース以外のネットワークリソース(例えば、プライベートネットワークに関連しないウェブサイトをホストするウェブサーバ)に接続することを制限または禁止することができる。出願人は、そのような場合において、この制限または禁止は、ユーザが自分の業務または他の仕事を実行することを妨げることになり、ユーザにマイナスの影響を与えてしまうことを理解している。
別の例として、リンク変換を使用してプライベートネットワークリソースへのアクセスを提供する時、プライベートネットワークリソースの識別子が検出されると、プライベートネットワーク識別子が、外部ネットワークで使用することができる識別子で置き換えられる。しかし、リンク変換は全ての状況において働くわけではなく、望ましいわけでもない。例えば、リンク変換クライアントが適切に機能し、全てのプライベートネットワークリソースのプライベート識別子を検出するためには、リンク変換クライアントは、プライベート識別子を含有することができる各タイプのファイルまたは文書をビューおよび処理する能力を持たなければならない。テキスト文書のフォーマットが異なることが、この能力の妨げとなり得る。さらに、リンク変換クライアントが、全てのタイプの文書の内容をレビューすることができるとしても、リンク変換クライアントは、全てのプライベートネットワークリソースおよびそれらのプライベート識別子について知見を持ち、特定の識別子がプライベート識別子であるかどうか、および、それを変換する必要があるかどうか、を判定することができなければならない。さらに、全てのリンク変換が適切に行うことができるとしても、リンク変換が、プライベート識別子を含有するファイルにおいて永久的な置き換えを行うことができるような全ての状況において、それが望ましいわけではない。コンピュータデバイスが、プライベートネットワークに対して直接再接続されれば、ファイルはまだ編集されるであろうし、置き換えられたリンクはプライベートネットワークリソースを正しく識別せず、そのファイルはもはや役に立たないであろう。
本発明の一実施形態に従うと、プライベートネットワークリソースのプライベート識別子それ自身を、外部ネットワーク上でプライベートネットワークリソースへの接続に使用可能にする、リモートアクセスの技術が提供される。プライベートネットワークリソースのプライベート識別子は、プライベートネットワークリソースにアクセスするための識別子の使用を求めるコンピュータデバイスが、プライベートネットワークに対して接続されると、プライベートネットワークリソースを識別することができるが、コンピュータデバイスが外部ネットワークに対して接続されると、プライベートネットワークのエッジリソース(例えば、ゲートウェイデバイス)を識別することができる。このようにして、プライベートネットワークリソースとの通信を行うために、プライベート識別子それ自身を使用することができる。
外部ネットワークを介してプライベートネットワーク識別子を使用可能にするための、本明細書に記載される技術は、ネットワークリソースの任意の適切な識別子に適用することができ、また、任意のプライベートネットワークリソース(例えば、プライベートネットワークに対して接続される任意の適切なコンピュータデバイス)にアクセスするために使用することができるが、本明細書に記載される技術はこの点において限定されない。
以下に記載されるいくつかの例示の実装において、ドメイン名システム(DNS)を使用して、ドメイン名を使用するネットワークリソースを識別することができる。ドメイン名は、任意の適切な英数字の識別子を含む、ネットワークリソースの適切なテキスト識別子とすることができ、例えば、人事(HR)部のイントラネットウェブサイトをホストするウェブサーバの「hrweb」などである。これらの実装において、プライベートネットワークに対して接続されるコンピュータデバイスが、イントラネットウェブサーバのドメイン名を使用してイントラネットウェブサーバへの接続を形成する時、ドメイン名「hrweb」は、DNSを使用して、イントラネットウェブサーバ自身のインターネットプロトコル(IP)アドレスに解決される。しかし、コンピュータデバイスが、外部ネットワークに対して接続される時にドメイン名「hrweb」を使用すると、ドメイン名は、DNSを使用してプライベートネットワークのエッジリソースのIPアドレスに解決される。エッジリソースは、プライベートネットワークに対して接続される任意の適切なコンピュータデバイスとすることができるが、プライベートネットワークの外部(例えば、ゲートウェイデバイス)から直接アクセス可能である。以下の例において、エッジリソースは、説明を簡単にするために、ゲートウェイデバイスおよび/またはリバースプロキシと称されるが、任意の適切なエッジデバイスを採用することができ、本発明の実施形態はこの点において限定されない。
ドメイン名「hrweb」がゲートウェイデバイスのIPアドスに解決されると、コンピュータデバイスは、イントラネットウェブサーバであるかのように、ゲートウェイデバイスと通信することができる。例えば、コンピュータデバイスは、ゲートウェイデバイスに対する接続を開くことができ、また、ゲートウェイデバイスと通信を交換することができる。ゲートウェイデバイスとの通信は、任意の適切な方法で実行することができる。いくつかの実装において、そのような通信は、所望のネットワークリソースを識別するために使用される識別子を少なくともいくつかの通信内に埋め込むプロトコルに従って、行うことができる。識別子は、ゲートウェイに対して解決された元の識別子、または、任意の他の適切な識別子とすることができる。識別子が、イントラネットウェブサイトをホストするウェブサーバのドメイン名(例えば、「hrweb」)である場合、通信内に埋め込まれる識別子は、ドメイン名(例えば、「hrweb」)とすることができる。ゲートウェイデバイスは次に、このドメイン名の通信をレビューし、それを使用して通信が転送されるプライベートネットワークリソースを識別することができる−この場合、ゲートウェイデバイスは、ドメイン名を使用して、イントラネットウェブサーバに通信を転送すべきであることを確認することができる。ゲートウェイは次に、識別されたプライベートネットワークリソースに通信を転送することができる。プライベートネットワークリソースから応答を受け取ると、ゲートウェイは、その応答を、通信を開始したコンピュータデバイスに転送することができる。例えば、ゲートウェイデバイスは、クライアントコンピュータ上のウェブブラウザから、ウェブページをダウンロードする要求を受け取ることができ、その要求をウェブサーバに転送することができ、ウェブサーバからそのウェブページを受け取ることができ、そしてそのウェブページを、要求を発行したコンピュータデバイスに転送することができる。
本明細書に記載される原理に従って動作する技術は、任意の適切な数およびタイプ(複数可)のコンピュータデバイスを含む任意の適切なコンピュータシステム等の、任意の適切な環境において実装可能である。図1は、本明細書に記載される原理のいくつかの例示の実装が動作することができる例示のコンピュータシステムを示すが、本発明の実施形態が、このコンピュータシステムまたは任意の他の特定のタイプのコンピュータシステムにおいて実装されることに限定されないことは理解すべきである。
図1は、プライベートネットワークリソース102を有するプライベート通信ネットワーク106を含む、コンピュータシステムを示す。プライベートネットワーク106は、プライベートネットワークリソース102を含む、プライベートネットワーク106に接続されるリソースへのアクセスを、プライベートネットワーク106に接続されるデバイスのみに限定することができる。しかし、本明細書に記載される技術を使用して、コンピュータデバイス100等のプライベートネットワーク106の外部のデバイスは、外部の通信ネットワーク104を介してプライベートネットワークリソース102と通信することができる。外部の通信ネットワーク104は単一のネットワークとして示されるが、インターネットおよびプライベートネットワーク106のエッジリソース108への直接接続を含む、任意のタイプの1つまたは複数のネットワークとすることができることは理解すべきである。
コンピュータデバイス100は、通信ネットワーク全体において情報を交換するための任意の適切なコンピュータデバイスとすることができ、本発明の態様はこの点において限定されない。例えば、図1に例示するように、コンピュータデバイス100はラップトップパーソナルコンピュータとすることができるが、デスクトップパーソナルコンピュータ、携帯情報端末(personal digital assistant:PDA)、スマートフォン、または他のリソースを含む任意の適切なコンピュータデバイスを使用することができることは理解すべきである。いくつかの実装において、コンピュータデバイス100は、ある時にはプライベートネットワーク106に接続させ、次に切断して別の場所に運び、そこで外部ネットワーク104(例えば、インターネットとすることができる)を介してプライベートネットワーク106に接続させることができる、可動式のコンピュータデバイスとすることができる。
例えば、プライベートネットワーク106は、会社等の組織の企業ネットワークとすることができ、また、コンピュータデバイス100は、その会社の従業員が使用するラップトップとすることができる。従業員のラップトップは、ある時は、例えば従業員が事務所にいる時などは、プライベートネットワーク106に接続させることができ、また、別の時、例えば従業員が自宅または移動中の時などは、ラップトップを外部ネットワーク104に接続させることができる。
上記で説明したように、プライベートネットワークリソース102は、プライベートネットワーク106に対して接続される任意の適切なコンピュータデバイスとすることができる。図1において例示されるもの、および、以下の種々の例において説明されるものなど、いくつかの実装において、プライベートネットワークリソース102は、ウェブサーバ102とすることができる。ウェブサーバ102は、ウェブサーバのデータストア102Aに記憶されるウェブベースのアプリケーションに対するホストとすることができ、また、ウェブアプリケーションのウェブページを、他のコンピュータデバイスのウェブブラウザに表示させるためにそれらのコンピュータデバイスに提供することができる。例えば、ウェブアプリケーションは、プライベートネットワーク106に関連する企業の人事部のイントラネットウェブサイトに関連するウェブアプリケーションとすることができる。しかし、本発明の実施形態は、ウェブサーバであるプライベートネットワークリソースと共に動作することに限定されず、これらの技術を使用して、プライベートネットワーク上の任意の適切なコンピュータデバイスにアクセスすることができることは理解すべきである。
コンピュータデバイス100が、外部ネットワーク104に対して接続されて図1に示され、ウェブサーバ102がプライベートネットワーク106に対して接続されて示される。外部ネットワーク104およびプライベートネットワーク106は、それぞれ任意の適切なコンピュータ通信ネットワークとすることができ、また、任意の適切な有線および/または無線の通信媒体を含むことができる。例えば、プライベートネットワーク106は、ホームネットワークとして実装されるローカルエリアネットワーク(Local Area Network:LAN)、または、企業ネットワークとして実装されるLANもしくはワイドエリアネットワーク(Wide Area Network:WAN)とすることができる。外部ネットワーク104は、インターネット等の公的にアクセス可能なネットワークを含む、プライベートネットワーク106ではない任意のネットワークとすることができる。
上記で説明したように、いくつかの実装において、プライベートネットワーク106は、プライベートネットワーク106に対して接続されるネットワークリソース−ウェブサーバ102等−へのアクセスを、プライベートネットワーク106に対して接続される他のコンピュータデバイスのみに制限するよう適合されることができる。これは任意の適切な方法で行うことができ、また、エッジリソース108をどのように実装するか、および、どのセキュリティ技術を使用するか、に依存する。エッジリソース108は、ゲートウェイ、ファイアウォール、および/またはルータを含む任意の適切なデバイスとして実装することができる。
いくつかの実装において、プライベートネットワーク106は、プライベートネットワークリソースへのアクセスをエッジリソース108において実施されるセキュリティ規則を介するものに制限するよう適合されることができる。エッジリソース108は、プライベートネットワーク106の一部である任意のコンピュータデバイスとすることができ、プライベートネットワークへのエントリポイント(例えば、外部ネットワーク104からの)を提供することができる。エッジリソース108は、プライベートネットワーク106に出入りする通信を制御することができる。例えば、エッジリソース108は、承認されたトラフィックが外部ネットワーク104からプライベートネットワーク106に流れること許可することだけができ、従って、プライベートネットワーク106へのアクセスを承認されたものだけに制限することができる。
以下で説明するいくつかの実施形態において、エッジリソース108を、プライベートネットワーク106のリバースプロキシ108として実装することができる。本明細書において使用される時、用語リバースプロキシは、プライベートネットワーク上の1つまたは複数のリソース(リバースプロキシの下位であるとみなすことができる)のための通信を受け取り、かつ、どのリソースに対して特定の通信を渡すべきかを判定する、任意のデバイスを意味する。
図1のコンピュータシステムにはまた、2つのDNSサーバ110および112が含まれる。DNSサーバ110は、プライベートネットワーク106に対して接続されて示され、外部プライベートDNSエントリのデータストア110Aを含む。これらのエントリを使用して、プライベートネットワーク106と外部ネットワーク104との両方に対して接続されるリソースの識別子を解決することができる。DNSサーバ112は、外部ネットワーク104に対して接続され、外部DNSエントリのデータストア112Aを含むことができる。これらのエントリを使用して、外部ネットワーク104に対して接続されるリソース(例えば、インターネット等の公衆ネットワークを介して利用可能なリソース)の識別子を解決することができる。
DNSにおいて、ユーザが、コンピュータデバイスにドメイン名を入力してそのドメイン名により識別されるリソースとの通信を開始すると、コンピュータデバイス上のDNSクライアントは、ドメイン名をIPアドレスに「解決」するようDNSサーバにクエリを行う。これは、覚えやすくかつ使用しやすいドメイン名のような英数字の識別子を含む、テキスト識別子が人に分かるため、行われるのであり、コンピュータは、IPアドレスのような長い数字の識別子を使用するよう適合されて、通信を実行する。DNSサーバは、コンピュータデバイス上のDNSクライアントからドメイン名を求めるクエリを受け取ると、ローカルに利用可能な情報を介するか、または、他のDNSサーバのDNSエントリをクエリすることにより、クエリ内のドメイン名に対応するIPアドレスのDNSエントリを検査し、DNSクライアントにIPアドレスを戻す。コンピュータデバイスは次に、IPアドレスを使用してリソースとの通信を開始することができる。本明細書に記載される本発明の態様は、任意のタイプのDNSサーバを含むシステムにおいて使用することができる。
リバースプロキシ108を、本発明のいくつかの実施形態において使用して、プライベートネットワーク106の外部のデバイス(例えば、コンピュータデバイス100)と、プライベートネットワーク106のリソース(例えば、ウェブサーバ102)との間の通信を可能にすることができる。いくつかのそのような実施形態において、コンピュータデバイス100は、「hrweb」等のドメイン名を使用して、ウェブサーバ102を識別することができる。そのコンピュータデバイス100が、外部ネットワーク104に対して接続された状態で、ドメイン名を「解決」すると、ドメイン名がリバースプロキシ108のIPアドレスに解決され、コンピュータデバイス100がリバースプロキシ108を介してウェブサーバ104と通信することを可能にする。これは、任意の適切な方法で行うことができ、その例が以下に記載される。
以下に記載される例には、コンピュータデバイス100が外部ネットワーク104からウェブサーバ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が実行することができる1つの例示の処理を示す。しかし、処理200は、本明細書に記載される技術を実行するために実装することができる処理の単なる例示のタイプであり、他の処理が可能であることは理解すべきである。
処理200はブロック202において開始され、ここで、コンピュータデバイス100のDNSクライアントは、プライベートネットワーク106のDNSサーバ110を使用してドメイン名を解決するよう構成される。これは、任意の適切な方法で行うことができる。例えば、コンピュータデバイス100のユーザ(管理者等)は、DNSサーバ110のアドレスをコンピュータデバイス110に入力することができる。この入力は、コンピュータデバイス100のユーザインターフェースを介するなどして手動で行うこと、動的ホスト構成プロトコル(Dynamic Host Configuration Protocol:DHCP)を介してワシントン州レドモンドのマイクロソフト社から入手可能なマイクロソフトアクティブディレクトリのグループポリシーを通して配布されるネットワーク設定等を介して自動的に行うこと、または、任意の他の方法でおこなうことができる。図1に示すように、DNSサーバ110はプライベートネットワーク106に対して接続され、従って、DNSサーバ110へのアクセスが制限される。そのような実装において、プライベートネットワークのエッジリソース(例えば、リバースプロキシ108)は、DNSサーバ110へのアクセスを制限しないことができ、DNSクエリがDNSサーバ110に渡されることを許可するよう適合されることができる。
他の実装において、DNSサーバ110を使用するようDNSクライアントを構成することには、DNSサーバ110そのもののアドレスを入力することは含まれないが、DNSクライアントが使用すべきDNSサーバのアドレスとしてリバースプロキシ108のアドレスを入力することを含めることができる。従って、リバースプロキシ108は、通信をDNSサーバに中継することが可能である。他の実装において、リバースプロキシ108は、加えてDNSサーバとして機能することができ、従って、DNSサーバ110とリバースプロキシ108は、同じデバイス内に実装することができる。従って、本発明のいくつかの実施形態において、リバースプロキシ108は、ドメイン名を解決することに関連する種々の機能を実行することができる。本発明の実施形態におけるリバースプロキシ108が実行することができる例示の機能については、以下で詳細に記載される。
ブロック202において、DNSクライアントがどのように供給されるかに関わらず、ブロック204において、コンピュータデバイス100は外部ネットワーク104に対して接続される。ブロック206において、ネットワークリソースを識別するドメイン名が(例えば、コンピュータデバイス100のユーザ、またはコンピュータデバイス100上で実行されるアプリケーションプログラムから)受け取られる。このドメイン名は、任意のドメイン名とすることができ、例えば、「www.microsoft.com」のような公的に解決可能なドメイン名、または、プライベートネットワーク106の外部では使用できない「hrweb」等のプライベートドメイン名である。プライベートドメイン名は、ウェブサーバ102等のプライベートネットワークリソースに関連付けることができる。
ブロック208において、コンピュータデバイス100のDNSクライアントは、ドメイン名を、プライベートDNSサーバを使用して、指定されるリソースとの通信に使用することができるIPアドレスに解決する。この名前の解決は、任意の適切な方法で行うことができる。一実施形態において、名前の解決は、ブロック202において構成されるDNSサーバにクエリを行うことにより実行することができる。ブロック206において入力されるドメイン名が公的に解決可能なドメイン名である場合、DNSクエリに応答して受け取られるIPアドレスは、ドメイン名により識別されるリソースのIPアドレスとすることができる。しかし、ドメイン名がウェブサーバ102のようなプライベートネットワークリソースのプライベートドメイン名である時は、本発明のいくつかの実施形態において、解決に応答してコンピュータデバイス100のDNSクライアントにより受け取られるIPアドレスは、プライベートネットワークリソースのIPアドレスではなく、リバースプロキシ108のIPアドレスとすることができる。この解決を実行することができる例示の技術については、以下に詳細に記載される。
ブロック210において、コンピュータデバイス100は、ブロック208において受け取られたIPアドレスにより識別されるリソース(例えば、リバースプロキシ108)との通信を実行する。指定されるリソースがプライベートリソース(例えば、ウェブサーバ102)である時、ブロック210のリソースとの通信がリバースプロキシ108を介して間接的に実行されるため、丁度、リソース(例えば、ウェブサーバ102)との通信が直接行われていたのと同様に、いくつかの実施形態において、コンピュータデバイス100には、指定されるリソース以外のデバイス(例えば、ウェブサーバ102)と直接通信していることを認識できない。リバースプロキシ108が使用してこの通信を可能にすることができる例示の技術については、以下に詳細に記載される。通信が一旦実行されると、処理200は終了する。
図2において例示される処理を使用して、コンピュータデバイス100がプライベートネットワークの外部(例えば、外部ネットワーク104)に接続される場合でも、ウェブサーバ102のようなプライベートネットワークリソースのドメイン名を、プライベートネットワークリソースとの通信に使用することができる。
プライベートドメイン名の、リバースプロキシ108のIPアドレスへの解決は、任意の適切な方法で行うことができる。上記で説明したように、本発明のいくつかの実施形態において、リバースプロキシ108はこの解決に関連する機能を実行することができる。図3は、DNS解決の間にリバースプロキシ108上に実装されるリモートアクセスファシリティ(設備)により実行することができる例示の処理300を示す。しかし、処理300は、本明細書に記載される技術を実行するために実装することができる処理の単なる例示のタイプであり、他の処理が可能であることは理解すべきである。
処理300はブロック302において開始され、ここで、リバースプロキシ108上のリモートアクセスファシリティが、DNSクライアントからDNSクエリを受け取る。DNSクエリは、公的に解決可能なドメイン名(例えば、「www.microsoft.com」)またはプライベートネットワークリソースのプライベートドメイン名(例えば、「hrweb」)を含む、任意の適切なドメイン名を含有することができる。図2のブロック202に関連して上記で説明したように、このDNSクエリは、−DNSサーバのIPアドレスとしてリバースプロキシ108のIPアドレスがDNSクライアントに提供される本発明の実施形態におけるように−、リバースプロキシ108自体に伝送されていても良いし、または、DNSサーバ110に伝送されて、リバースプロキシ108を通して渡されても良い。
ブロック304において、リモートアクセスファシリティは、DNSクエリをプライベートDNSサーバ110に渡してドメイン名をIPアドレスに解決し、ブロック306において、DNSサーバ110からの応答を受け取る。
ブロック308において、リモートアクセスファシリティは、ドメイン名が公的に解決可能なドメイン名またはプライベートドメイン名であったかどうかを判定する。この判定は、ブロック306において受け取られる応答内に含有されるIPアドレスを検査することを含む、任意の適切な方法で行うことができる。IPアドレスは、どのネットワークにIPアドレスが関連するかにより変わり、IPアドレスがプライベートネットワーク106のIPアドレスの特徴と一致するかどうかを判定することにより、ドメイン名がプライベートドメイン名であるかどうかを識別することが可能である。例えば、プライベートネットワーク106のIPアドレスは、「10.1.*.*」(ここで「*」は任意の数字を表す)という形式とすることができ、応答内のIPアドレスがその形式(例えば、10.1.1.1)と一致する場合、そのIPアドレスはプライベートネットワークリソースのプライベートドメイン名に関連するものであると判定することができる。その形式に一致しないIPアドレスは、プライベートドメイン名またはプライベートネットワークリソースに関連するのではなく、公的に解決可能なドメイン名に関連するものと判定することができる。
ブロック308において、ドメイン名がプライベートドメイン名ではなく、かつ、プライベートネットワークリソースに関連しないと判定される場合、ブロック310において、DNSクエリの結果を、クエリを発行したコンピュータデバイス100およびDNSクライアントに戻すことができ、処理300が終了する。
しかし、ブロック308において、ドメイン名がプライベートドメイン名であり、かつ、プライベートネットワークリソースに関連すると判定される場合、リモートアクセスファシリティは、1つまたは複数の動作をとり、DNSクエリを発行したコンピュータデバイス100がプライベートネットワークリソースと通信することを確実にすることができる。例えば、プライベートネットワークリソースがウェブサーバ102である場合、コンピュータデバイス100がDNSサーバ110により戻されたIPアドレスを使用してウェブサーバ102と直接通信しようとすると、プライベートネットワーク106の1つまたは複数のセキュリティ設備が、コンピュータデバイス100がこの通信を実行するのを停止させることができる。
リモートアクセスファシリティは、任意の適切な動作をとり、コンピュータデバイス100がプライベートリソース(例えば、ウェブサーバ102)と通信することを可能にすることができる。例えば、ブロック308においてドメイン名がプライベートドメイン名であると判定されると、ブロック312において、リバースプロキシ108は、任意の適切な方法でIPアドレスを記憶することにより、ブロック306において受け取られたDNSの応答で戻されるIPアドレスの記録を取ることができる。次に、ブロック314において、リバースプロキシ108は、DNSの応答を編集してそれが持つIPアドレス(すなわち、リバースプロキシ108のIPアドレス)を提供し、この編集されたDNSの応答をコンピュータデバイス100に渡すことができ、処理300が終了する。
DNSの応答をこのように編集することにより、リモートアクセスファシリティは、コンピュータデバイス100を強化し−いくつかの実装においては、コンピュータデバイス100には分からないままで−プライベートリソース(例えば、ウェブサーバ102)向けの通信がリバースプロキシ108に直接送信されるように指示する。コンピュータデバイス100がそのようにする理由は、編集されたDNSの応答が、そこに含まれるIPアドレス(これは実際にはリバースプロキシ108のIPアドレスである)が、コンピュータデバイス100がDNSクエリを発行して求めたドメイン名に関連するIPアドレスであるということを単に示すことができるからである。リバースプロキシ108は次に、プライベートリソース(例えば、ウェブサーバ102)向けの全ての通信を受け取り、それらの通信をプライベートリソース(例えば、ウェブサーバ102)に渡すべきかどうかを、プライベートネットワーク106に対して確立されるセキュリティ規則を適用することにより判定することができる。このようにして、プライベートアクセス106のセキュリティの制限を守ることができるが、プライベートネットワーク106へのリモートアクセスを可能にすることができる。通信をルーティングするためのリバースプロキシ108により実装することができる例示の技術については、以下にさらに詳細に記載される。
図3には図示しないが、いくつかの実装において、ブロック308において、リモートアクセスファシリティによりドメイン名がプライベートドメイン名であると判定されると、応答を送ったコンピュータデバイス100に対して任意のIPアドレスを戻すべきかに関して、別の判断がなされ得る。この判断は、プライベートネットワーク106に対して確立されるセキュリティの制限に従って行うことができる。例えば、セキュリティの制限は、リモートアクセスが許可されない1つまたは複数のネットワークリソースを識別することができる。それらの禁止されるネットワークリソースの内の1つへの要求を受け取ると、リモートアクセスファシリティは、DNSクエリを発行したコンピュータデバイス100に対してリモートアクセスを許可すべきではないと判定することができる。この場合、リモートアクセスファシリティは、ドメイン名を解決できずコンピュータデバイス100にIPアドレスが提供されないということを示す、DNSクエリに対する応答を構成することができる。通信の伝送時に使用するIPアドレスが無ければ、コンピュータデバイス100は、直接的もしくは間接的のいずれでもリバースプロキシ108を介して、プライベートリソースと通信することはできないであろう。
上記で説明したように、図3の処理300は、リモートアクセスファシリティにより実装されて、プライベートネットワーク106の外部のコンピュータデバイスによりドメイン名の解決を可能にすることができる、処理の単なる一例であり、他の処理が可能である。上記で説明したように、リバースプロキシ108はまた、DNSサーバとして構成することもでき、リバースプロキシ108とDNSサーバ110は同じデバイスとなる。そのようなデバイスを実装する本発明の実施形態において、DNSクエリは別のデバイスに渡されないが、リバースプロキシ108のDNS機能性によりローカルに扱われるように、処理300を変更することができる。
コンピュータデバイス100のDNSクライアントにより他の処理を実装し、ドメイン名を解決することもできる。図2に関連して上記で説明したように、本発明のいくつかの実施形態において、全てのDNSクエリをプライベートDNSサーバに渡すよう、コンピュータデバイス100のDNSクライアントを構成することができる。本発明の代替実施形態において、外部ネットワーク104のDNSサーバ112等の公的なDNSサーバを使用して、公的に解決可能なドメイン名を求めるDNSクエリを実行するように、また、プライベートDNSサーバを使用してプライベートネットワークリソースを求めるDNSクエリを実行するように、コンピュータデバイス100を構成することができる。従って、DNSクライアントを、2つの異なるDNSサーバを維持するよう構成することができる。
図4は、2つの異なるDNSサーバで構成されるコンピュータデバイス100のDNSクライアントにより実行することができる例示の処理400を示す。しかし、処理400は、プライベート識別子(例えば、プライベートドメイン名)をプライベートネットワークの外部で解決可能にするために実装することができる処理の単なる例示のタイプであり、他の処理が可能であることは理解すべきである。
処理400は、ブロック402において開始され、ここでDNSクライアントはプライベートネットワークのDNSサーバ110のIPアドレスを用いて構成される。これは、図2のブロック202に関連して上述した技術のいずれかを使用することによるなど、任意の適切な方法で行うことができる。
ブロック404において、コンピュータデバイス100を、外部ネットワーク104に対して接続することができ、また、外部ネットワーク104と通信するよう構成することができる。コンピュータデバイス100の構成には、外部ネットワーク104のDNSサーバ112を使用してドメイン名を解決するコンピュータデバイス100のDNSクライアントを構成する事が含まれる。これは、動的ホスト構成プロトコル(DHCP)等の既知の技術によるなど、任意の適切な方法で行うことができる。
ブロック406において、ネットワークリソースを識別するドメイン名は、(例えば、コンピュータデバイス100のユーザ、またはコンピュータデバイス100上で実行されるアプリケーションプログラムから)コンピュータデバイス100により受け取られる。このドメイン名は、任意のドメイン名とすることができ、例えば、「www.microsoft.com」のような公的に解決可能なドメイン名、または、プライベートネットワーク106の外部では使用できない「hrweb」等のプライベートドメイン名である。プライベートドメイン名は、ウェブサーバ102等のプライベートネットワークリソースに関連付けることができる。
ブロック406において受け取ったドメイン名を解決する前に、ブロック408において、コンピュータデバイス100のDNSクライアントは、ドメイン名が公的に解決可能なドメイン名またはプライベートネットワークリソースに関連するプライベートドメイン名であるかどうかを判定することができる。この判断は、DNSクライアントを構成する2つのDNSサーバの内のどちらを使用してドメイン名を解決すべきかを判定するためになされる。この判定は、既知のプライベートドメイン名の一覧(例えば、プライベートネットワーク106に関連することが既知であるドメイン名の一覧)とドメイン名を比較することによるなど、任意の適切な方法で行うことができる。この一覧は、コンピュータデバイス100上のHOSTSファイルに記憶する、または任意の他の方法で記憶するなど、任意の適切な方法で記憶することができる。
ブロック408において、ドメイン名がプライベートドメイン名ではないと判定される場合、および/または、ドメイン名が公的に解決可能なドメイン名であると判定される場合、ブロック410において、DNSクライアントは、外部ネットワーク104のDNSサーバ112を使用して、ドメイン名を解決することができる。この解決は、従来のDNS解決技術によることを含む、任意の適切な方法で実行することができる。
しかし、ブロック408において、ドメイン名がプライベートドメイン名であると判定される場合、ブロック412において、DNSクライアントは、プライベートネットワーク106のDNSサーバ110を使用して、ドメイン名を解決することができる。この解決は、図3に関連して上述した技術のいずれかによることを含む任意の適切な方法で、プライベートネットワーク106を使用して実行することができる。
ブロック410および412の一方においてドメイン名が解決されると、コンピュータデバイス100は、解決の間に取得されたIPアドレスにより識別されるリソースと通信することができ、処理400が終了する。
上述のプライベートドメイン名を解決するための技術においては、プライベートネットワーク106のDNSサーバ110等のプライベートDNSサーバを使用してプライベートドメイン名が解決された。これは、本発明のいくつかの実施形態において行うことができる。しかし、他の実施形態において、プライベートドメイン名は、公的に解決可能とすることができるため、コンピュータデバイス100がプライベートDNSサーバにコンタクトする必要が無い。これは任意の適切な方法で行うことができる。
プライベートドメイン名を公的に解決可能にする本発明のいくつかの実施形態では、DNSサフィックスを使用して行う。DNSクライアントは、従来、部分的修飾ドメイン名(partially−qualified domain name:PQDN)として既知の部分的なドメイン名だけを受け取った場合に、DNSサフィックスを使用して完全修飾ドメイン名(fully−qualified domain name:FQDN)としても既知の完全なドメイン名を作成する。完全修飾ドメイン名は、完全かつ一義的なものであり、これにはトップレベルドメイン(top−level domain:TLD)が含まれる。TLDはFQDNの最後の部分であり、ドメイン名の周知の末尾である「.com」「.org」「.net」などがあるが、公的またはプライベートの任意の識別子をTLDとして使用することができることは理解すべきである。
DNSはFQDN(PQDNではなく)を解決する能力があるだけであるため、入力されるPQDNにDNSサフィックスが追加されFQDNが作成される。例えば、ユーザがドメイン名全体ではなくドメイン名の一部、例えば「microsoft.com」の代わりに「microsoft」、を入力すると、コンピュータデバイスのDNSクライアントは、サフィックス「.com」を入力されたドメイン名に追加して解決可能な完全修飾ドメイン名を作成することができる。典型的には、サフィックスは一度に1つ追加され、サフィックスの内の1つが解決を成功させるFQDNを作るまで、各サフィックスを使用して解決が試みられる。DNSにおいて解決が成功すると、いくつかの適切な結果が生み出され、これにはFQDNに関連するIPアドレスが含まれる。従来、これらのサフィックスはトップレベルドメイン名に限定されている。
DNSサフィックスの追加はまた、サフィックスが追加されるPQDNを入力したユーザまたはアプリケーションに対しては透過的な方法で行うこともができる。サフィックスは、DNSの解決処理において使用されるだけ−すなわちDNSクエリの発行時に使用されるだけ−であるため、ユーザ/アプリケーションにより使用されるドメイン名は、まだ部分的修飾ドメイン名のままである。
出願人は、プライベートネットワークリソースがFQDNではなく部分的修飾ドメイン名により識別されることが多いことを理解している。さらに、プライベートネットワークリソースは、「hrweb.corp」等の複合ラベルではなく、「hrweb」等の1つのラベルだけを含む「フラット名」として既知の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アドレスは、ドメイン名に対応するウェブサーバ102等のプライベートネットワークリソースのIPアドレスとすることができる。しかし、他の実施形態において、IPアドレスは、リバースプロキシ108のIPアドレスなど、別のネットワークデバイスのものとすることができる。
図5は、DNSサーバ112等の公的DNSサーバが、各プライベートネットワークリソースのFQDNに対応するエントリを有するコンピュータシステムにおいて動作する、コンピュータデバイス100により実装することができる例示の処理500を示す。しかし、処理500は、プライベートネットワークの外部からプライベート識別子を解決するために実装することができる処理の単なる例示のタイプであり、他の処理が可能であることは理解すべきである。
図5の処理500は、ブロック502において開始され、ここでコンピュータデバイス100のDNSクライアントは、プライベートネットワーク106に関連する最後の1つのサフィックスを用いて構成される。この構成は、図2のブロック202に関連して上述した例示の技術のいずれかを使用することによるなど、任意の適切な方法で実行することができる。
ブロック504において、コンピュータデバイス104は、外部ネットワーク104等の外部ネットワークに対して接続され、外部ネットワーク104と通信するよう構成することができる。この構成には、外部ネットワーク104のDNSサーバ112を使用してドメイン名を解決するようコンピュータデバイス100のDNSクライアントを構成すること、を含むことができる。これは、動的ホスト構成プロトコル(DHCP)等の既知の技術によることを含む、任意の適切な方法で行うことができる。
ブロック506において、コンピュータデバイス100は、入力として部分的修飾ドメイン名を受け取り、このPQDNをDNSクライアントに入力する。このドメイン名は、コンピュータデバイス100のユーザまたはコンピュータデバイス100上で実行されるアプリケーションプログラムを含む、任意の適切なソースから受け取ることができる。ブロック506で受け取られるPQDNは、ウェブサーバ102等のプライベートネットワークリソースを含む任意の適切なネットワークリソースに関連付けることができる。
ブロック508において、ブロック506のPQDNとDNSクライアントを構成するDNSサフィックスとを組み合わせて、DNSクライアントによりFQDNが作成される。ブロック502の構成の結果、これらのサフィックスの1つが、プライベートネットワーク106に対応する「remoteaccess.corporate.com」等のサフィックスとすることができる。DNSクライアントは、DNSクライアントを構成するサフィックスのそれぞれを1度に1つ追加し、そのそれぞれを、DNSクエリを外部ネットワーク104のDNSサーバ112に発行することにより、解決しようと試みる。DNSクライアントは、これらのサフィックスのそれぞれについて、その中の1つがDNSサーバ112により解決可能であるとして検出され、かつ、それに応じて対応するIPアドレスが受け取られるまで、任意の適切な順番で試行し続けることができる。プライベートネットワークリソースのFQDNを事前に公表した結果、DNSサーバ112は、ブロック506で受け取られたドメイン名に対応するエントリ、元々入力されるドメイン名が「hrweb」である場合なら「hrweb.remoteaccess.corporate.com」に対応するエントリ等、を有することができる。いくつかの実施形態において、DNSサーバ112により実行される解決処理は、DNSサーバ112がFQDNのエントリをローカルに持たない場合などに、DNSクエリを1つまたは複数の他のDNSサーバに転送する動作を含むことができる。このDNSクエリの転送は、任意の既知のDNS技術に従うことを含む、任意の適切な方法で実行することができる。
ブロック510において、DNSクライアントは、FQDNに対応するIPアドレスを含む、DNSクライアントのDNSクエリへの応答を受け取る。上述の他の例におけるように、本発明のいくつかの実施形態において、FQDNに対応するIPアドレスは、所望のプライベートネットワークリソース(例えば、ウェブサーバ102)ではなくリバースプロキシ108の、IPアドレスとすることができる。こうすることにより、コンピュータデバイス100にDNS解決を実行させ、恐らくコンピュータデバイス100には分からないまま、リバースプロキシ108を介してプライベートネットワークリソースに向けられる全ての通信を通すことにより、リバースプロキシ108が、1つまたは複数のセキュリティ規則を適用してプライベートネットワーク106のセキュリティの制限が維持されることを確実にすることができるようにする。例えば、FQDNが解決され、コンピュータデバイス100がIPアドレスを使用して通信を試みると、リバースプロキシ108は、コンピュータデバイス100に、プライベートネットワーク106を用いて(有効なユーザ名および/またはパスワードを提供することによるなどして)、リバースプロキシ108自身を認証するよう要求することができ、また、コンピュータデバイス100が認証されない場合、リバースプロキシ108は通信を許可しない。
ブロック512において、FQDNが、ブロック510において受け取られるIPアドレスに解決されると、コンピュータデバイス100はIPアドレスにより識別されるネットワークリソースと通信し、処理500が終了する。
外部ネットワーク104からのプライベートネットワークリソースとの通信に使用可能なプライベートネットワークリソースの識別子を作成するための例示の技術が、上記に記載される(また、下記に記載されるものもある)。これらの技術は、ドメイン名およびドメイン名システム(DNS)を使用して記載される。しかし、ドメイン名システムセキュリティ拡張(Domain Name System Security Extensions:DNSSEC)等のDNSに対する拡張、またはDNS以外の任意の他の技術を含む、任意の適切な解決の技術を使用することができることは理解すべきである。
さらに、プライベートネットワークリソースのドメイン名等の、プライベートネットワークリソースの識別子がIPアドレスに解決されると、コンピュータデバイスとプライベートネットワークリソースとの間に直接または間接的(例えば、リバースプロキシサーバを介して)に任意の適切な方法で、通信が発生することは理解すべきである。この通信を実行するための技術については以下に記載されるが、これらの技術が単なる例示であること、また、本発明の実施形態は任意の特定の技術に従って通信を実行することに限定されないこと、は理解すべきである。
図6は、本発明のいくつかの実施形態において、コンピュータデバイス100により実装することができるこの通信を実行するための、そのような技術の1つを示す。図6の例示の処理600がブロック602において開始され、ここでプライベートネットワークリソースのドメイン名がIPアドレスに解決される。この例において、IPアドレスは、リバースプロキシ108に関連するものであるが、IPアドレスはプライベートネットワーク上の任意の適切なネットワークリソースに関連するものでも良いことは理解すべきである。ブロック602の解決は、上述の技術のいずれかに従うことを含む、任意の適切な方法で行うことができる。ブロック604において、ブロック602において識別されるようなリバースプロキシ108に対して接続が確立される。本発明のいくつかの実施形態において、ブロック604において確立される接続を、1つまたは複数のセキュリティ技術を使用してセキュアにすることができる。例えば、インターネットプロトコルセキュリティ(IPsec)または任意の他のセキュリティ技術等のセキュリティ技術を使用して、接続を暗号化および/または認証することができる。このセキュリティは、ユーザにより入力される要求、リバースプロキシ108への接続時のリバースプロキシ108の要求(例えば、リバースプロキシ108がコンピュータデバイス100に認証情報を提供するよう命令する時)、コンピュータデバイス100の構成設定、に基づき、または任意の他の方法で、実装することができる。例えば、コンピュータデバイス100のセキュリティポリシーを、リバースプロキシ108への接続が、IPsecによるなど、1つまたは複数のセキュリティ技術を使用してセキュアにされるように、要求するよう構成することができる。
ブロック606において、リバースプロキシ108への接続が、開かれ、および/またはセキュアにされると、コンピュータデバイス100は、リバースプロキシ108との通信を開始することができる。上記で説明したように、コンピュータデバイス100は、ウェブサーバ102等の特定のプライベートネットワークリソースと通信を試みようすることができるが、リバースプロキシ108のIPアドレスを提供するDNS解決の結果、コンピュータデバイス100はリバースプロキシ108と通信することができる。これは、コンピュータデバイス100には分からないように行うことができる。すなわち、いくつかの実施形態において、コンピュータデバイス100には、ブロック602において受け取られたIPアドレスがプライベートネットワークリソース(例えば、上記の例ではウェブサーバ102)のIPアドレスではないことを認識できず、リバースプロキシ108とそれがまるでプライベートネットワークリソースであるかのように通信することができる。リバースプロキシ108は次に、以下に記載する例示の技術を含む任意の適切な技術を使用して、これらの通信をプライベートネットワークリソース(例えば、ウェブサーバ102)に転送することができる。
ブロック606における通信は、任意の適切なプロトコルに従って、任意の適切な形式で渡すことができる。本発明のいくつかの実施形態において、これらの通信は、通信内に元々入力される識別子を通信内に埋め込むプロトコルに従って渡されるので、その識別子をリバースプロキシ108が使用して、受け取った通信をプライベートネットワーク106内のどこに転送するかを判定することができるようになる。
例えば、中でも、ハイパーテキスト転送プロトコル(HTTP)およびトランスポートレイヤセキュリティ(Transport−Layer Security:TLS)プロトコルは、通信の種々のプロパティを識別するヘッダを各通信内に含むことができる。これらのプロパティには、通信が向けられる「ホスト」デバイスの識別子が含まれる。識別子は、任意の適切な形式をとることでき、HTTP/TLSがDNSに関連して使用される環境においては、識別子は、DNS処理を通してIPアドレスに解決されるべくDNSクライアントに入力された、ホストデバイスの元々入力されるドメイン名である。
HTTPおよびTLSなどのようなプロトコルに従って通信する本発明の実施形態においては、通信のヘッダに埋め込まれる識別子は、ブロック602において元々受け取られ、かつ、コンピュータデバイス100のDNSクライアントにより解決されるドメイン名とすることができる。例えば、受け取られたドメイン名が「hrweb」であり、任意の適切な方法で解決された場合(例えば、「hrweb」をDNSサーバ110等のDNSサーバに渡すことにより、または、「hrweb.remoteaccess.corporate.com」等の解決されるFQDNを作成することにより、または、任意の他の方法により)、ヘッダに埋め込まれる識別子を、元々入力される識別子「hrweb」とすることができる。
このヘッダを含む通信を、ブロック606においてリモートプロキシ108に渡すことができる。ブロック608において、コンピュータデバイス100は、要求したウェブページをウェブサーバ102から受け取るなど、所望のプライベートネットワークリソースからの応答をリバースプロキシ108を介して、受け取ることができる。ブロック610に示すように、ブロック606および608は、通信が完了するまで繰り返され、−例えば、プライベートネットワーク106に関連する企業の従業員が仕事を終わらせる時、または、リモートでの作業を終わらせる時−処理600は終了する。
リバースプロキシ108は、通信がウェブサーバ102等のプライベートネットワークリソースに向けられる時、リバースプロキシ108が受け取るそれらの通信の受け手を任意の適切な方法で識別するよう適合されることができる。例えば、図2および4に関連して上述したようないくつかの実施形態において、コンピュータデバイス100が、プライベートドメイン名等のプライベート識別子をリバースプロキシ108を介して渡し、DNSサーバ110を用いてプライベート識別子を解決するよう適合される場合、リバースプロキシ108は、どのドメイン名をどのコンピュータデバイスによりクエリするかについての記録を保持することができる。コンピュータデバイス100から通信が受け取られると、リバースプロキシ108は、その記録からコンピュータデバイス100によりクエリされたドメイン名を判定し、クエリされたドメイン名に通信が向けられると仮定し、そのドメイン名により識別されるプライベートネットワークリソース(例えば、ウェブサーバ102)に通信を渡すことができる。同様に、リバースプロキシ108は、プライベートネットワークリソースから応答を受け取ると、そのプライベートネットワークリソースにクエリを発行したことをリバースプロキシ108の記録が示すコンピュータデバイス100に、その応答を転送することができる。
しかし、本発明の代替の実施形態において、リバースプロキシ108は、通信が向けられるプライベートネットワークリソースを、通信自体から判定することができる。例えば、図6に関連して上記で説明したように、いくつかの実施形態において、コンピュータデバイス100は、所望のネットワークリソースの識別子を通信内に埋め込むプロトコルに従って、通信をリバースプロキシ108と交換することができる。リバースプロキシ108がそのような通信を受け取ると、リバースプロキシ108は通信を検査して所定の受け手を判定することができる。
図7は、処理700の一例を示し、これは、プライベートネットワーク(例えば、コンピュータデバイス100)の外部のコンピュータデバイスから受け取られる通信を転送すべき転送先のプライベートネットワークリソースを判定するための、リバースプロキシ108のリモートアクセスファシリティにより実装することができる。処理700は、本発明の実施形態において実装することができ、これにおいて、コンピュータデバイス100は、通信の所定の受け手の識別子を通信内に埋め込むプロトコル(例えば、HTTP、TLSその他)に従って、リバースプロキシ108と通信を交換する。しかし、処理700は、本発明の実施形態において実装することができる処理のタイプを単に例示するものであることは理解すべきである。本明細書に記載される、これらのプロトコルに従って通信を扱う技術が実装される時、他の方法でどのように通信を転送するかを判定する他の処理を実装することができる。さらに、これらのプロトコルは、これらの技術を実装して扱うことができるプロトコルのタイプの単なる一例であること、また、処理を実装して他のタイプのプロトコルを扱うことができること、は理解すべきである。
処理700はブロック702において開始され、ここで、リバースプロキシ108は、外部ネットワーク104に対して接続されるコンピュータデバイス100からの接続を受け取る。リバースプロキシ108のリモートアクセスファシリティは、IPsecを含む1つまたは複数のセキュリティ技術を使用して接続をセキュアにするなど、任意の適切な動作をとり接続を開くことができる。
ブロック704において、リモートアクセスファシリティは、通信をコンピュータデバイス100から受け取るが、この通信には通信を向けるプライベートネットワークリソースの識別子が埋め込まれる。リモートアクセスファシリティは次に、通信を分析してこの識別子を配置させることができる。例えば、HTTPプロトコルに従って伝送される通信では、通信は「ホスト」デバイスの識別子を含むヘッダを有することができる。識別子は、接続が開かれる前にコンピュータデバイス100に元々入力されたホストのドメイン名とすることができる。リモートアクセスファシリティは次に、ホストデバイスの識別子を使用して、通信が渡されるべきプライベートネットワークリソース(例えば、ウェブサーバ102)を配置させることができる。
ブロック706において、通信を、通信内で識別されるプライベートネットワークリソースに渡すことができる。これは任意の適切な方法で行うことができる。いくつかの実装において、リモートアクセスファシリティは、通信内の識別子をIPアドレスに解決することができるが、これは、ドメイン名およびIPアドレスのローカルな記録(図3のブロック312において作成されるような記録)を検査することにより、または、識別子をプライベートDNSサーバ110に渡すことにより、行うことができる。
ブロック708において、リモートアクセスファシリティは、コンピュータデバイス100に転送すべき応答をプライベートネットワークリソースから受け取り、その応答をコンピュータデバイス100に転送する。これは任意の適切な方法で行うことができ、外部ネットワーク104上のコンピュータデバイスからの開かれた接続、プライベートネットワークリソースと通信を実行しているそれらのコンピュータデバイス、それらのプライベートネットワークリソースに伝送される情報またはそれらのプライベートネットワークリソースから要求される情報のタイプ、および/または、任意の他の適切な情報、の一覧を保持することなどにより行うことができる。これらの情報に基づき、リモートアクセスファシリティは、どの外部ネットワーク104のコンピュータデバイスに応答を転送すべきかを判定することができ、ブロック708においてコンピュータデバイス100に応答を転送する。
ブロック710に示すように、ブロック706および708は、通信が完了するまで繰り返され、−例えば、プライベートネットワーク106に関連する企業の従業員が仕事を終わらせる時、または、リモートでの作業を終わらせる時−処理700は終了する。
図7には図示しないが、リバースプロキシ108のリモートアクセスファシリティが、任意の適切な動作をとり、プライベートネットワーク106の1つまたは複数のセキュリティポリシーを適用することができることは理解すべきである。例えば、外部ネットワーク104のコンピュータデバイス100がブロック702において接続を開くと、リモートアクセスファシリティは、コンピュータデバイス100がプライベートネットワーク106にリモートにアクセスすることを承認するかどうかを判定することができる。加えてまたは代替えとして、ブロック704において、リモートアクセスファシリティは、コンピュータデバイス100から受け取られる通信が、許可されたまたは許可されないリモートアクセス動作と関連するかどうか,および/または、リモートにアクセスされることが許可されたまたは許可されないプライベートネットワークリソースに向けられるのかどうか、を判定することができる。例えば、ブロック704において受け取られる通信が、ウェブサーバ102からウェブページを検索することに関連する場合、通信は許可されるが、通信が、ファイルサーバから特定のセキュアな文書を要求する場合、リモートアクセスファシリティは、その動作を許可しない。動作がリモートアクセスファシリティにより許可されない場合、リモートアクセスファシリティは、それに応じて任意の適切な動作を取ることができる。例えば、いくつかの実施形態において、リモートアクセスファシリティは、コンピュータデバイス100に動作が許可されないことを通知することができる。コンピュータデバイスへの通知は、任意の適切な方法で行うことができ、要求されまたは実行される動作のタイプによる。例えば、許可されない通信が特定のセキュアなウェブページを要求するものであり、リモートファシリティがその動作を許可せず、セキュアなウェブページがプライベートネットワーク106の外部に伝送されることが妨げられた場合、リモートアクセスファシリティは、代わりに、セキュリティの制限によりプライベートネットワーク106の外部でウェブページへのアクセスを許可しないということを示す代用のウェブページを、応答で伝送することができる。
コンピュータデバイス100とプライベートネットワークリソースとの間で受動的に通信を双方向に渡すことに加えて、またはその代わりに、リバースプロキシ108のリモートアクセスファシリティは、任意の適切な動作をとりそれらの通信を編集することができる。例えば、リモートアクセスファシリティは、セキュリティポリシーに関する情報を挿入および/または削除することができる。
本発明のいくつかの実施形態において、リモートアクセスファシリティはまた、通信が適切に渡されることを可能にし、リモートアクセスが達成されている様式で行う結果として、この機能が無ければ得られない通信を得ることができる機能を実行することができる。例えば、いくつかの実施形態において、リモートアクセスファシリティは、HTTPクッキーに関する機能を実行することができる。HTTPクッキーは、ウェブサーバおよび/またはウェブクライアントがウェブセッションに関する情報を記憶することが可能な1つの方法である。例えば、ウェブサーバがウェブクライアントに情報を供給する前にウェブサーバに渡されるべき、ウェブサーバが必要なウェブクライアントのユーザのユーザ名を、ウェブクライアントが持っている場合、その情報はユーザから受け取られ、ウェブクライアント上のHTTPクッキーにローカルに記憶される。別の例として、ウェブクライアントが、製品に関する情報を購入のために商業ウェブサイトから集めている場合、ウェブクライアントは、それらの製品に関する情報(例えば、「ショッピングカート」)を、ウェブクライアント上のHTTPクッキーにローカルに記憶し、後でウェブクライアントのユーザがその購入を決めた時にウェブサーバに送られるようにすることができる。
HTTPクッキーは機密情報(例えば、ウェブサーバに送られるユーザ名)を記憶することができるため、ウェブクライアントは、それらのHTTPクッキーが、特定の一意的なドメイン名に関連するような一意的な方法で記憶可能であること、かつ、特定の一意的なドメイン名でのみ検索可能であること、を確実にするための種々の対策をとることができる。HTTPクッキーが一意的なドメイン名に関連することを確実にするために、ウェブクライアントは、クッキーの使用を完全修飾ドメイン名(FQDN)を持つウェブサーバのみに制限することができる。
上記で説明したように、ウェブサーバ102のドメイン名のような、プライベートネットワークリソースに使用されるプライベート識別子は、完全修飾ドメイン名ではなく、単一のラベル「hrweb」等の部分的修飾ドメイン名(PQDN)とすることができる。FQDNがDNSクライアントにより形成されてPQDNを解決する場合でも、PQDNは、プライベートネットワークリソースへのアクセスに使用される識別子とすることができる。PQDNが一意的な名前ではない危険性があるので、外部ネットワークからウェブサーバ102にアクセスするコンピュータデバイス100のウェブクライアントは、ウェブサーバ102に関連するHTTPクッキーの使用を許可しない。
しかし、HTTPクッキーに依存して適切に機能するウェブサイトがあり、従って、HTTPクッキーが許可されない時は、ウェブサーバ102のウェブサイトがコンピュータデバイス100上に適切に表示されない場合がある。そのような動作不良はユーザに影響を与える可能性がある。従って、いくつかの実施形態において、リバースプロキシ108のリモートアクセスファシリティは、1つまたは複数の動作をとり、コンピュータデバイス100とリバースプロキシ108との間の通信に対してHTTPクッキーを可能にすることができるが、全ての実施形態がこの機能性を提供する必要があるわけではない。
図8Aおよび図8Bは、リバースプロキシ108のリモートアクセスファシリティにより使用されHTTPクッキーの使用を可能にすることができる処理の2つの例を示す。しかし、図8Aおよび図8Bの処理800Aおよび800Bは、HTTPクッキーを可能にするよう適合されるリモートアクセスファシリティにより実装可能である処理のタイプを単に例示するものであり、他の処理が可能であることは理解すべきである。さらに、HTTPクッキーを可能にするために全てのリモートアクセスファシリティが実装されるわけではなく、本発明の実施形態はそのように限定されないことは理解すべきである。
処理800Aはブロック802において開始され、ここで、リモートアクセスファシリティは、コンピュータデバイス100とウェブサーバ102との間で情報を交換する一方、コンピュータデバイス100のウェブクライアントによりHTTPクッキーとして情報が記憶されることを検出する。この検出は、任意の適切な方法で行うことができ、例えば、ウェブサーバ102とコンピュータデバイス100との間で伝送されるウェブコンテンツ内において、HTTPクッキーが記憶されるという結果をもたらす命令を検出することにより、行われる。リモートアクセスファシリティは、コンピュータデバイス100のウェブクライアントがクッキーを許可しないであろうということを認識するが、これは、リモートアクセスファシリティがウェブサーバ102への接続に使用される識別子が完全修飾ドメイン名ではないことを認識するからである。従って、ブロック804において、この検出を行う時に、リモートアクセスファシリティは、記憶されるべき情報を識別し、それをリバースプロキシ108にアクセス可能にするように記憶することができる。これには、リバースプロキシ108上に、または、リバースプロキシ108にアクセス可能な離れた場所に、クッキーの情報をローカルに記憶することを含むことができる。この情報は、任意の適切な方法で記憶することができ、また、接続、コンピュータデバイス100、および/または、ウェブサーバ102と関連付けることができる。
ブロック806において、コンピュータデバイス100とウェブサーバ102との間で情報を交換する一方、リモートアクセスファシリティは、HTTPクッキー(コンピュータデバイス100のウェブクライアントにより許可されていなくても良い)内に記憶されているべき情報を、使用するものとして検出することができる。この検出は、伝送されてくるウェブページのコンテンツを検査して、クッキーに記憶される要求情報であるウェブページの一部を識別することによることを含む、任意の適切な方法で行うことができる。例えば、ウェブページのハイパーテキスト・マークアップ言語(HTML)のコードを含むウェブページのコードには、クッキーに記憶されるべき情報への参照を含むことができ、このコードは、リモートアクセスファシリティにより検出することができる。HTTPクッキー内の情報を、ウェブサーバ102に伝送すること、または、コンピュータデバイス100とウェブサーバ102の間を伝送されるコンテンツに挿入すること、などにより任意の適切な方法で使用することができる。この検出時、リモートアクセスファシリティは、ブロック808において、検出される動作(例えば、情報をウェブサーバ102に伝送すること、情報をコンテンツ内に挿入すること、など)そのものを、ブロック804からローカルに記憶されるHTTPクッキー内に記憶される情報を使用して、実行することができる。このようにして、HTTPクッキー情報をローカルに記憶することにより、リモートアクセスファシリティは、接続全体に亘ってHTTPクッキーの使用を可能にし、かつ、ウェブページがコンピュータデバイス100上で適切に機能するウェブサーバ102によりホストされるよう維持することができる。
図8Bは、コンピュータデバイス100とウェブサーバ102との間の接続全体に亘ってHTTPクッキーの使用を可能にするための代替の処理800Bを示す。
処理800Bはブロック822において開始され、ここで、リバースプロキシ108のリモートアクセスファシリティは、コンピュータデバイス100とウェブサーバ102との間でメッセージを交換する一方、HTTPクッキーを作成および/または使用されるものとして検出する。この検出は、図8Aのブロック802に関連して上述した例のいずれかによることを含む、任意の適切な方法で行うことができる。リモートアクセスファシリティは、コンピュータデバイス100のウェブクライアントがクッキーを許可しないであろうことを認識できるが、これは、リモートアクセスファシリティが、ウェブサーバ102への接続に使用される識別子が完全修飾ドメイン名ではないことを認識できるためである。
リモートアクセスファシリティは次に、ブロック824において、ウェブクライアントがHTTPクッキーの使用を許可するであろう識別子、例えば、リバースプロキシ108および/またはウェブサーバ102に関連するFQDN、を使用して、コンピュータデバイス100のウェブクライアントにウェブサーバ102への再接続を指示することにより、接続でのHTTPクッキーの使用を可能にすることができる。これは、既知のHTTPリダイレクション技術に従うことを含む、任意の適切な方法で行うことができる。そのようなリダイレクションを実行すると、リモートアクセスファシリティが、HTTP POSTメッセージを使用して伝送された情報などの、接続の現在の状態に関する情報を記憶することができる場合がある。リモートアクセスファシリティは次に、図8Aに関連して上述したものと同様の技術に従うことを含む任意の適切な方法で、この情報を接続に適用することができる。そのような情報を記憶することにより、指示の後でも情報が使用できるようされ、リダイレクションの間または後でユーザを混乱させることを避けることができる。
ブロック826において、リモートアクセスファシリティは次に、上述した技術のいずれかを含む任意の適切な技術に従って、新しい接続全体に亘ってウェブサーバ102とコンピュータデバイス100との間で情報を交換することができる。そして処理800Bは終了する。
本明細書に記載される原理に従って動作する技術は、任意の適切な方法で実装することができる。上記では、外部ネットワークからの接続を確立するためにプライベートネットワークリソースのプライベート識別子が使用されることを可能にする、種々の処理のステップおよび動作を示す一連のフローチャートについて記載した。上記のフローチャートの処理および決定のブロックは、これらの種々の処理を実行するアルゴリズムに含めることができるステップおよび動作を表す。これらの処理から導かれるアルゴリズムは、1つまたは複数の多目的プロセッサの動作と統合されそれを指示するソフトウェアとして実装することができ、デジタル信号処理(Digital Signal Processing:DSP)回路または特定用途向け集積回路(Application−Specific Integrated Circuit:ASIC)等の機能的に同等の回路として実装することができ、または、任意の他の適切な方法で実装することができる。本明細書に含まれるフローチャートが、任意の特定の回路の、または、任意の特定のプログラミング言語もしくはプログラミング言語のタイプの、構文も動作も示さないことは理解すべきである。むしろ、フローチャートは、当業者が使用して、回路を製作、または、コンピュータソフトウェアのアルゴリズムを実装して、本明細書に記載されるタイプの処理を実行する特定の装置の要求される処理を実行することができる、機能情報を例示するものである。
従って、いくつかの実施形態において、本明細書に記載される技術は、アプリケーションソフトウェア、システムソフトウェア、ファームウェア、ミドルウェア、または、任意の他のタイプのソフトウェアを含むソフトウェアとして、実装されるコンピュータ実行可能命令において具現化することができる。そのようなコンピュータ実行可能命令は、多数の適切なプログラミング言語、および/または、プログラミングツールまたはスクリプトツール、のいずれかを使用して書くことができ、また、フレームワークまたは仮想マシン上で実行される実行可能機械語コードまたは中間コードとしてコンパイルすることができる。
本明細書に記載される技術がコンピュータ実行可能命令として具現化される時、コンピュータ実行可能命令を、任意の適切な方法で実装することができ、例えば、これらの技術に従って動作するアルゴリズムを完璧に実行させるために必要な1つまたは複数の動作をそれぞれが提供する多数の機能的設備などが含まれる。しかし、「機能的設備」は、1つまたは複数のコンピュータにより統合および実行される時に、1つまたは複数のコンピュータに特定の動作規則を実行させるコンピュータシステムの構成要素である。機能的設備は、ソフトウェア要素の一部または全体とすることができる。例えば、機能的設備は、処理の関数として、離散型処理として、または、任意の他の適切な処理の単位として、実装することができる。本明細書に記載される技術が、複数の機能的設備として実装される場合、各機能的設備は、それ自身の方法で実装することができる。全てが同一の方法で実装される必要はない。加えて、これらの機能的設備は、必要に応じて並行にまたは連続して実行することができ、また、メッセージパッシングプロトコルを使用して、または任意の他の適切な方法で、機能的設備が実行するコンピュータ(複数可)上の供給メモリを使用してお互いに情報を渡すことができる。
一般に、機能的設備には、特定のタスクを実行する、または、特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等が含まれる。典型的には、機能的設備の機能性は、機能的設備が動作するシステムにおいて要望に応じて、組み合わせることまたは分配することができる。いくつかの実装において、本明細書における技術を実行する1つまたは複数の機能的設備をまとめて、完全なソフトウェアパッケージを形成することができ、例えば、ワシントン州レドモンドのマイクロソフト社から入手可能なMicrosoft Unified Application Gateway(UAG)またはIntelligent Access Gateway(IAG)等のソフトウェアプログラムアプリケーションがある。これらの機能的設備は、代替の実施形態において、他の関連の無い機能的設備および/または処理と相互作用するよう適合されて、ソフトウェアプログラムアプリケーションを実装することができる。他の実装において、機能的設備は、ワシントン州レドモンドのマイクロソフト社から入手可能なウィンドウズオペレーティングシステムを含む、オペレーティングシステムを形成するような方法で、他の機能的設備と相互作用するよう適合されることができる。換言すると、いくつかの実装において、機能的設備は、代替えとしてオペレーティングシステムの一部としてまたはその外部で、実装することができる。
1つまたは複数のタスクを実行するためのいくつかの例示の機能的設備について、本明細書に記載された。しかし、記載される機能的設備およびタスクの分割は、本明細書に記載される例示の技術を実装することができる機能的設備タイプを単に例示するものであること、本発明が機能的設備の任意の特定の数、分割またはタイプで実装されることに限定されないこと、は理解すべきである。いくつかの実装において、全ての機能性を単一の機能的設備に実装することができる。いくつかの実装において、本明細書に記載される機能的設備のいくつかを、一緒にまたは他のものとは離して(すなわち、単一のユニット、または別個のユニットとして)実装することができること、または、これらの機能的設備のいくつかを実装しなくても良いこと、も理解すべきである。
本明細書に記載される技術を実装するコンピュータ実行可能命令は(1つまたは複数の機能的設備としてまたは任意の他の方法で実装される時)、いくつかの実施形態において、1つまたは複数のコンピュータ可読記憶媒体上に符号化されて、記憶媒体に機能性を提供することができる。これらの媒体には、ハードディスクドライブ等の磁気媒体、CD(Compact Disk)またはDVD(Digital Versatile Disk)等の光媒体、永続型もしくは非永続型の固体メモリ(例えば、フラッシュメモリ、磁気RAM等)、または、任意の他の適切な媒体、が含まれる。そのようなコンピュータ可読記憶媒体は、以下に記載される図9および図10のコンピュータ可読記憶媒体906または1006として(すなわち、コンピュータデバイス900または1000の一部として)、または、スタンドアロン、別個の記憶媒体として、実装することができる。本明細書において使用される時、「コンピュータ可読記憶媒体」を含む「コンピュータ可読媒体」は、データを記録する処理の間、何らかの方法で変更できる少なくとも1つの物理的プロパティを有する有形の記憶媒体を参照する、ことは理解すべきである。例えば、コンピュータ可読媒体の物理的構造の一部の磁化状態は、記録処理の間、変更できる。
さらに、上述したいくつかの技術は、情報(例えば、データおよび/または命令)を、その技術により使用するために何らかの方法で記憶する動作を含む。これらの技術のいくつかの実装−技術がコンピュータ実行可能命令として実装される実装など−において、情報をコンピュータ可読記憶媒体上に符号化することができる。特定の構造が、この情報を記憶するには有利なフォーマットとして上述されるが、これらの構造を使用して、記憶媒体上に符号化される時に情報の物理的組織化を与えることができる。そして、これらの有利な構造は、情報をやりとりする1つまたは複数のプロセッサの動作に作用することにより、例えば、プロセッサ(複数可)により実行されるコンピュータの動作の効率を増大させることにより、記憶媒体に機能性を提供することができる。
技術がコンピュータ実行可能命令として具現化される、全てではなくいくつかの実装において、これらの命令は、図1の例示のコンピュータシステムを含む任意の適切なコンピュータシステムで動作する1つまたは複数の適切なコンピュータデバイス上で、実行させることができる。これらのコンピュータ実行可能命令を含む機能的設備は、単一の多目的プログラム可能デジタルコンピュータ装置、処理能力を共有し本明細書に記載される技術を共同して実行する2つ以上の多目的コンピュータ装置の協調システム、本明細書に記載される技術を実行する専用のコンピュータ装置(共同設置されたまたは地理的に分散された)の単一のコンピュータ装置もしくはコンピュータ装置の協調システム、本明細書に記載される技術を実行するための1つまたは複数のフィールドプログラマブルゲートアレイ(Field−Programmable Gate Array:FPGA)、または任意の他の適切なシステム、の動作と統合され、かつ、それを指示することができる。
図9は、本明細書に記載される技術を実装するシステムにおいて使用することができる、コンピュータデバイス900の形式で、コンピュータデバイスの例示の実装を1つ例示するが、他のものが可能である。図9のコンピュータデバイス900は、本発明のいくつかの実施形態において、コンピュータデバイス100として実装することができる。図9は、本明細書に記載される原理に従って動作するコンピュータデバイスの必要な要素を示すことも、包括的に示すことも意図していないことは理解すべきである。
コンピュータデバイス900は、少なくとも1つのプロセッサ902、ネットワークアダプタ904、およびコンピュータ可読記憶媒体906、を含むことができる。コンピュータデバイス900は、例えば、デスクトップまたはラップトップパーソナルコンピュータ、携帯情報端末(PDA)、スマートモバイルフォン、サーバ、無線アクセスポイントもしくは他のネットワーク要素、または、プライベートネットワークへのリモートアクセスを試みる任意の他の適切なコンピュータデバイス、とすることができる。ネットワークアダプタ904は、任意の適切なコンピュータネットワークを介して任意の他の適切なコンピュータデバイスとコンピュータデバイス900が無線で通信することを可能にする、任意の適切なハードウェアおよび/またはソフトウェア、とすることができる。コンピュータネットワークには、無線アクセスポイントに加えて、インターネットを含む、2つ以上のコンピュータ間でデータを交換するための任意の適切な有線および/または無線の通信媒体(複数可)、を含むことができる。コンピュータ可読媒体906は、処理されるデータおよび/またはプロセッサ902により実行される命令を記憶するよう適合されることができる。プロセッサ902は、データの処理および命令の実行を可能にする。データおよび命令は、コンピュータ可読記憶媒体906上に記憶することができ、また、例えば、コンピュータデバイス900の要素間の通信を可能にすることができる。
コンピュータ可読記憶媒体906上に記憶されるデータおよび命令は、本明細書に記載される原理に従って動作する技術を実装するコンピュータ実行可能命令を含むことができる。図9の例において、コンピュータ可読記憶媒体906は、上述したように種々の設備を実装しかつ種々の情報を記憶する、コンピュータ実行可能命令を記憶する。コンピュータ可読記憶媒体906は、DNSクライアント908を記憶し、上述の技術を含む任意の適切な技術を使用して、プライベート識別子をIPアドレスに解決することができる。コンピュータ可読記憶媒体906はさらに、1つまたは複数のDNSサーバ(DNSサーバ110および/またはDNSサーバ112等)のIPアドレス912、および、完全修飾ドメイン名を形成するために使用される1つまたは複数のDNSサフィックス914を含む、DNS構成情報910を記憶することができる。
図10は、本明細書に記載される技術を実装するシステムにおいて使用することができるコンピュータデバイス1000の形式で、コンピュータデバイスの例示の実装を例示するが、他のものが可能である。図10のコンピュータデバイス1000は、本発明のいくつかの実施形態において、リバースプロキシ108として実装することができる。図10は、本明細書に記載される原理に従って動作するコンピュータデバイスの必要な要素を示すことも、包括的に示すことも意図していないことは理解すべきである。
コンピュータデバイス1000は、少なくとも1つのプロセッサ1002、ネットワークアダプタ1004、およびコンピュータ可読記憶媒体1006、を含むことができる。コンピュータデバイス1000は、例えば、サーバ、メインフレーム、ファイアウォール、ゲートウェイ、もしくはルータ等のネットワークデバイス、または、任意の他の適切なコンピュータデバイス、とすることができる。ネットワークアダプタ1004は、任意の適切なコンピュータネットワークを介して任意の他の適切なコンピュータデバイスとコンピュータデバイス1000が無線で通信することを可能にする、任意の適切なハードウェアおよび/またはソフトウェア、とすることができる。コンピュータネットワークには、無線アクセスポイントに加えて、インターネットを含む、2つ以上のコンピュータ間でデータを交換するための任意の適切な有線および/または無線の通信媒体(複数可)、を含むことができる。コンピュータ可読記憶媒体1006は、処理されるデータおよび/またはプロセッサ1002により実行される命令を記憶するよう適合されることができる。プロセッサ1002は、データの処理および命令の実行を可能にする。データおよび命令は、コンピュータ可読記憶媒体1006上に記憶することができ、また、例えば、コンピュータデバイス1000の要素間の通信を可能にすることができる。
コンピュータ可読記憶媒体1006上に記憶されるデータおよび命令は、本明細書に記載される原理に従って動作する技術を実装するコンピュータ実行可能命令を含むことができる。図10の例において、コンピュータ可読記憶媒体1006は、上述したように種々の設備を実装しかつ種々の情報を記憶する、コンピュータ実行可能命令を記憶する。コンピュータ可読記憶媒体1006は、外部ネットワークに対して接続されるコンピュータデバイスとプライベートネットワークに対して接続されるコンピュータデバイスとの間の通信を可能にするリモートアクセスファシリティ1008を記憶することができる。コンピュータ可読記憶媒体1006はまた、開いて提示されるまたは過去に開かれていた1つまたは複数の接続に関する記録1010を記憶することができ、記録には、接続についての任意の適切な情報を含むことができる。HTTP情報1012はまた、コンピュータ可読媒体1006上に記憶することができ、また、HTTPクッキー内に記憶できる情報、または、HTTP POST伝送を使用して交換できる情報、などの情報が含まれる。
さらに、図10には図示しないが、本発明のいくつかの実施形態において、コンピュータデバイス1000はまた、DNSサーバとして実装することもでき、DNSサーバ設備、およびコンピュータデバイス1000により受け取られるDNSクエリを解決するDNSエントリのデータストア、を含むことができる。
図9および図10には図示しないが、コンピュータデバイスは、加えて、入力デバイスおよび出力デバイスを含む1つまたは複数の要素および周辺機器を含むことができる。これらのデバイスを使用して、とりわけ、ユーザインターフェースを提示することができる。ユーザインターフェースを提供するために使用可能な出力デバイスの例には、出力の視覚的表現のためのプリンタまたはディスプレイスクリーン、および、出力の音声表現のためのスピーカまたは他の音声発生デバイス、が含まれる。ユーザインターフェースに使用可能な入力デバイスの例には、キーボード、ならびにマウス、タッチパッド、およびデジタルタブレット等のポインティングデバイス、が含まれる。別の例として、コンピュータデバイスは、音声認識を介して、または、他の音声形式で、入力される情報を受け取ることができる。
電気回路および/またはコンピュータ実行可能命令において技術が実装される、本発明の実施形態が記載してきた。本発明は方法として具現化することができ、その例が提供されたということを理解すべきである。方法の一部として実行される動作を、任意の適切な方法で順序づけることができる。従って、例示されるものとは異なる順番で動作が実行されるよう実施形態を構成することができ、これには、ある動作を、例示の実施形態では連続する動作として示されていても、同時に実行することが含まれる。
本発明の種々の態様は、単独で、組み合わせて、または、上述の実施形態においては特には説明されていない様々な配置で使用することができ、従って、その用途において、上記に記載されるまたは図に例示される要素の詳細および配置に限定されない。例えば、一実施形態において記載される態様は、任意の方法で、他の実施形態に記載される態様と組み合わせることができる。
請求の範囲において請求の要素を修飾する「第1の」「第2の」「第3の」などの序数の使用は、それ自体が、任意の優先度、先行、1つの請求項が別の請求項より上位であるような順序、もしくは方法の動作が実行される時間的な順序、を暗示するものではなく、特定の名前を持つ1つの請求の要素を、同じ名前を持つ別の要素から区別するための単なるラベルとして使用されて(序数の使用を別にして)、請求の要素を区別する。
また、本明細書において使用される表現および専門用語は、説明目的のためのものであり、制限するものと見なされるべきではない。「含む」「備える」「有する」「含有する」「伴う」、および本明細書におけるそれらの変形の使用は、その後にリストアップされる項目およびその等価物に加えて追加の項目も包含することを意味する。
本発明の少なくとも1つの実施形態のいくつかの態様について記載されたが、種々の変更、修正、および改善を当業者が容易に想到することは理解すべきである。そのような変更、修正、および改善は、本開示の一部であることが意図され、本発明の精神および範囲の中にあることが意図される。従って、上述の記載および図面は、単なる例である。

Claims (15)

  1. プライベートネットワークの外部のクライアントコンピュータから、前記プライベートネットワークに接続されるプライベートネットワークリソースへの、リモートアクセスを可能にするための方法であって、前記プライベートネットワークはエッジリソースを含み、前記プライベートネットワークリソースは、前記プライベートネットワーク上で前記プライベートネットワークリソースのインターネットプロトコル(IP)アドレスに解決可能、かつ、前記プライベートネットワークの外部でエッジリソースのIPアドレスに解決可能、である識別子に関連し、前記方法が、
    (A)前記エッジリソースにおいて、クライアントコンピュータから前記識別子を含む通信を受信する動作と、
    (B)前記プライベートネットワーク上で、前記識別子を前記プライベートネットワークリソースの前記IPアドレスに解決する動作と、
    (C)前記通信を前記プライベートネットワークリソースに伝送する動作と
    を含むことを特徴とする方法。
  2. 前記通信を所定の受け手に伝送する動作(C)が、
    (C1)前記プライベートネットワークの少なくとも1つのセキュリティポリシーを適用して、通信を前記通信の所定の受け手であるプライベートネットワークリソースに伝送することを許可すべきかどうかを判定する動作と、
    (C2)動作(Cl)において、前記通信を許可すべきであると判定される場合、前記通信を伝送する動作と
    を含むことを特徴とする請求項1に記載の方法。
  3. (D)前記エッジリソースにおいて、第2のクライアントコンピュータから第2の通信を受け取る動作であって、前記通信には第2の識別子が含まれる、動作と、
    (E)前記プライベートネットワークの前記少なくとも1つのセキュリティポリシーを適用して、通信を前記第2の通信の所定の受け手である第2のプライベートネットワークリソースに伝送すべきかどうかを判定する動作と、
    (F)動作(E)において、前記第2の通信を許可すべきではないと判定される場合、前記第2の通信を伝送しない動作と
    をさらに含むことを特徴とする請求項2に記載の方法。
  4. (D)前記クライアントコンピュータに前記プライベートネットワークリソースからの応答を伝送する動作をさらに含むことを特徴とする請求項1に記載の方法。
  5. 動作(D)が前記エッジリソースにより実行されることを特徴とする請求項4に記載の方法。
  6. 前記クライアントコンピュータに応答を伝送する動作(D)が、
    (Dl)前記エッジリソースにおいて、動作(C)において伝送される通信への前記プライベートネットワークリソースからの応答を受け取る動作と、
    (D2)前記クライアントコンピュータが通信のソースであったと判定する動作と
    を含むことを特徴とする請求項5に記載の方法。
  7. (D)前記通信を受け取る動作(A)の前に、前記エッジリソースにおいて、前記クライアントから識別子の解決要求を受け取る動作であって、前記識別子の解決要求は前記プライベートネットワークリソースに関連する前記識別子を含有する、動作と
    (E)前記エッジリソースのIPアドレスを含む、前記エッジリソースからクライアントへの前記識別子の解決要求への応答を、クライアントに伝送する動作と
    をさらに含むことを特徴とする請求項1に記載の方法。
  8. 前記識別子がドメイン名システム(DNS)に従うドメイン名であり、前記識別子の解決要求がDNSクエリであり、
    動作(B)が、
    (Bl)前記プライベートネットワークのプライベートDNSサーバにクエリを行い、前記識別子に関連するIPアドレスを判定する動作を含む
    ことを特徴とする請求項5に記載の方法。
  9. 前記プライベートネットワークリソースが、プライベートネットワークに対して接続されるウェブサーバであることを特徴とする請求項1に記載の方法。
  10. (D)IPセキュリティプロトコル(IPsec)を使用して、前記エッジリソースと前記クライアントコンピュータとの間の接続をセキュアにする動作をさらに含み、
    前記動作(A)において受け取られる前記通信が、動作(D)においてセキュアにされる接続全体に亘って受け取られることを特徴とする請求項1に記載の方法。
  11. 前記識別子が通信のヘッダに含有されることを特徴とする請求項1に記載の方法。
  12. コンピュータ実行可能命令で符号化される少なくとも1つのコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令はコンピュータにより実行されると、
    前記コンピュータに、
    プライベートネットワークの外部のクライアントコンピュータから、前記プライベートネットワークに接続されるプライベートネットワークリソースへの、リモートアクセスを可能にするための方法であって、前記プライベートネットワークはエッジリソースを含み、前記プライベートネットワークリソースは、プライベートネットワーク上でプライベートネットワークリソースのインターネットプロトコル(IP)アドレスに解決可能、かつ、プライベートネットワークの外部で前記エッジリソースのIPアドレスに解決可能、であるドメイン名に関連する、方法を実行させ、
    前記方法が、
    (A)前記クライアントからドメイン名システム(DNS)クエリを受信する動作であって、前記DNSクエリが前記プライベートネットワークリソースに関連するドメイン名を含有する動作と、
    (B)前記DNSクエリに対する前記エッジリソースからの応答を、前記エッジリソースのIPアドレスを含有するクライアントに伝送する動作と、
    (C)前記エッジリソースにおいて、クライアントコンピュータから通信を受信する動作であって、前記通信が前記プライベートネットワークリソースに関連するドメイン名を含有するヘッダを含む、動作と、
    (D)前記通信を前記プライベートネットワークリソースに伝送する動作と
    を含むことを特徴とするコンピュータ可読記憶媒体。
  13. 前記通信を伝送する動作(D)が、
    (D1)前記プライベートネットワークの少なくとも1つのセキュリティポリシーを適用して、前記通信を前記プライベートネットワークリソースであるプライベートネットワークリソースに伝送することを許可すべきかどうかを判定する動作と、
    (D2)動作(Dl)において、前記通信を許可すべきであると判定される場合、前記通信を伝送する動作と
    を含むことを特徴とする請求項12に記載の少なくとも1つのコンピュータ可読記憶媒体。
  14. 前記プライベートネットワークリソースが、プライベートネットワークに対して接続されるウェブサーバであることを特徴とする請求項12に記載の少なくとも1つのコンピュータ可読記憶媒体。
  15. 前記通信がHTTPプロトコルに従ってフォーマットされ、前記ヘッダに含有される前記識別子がホストのHTTP識別子であることを特徴とする請求項11に記載の少なくとも1つのコンピュータ可読記憶媒体。
JP2011547928A 2009-01-20 2009-12-04 ネットワークの外部からのプライベートネットワークリソースへのリモートアクセス Pending JP2012516112A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/356,152 US8910270B2 (en) 2009-01-20 2009-01-20 Remote access to private network resources from outside the network
US12/356,152 2009-01-20
PCT/US2009/066892 WO2010090674A1 (en) 2009-01-20 2009-12-04 Remote access to private network resources from outside the network

Publications (1)

Publication Number Publication Date
JP2012516112A true JP2012516112A (ja) 2012-07-12

Family

ID=42338015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011547928A Pending JP2012516112A (ja) 2009-01-20 2009-12-04 ネットワークの外部からのプライベートネットワークリソースへのリモートアクセス

Country Status (7)

Country Link
US (1) US8910270B2 (ja)
EP (1) EP2380309B1 (ja)
JP (1) JP2012516112A (ja)
CN (1) CN102282801A (ja)
AU (1) AU2009339289B2 (ja)
CA (1) CA2747393C (ja)
WO (1) WO2010090674A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170060070A (ko) * 2014-09-24 2017-05-31 오라클 인터내셔날 코포레이션 리버스 프록시 서버들 내의 서비스들
KR102514618B1 (ko) * 2022-04-26 2023-03-29 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2437568B1 (en) * 2009-05-27 2018-05-23 Nec Corporation Wireless lan access point apparatus, mobile communication terminal, communication method, and program
US20120208504A1 (en) * 2009-07-01 2012-08-16 Zte (Usa) Inc. Femto access point initialization and authentication
US8355395B2 (en) 2009-10-20 2013-01-15 At&T Intellectual Property I, L.P. Controlling registration floods in VoIP networks via DNS
US8990610B2 (en) * 2010-03-12 2015-03-24 International Business Machines Corporation Preferred resource selector
US8694659B1 (en) * 2010-04-06 2014-04-08 Symantec Corporation Systems and methods for enhancing domain-name-server responses
US20120079122A1 (en) * 2010-09-24 2012-03-29 Research In Motion Limited Dynamic switching of a network connection based on security restrictions
US9160693B2 (en) 2010-09-27 2015-10-13 Blackberry Limited Method, apparatus and system for accessing applications and content across a plurality of computers
US9313085B2 (en) * 2010-12-16 2016-04-12 Microsoft Technology Licensing, Llc DNS-based determining whether a device is inside a network
US8949411B2 (en) 2010-12-16 2015-02-03 Microsoft Corporation Determining whether a device is inside a network
US20120173760A1 (en) 2010-12-30 2012-07-05 International Business Machines Corporation Domain name resolution for a hybrid cloud cluster
CN102202045A (zh) * 2011-03-09 2011-09-28 深圳市同洲电子股份有限公司 广电网络中实现互联网络接入的方法、系统及装置
CN103650426B (zh) * 2011-05-06 2016-10-05 思杰系统有限公司 用于在公共云与私有云之间进行云桥接的系统和方法
US9253252B2 (en) * 2011-05-06 2016-02-02 Citrix Systems, Inc. Systems and methods for cloud bridging between intranet resources and cloud resources
US8656209B2 (en) * 2011-05-27 2014-02-18 Verisign, Inc. Recovery of a failed registry
US8751614B2 (en) 2011-10-11 2014-06-10 Telefonaktiebolaget L M Ericsson (Publ) Providing virtualized visibility through routers
US8812670B2 (en) 2011-10-11 2014-08-19 Telefonaktiebolaget L M Ericsson (Publ) Architecture for virtualized home IP service delivery
US8930492B2 (en) 2011-10-17 2015-01-06 Blackberry Limited Method and electronic device for content sharing
WO2013069161A1 (ja) * 2011-11-11 2013-05-16 富士通株式会社 ルーティング方法およびネットワーク伝送装置
US8843587B2 (en) * 2012-02-07 2014-09-23 Microsoft Corporation Retrieving availability information from published calendars
US9015809B2 (en) 2012-02-20 2015-04-21 Blackberry Limited Establishing connectivity between an enterprise security perimeter of a device and an enterprise
US9137210B1 (en) 2012-02-21 2015-09-15 Amazon Technologies, Inc. Remote browsing session management
US9106481B2 (en) 2012-03-29 2015-08-11 Intel Corporation Device-to-device tapping service layer
WO2013147802A1 (en) * 2012-03-29 2013-10-03 Intel Corporation Device-to-device tapping service layer
US9025439B2 (en) 2012-06-26 2015-05-05 Telefonaktiebolaget L M Ericsson (Publ) Method and system to enable re-routing for home networks upon connectivity failure
WO2014120253A1 (en) * 2013-01-29 2014-08-07 Blackberry Limited A system and method for providing a certificate-based trust framework using a secondary network
WO2014120198A1 (en) * 2013-01-31 2014-08-07 Hewlett-Packard Development Company, L.P. Linking a roaming device to a network-enabled resource through a cloud service using an address obtained through a local interaction
US9203694B2 (en) 2013-03-15 2015-12-01 Telefonaktiebolaget L M Ericsson (Publ) Network assisted UPnP remote access
GB2514550A (en) * 2013-05-28 2014-12-03 Ibm System and method for providing access to a resource for a computer from within a restricted network and storage medium storing same
JP5976232B2 (ja) * 2013-08-26 2016-08-23 徐 正 煥SEO, Jeong Hoan ユーザ情報に基づいた、ドメインネーム・システム及びドメインネーム・サービス方法
US11082353B2 (en) * 2015-09-28 2021-08-03 Arris Enterprises Llc Domain name system response spoofing at customer premise equipment device
US9930004B2 (en) * 2015-10-13 2018-03-27 At&T Intellectual Property I, L.P. Method and apparatus for expedited domain name system query resolution
US9967227B2 (en) * 2015-11-11 2018-05-08 Fastly, Inc. Enhanced content route selection in content delivery networks
US20170295131A1 (en) * 2016-04-12 2017-10-12 Dell Software Inc. Resource identification through dynamic domain name system (dns) labels
US10762559B2 (en) * 2016-04-15 2020-09-01 Adp, Llc Management of payroll lending within an enterprise system
US10554714B2 (en) * 2016-05-11 2020-02-04 Ebay Inc. Managing data transmissions over a network connection
CN106375286A (zh) * 2016-08-29 2017-02-01 四川超腾达物联科技有限公司 基于安全域的企业网络安全防护系统
US20180191856A1 (en) * 2016-12-29 2018-07-05 Synology Inc. Cross-domain communication methods and proxy servers using the same
US10666606B2 (en) * 2017-06-28 2020-05-26 Amazon Technologies, Inc. Virtual private network service endpoints
CN109286568A (zh) * 2017-07-20 2019-01-29 中兴通讯股份有限公司 一种数据包路由方法和数据包路由装置
FR3079642B1 (fr) * 2018-03-29 2021-09-10 Fabienne Veyre Capteur d'intrusion informatique et procede de creation d'un capteur d'intrusion
CN109787952B (zh) * 2018-11-22 2022-06-03 北京奇艺世纪科技有限公司 一种网络数据访问方法、装置及电子设备
US10785166B1 (en) 2018-11-29 2020-09-22 Cox Communications, Inc. Resource assignment protocol-implemented policy-based direction of a client to an edge-compute resource
PL3703331T3 (pl) 2019-02-27 2021-08-23 Ovh Systemy i sposoby zarządzania siecią
EP3886405A1 (en) * 2019-04-08 2021-09-29 Telefonaktiebolaget LM Ericsson (publ) Systems and methods for handling telescopic fqdns
CN110445850A (zh) * 2019-07-24 2019-11-12 深圳壹账通智能科技有限公司 区块链节点访问方法及装置、存储介质、电子设备
US11233749B2 (en) * 2019-10-23 2022-01-25 Microsoft Technologly Licensing, LLC External access to internal network resource
CN113992382B (zh) * 2021-10-22 2024-04-05 北京京东振世信息技术有限公司 业务数据处理方法、装置、电子设备及存储介质
CN113934151B (zh) * 2021-10-22 2022-05-27 洛阳职业技术学院 一种应用于物联网网关的通讯方法
KR20230096615A (ko) * 2021-12-23 2023-06-30 주식회사 이노그리드 대규모 멀티클러스터 프로비저닝을 위한 엣지 클라우드 운영 시스템
CN114430409B (zh) * 2022-01-26 2023-08-15 网易(杭州)网络有限公司 网页访问方法、网页访问装置、存储介质及电子设备
CN114640672A (zh) * 2022-02-11 2022-06-17 网宿科技股份有限公司 一种远程访问边缘设备的方法、设备及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10247946A (ja) * 1997-03-03 1998-09-14 Nippon Telegr & Teleph Corp <Ntt> ネットワーク接続方式および方法ならびにネームサーバ
US6421732B1 (en) * 1998-08-27 2002-07-16 Ip Dynamics, Inc. Ipnet gateway
JP2003504898A (ja) * 1998-12-24 2003-02-04 フランス テレコム デジタルネットワークにおけるアドレッシング方法と、名前およびアドレスサーバー
JP2003218951A (ja) * 2001-08-28 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> ゲートウェイ装置
JP2004120534A (ja) * 2002-09-27 2004-04-15 Matsushita Electric Ind Co Ltd ルータと中継装置、フォワーディング方法
WO2005029877A2 (en) * 2003-09-19 2005-03-31 Motorola, Inc. Use of an autoconfigured namespace for automatic protocol proxying
US20070214232A1 (en) * 2006-03-07 2007-09-13 Nokia Corporation System for Uniform Addressing of Home Resources Regardless of Remote Clients Network Location

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119171A (en) * 1998-01-29 2000-09-12 Ip Dynamics, Inc. Domain name routing
US6317838B1 (en) * 1998-04-29 2001-11-13 Bull S.A. Method and architecture to provide a secured remote access to private resources
US20030167403A1 (en) * 1999-03-02 2003-09-04 Mccurley Kevin Snow Secure user-level tunnels on the internet
US7188138B1 (en) * 1999-03-22 2007-03-06 Eric Schneider Method, product, and apparatus for resource identifier registration and aftermarket services
WO2002013479A2 (en) * 2000-08-04 2002-02-14 Avaya Technology Corporation Intelligent demand driven recognition of url objects in connection oriented transactions
US20030154306A1 (en) * 2002-02-11 2003-08-14 Perry Stephen Hastings System and method to proxy inbound connections to privately addressed hosts
US8332464B2 (en) * 2002-12-13 2012-12-11 Anxebusiness Corp. System and method for remote network access
CA2491274A1 (en) * 2004-01-08 2005-07-08 Lpi Level Platforms, Inc. A method and system for secure remote access to computer systems and networks
US20050251856A1 (en) * 2004-03-11 2005-11-10 Aep Networks Network access using multiple authentication realms
US20070168458A1 (en) * 2006-01-16 2007-07-19 Nokia Corporation Remote access to local network
GB2442044B8 (en) 2006-05-11 2011-02-23 Ericsson Telefon Ab L M Addressing and routing mechanism for web server clusters.
US8141143B2 (en) * 2007-05-31 2012-03-20 Imera Systems, Inc. Method and system for providing remote access to resources in a secure data center over a network

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10247946A (ja) * 1997-03-03 1998-09-14 Nippon Telegr & Teleph Corp <Ntt> ネットワーク接続方式および方法ならびにネームサーバ
US6421732B1 (en) * 1998-08-27 2002-07-16 Ip Dynamics, Inc. Ipnet gateway
JP2003504898A (ja) * 1998-12-24 2003-02-04 フランス テレコム デジタルネットワークにおけるアドレッシング方法と、名前およびアドレスサーバー
JP2003218951A (ja) * 2001-08-28 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> ゲートウェイ装置
JP2004120534A (ja) * 2002-09-27 2004-04-15 Matsushita Electric Ind Co Ltd ルータと中継装置、フォワーディング方法
WO2005029877A2 (en) * 2003-09-19 2005-03-31 Motorola, Inc. Use of an autoconfigured namespace for automatic protocol proxying
US20070214232A1 (en) * 2006-03-07 2007-09-13 Nokia Corporation System for Uniform Addressing of Home Resources Regardless of Remote Clients Network Location

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170060070A (ko) * 2014-09-24 2017-05-31 오라클 인터내셔날 코포레이션 리버스 프록시 서버들 내의 서비스들
JP2017538179A (ja) * 2014-09-24 2017-12-21 オラクル・インターナショナル・コーポレイション リバースプロキシサーバ内のサービス
US10362059B2 (en) 2014-09-24 2019-07-23 Oracle International Corporation Proxy servers within computer subnetworks
KR102251803B1 (ko) 2014-09-24 2021-05-14 오라클 인터내셔날 코포레이션 리버스 프록시 서버들 내의 서비스들
KR102514618B1 (ko) * 2022-04-26 2023-03-29 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
WO2023211124A1 (ko) * 2022-04-26 2023-11-02 프라이빗테크놀로지 주식회사 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Also Published As

Publication number Publication date
EP2380309A4 (en) 2013-04-24
US20100186079A1 (en) 2010-07-22
AU2009339289A1 (en) 2011-07-07
CA2747393A1 (en) 2010-08-12
CA2747393C (en) 2017-01-03
AU2009339289B2 (en) 2014-05-01
EP2380309B1 (en) 2017-03-15
WO2010090674A1 (en) 2010-08-12
EP2380309A1 (en) 2011-10-26
US8910270B2 (en) 2014-12-09
CN102282801A (zh) 2011-12-14

Similar Documents

Publication Publication Date Title
US8910270B2 (en) Remote access to private network resources from outside the network
WO2022057000A1 (zh) 一种数据代理方法、系统及代理服务器
US8850553B2 (en) Service binding
US10951589B2 (en) Proxy auto-configuration for directing client traffic to a cloud proxy
JP5480265B2 (ja) セキュアなリソース名前解決
JP5480264B2 (ja) キャッシュを使用したセキュアなリソース名前解決
US11575663B2 (en) System and method for secure application communication between networked processors
JP6255091B2 (ja) プライベートデータを保護するセキュアプロキシ
US20210329078A1 (en) Secure in-band service detection
US8347100B1 (en) Methods for DNSSEC proxying and deployment amelioration and systems thereof
EP3503505B1 (en) Sandbox environment for testing integration between a content provider origin and a content delivery network
US20160197886A1 (en) Secure personal server system and method
US20120278487A1 (en) System and method of handling requests in a multi-homed reverse proxy
WO2022247751A1 (zh) 远程访问应用的方法、系统、装置、设备及存储介质
JP5239341B2 (ja) ゲートウェイ、中継方法及びプログラム
EP3391626B1 (en) Proxy server selection based on security policy
JP5137201B2 (ja) ユーザ認証型リバースプロキシー装置、そのデータ中継方法、およびそのプログラム
JP2018067327A (ja) プライベートデータを保護するセキュアプロキシ
Amutha et al. An Integrated Secure Architecture for IPv4/IPv6 Address Translation Between IPv4 and IPv6 Networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121022

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130701

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130718

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131206

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140507

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140514

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20140620

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150519