JP2022163820A - 通信システム、通信方法、及びプログラム - Google Patents

通信システム、通信方法、及びプログラム Download PDF

Info

Publication number
JP2022163820A
JP2022163820A JP2021068882A JP2021068882A JP2022163820A JP 2022163820 A JP2022163820 A JP 2022163820A JP 2021068882 A JP2021068882 A JP 2021068882A JP 2021068882 A JP2021068882 A JP 2021068882A JP 2022163820 A JP2022163820 A JP 2022163820A
Authority
JP
Japan
Prior art keywords
communication
server
information terminal
network
relay server
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
JP2021068882A
Other languages
English (en)
Inventor
広志 太田
Hiroshi Ota
元裕 永尾
Motohiro Nagao
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2021068882A priority Critical patent/JP2022163820A/ja
Priority to US17/658,864 priority patent/US11902147B2/en
Publication of JP2022163820A publication Critical patent/JP2022163820A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/127Shortest path evaluation based on intermediate node capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】インターネットに接続可能なアクセス元の端末のウェブブラウザから、ローカルネットワークに接続するウェブサーバが提供するウェブサービスを容易に利用できるようにする。【解決手段】通信システムは、第1のネットワークに接続する情報端末から、前記第1のネットワークとは異なる第2のネットワークに接続するウェブサーバにリモートアクセスする通信システムであって、前記第1のネットワークを介して、前記情報端末から前記ウェブサーバが提供するウェブサービスへの接続要求を受け付ける通信管理部と、前記通信管理部からの要求に応じて、前記第2のネットワークから、前記第1のネットワークに接続するリレーサーバに接続する第1の通信制御部と、前記情報端末から、前記リレーサーバに接続する第2の通信制御部と、を有し、前記リレーサーバと前記第1の通信制御部とを介して、前記情報端末が備えるウェブブラウザと前記ウェブサーバが提供する前記ウェブサービスとの間のリクエスト、及びレスポンスを送受信する。【選択図】図1

Description

本発明は、通信システム、通信方法、及びプログラムに関する。
近年、働き方改革及び在宅勤務の普及等により、インターネットに接続可能なアクセス元の端末から、例えば、企業内等のローカルネットワークに接続されているアクセス先の情報処理装置にリモートアクセスする通信システムのニーズが高まっている。
また、プロキシ自動設定(PAC: Proxy Auto-Configuration)ファイルを用いて、アクセス先、又はアクセスする時間等によって、プロキシサーバに宛先を切り替える技術(以下、Proxy-PAC技術と呼ぶ)が知られている(例えば、特許文献1参照)。
ローカルネットワークに接続されているウェブサーバの処理を大きく変更せずに、インターネットに接続可能なアクセス元の端末のウェブブラウザから、当該ウェブサーバが提供するウェブサービスを利用したいという要求がある。
しかし、従来の技術では、インターネットに接続可能なアクセス元の端末のウェブブラウザから、ローカルネットワークに接続されているウェブサーバが提供するウェブサービスを利用することには困難を伴っていた。なお、この問題は、Proxy-PAC技術を適用しただけでは解決することができない。
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、インターネットに接続可能なアクセス元の端末のウェブブラウザから、ローカルネットワークに接続するウェブサーバが提供するウェブサービスを容易に利用できるようにする。
上記の課題を解決するため、一実施形態に係る通信システムは、第1のネットワークに接続する情報端末から、前記第1のネットワークとは異なる第2のネットワークに接続するウェブサーバにリモートアクセスする通信システムであって、前記第1のネットワークを介して、前記情報端末から前記ウェブサーバが提供するウェブサービスへの接続要求を受け付ける通信管理部と、前記通信管理部からの要求に応じて、前記第2のネットワークから、前記第1のネットワークに接続するリレーサーバに接続する第1の通信制御部と、
前記情報端末から、前記リレーサーバに接続する第2の通信制御部と、を有し、前記リレーサーバと前記第1の通信制御部とを介して、前記情報端末が備えるウェブブラウザと前記ウェブサーバが提供する前記ウェブサービスとの間のリクエスト、及びレスポンスを送受信する。
本発明の一実施形態によれば、インターネットに接続可能なアクセス元の端末のウェブブラウザから、ローカルネットワークに接続するウェブサーバが提供するウェブサービスを容易に利用できるようになる。
一実施形態に係る通信システムのシステム構成の例を示す図である。 一実施形態に係るコンピュータのハードウェア構成の例を示す図である。 第1の実施形態に係る管理サーバ、及びリレーサーバの機能構成の例を示す図である。 第1の実施形態に係る通信装置の機能構成の例を示す図(1)である。 第1の実施形態に係る情報装置の機能構成の例を示す図(2)である。 第1の実施形態に係る情報端末の機能構成の例を示す図である。 第1の実施形態に係るログイン処理の例を示すシーケンス図である。 第1の実施形態に係る通信システムの処理の例を示すシーケンス図(1)である。 第1の実施形態に係る通信システムの処理の例を示すシーケンス図(2)である。 第1の実施形態に係るログイン画面の例を示す図である。 第1の実施形態に係るサービス一覧画面の例を示す図である。 第1の実施形態に係る操作ページ画面の例を示す図である。 第1の実施形態に係る操作ページのページ構成の例を示す図である。 第1の実施形態に係るトンネル確立後のデータの流れを示す図である。 第2の実施形態に係る管理サーバ、及びリレーサーバの機能構成の例を示す図である。 第2の実施形態に係るセキュアボックスの機能構成の例を示す図である。 第2の実施形態に係る情報端末の機能構成の例を示す図である。 第2の実施形態に係るウェブブラウザの設定について説明するための図である。 第2の実施形態に係るProxy-PACの例を示す図である。 第2の実施形態に係る通信システムの処理の例を示すシーケンス図(1)である。 第2の実施形態に係る通信システムの処理の例を示すシーケンス図(2)である。 第2の実施形態に係る業務ポータル画面の例を示す図である。 第2の実施形態に係るトンネル確立後のデータの流れを示す図である。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
図1は、一実施形態に係る通信システムのシステム構成の例を示す図である。通信システム1は、例えば、インターネット等の通信ネットワーク2に接続するアプリサーバ11、サービスプラットフォーム12、リレーサーバ13、及びローカルネットワーク100に接続するセキュアボックス14等を含む。通信システム1は、ローカルネットワーク100の外部のネットワークに接続する情報端末111が備えるウェブブラウザから、ローカルネットワーク100に接続するサーバ装置101等のウェブサーバが提供するウェブサービスを利用するためのシステムである。
一般的に、ウェブブラウザには、例えば、サンドボックス(Sandbox)、又は同一生成元ポリシー(Same-Origin Policy)等のセキュリティ上の仕組みにより、範囲外のプログラムからの許可されないアクセスを防ぐ仕組みがある。
一例として、ウェブページ内にiframe(inline frame)等のフレーム内にコンテンツを表示している場合、フレーム外部のスクリプトからフレーム内のコンテンツを制御することができないという制限がある。また、別の一例として、プロキシ自動設定ファイルを用いて、アクセス先等によってプロキシサーバに宛先を切り替えるProxy-PAC技術では、プロキシサーバへのリクエストに、ページに含まれるCookie値を含めることができないという制限がある。
本実施形態に係る通信システム1は、上記のようなセキュリティ上の制限(仕組み)を考慮した上で、情報端末111が備えるウェブブラウザから、ローカルネットワーク100内のウェブサービスを利用できるように、図1に示すようなシステム構成を有している。
リモートネットワーク110は、例えば、自宅又はリモートオフィス等に設けられ、インターネット等の通信ネットワーク2に接続可能な、ローカルネットワーク100の外部のネットワークである第1のネットワークの一例である。なお、情報端末111は、リモートネットワーク110に限られず、例えば、外出先等から、WAN(Wide Area Network)、又は公衆無線LAN(Local Area Network)等を利用して、インターネット等の通信ネットワーク2に接続しているものであっても良い。なお、通信ネットワーク2は、ローカルネットワーク100の外部のネットワークである第1のネットワークの別の一例である。ここでは、一例として、情報端末111が、リモートオフィス等に設けられたリモートネットワーク110に接続されており、また、通信ネットワーク2がインターネットであるものとして、以下の説明を行う。
情報端末(アクセス元の端末)111は、利用者が利用する、例えば、PC(Personal Computer)、タブレット端末、又はスマートフォン等のウェブブラウザの機能を備えたコンピュータである。情報端末111は、リモートネットワーク110、及び通信ネットワーク2を介して、アプリサーバ11、及びリレーサーバ13等にアクセス可能である。なお、情報端末111は、第1のネットワークに接続する情報端末の一例である。情報端末111は、前述したように、インターネット(通信ネットワーク2)に接続されていても良い。
ローカルネットワーク(第2のネットワーク)100は、例えば、ファイアウォール等により、通信ネットワーク2、及びリモートネットワーク110等の外部ネットワークからのアクセスが制限された、例えば、社内LAN(Local Area Network)等のネットワークである。なお、ローカルネットワーク100は、第1のネットワークとは異なる第2のネットワークの一例である。
図1において、サービスプラットフォーム12とセキュアボックス14とは、例えば、MQTT(Message Queue Telemetry Transport)プロコトル等により、予め通信可能に設定されているものとする。例えば、セキュアボックス14は、起動時等に、サービスプラットフォーム12に対して、MQTTプロトコル等による接続を要求して通信を確立し、通信可能な状態を維持する。
また、情報端末111及びリレーサーバ13等から、ローカルネットワーク100内のセキュアボックス14、及びサーバ装置101等へのアクセスは禁止されているものとする。
サーバ装置101は、ローカルネットワーク100に接続されたコンピュータ、又は複数のコンピュータを含むシステムであり、例えば、業務システム、勤怠管理システム等のウェブサービスを提供するウェブサーバの機能を有している。
アプリサーバ11は、例えば、通信ネットワーク2に接続されたコンピュータ、又は複数のコンピュータを含むシステムである。アプリサーバ11は、例えば、通信システム1を利用して、ローカルネットワーク100内のサーバ装置101が提供するウェブサービスにアクセス(接続)するためのウェブページ等を、情報端末111に提供する。また、アプリサーバ11は、例えば、通信システム1を管理する管理者等が利用する情報端末(管理端末)に、通信システム1の設定を行うためのウェブページを提供する機能を有していても良い。
サービスプラットフォーム12は、例えば、通信ネットワーク2に接続されたコンピュータ、又は複数のコンピュータを含むシステムである。サービスプラットフォーム12は、例えば、情報端末111を利用する利用者を認証する認証処理、及びセキュアボックス14等と通信する処理等を実行する。
なお、アプリサーバ11、及びサービスプラットフォーム12は、例えば、1つの管理サーバ10に含まれていても良いし、さらに多くのサーバに分散して設けられていても良い。アプリサーバ11、及びサービスプラットフォーム12は様々なシステム構成が可能なので、以下の説明では、アプリサーバ11、及びサービスプラットフォーム12を特に区別せず、単に管理サーバ10と呼ぶ場合がある。
リレーサーバ13は、例えば、通信ネットワーク2に接続されたコンピュータ、又は複数のコンピュータを含むシステムである。リレーサーバ13は、情報端末111と、セキュアボックス14との間の通信を中継する。なお、リレーサーバ13(又はリレーサーバ13の機能)は、管理サーバ10に含まれていても良い。
セキュアボックス(通信装置)14は、例えば、コンピュータの構成と通信機能とを有する通信装置である。セキュアボックス14は、管理サーバ10からの制御に従って、リレーサーバ13に接続し、情報端末111から、ローカルネットワーク100に接続するサーバ装置101へのリモートアクセスを実現する。なお、セキュアボックス14は、例えば、ルータ又はファイアウォール等の機能を有していても良いし、ルータ又はファイファウォールとは別に設けられていても良い。また、セキュアボックス14の機能は、サーバ装置101等の情報処理装置に含まれていても良い。
(接続処理の概要)
上記のシステム構成において、情報端末111を利用する利用者は、例えば、サーバ装置101が提供するウェブサービスを利用する場合、ウェブブラウザ等を用いてアプリサーバ11が提供する所定のウェブページにアクセスする。利用者は、このウェブページから、例えば、サーバ装置101が提供するウェブサービスを選択することにより、サーバ装置101が提供するウェブサービスへの接続を要求することができる。
アプリサーバ11は、情報端末111からの接続要求を受け付けると、セッションを識別する識別情報であるセッションIDを生成する。また、アプリサーバ11は、サービスプラットフォーム12を利用して、生成したセッションIDをセキュアボックス14に通知するとともに、リレーサーバ13への接続を要求する。アプリサーバ11は、発行したセッションIDを要求元の情報端末111にも通知する。
セキュアボックス14は、管理サーバ10からの要求に従って、通知されたセッションIDを用いて、暗号化された第1の通信3でリレーサーバ13に接続する。例えば、セキュアボックス14は、Web Socket over HTTPS(Hypertext Transfer Protocol Secure)(以下、wwsと呼ぶ)を利用した第1の通信3で、リレーサーバ13に接続する。
また、情報端末111は、管理サーバ10から通知されたセッションIDを用いて、暗号化された第2の通信4でリレーサーバ13に接続する。例えば、情報端末111は、wwsを利用した第2の通信4で、リレーサーバ13に接続する。
リレーサーバ13は、同じセッションID(接続情報)を用いてリレーサーバ13に接続した第1の通信3と、第2の通信4との間を中継する。例えば、リレーサーバ13は、第1の通信3と、第2の通信4とをトンネリングすることにより、情報端末111とセキュアボックス14とを通信可能に接続する。
上記の処理により、情報端末111は、wssでセキュアボックス14に接続することができる。また、セキュアボックス14は、プロキシサーバの機能を備えており、情報端末111は、セキュアボックス14が提供するプロキシサーバの機能を利用して、サーバ装置101が提供するウェブサービスにアクセスすることができる。
上記の処理により、情報端末111は、リレーサーバ13を介して、例えば、ローカルネットワーク100に接続する情報端末と同様に、セキュアボックス14が提供するプロキシサーバの機能を利用することができる。従って、本実施形態に係る通信システム1によれば、インターネットに接続可能なアクセス元の端末(情報端末111)のウェブブラウザから、ローカルネットワーク100に接続するウェブサーバ(サーバ装置101)が提供するウェブサービスを容易に利用できるようになる。
<ハードウェア構成>
情報端末111、及びセキュアボックス14は、例えば、図2に示すようなコンピュータ200のハードウェア構成を有している。また、管理サーバ10、アプリサーバ11、サービスプラットフォーム12、リレーサーバ13、及びサーバ装置101等は、1つ以上のコンピュータ200によって構成される。
図2は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。コンピュータ200は、例えば、図2に示されるように、CPU(Central Processing Unit)201、ROM(Read Only Memory)202、RAM(Random Access Memory)203、HD(Hard Disk)204、HDD(Hard Disk Drive)コントローラ205、ディスプレイ206、外部機器接続I/F(Interface)207、1つ以上のネットワークI/F208、キーボード209、ポインティングデバイス210、DVD-RW(Digital Versatile Disk Rewritable)ドライブ212、メディアI/F214、及びバスライン215等を備えている。
これらのうち、CPU201は、コンピュータ200全体の動作を制御する。ROM202は、例えば、IPL(Initial Program Loader)等のコンピュータ200の起動に用いられるプログラムを記憶する。RAM203は、例えば、CPU201のワークエリア等として使用される。HD204は、例えば、OS(Operating System)、アプリケーション、デバイスドライバ等のプログラムや、各種データを記憶する。HDDコントローラ205は、例えば、CPU201の制御に従ってHD204に対する各種データの読み出し又は書き込みを制御する。
ディスプレイ206は、例えば、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。なお、ディスプレイ206は、コンピュータ200の外部に設けられていても良い。外部機器接続I/F207は、コンピュータ200に、様々な外部装置を接続するためのインタフェースである。1つ以上のネットワークI/F208は、例えば、通信ネットワーク2、ローカルネットワーク100、又はリモートネットワーク110等を利用してデータ通信をするためのインタフェースである。
キーボード209は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス210は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行なう入力手段の一種である。なお、キーボード209、及びポインティングデバイス210は、コンピュータ200の外部に設けられていても良い。
DVD-RWドライブ212は、着脱可能な記録媒体の一例としてのDVD-RW211に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RW211は、DVD-RWに限らず、他の着脱可能な記録媒体であっても良い。メディアI/F214は、フラッシュメモリ等のメディア213に対するデータの読み出し又は書き込み(記憶)を制御する。バスライン215は、上記の各構成要素を電気的に接続するためのアドレスバス、データバス及び各種の制御信号等を含む。
なお、図2に示すコンピュータ200の構成は一例である。コンピュータ200は、例えば、CPU201、ROM202、RAM203、1つ以上のネットワークI/F208、及びバスライン215を有していれば、他は任意の構成であって良い。
<機能構成>
続いて、通信システム1に関連する各装置の機能構成について説明する。
[第1の実施形態]
(管理サーバの機能構成)
図3(A)は、第1の実施形態に係る管理サーバの機能構成の例を示している。管理サーバ10は、1つ以上のコンピュータ200で所定のプログラムを実行することにより、例えば、通信部301、認証部302、通信管理部303、及び記憶部306等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
通信部301は、例えば、ネットワークI/F208を用いて、管理サーバ10を通信ネットワーク2に接続し、他の装置と通信する通信処理を実行する。
認証部302は、例えば、サービスプラットフォーム12(以下、サービスPF12と表記する)が備えるコンピュータ200が実行するプログラムによって実現され、情報端末111を利用する利用者が正当な利用者であることを認証する認証処理を実行する。
通信管理部303は、例えば、アプリサーバ11が備えるコンピュータ200が実行するプログラムによって実現される。通信管理部303は、例えば、通信ネットワーク(第1のネットワーク)2を介して、情報端末111から、ローカルネットワーク100に接続するサーバ装置101が提供するウェブサービスへの接続要求を受け付ける通信管理処理を実行する。通信管理部303は、例えば、図3(A)に示すように、受付部305、及びセッション管理部304を含む。
受付部305は、例えば、通信システム1を利用して、ローカルネットワーク100内のサーバ装置101が提供するウェブサービスにアクセス(接続)するためのウェブページ等を、情報端末111に提供する。また、受付部305は、管理サーバ10が提供する様々な機能を利用するためのウェブAPI(Application User Interface)を、情報端末111等に提供する。
通信管理部303は、例えば、受付部305が、情報端末111から接続要求を受け付けたときに、リレーサーバ13を介して、情報端末111とセキュアボックス14との間で通信するセッションを識別するセッションIDを生成する。また、通信管理部303は、生成したセッションIDを、セキュアボックス14、及び情報端末111に通知することにより、セキュアボックス14、及び情報端末111に、リレーサーバ13への接続を要求(指示)する。
好ましくは、通信管理部303は、認証部302を用いて利用者の認証を行い、接続要求を送信した情報端末111を利用する利用者が正当な利用者である場合に、セキュアボックス14、及び情報端末111に、リレーサーバ13への接続を要求する。
記憶部306は、1つ以上のコンピュータ200が実行するプログラム、及びHD204等のストレージデバイスによって実現される。記憶部306は、例えば、通信システム1に登録されている利用者の認証情報を含むユーザ情報、及び通信システム1の設定情報等の様々な情報を記憶する。
(リレーサーバの機能構成)
図3(B)は、第1の実施形態に係るリレーサーバ13の機能構成の例を示している。リレーサーバ13は、例えば、1つ以上のコンピュータ200で所定のプログラムを実行することにより、通信部311、接続管理部312、及び中継部313等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
通信部311は、例えば、ネットワークI/F208を用いて、リレーサーバ13を通信ネットワーク2に接続し、他の装置と通信する通信処理を実行する。
接続管理部312は、リレーサーバ13への接続を要求する情報端末111、及びセキュアボックス14のリレーサーバ13への接続を管理する接続管理処理を実行する。好ましくは、接続管理部312は、認証部302を用いて利用者の認証を行い、接続要求を送信した情報端末111を利用する利用者が正当な利用者である場合に、情報端末111によるリレーサーバ13への接続を許可する。
中継部308は、リレーサーバ13に接続した情報端末111とセキュアボックス14との間の通信を中継する。例えば、中継部308は、同一のセッションIDを用いて、セキュアボックス14との間に確立される第1の通信3と、情報端末111との間に確立される第2の通信4との間にトンネルを確立することにより、第1の通信3と第2の通信4との間を中継する。
(セキュアボックスの機能構成)
図4は、第1の実施形態に係る通信装置の機能構成の例を示す図(1)である。セキュアボックス14の機能は、セキュアボックス14に限られず、例えば、サーバ装置101等の情報処理装置が有していても良い。本実施形態では、セキュアボックス14、及びセキュアボックス14の機能を有する情報処理装置を通信装置と呼ぶ。図4では、通信装置が、セキュアボックス14である場合の機能構成の例について説明する。
図4の例では、ローカルネットワーク100は、ルータ421、及びファイアウォール422を介して、通信ネットワーク2に接続されている。ただし、これは一例であり、例えば、ルータ421、及びファイアウォール422の機能は、セキュアボックス14が有していても良い。また、図4の例では、ローカルネットワーク100には、サーバ装置101が接続されている。サーバ装置101は、例えば、業務システム、出退勤管理システム等の所定のウェブサービスを提供するウェブサーバとして機能するウェブサーバ部411を有している。
セキュアボックス(通信装置)14は、例えば、セキュアボックス14が備えるコンピュータ200で所定のプログラムを実行することにより、通信部401、第1の通信制御部402、プロキシサーバ部403、及び記憶部404等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
通信部401は、例えば、ネットワークI/F208を用いて、セキュアボックス14をローカルネットワーク100等に接続し、他の装置と通信する通信処理を実行する。
第1の通信制御部402は、管理サーバ10と通信可能に接続し、管理サーバ10の通信管理部303からの要求に応じて、ローカルネットワーク(第2のネットワーク)100から、暗号化された第1の通信3でリレーサーバ13に接続する。例えば、第1の通信制御部402は、管理サーバ10から通知されたセッションIDを用いて、リレーサーバ13にWebSocketの接続を要求する。
プロキシサーバ部403は、リレーサーバ13を介して、第1の通信制御部402と情報端末111との間に確立される通信路(wwsトンネル)を利用して、情報端末111から利用可能な、ローカルネットワーク100内のプロキシサーバとして機能する。
記憶部406は、例えば、セキュアボックスが備えるコンピュータ200が実行するプログラム、及びHD204等のストレージデバイスによって実現され、セキュアボックス14の設定情報等の様々な情報を記憶する。
図5は、第1の実施形態に係る通信装置の機能構成の例を示す図(2)である。図5では、通信装置がサーバ装置101である場合の機能構成の例について説明する。
サーバ装置(通信装置)101は、例えば、1つ以上のコンピュータ200で所定のプログラムを実行することにより、通信部401、第1の通信制御部402、プロキシサーバ部403、記憶部404、及びウェブサーバ部等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
なお、通信部401、第1の通信制御部402、プロキシサーバ部403、及び記憶部404については、図4で説明した通信部401、第1の通信制御部402、プロキシサーバ部403、及び記憶部404と同様なので、ここでは説明を省略する。
ウェブサーバ部411は、例えば、業務システム、出退勤管理システム等の所定のウェブサービスを提供するウェブサーバとして機能する。このように、セキュアボックス14の機能は、ローカルネットワーク100に接続する様々なコンピュータ200で実現することができる。
(情報端末の機能構成)
図6は、第1の実施形態に係る情報端末の機能構成の例を示す図である。情報端末111は、例えば、CPU201で所定のプログラムを実行することにより、通信部501、要素取得部602、リクエスト解析部603、第2の通信制御部604、データ変換部605、データ蓄積部606、描画部607、及び操作受付部608等を実現している。
これらのうち、要素取得部602、及び描画部607は、CPU201が実行するウェブブラウザのレンダラ611等によって実現される。レンダラ(Renderer)611は、ウェブページのHTML(Hyper Text Markup Language)等を解釈し、画面に表示する文字、及び画像等のレイアウトを表すDOM(Document Object Model)を生成するプログラムである。レンダラ611は、例えば、HTMLレンダリングエンジン等とも呼ばれる。
また、リクエスト解析部603、第2の通信制御部604、データ変換部605、及びデータ蓄積部606は、CPU201が実行するウェブブラウザのワーカ(Worker)612等によって実現される。ワーカ612は、ウェブアプリケーションにおけるスクリプトの処理をメインとは別のスレッドに移して、バックグラウンドでの実行を可能にする仕組みであり、Web Worker、又はService Worker 等とも呼ばれる。ワーカ612を利用することにより、ウェブブラウザからウェブサーバへリクエストが送出される前に、リクエスト内容を解析して、そのリクエスト内容を処理することができる。
通信部601は、例えば、ネットワークI/F208を用いて、情報端末111をリモートネットワーク110、及び通信ネットワーク2等に接続し、他の装置と通信する通信処理を実行する。
要素取得部602は、例えば、ウェブページのHTMLからHTMLリクエスト等の要素を取得する。また、要素取得部602は、DOMを生成するために必要なデータ、例えば、CSS(Cascading Style Sheets)、又はJavaScript(登録商標)のファイル等の取得を、ワーカ612に要求する。リクエスト解析部603は、要素取得部602から受け付けたリクエストを解析する。
第2の通信制御部604は、管理サーバ10から通知されるセッションIDを用いて、リレーサーバ13に接続を要求し、暗号化された第2の通信4でリレーサーバ13に接続する。また、第2の通信制御部604は、リクエスト解析部603が解析したリクエストを、リレーサーバ13を介して、セキュアボックス14に送信し、送信したリクエストに対するレスポンスとして受信したデータを、データ変換部605に出力する。
データ変換部605は、第2の通信制御部604から受け付けたデータを、必要に応じて、レンダラ611が利用可能な形式に変換し、レンダラ611、及びデータ蓄積部606等に出力する。データ蓄積部606は、データ変換部605が出力したデータを蓄積する。
描画部607は、ワーカ612から受け付けたデータを用いて、表示画面を描画する。描画部607は、この描画の中でDOMを構築して、さらに必要なデータが発生した場合、ワーカ612にデータの取得を要求する。操作受付部608は、描画部607が表示した表示画面に対する操作を受け付ける。
<処理の流れ>
続いて、第1の実施形態に係る通信方法の処理の流れについて説明する。
(ログイン処理)
図7は、第1の実施形態に係るログイン処理の例を示すシーケンス図である。この処理は、通信システム1に登録済みの利用者が、情報端末111を用いて管理サーバ10にログインする際に、通信システム1が実行するログイン処理の例を示している。
ステップS701において、利用者が、情報端末111のウェブブラウザを用いて、管理サーバ10の受付部305に接続するため接続操作を行うものとする。例えば、利用者は、情報端末111のウェブブラウザに、通信管理部303の受付部305にアクセスするためのURL(Uniform Resource Locator)等を入力する。
ステップS702、S703において、情報端末111のウェブブラウザは、利用者による接続操作を受け付けると、指定されたURLにアクセスし、通信管理部303の受付部305から、ウェブUIを取得する。
ステップS704、S705において、情報端末111のウェブブラウザは、認可要求パラメータを生成し、生成した認可要求パラメータをセッションストレージに保存する。また、ステップS706において、ウェブブラウザは、管理サーバ10の認証部302に、生成した認可要求パラメータを含む認可要求を送信する。
ステップS707において、管理サーバ10の認証部302は、情報端末111からの認可要求に応じて、ログインのリダイレクト先のURLを、情報端末111に通知する。
ステップ708において、情報端末111のウェブブラウザは、管理サーバ10から通知されたリダイレクト先のURLを用いて、通信管理部303の受付部305に、ログイン画面の表示を要求する。
ステップS709において、通信管理部303の受付部305は、ログイン画面を情報端末111に送信し、ステップS710において、情報端末111のウェブブラウザは、例えば、図10に示すようなログイン画面1000を表示する。
ステップS711において、利用者が、ログイン画面1000に、例えば、メールアドレス、及びパスワード等ログイン情報を入力するログイン操作を行うと、通信システム1は、ステップS712以降の処理を実行する。なお、メールアドレス、及びパスワードは、利用者を認証するためのログイン情報(認証情報)の一例である。利用者を認証するためのログイン情報は、例えば、電子証明書、生体情報、又は利用者の所持物から取得する識別情報等であっても良い。
ステップS712において、情報端末111のウェブブラウザは、利用者によるログイン操作を受け付けると、入力されたログイン情報を含むログイン要求を、管理サーバ10の認証部302に送信する。
ステップS713において、管理サーバ10の認証部302は、情報端末111からログイン要求を受け付けると、コールバック先、及び一時コード等を、要求元の情報端末111に通知する。
ステップS714において、情報端末111のウェブブラウザは、管理サーバ10から通知された一時コードを含むトークン取得要求を、管理サーバ10の認証部302に送信する。
ステップS715において、管理サーバ10の認証部302は、情報端末111からのトークン取得要求に応じて、利用者の認証を行う。ここでは、前述したように、利用者は、通信システム1に登録済みの利用者なので、認証に成功する(認証結果がOKとなる)。
ステップS716において、管理サーバ10の認証部302は、アクセストークン、リフレッシュトークン、有効期限等の情報を、情報端末111に通知する。
ステップS718、S719において、情報端末111のウェブブラウザは、利用者のユーザID、及び通知されたアクセストークン等を用いて管理サーバの認証部302からユーザ情報を取得し、取得したユーザ情報を用いてサービス一覧画面等を表示する。
なお、図7に示すログイン処理は一例であり、通信システム1は、他の手順で利用者を認証し、ログインを許可した利用者の情報端末111に、アクセストークンを通知しても良い。
(通信システムの処理)
図8、9は、第1の実施形態に係る通信システムの処理の例を示すシーケンス図である。この処理は、情報端末111を利用する利用者が、ローカルネットワーク100内のサーバ装置101が提供するウェブサービスの一例である業務ポータルを利用する際に、通信システム1が実行する処理の一例を示している。
なお、図8に示す処理の開始時点において、情報端末111は、図7で説明したログイン処理を実行し、図11に示すようなサービス一覧画面1100を表示しているものとする。また、通信管理部303のセッション管理部304と、セキュアボックス14の第1の通信制御部402は、例えば、MQTTプロコトル等により、通信可能に接続されているものとする。
ステップS801において、利用者は、図11に示すようなサービス一覧画面1100において、業務ポータルの選択操作を行うものとする。例えば、利用者は、サービス一覧画面1100において、カーソル1101を、サービス名「業務ポータル」の宛先欄に移動させ、表示された「接続する」ボタン1102を選択する。
ステップS802において、情報端末111のレンダラ611は、利用者による選択操作を受け付けると、図7のログイン処理で取得したアクセストークンを含む接続要求を、管理サーバ10の通信管理部303に送信する。
ステップS803において、管理サーバ10の通信管理部303は、情報端末111から接続要求を受け付けると、認証部302を用いて、接続要求に含まれるアクセストークンの検証を行う。アクセストークンの検証結果が「OK」である場合(利用者が正当な利用者である場合)、ステップS804において、通信管理部303は、セッションを識別するセッションIDを生成する。一方、アクセストークンの検証結果が「OK」でない場合、通信管理部303は、例えば、情報端末111にエラーを通知して、ステップS804の処理の実行を中止する。
ステップS805において、管理サーバ10の通信管理部303は、発行したセッションIDを含むリレーサーバ13への接続要求を、セキュアボックス14に送信する。
ステップS806において、セキュアボックス14の第1の通信制御部402は、リレーサーバ13に、管理サーバ10から通知されたセッションIDを含むWebSocketの接続要求を送信する。
ステップS807において、リレーサーバ13の接続管理部312は、セキュアボックス14から接続要求を受け付けると、要求元のセキュアボックス14と、例えば、wwsによる暗号化された第1の通信3のセッションを確立する。
ステップS808において、管理サーバ10の通信管理部303は、ステップS804で生成したセッションIDを含む接続指示を、要求元の情報端末111に送信する。
ステップS809において、情報端末111のレンダラ611は、ワーカ612に、リレーサーバ13への接続を要求する。
ステップS810において、ワーカ612の第2の通信制御部604は、リレーサーバ13に、WebSocketの接続要求を送信する。このWebSocketの接続要求には、例えば、図7のログイン処理で取得したアクセストークン、及び管理サーバ10から通知されたセッションID等が含まれる。
ステップS811において、リレーサーバ13の接続管理部312は、情報端末111からWebSocketの接続要求を受け付けると、管理サーバ10の認証部302を用いて、WebSocketの接続要求に含まれるアクセストークンの検証を行う。アクセストークンの検証結果が「OK」である場合(利用者が正当な利用者である場合)、ステップS812において、リレーサーバ13の接続管理部312は、情報端末111と、例えば、wwsによる暗号化された第2の通信4のセッションを確立する。これにより、情報端末111と、セキュアボックス14は、リレーサーバ13が提供する同じセッションに参加し、暗号化された通信(例えば、wss)で互いにデータを送受信することができるトンネルが確立される(ステップS813)。
一方、アクセストークンの検証結果が「OK」でない場合、リレーサーバ13の接続管理部312は、ステップS812の処理の実行を中止し、リレーサーバ13への接続を拒否する(又はWebSocketの接続要求を破棄する)。
上記の処理により、情報端末111のウェブブラウザは、セキュアボックス14のプロキシサーバ部403を用いて、ローカルネットワーク100に接続するサーバ装置101が提供する業務ポータル等のウェブサービスにアクセスできるようになる。例えば、図8のステップS821~S833の処理を繰り返し実行することにより、情報端末111のウェブブラウザは、図12に示すような、操作ページ画面1200に、サーバ装置101が提供する業務ポータル画面1201を表示することができる。
例えば、情報端末111のレンダラ611は、サーバ装置101が提供する業務ポータル画面1201を表示するために、HTTPSリクエストを生成し、ワーカ612にデータの取得を要求する(ステップS821)。
ワーカ612は、レンダラ611から受け付けたリクエストを解析し(ステップS822)、サーバ装置101と通信する必要があると判断した場合、セキュアボックス14のプロキシサーバ部403にデータ取得要求を送信する。なお、ワーカ612は、要求されたデータが、データ蓄積部606に蓄積されている場合、データ蓄積部606に蓄積されているデータを、レンダラ611に返しても良い。
セキュアボックス14のプロキシサーバ部403は、情報端末111からデータの取得要求を受け付けると、ローカルネットワーク100内の端末からデータ取得要求を受け付けたときと同様に、データ取得要求をサーバ装置101に転送する(ステップS825)。
サーバ装置101は、データ取得要求を受け付けると、レスポンスとして、HTML等のデータをセキュアボックス14に送信する(ステップS826、S827)。
セキュアボックス14のプロキシサーバ部403は、サーバ装置101からレスポンスを受信すると、必要に応じて、レスポンスをワーカ612が解釈できる形式に変更して、情報端末111に送信する(ステップS828、S829)。例えば、プロキシサーバ部403は、絶対URLにより、機能を提供できない可能性がある場合には、絶対URLを相対URLに変換しても良い。
情報端末111のワーカ612は、セキュアボックス14から受信したデータを、必要に応じて、レンダラ611が解釈できる形式に変更し、蓄積する(ステップS830、S831)。また、ワーカ612は、当該データをレンダラ611に通知する。
レンダラ611は、ワーカ612から通知されたデータを用いて、例えば、図12に示すような操作ページ画面1200に、サーバ装置101が提供する業務ポータル画面1201を表示する。
図13は、第1の実施形態に係る操作ページのページ構成の例を示す図である。図13に示すページ構成1300は、例えば、図12に示すような操作ページ画面1200を表示するためのHTMLデータである。
図13の例では、描画領域1301の「id="target"」の要素部分に、ワーカ612が取得したデータが挿入される。挿入されたデータは、1つのDOMとして統合されるため、ウェブブラウザのセキュリティ保護の仕組みによる制限を受けない。なお、図13の例では、簡単なHTMLによるページ構成1300を示したが、ページ構成1300は、より複雑なものであっても良く、また、HTML以外で表現しても良い。
なお、図8のステップS821~S833に示した、ワーカ612とサーバ装置101との間のリクエスト、及びレスポンスの送受信は、通信が終了するまで継続する。
ここで、図9を参照して、通信の終了処理の例について説明する。
ステップS901において、利用者が、情報端末111のウェブブラウザに対して終了操作を行うと、通信システム1は、ステップS902以降の処理を実行する。
ステップS902において、情報端末111のレンダラ611は、利用者による終了操作を受け付けると、ワーカ612に切断を要求する。これに応じて、ステップS903において、ワーカ612は、リレーサーバ13に切断要求を送信する。
ステップS904、S905において、リレーサーバ13の接続管理部312は、セキュアボックス14とのセッションを切断する。これにより、ステップS906において、図8のステップS813で確立したトンネルが切断される。
ステップS907において、リレーサーバ13の接続管理部312は、情報端末111とのセッションを切断する。これに応じて、ステップS908において、ワーカ612は、リレーサーバ13とのセッションの切断が完了したことを、レンダラ611に通知する。
(データの流れ)
図14は、第1の実施形態に係るトンネル確立後のデータの流れを示す図である。この図は、例えば、図8のステップS813において、ワーカ612とセキュアボックス14との間に、wws通信によるトンネル1403が確立された状態の通信システム1の状態を示している。なお、トンネル1403は、第1の通信制御部402と第2の通信制御部604との間の第1の通信路の一例であり、WebSocketによる通信路を含む。
ワーカ612は、トンネル1403を用いて、例えば、HTML、PNG(Portable Network Graphics)、JSON(JavaScript Object Notation)、XML(Extensible Markup Language)等の様々な形式のデータを送受信することができる。これにより、情報端末111は、例えば、ローカルネットワーク100に接続する端末と同様にして、セキュアボックス14が備えるプロキシサーバ部403を利用することができる。
例えば、ワーカ612は、プロキシサーバ部403を利用して、サーバ装置101のウェブサーバ部411が提供するウェブサービスにアクセスすることができる。また、ワーカ612は、プロキシサーバ部403を利用して、インターネット1400上のウェブサーバ1401にもアクセス可能である。
以上、第1の実施形態によれば、インターネットに接続可能なアクセス元の端末(情報端末111)のウェブブラウザから、ローカルネットワークに接続するウェブサーバ(サーバ装置101)が提供するウェブサービスを容易に利用できるようになる。
[第2の実施形態]
第2の実施形態では、情報端末111のウェブブラウザのワーカ612に代えて、Proxy-PAC技術を利用した場合の通信システム1の例について説明する。
<機能構成>
(管理サーバの機能構成)
図15(A)は、第2の実施形態に係る管理サーバ10の機能構成の例を示している。第2の実施形態に係る管理サーバ10は、例えば、図3(A)で説明した第1の実施形態に係る管理サーバ10の機能構成に加えて、設定管理部1501を有している。
設定管理部1501は、例えば、管理サーバ10が備えるコンピュータ200が実行するプログラムによって実現され、例えば、図19で後述するProxy―PAC1900等の設定情報を管理する。また、設定管理部1501は、Proxy-PAC1900のファイルを取得するための情報を、情報端末111等に提供する。
(リレーサーバの機能構成)
図15(B)は、第2の実施形態に係るリレーサーバ13の機能構成の例を示している。第2の実施形態に係るリレーサーバ13は、例えば、図3(B)で説明した第1の実施形態に係るリレーサーバ13の機能構成に加えて、プロキシサーバ部403を備えている。
プロキシサーバ部403は、例えば、リレーサーバ13が備えるコンピュータ200が実行するプログラムによって実現される。なお、プロキシサーバ部403は、第1の実施形態に係るセキュアボックス14が備えていたプロキシサーバ部403と同様の機能を有している。
(セキュアボックスの機能構成)
図16は、第2の実施形態に係るセキュアボックスの機能構成の例を示す図である。第2の実施形態に係るセキュアボックス14は、図4で説明した第1の実施形態に係るセキュアボックス14が有するプロキシサーバ部403に代えて、転送部1601を有している。
転送部1601は、例えば、セキュアボックス14が備えるコンピュータ200が実行するプログラムによって実現される。転送部1601は、リレーサーバ13とサーバ装置101との間で送受信するデータを、双方向に転送するTCPリレーとして機能する。
(情報端末の機能構成)
図17は、第2の実施形態に係る情報端末111の機能構成の例を示す図である。第2の実施形態に係る情報端末111は、例えば、通信部601、要素取得部602、リクエスト解析部603、第2の通信制御部604、描画部607、操作受付部608、設定部1701、及び第3の通信制御部1702等を有している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
通信部601は、例えば、CPU201が実行するプログラム(OS等)によって実現され、ネットワークI/F208を用いて、情報端末111をリモートネットワーク110、及び通信ネットワーク2等に接続し、他の装置と通信する通信処理を実行する。
設定部1701は、例えば、CPU201が実行するウェブブラウザ1700によって実現され、管理サーバ10から、例えば、図19に示すようなProxy-PAC1900のファイルを取得し、ウェブブラウザ1700に適用する。また、設定部1701は、例えば、図18に示すような設定画面1800を表示して、Proxy-PAC1900のファイルの取得先の設定を受け付ける。
図18は、第2の実施形態に係るウェブブラウザの設定について説明するための図である。情報端末111を利用する利用者は、例えば、図18(A)に示すようなウェブブラウザ1700の設定画面1800を利用して、Proxy-PAC1900のファイルの取得先を設定することができる。
ただし、ウェブブラウザ1700は、情報端末111が管理サーバ10にログインしたときの認証情報を、Proxy-PAC1900のファイルを取得する際に利用することができない。そのため、本実施形態では、第三者が推定できない値(以下、secretと呼ぶ)を用いて、Proxy-PAC1900のファイルの取得先を設定する。
このsecretは、例えば、次の式(1)によって計算することができる。
secret = sha512sum(テナントID+ユーザID+固定の秘密の文字列) ・・・(1)
なお、図18(A)の設定画面1800では、secretの値が、secret=7d099e3 となっているが、これは、図中に全ての桁を表示できていないためであり、実際には、例えば、次のような値となる。
secret = 7d099e3976e2be937cbe6d749e09737149cec03d67d1427a94ff3764cfbccfe69737a8f772e1efabafa3d53d09041782d76b8e0b36be19902aae65835af2f9c2
ここで、テナントIDは、例えば、企業、組織、グループ等の契約単位の識別する識別情報であり、ユーザIDは、利用者を識別する識別情報である。
例えば、管理サーバ10の設定管理部1501は、利用者に、利用者ごとに異なるsecretを表示するウェブページを提供しても良い。この場合、利用者は、表示されたsecretをコピーして、図18に示すような設定画面のURLの入力欄1801にペーストすることにより、Proxy-PAC1900のファイルの取得先を容易に設定することができる。
図19は、第2の実施形態に係るProxy-PACの例を示す図である。図19の例では、Proxy-PAC1900の、「https_proxy」の設定が、「"テナントID+secret".proxy.srws.example.ricoh.com:443"」となっており、第三者による推測が困難な値に設定されている。また、このProxy-PAC1900の設定1901は、URLが、「https:」又は「wss:」で始まり、かつ、宛先が「internal.example.com」であれば、上記の「https_proxy」が示すプロキシサーバにアクセスする設定となっている。なお、プロキシサーバは、情報端末111等からのアクセスを受け付けたときに、利用者に、例えば、ユーザ名、パスワード等の入力を要求しても良い。
ここで、図17に戻り、情報端末111の機能構成の説明を続ける。
要素取得部602は、例えば、CPU201が実行するウェブブラウザ1700によって実現され、ウェブページのHTML等からHTMLリクエスト等の要素を取得する。また、要素取得部602は、DOMを生成するために必要なデータ、例えば、CSS(Cascading Style Sheets)、又はJavaScript(登録商標)のファイル等の取得を要求するリクエストを、リクエスト解析部603に出力する。
リクエスト解析部603は、要素取得部602から受け付けたリクエストを解析して、例えば、図19に示すようなProxy-PAC1900の設定に基づいて、リクエストをプロキシサーバに送信するか、ダイレクトにウェブサーバに送信するかを決定する。
第2の通信制御部604は、管理サーバ10から通知されるセッションIDを用いて、リレーサーバ13に接続を要求し、暗号化された第2の通信4でリレーサーバ13に接続する。また、第2の通信制御部604は、リクエスト解析部603が、プロキシサーバに送信すると決定したリクエストを、リレーサーバ13が備えるプロキシサーバ部403に選択的に送信し、送信したリクエストに対するレスポンスを受信する。
第3の通信制御部1702は、リクエスト解析部603が、ダイレクトにウェブサーバに送信すると決定したリクエストを、当該リクエストの宛先のウェブサーバにダイレクトに送信し、送信したリクエストに対するレスポンスを受信する。
描画部607は、第2の通信制御部604、又は第3の通信制御部1702が受信したデータを用いて、表示画面を描画する。操作受付部608は、描画部607が表示した表示画面に対する操作を受け付ける。
<処理の流れ>
(通信システムの処理)
図20、21は、第2の実施形態に係る通信システムの処理の例を示すシーケンス図である。この処理は、情報端末111を利用する利用者が、ローカルネットワーク100内のサーバ装置101が提供するウェブサービスの一例である業務ポータルを利用する際に、通信システム1が実行する処理の別の一例を示している。なお、図20に示す処理の開始時点において、通信管理部303のセッション管理部304と、セキュアボックス14の第1の通信制御部402は、例えば、MQTTプロコトル等により、通信可能に接続されているものとする。また、情報端末111のウェブブラウザ1700には、例えば、図18に示すような設定画面1800を利用して、Proxy-PAC1900のファイルの取得先が設定済であるものとする。
ステップS2001において、利用者が、情報端末111が備えるウェブブラウザ1700を起動する起動操作を行うものとする。
ステップS2002、S2003において、ウェブブラウザ1700が起動すると、設定部1701は、予め設定されたProxy-PACのファイルの取得先から、Proxy-PACのファイルを取得する。なお、ここで取得したProxy-PACのファイルには、サーバ装置101、及びリレーサーバ13に関するURLのリクエストはプロキシサーバに送信し、管理サーバ10に関するURLのリクエストは、ダイレクトに管理サーバ10に送信するように予め設定されているものとする。
ステップS2004、S2005において、通信システム1は、例えば、図7に示すようなログイン処理を実行し、情報端末111のウェブブラウザ1700は、図11に示すようなサービス一覧画面1100を表示する。
ステップS2006において、利用者が、サービス一覧画面1100において、業務ポータルの選択操作を行うものとする。
ステップS2007において、情報端末111のリクエスト解析部603は、次に送信するリクエストを解析し、取得済のProxy-PACのファイルに基づいて、リクエストをプロキシサーバに送信するか、宛先にダイレクトに送信するかを決定する。ここでは、次に送信するリクエスト(接続要求)の宛先が管理サーバ10なので、リクエスト解析部603は、リクエストをダイレクトに管理サーバ10に送信すると決定する。
ステップS2007において、情報端末111の第3の通信制御部1702は、ステップS2004のログイン処理で取得したアクセストークンを含む接続要求を、管理サーバ10の通信管理部303に送信する。
ステップS2008において、管理サーバ10の通信管理部303は、情報端末111から接続要求を受け付けると、認証部302を用いて、接続要求に含まれるアクセストークンの検証を行う。アクセストークンの検証結果が「OK」である場合(利用者が正当な利用者である場合)、ステップS2009において、通信管理部303は、セッションを識別するセッションIDを生成する。一方、アクセストークンの検証結果が「OK」でない場合、通信管理部303は、例えば、情報端末111にエラーを通知して、ステップS2009の処理の実行を中止する。
ステップS2010において、管理サーバ10の通信管理部303は、発行したセッションIDを含むリレーサーバ13への接続要求を、セキュアボックス14に送信する。
ステップS2011において、セキュアボックス14の第1の通信制御部402は、リレーサーバ13に、管理サーバ10から通知されたセッションIDを含むWebSocketの接続要求を送信する。
ステップS2012において、リレーサーバ13の接続管理部312は、セキュアボックス14から接続要求を受け付けると、要求元のセキュアボックス14と、例えば、wwsによる暗号化された第1の通信3のセッションを確立する。
ステップS2013において、管理サーバ10の通信管理部303は、ステップS2009で生成したセッションIDを含む接続指示を、要求元の情報端末111に送信する。
ステップS2014において、情報端末111のリクエスト解析部603は、次に送信するリクエストを解析し、取得済のProxy-PACのファイルに基づいて、リクエストをプロキシサーバに送信するか、宛先にダイレクトに送信するかを決定する。ここでは、次に送信するリクエスト(WebSocket接続要求)の宛先がリレーサーバ13なので、リクエスト解析部603は、リクエストをプロキシサーバ(リレーサーバ13)に送信すると決定する。
ステップS2015において、情報端末111の第2の通信制御部604は、リレーサーバ13に、WebSocketの接続要求を送信する。このWebSocketの接続要求には、例えば、ステップS2004で取得したアクセストークン、及び管理サーバ10から通知されたセッションID等が含まれる。
ステップS2016において、リレーサーバ13の接続管理部312は、情報端末111からWebSocketの接続要求を受け付けると、管理サーバ10の認証部302を用いて、WebSocketの接続要求に含まれるアクセストークンの検証を行う。アクセストークンの検証結果が「OK」である場合(利用者が正当な利用者である場合)、ステップS2016において、リレーサーバ13の接続管理部312は、情報端末111と、例えば、wwsによる暗号化された第2の通信4のセッションを確立する。
一方、アクセストークンの検証結果が「OK」でない場合、リレーサーバ13の接続管理部312は、ステップS2017の処理の実行を中止し、リレーサーバ13への接続を拒否する(又はWebSocketの接続要求を破棄する)。
上記の処理により、情報端末111のウェブブラウザ1700は、リレーサーバ13のプロキシサーバ部403をプロキシサーバとして利用することができるようになる。また、リレーサーバ13とセキュアボックス14との間にはトンネルが確立される(ステップS2018)。従って、リレーサーバ13のプロキシサーバ部403は、確立されたトンネルと、セキュアボックス14において、TCPリレーとして機能する転送部1601とを介して、サーバ装置101と通信することができるようになる。
従って、図21のステップS2101~S2108の処理を繰り返し実行することにより、情報端末111のウェブブラウザ1700は、例えば、図22に示すような、業務ポータル画面2200を表示することができる。
例えば、ステップS2101において、情報端末111の描画部607は、サーバ装置101が提供する業務ポータル画面2200を表示するために、HTTPSのリクエスト(データ取得要求)を生成する。また、リクエスト解析部603は、生成されたデータ取得要求をプロキシサーバに送信すると決定し、第2の通信制御部604は、生成されたデータ取得要求をリレーサーバ13のプロキシサーバ部403に送信する。
ステップS2102、S2103において、リレーサーバ13のプロキシサーバ部403は、情報端末111からデータの取得要求を受け付けると、受け付けたデータ取得要求を、セキュアボックス14の転送部1601を介して、サーバ装置101に送信する。
ステップS2104~S2106において、サーバ装置101のウェブサーバ部411は、データ取得要求を受け付けると、レスポンスとして、HTML等のデータをセキュアボックス14の転送部1601を介して、リレーサーバ13に送信する。
ステップS2107において、リレーサーバ13のプロキシサーバ部403は、サーバ装置101からデータ(レスポンス)を受信すると、受信したデータを情報端末111に送信する。
ステップS2108において、情報端末111の描画部607は、リレーサーバ13から受信したデータを用いて、例えば、図22に示すような業務ポータル画面2200を表示する。
なお、図21のステップS2101~S2108に示した、情報端末111とサーバ装置101との間のリクエスト、及びレスポンスの送受信は、通信が終了するまで継続する。
続いて、図21を参照して、通信の終了処理の例について説明する。
ステップS2111において、利用者が、情報端末111のウェブブラウザに対して終了操作を行うと、通信システム1は、ステップS2112以降の処理を実行する。
ステップS2112において、情報端末111のウェブブラウザ1700が、利用者による終了操作を受け付けると、第2の通信制御部604は、リレーサーバ13に切断要求を送信する。
ステップS2113、S2114において、リレーサーバ13の接続管理部312は、セキュアボックス14とのセッションを切断する。これにより、ステップS2115において、リレーサーバ13とセキュアボックス14との間のトンネルが切断される。
ステップS2116において、リレーサーバ13の接続管理部312は、情報端末111とのセッションを切断する。
(データの流れ)
図23は、第2の実施形態に係るトンネル確立後のデータの流れを示す図である。この図は、例えば、図20のステップS2018において、リレーサーバ13とセキュアボックス14との間に、wws通信によるトンネル2301が確立された状態の通信システム1の例を示している。なお、トンネル1403は、リレーサーバ13と第1の通信制御部402との間の第2の通信路の一例であり、WebSocketによる通信路を含む。
リレーサーバ13のプロキシサーバ部403は、このトンネル2301と、セキュアボックス14が備える転送部1601とを用いて、例えば、HTML、PNG、JSON、XML等の様々な形式のデータを、サーバ装置101と送受信することができる。これにより、情報端末111のウェブブラウザ1700は、リレーサーバ13が備えるプロキシサーバ部403を利用して、サーバ装置101が備えるウェブサーバ部411と、リクエスト、及びレスポンスを送受信することができる。
以上、第2の実施形態によれば、インターネットに接続可能なアクセス元の端末(情報端末111)のウェブブラウザから、ローカルネットワークに接続するウェブサーバ(サーバ装置101)が提供するウェブサービスを容易に利用できるようになる。
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
また、実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものに過ぎない。ある実施形態では、管理サーバ10、リレーサーバ13、又はサーバ装置101は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。また、管理サーバ10、リレーサーバ13、又はサーバ装置101の各機能構成は、1つのサーバ装置にまとめられていても良いし、複数の装置に分けられていても良い。
1 通信システム
2 通信ネットワーク(第1のネットワークの一例)
13 リレーサーバ
14 セキュアボックス(通信装置の一例)
100 ローカルネットワーク(第2のネットワーク)
101 サーバ装置(通信装置の一例)
110 リモートネットワーク(第1のネットワークの一例)
111 情報端末
302 認証部
303 通信管理部
402 第1の通信制御部
403 プロキシサーバ部
411 ウェブサーバ部(ウェブサーバ)
604 第2の通信制御部
1403 トンネル(第1の通信路)
2301 トンネル(第2の通信路)
特開2001-5714号公報

Claims (10)

  1. 第1のネットワークに接続する情報端末から、前記第1のネットワークとは異なる第2のネットワークに接続するウェブサーバにリモートアクセスする通信システムであって、
    前記第1のネットワークを介して、前記情報端末から前記ウェブサーバが提供するウェブサービスへの接続要求を受け付ける通信管理部と、
    前記通信管理部からの要求に応じて、前記第2のネットワークから、前記第1のネットワークに接続するリレーサーバに接続する第1の通信制御部と、
    前記情報端末から、前記リレーサーバに接続する第2の通信制御部と、
    を有し、
    前記リレーサーバと前記第1の通信制御部とを介して、前記情報端末が備えるウェブブラウザと前記ウェブサーバが提供する前記ウェブサービスとの間のリクエスト、及びレスポンスを送受信する、
    通信システム。
  2. 前記通信システムは、前記リレーサーバを含み、
    前記リレーサーバは、前記第1の通信制御部と前記第2の通信制御部との間の第1の通信路を確立する、請求項1に記載の通信システム。
  3. 前記第1の通信路は、WebSocketによる通信路を含む、請求項2に記載の通信システム。
  4. 前記通信システムは、前記第1の通信制御部を有する通信装置を含み、
    前記通信装置は、前記第1の通信路を介して前記情報端末が備えるウェブブラウザと通信可能なプロキシサーバ部を有する、請求項2又は3に記載の通信システム。
  5. 前記通信システムは、前記リレーサーバを含み、
    前記リレーサーバは、前記第1の通信制御部と前記リレーサーバとの間に第2の通信路を確立し
    前記リレーサーバは、前記第1のネットワークを介して前記情報端末が備えるウェブブラウザと通信可能なプロキシサーバ部を有する、請求項1に記載の通信システム。
  6. 前記第2の通信制御部は、前記ウェブサービスに関するリクエストを選択的に前記リレーサーバに送信する、請求項5に記載の通信システム。
  7. 前記情報端末を利用する利用者が正当な利用者であることを認証する認証部を有し、
    前記通信管理部は、前記接続要求を送信した前記情報端末を利用する利用者が正当な利用者である場合、前記第1の通信制御部に、前記リレーサーバへの接続を要求する、
    請求項1乃至6のいずれか一項に記載の通信システム。
  8. 前記通信システムは、前記リレーサーバを含み、
    前記リレーサーバは、前記情報端末を利用する利用者が正当な利用者である場合、前記第2の通信制御部から前記リレーサーバへの接続を許可する、
    請求項7に記載の通信システム。
  9. 第1のネットワークに接続する情報端末から、前記第1のネットワークとは異なる第2のネットワークに接続するウェブサーバにリモートアクセスする通信システムにおいて、
    前記第2のネットワークに接続するコンピュータが、
    前記第1のネットワークを介して前記情報端末から前記ウェブサーバへの接続要求を受け付ける通信管理部からの要求に応じて、前記第1のネットワークに接続するリレーサーバに接続する処理と、
    前記リレーサーバに接続する前記情報端末が備えるウェブブラウザから前記ウェブサーバが提供するウェブサービスへのリクエストを前記リレーサーバから受信し、前記リクエストを前記ウェブサービスに転送する処理と、
    前記リクエストに対するレスポンスを前記ウェブサービスから受信し、前記レスポンスを前記リレーサーバに転送する処理と、
    を実行する、通信方法。
  10. 第1のネットワークに接続する情報端末から、前記第1のネットワークとは異なる第2のネットワークに接続するウェブサーバにリモートアクセスする通信システムにおいて、
    前記第2のネットワークに接続するコンピュータに、
    前記第1のネットワークを介して前記情報端末から前記ウェブサーバへの接続要求を受け付ける通信管理部からの要求に応じて、前記第1のネットワークに接続するリレーサーバに接続する処理と、
    前記リレーサーバに接続する前記情報端末が備えるウェブブラウザから前記ウェブサーバが提供するウェブサービスへのリクエストを前記リレーサーバから受信し、前記リクエストを前記ウェブサービスに転送する処理と、
    前記リクエストに対するレスポンスを前記ウェブサービスから受信し、前記レスポンスを前記リレーサーバに転送する処理と、
    を実行させる、プログラム。
JP2021068882A 2021-04-15 2021-04-15 通信システム、通信方法、及びプログラム Pending JP2022163820A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021068882A JP2022163820A (ja) 2021-04-15 2021-04-15 通信システム、通信方法、及びプログラム
US17/658,864 US11902147B2 (en) 2021-04-15 2022-04-12 Remote access system, remote access control method, and non-transitory recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021068882A JP2022163820A (ja) 2021-04-15 2021-04-15 通信システム、通信方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2022163820A true JP2022163820A (ja) 2022-10-27

Family

ID=83601805

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021068882A Pending JP2022163820A (ja) 2021-04-15 2021-04-15 通信システム、通信方法、及びプログラム

Country Status (2)

Country Link
US (1) US11902147B2 (ja)
JP (1) JP2022163820A (ja)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005714A (ja) 1999-06-23 2001-01-12 Mitsubishi Electric Corp プロキシーサーバ変更装置
JP4666986B2 (ja) 2004-06-03 2011-04-06 株式会社リコー 通信方法、通信許可サーバ
US8631091B2 (en) * 2010-10-15 2014-01-14 Northeastern University Content distribution network using a web browser and locally stored content to directly exchange content between users
JP5909476B2 (ja) 2013-10-21 2016-04-26 株式会社日立製作所 遠隔操作システム
JP2015111407A (ja) 2013-10-28 2015-06-18 株式会社リコー 情報管理システム及び情報管理方法
US10609152B2 (en) * 2017-07-11 2020-03-31 Cisco Technology, Inc. Creation of remote direct access path via internet to firewalled device using multi-site session forwarding
JP6965078B2 (ja) 2017-09-28 2021-11-10 日置電機株式会社 遠隔操作システム、測定システムおよび遠隔操作システム用プログラム
US10972434B2 (en) * 2018-06-19 2021-04-06 Cisco Technology, Inc. Proxy-based clientless VPN with web browser proxy auto-configuration (PAC) file and extension
US10834138B2 (en) * 2018-08-13 2020-11-10 Akamai Technologies, Inc. Device discovery for cloud-based network security gateways
US10958624B2 (en) * 2018-12-06 2021-03-23 Akamai Technologies, Inc. Proxy auto-configuration for directing client traffic to a cloud proxy with cloud-based unique identifier assignment
WO2020202135A2 (en) * 2019-04-02 2020-10-08 Luminati Networks Ltd. System and method for managing non-direct url fetching service
US11343185B2 (en) * 2019-05-20 2022-05-24 Citrix Systems, Inc. Network traffic steering with programmatically generated proxy auto-configuration files

Also Published As

Publication number Publication date
US20220337509A1 (en) 2022-10-20
US11902147B2 (en) 2024-02-13

Similar Documents

Publication Publication Date Title
JP4882546B2 (ja) 情報処理システムおよび制御プログラム
EP1816811B1 (en) Relay device, relay method, and program
JP5424614B2 (ja) 情報処理システム、情報処理装置、Webサーバ、制御方法、及びプログラム
JP4615247B2 (ja) コンピュータシステム
CN109768965B (zh) 一种服务器的登录方法、设备及存储介质
JP5966406B2 (ja) データ中継システム、装置及びプログラム
US20050138122A1 (en) Method and system for session sharing
US11700262B2 (en) System and method to securely execute datacenter management operations remotely
US20120246226A1 (en) System and method for sharing data from a local network to a remote device
US20060061803A1 (en) Image forming system and communication method
JP2002334056A (ja) ログイン代行システム及びログイン代行方法
US7540020B1 (en) Method and apparatus for facilitating single sign-on to applications
US20130036206A1 (en) Method and apparatus for extending remote network visibility of the push functionality
CN112637796B (zh) 基于5g的办公信息应答方法、系统、服务器和存储介质
JP2014115895A (ja) 情報処理装置及びその制御方法、並びにプログラム
US11729334B2 (en) Communication system, device, and recording medium for remote access to electronic device through relaying device and converter
JP6949688B2 (ja) システムおよびその制御方法
US8763151B2 (en) Mediation processing method, mediation apparatus and system
JP2006018399A (ja) 情報処理装置、情報処理方法およびプログラム
JP2003044429A (ja) コラボレーション用の端末、コラボレーションシステム及びコラボレーション方法
US11824942B2 (en) Communication system, information processing apparatus, and information processing method
JP6150719B2 (ja) 設備管理装置、通信制御方法、および、プログラム
Giretti Understanding the gRPC Specification
JP2022163820A (ja) 通信システム、通信方法、及びプログラム
JP7321788B2 (ja) 閲覧管理サーバ、閲覧管理方法、および閲覧管理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240222