IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

<>
  • 特許-組み込み機器及び表示システム 図1
  • 特許-組み込み機器及び表示システム 図2
  • 特許-組み込み機器及び表示システム 図3
  • 特許-組み込み機器及び表示システム 図4
  • 特許-組み込み機器及び表示システム 図5
  • 特許-組み込み機器及び表示システム 図6
  • 特許-組み込み機器及び表示システム 図7
  • 特許-組み込み機器及び表示システム 図8
  • 特許-組み込み機器及び表示システム 図9
  • 特許-組み込み機器及び表示システム 図10
  • 特許-組み込み機器及び表示システム 図11
  • 特許-組み込み機器及び表示システム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-03
(45)【発行日】2024-10-11
(54)【発明の名称】組み込み機器及び表示システム
(51)【国際特許分類】
   H04L 9/36 20060101AFI20241004BHJP
【FI】
H04L9/36
【請求項の数】 13
(21)【出願番号】P 2024515198
(86)(22)【出願日】2022-04-11
(86)【国際出願番号】 JP2022017524
(87)【国際公開番号】W WO2023199387
(87)【国際公開日】2023-10-19
【審査請求日】2024-04-01
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100095407
【弁理士】
【氏名又は名称】木村 満
(74)【代理人】
【識別番号】100131152
【弁理士】
【氏名又は名称】八島 耕司
(74)【代理人】
【識別番号】100147924
【弁理士】
【氏名又は名称】美恵 英樹
(74)【代理人】
【識別番号】100148149
【弁理士】
【氏名又は名称】渡邉 幸男
(74)【代理人】
【識別番号】100181618
【弁理士】
【氏名又は名称】宮脇 良平
(74)【代理人】
【識別番号】100174388
【弁理士】
【氏名又は名称】龍竹 史朗
(72)【発明者】
【氏名】今川 正則
【審査官】平井 誠
(56)【参考文献】
【文献】特開2008ー186160(JP,A)
【文献】特開2015-179894(JP,A)
【文献】特開2011-197968(JP,A)
【文献】特開2006-352336(JP,A)
【文献】特開2016-004561(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00-40
G09C 1/00-5/00
(57)【特許請求の範囲】
【請求項1】
外部ブラウザを備える外部端末と通信可能に接続された組み込み機器であって、
Web文書を記憶する記憶部と、
内蔵ブラウザと、
前記記憶部に記憶された前記Web文書を暗号化されない通信を介して前記内蔵ブラウザに送信し、前記Web文書に基づく第1の画面を前記内蔵ブラウザに表示させ、
前記記憶部に記憶された前記Web文書を暗号化された通信を介して前記外部ブラウザに送信し、前記Web文書に基づく第2の画面を前記外部ブラウザに表示させるWebサーバと、を備え、
前記Webサーバは、
内部用仮想サーバにより、前記内蔵ブラウザとの間で前記暗号化されない通信を行い、
外部用仮想サーバにより、前記外部ブラウザとの間で前記暗号化された通信を行う、
組み込み機器。
【請求項2】
前記Webサーバは、
前記暗号化されない通信を介して前記内蔵ブラウザからユーザ認証の要求を受信した場合、前記ユーザ認証の入力画面を前記内蔵ブラウザに表示させずに、前記第1の画面として、前記ユーザ認証の完了画面を前記内蔵ブラウザに表示させ、
前記暗号化された通信を介して前記外部ブラウザから前記ユーザ認証の要求を受信した場合、前記第2の画面として、前記入力画面を前記外部ブラウザに表示させる、
請求項1に記載の組み込み機器。
【請求項3】
前記Webサーバは、前記内蔵ブラウザから前記ユーザ認証の要求を受信した場合、リダイレクト又はURLの書き換えにより、受信した前記要求の接続先を前記入力画面から前記完了画面に変更する、
請求項に記載の組み込み機器。
【請求項4】
前記Webサーバは、前記内蔵ブラウザ又は前記外部ブラウザから前記ユーザ認証の要求を受信した場合、受信した前記要求の送信元のアドレスがループバックアドレスに該当するか否かに基づいて、受信した前記要求の送信元が前記内蔵ブラウザであるか前記外部ブラウザであるかを判定する、
請求項又はに記載の組み込み機器。
【請求項5】
前記Webサーバは、前記内蔵ブラウザから前記ユーザ認証の要求を受信した場合に、前記第1の画面として前記入力画面を前記内蔵ブラウザに表示させるか、又は、前記第1の画面として前記入力画面を表示させずに前記完了画面を前記内蔵ブラウザに表示させるかを、ユーザから入力された設定に応じて切り替える、
請求項2又は3に記載の組み込み機器。
【請求項6】
前記Webサーバは、
前記暗号化されない通信を介して前記内蔵ブラウザから操作要求を受信した場合、前記第1の画面として前記組み込み機器の操作画面を前記内蔵ブラウザに表示させ、
前記暗号化された通信を介して前記外部ブラウザから前記操作要求を受信した場合、前記第2の画面として前記操作画面を前記外部ブラウザに表示させる、
請求項1からのいずれか1項に記載の組み込み機器。
【請求項7】
前記組み込み機器は、アプリケーションソフトウェアを使用するための認証処理と、前記アプリケーションソフトウェアに基づくアプリケーション処理と、を実行するアプリケーションサーバ、を更に備え、
前記アプリケーションサーバは、
前記Webサーバが前記暗号化されない通信を介して前記内蔵ブラウザから操作要求を受信した場合、前記認証処理を実行せずに前記アプリケーション処理を実行し、
前記Webサーバが前記暗号化された通信を介して前記外部ブラウザから前記操作要求を受信した場合、前記認証処理を実行してから前記アプリケーション処理を実行する、
請求項1からのいずれか1項に記載の組み込み機器。
【請求項8】
前記Webサーバは、前記内蔵ブラウザ又は前記外部ブラウザから前記操作要求を受信した場合、受信した前記操作要求の送信元のアドレスを前記操作要求に付与し、
前記アプリケーションサーバは、前記操作要求に付与された前記送信元のアドレスに基づいて、前記送信元が前記内蔵ブラウザであるか前記外部ブラウザであるかを判定する、
請求項に記載の組み込み機器。
【請求項9】
前記Webサーバは、前記内蔵ブラウザ又は前記外部ブラウザから前記操作要求を受信した場合、受信した前記操作要求のヘッダ又はクエリパラメータに前記送信元のアドレスを追加することにより、前記送信元のアドレスを前記操作要求に付与する、
請求項に記載の組み込み機器。
【請求項10】
前記組み込み機器は、前記組み込み機器を操作するユーザを認証する認証デバイス、を更に備え、
前記Webサーバは、
前記暗号化されない通信を介して前記内蔵ブラウザからユーザ認証の要求を受信した場合、前記第1の画面として、前記認証デバイスの操作を促す画面を前記内蔵ブラウザに表示させ、
前記暗号化された通信を介して前記外部ブラウザから前記ユーザ認証の要求を受信した場合、前記第2の画面として、前記認証デバイスを使用しないユーザ認証の入力画面を前記外部ブラウザに表示させる、
請求項1に記載の組み込み機器。
【請求項11】
前記Webサーバは、
前記組み込み機器上で動作する第1の仮想マシンにより、前記内蔵ブラウザとの間で前記暗号化されない通信を行い、
前記組み込み機器上で動作する第2の仮想マシンにより、前記外部ブラウザとの間で前記暗号化された通信を行う、
請求項1、2、3又は10に記載の組み込み機器。
【請求項12】
前記Webサーバは、
コンテナ仮想化技術により生成された第1のコンテナにより、前記内蔵ブラウザとの間で前記暗号化されない通信を行い、
前記コンテナ仮想化技術により生成された第2のコンテナにより、前記外部ブラウザとの間で前記暗号化された通信を行う、
請求項1、2、3又は10に記載の組み込み機器。
【請求項13】
請求項1、2、3又は10に記載の組み込み機器と、前記外部端末と、を備える、
表示システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、組み込み機器及び表示システムに関する。
【背景技術】
【0002】
画面を表示する表示部を搭載した組み込み機器が知られている。また、組み込み機器のネットワーク対応に伴い、外部端末からも組み込み機器を制御することが可能になってきている。例えば、特許文献1は、内蔵Webブラウザを介してのアクセスと外部装置のWebブラウザからのアクセスとで異なる操作画面を表示させることが可能な画像処理装置を開示している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2011-197968号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記のような組み込み機器の内蔵ブラウザと外部端末に搭載された外部ブラウザとの両方で画面が表示されるシステムにおいて、内蔵ブラウザと外部ブラウザとに表示する画面を同じWeb文書から生成することで、画面の開発に必要な労力を削減することが求められている。
【0005】
一方で、内蔵ブラウザと外部ブラウザとでは、必要とするセキュリティに違いがある。具体的には、外部ブラウザに画面を表示させる場合には、外部ネットワークを介した通信を行うため、強固なセキュリティ対策が必要となる。これに対して、組み込み機器の内蔵ブラウザに画面を表示させる場合には、組み込み機器の内部通信となるため、外部ブラウザとの通信に比べて強固なセキュリティ対策は必要ない。このような必要とするセキュリティの違いを考慮して、内蔵ブラウザとの通信における処理負荷を軽減することが求められている。
【0006】
本開示は、上記のような問題点を解決するためになされたものであり、同じWeb文書に基づく画面を内蔵ブラウザと外部ブラウザとに表示させる組み込み機器において、内蔵ブラウザとの通信における処理負荷を軽減することが可能な組み込み機器等を提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本開示に係る組み込み機器は、
外部ブラウザを備える外部端末と通信可能に接続された組み込み機器であって、
Web文書を記憶する記憶部と、
内蔵ブラウザと、
前記記憶部に記憶された前記Web文書を暗号化されない通信を介して前記内蔵ブラウザに送信し、前記Web文書に基づく第1の画面を前記内蔵ブラウザに表示させ、
前記記憶部に記憶された前記Web文書を暗号化された通信を介して前記外部ブラウザに送信し、前記Web文書に基づく第2の画面を前記外部ブラウザに表示させるWebサーバと、を備え
前記Webサーバは、
内部用仮想サーバにより、前記内蔵ブラウザとの間で前記暗号化されない通信を行い、
外部用仮想サーバにより、前記外部ブラウザとの間で前記暗号化された通信を行う。
【発明の効果】
【0008】
本開示では、Webサーバが、記憶部に記憶されたWeb文書を暗号化されない通信を介して内蔵ブラウザに送信し、Web文書に基づく第1の画面を内蔵ブラウザに表示させ、記憶部に記憶されたWeb文書を暗号化された通信を介して外部ブラウザに送信し、Web文書に基づく第2の画面を外部ブラウザに表示させる。従って、本開示によれば、同じWeb文書に基づく画面を内蔵ブラウザと外部ブラウザとに表示させる組み込み機器において、内蔵ブラウザとの通信における処理負荷を軽減することができる。
【図面の簡単な説明】
【0009】
図1】実施の形態1に係る表示システムの構成を示す第1の図
図2】実施の形態1に係る表示システムの構成を示す第2の図
図3】実施の形態1に係るWebサーバの構成を示す図
図4】実施の形態1に係る外部ブラウザに表示されるユーザ認証の入力画面の一例を示す図
図5】実施の形態1に係る内蔵ブラウザ及び外部ブラウザに表示されるユーザ認証の完了画面の一例を示す図
図6】実施の形態1に係る内蔵ブラウザ及び外部ブラウザに表示される操作画面の一例を示す図
図7】実施の形態1に係る組み込み機器により実行されるユーザ認証処理の流れを示すフローチャート
図8】実施の形態1に係る組み込み機器により実行される操作画面表示処理の流れを示すフローチャート
図9】実施の形態2に係る組み込み機器において、認証デバイスによるユーザ認証に関する構成を示す図
図10】実施の形態2に係る内蔵ブラウザに表示される認証デバイスの操作を促す画面の一例を示す図
図11】実施の形態3に係る組み込み機器において、仮想マシンによるシステム構成を示す図
図12】実施の形態4に係る組み込み機器において、コンテナ仮想化によるシステム構成を示す図
【発明を実施するための形態】
【0010】
以下、実施の形態について、図面を参照しながら詳細に説明する。なお、図中同一又は相当部分には同一符号を付す。
【0011】
(実施の形態1)
図1に、実施の形態1に係る表示システム1の構成を示す。表示システム1は、組み込み機器10と、外部端末30と、を備える。組み込み機器10は画面表示機能を搭載しており、ユーザが画面を見ながら組み込み機器10を直接接触して操作することができる。
【0012】
組み込み機器10と外部端末30とは、破線で示す外部ネットワークを介して互いに通信可能に接続されている。外部ネットワークは、通信ネットワークであって、具体的には、LAN(Local Area Network)、インターネット等のような情報通信網である。外部ネットワークを経由することにより、ユーザは、外部端末30のブラウザから組み込み機器10に直接接触することなく操作することができる。
【0013】
組み込み機器10は、組み込みソフトウェアにより制御される電子機器であって、具体的には、空調機、給湯機、炊飯器、洗濯機、冷蔵庫、テレビ等のような特定用途向けの電子機器である。以下では、組み込み機器10として、空調機を操作するための空調コントローラを例にとって説明する。
【0014】
組み込み機器10は、制御部11と、記憶部12と、操作部13と、表示部14と、通信部15と、を備える。これらは、それぞれ、機器側制御部、機器側記憶部、機器側操作部、機器側表示部、及び、機器側通信部と呼ぶこともできる。
【0015】
制御部11は、CPU(Central Processing Unit)を備える。CPUは、中央処理装置、中央演算装置、プロセッサ、マイクロプロセッサ、マイクロコンピュータ等とも呼び、組み込み機器10の制御に係る処理及び演算を実行する処理部として機能する。制御部11において、CPUは、記憶部12に記憶されているプログラム及びデータを読み出して動作し、組み込み機器10を統括制御する。
【0016】
記憶部12は、ROM(Read Only Memory)、RAM(Random Access Memory)、フラッシュメモリ等を備える。記憶部12は、制御部11が各種処理を行うために使用するプログラム及びデータを記憶する。また、記憶部12は、制御部11が各種処理を行うことにより生成又は取得するデータを記憶する。
【0017】
具体的には、記憶部12は、Web文書121を記憶している。Web文書121は、表示部14に表示される画像を定めたデータファイルである。Web文書121は、ユーザ認証画面、組み込み機器10の操作画面等のような、表示部14に表示される画面のデータを予め定められたルールに従って定めている。例えば、Web文書121は、画面レイアウトを指定するHTML(Hyper Text Markup Language)又はCSS(Cascading Style Sheets)と、画面の内容を記述するJavaScriptと、を含む。
【0018】
操作部13は、タッチパネル、タッチパッド、キーボード、マウス、物理ボタン等の入力デバイスを備えており、ユーザからの操作入力を受け付ける。ユーザは、操作部13を操作することによって、様々な指示を組み込み機器10に入力することができる。操作部13は、ユーザから入力された指示を受け付けると、受け付けた指示を内蔵ブラウザ111に出力する。
【0019】
表示部14は、液晶パネル、有機EL(Electro-Luminescence)パネル等の表示デバイスを備える。表示部14は、表示駆動回路によって駆動され、内蔵ブラウザ111から出力される様々な画像を表示する。
【0020】
通信部15は、組み込み機器10の外部の機器と通信するための通信インタフェースを備える。例えば、通信部15は、LAN、USB(Universal Serial Bus)等の周知の通信規格に則って、外部端末30を含む外部の機器と通信する。
【0021】
具体的には、通信部15は、外部ネットワークを介して外部端末30との間で暗号化された通信を行う。通信部15は、外部端末30からの要求に応答して、記憶部12に記憶されたWeb文書121を外部端末30に送信する。
【0022】
外部端末30は、組み込み機器10の外部の端末装置であって、Webクライアントとして機能する。具体的には、外部端末30は、パーソナルコンピュータ、スマートフォン、タブレット端末等のような、ユーザに操作される操作端末である。外部端末30は、外部ネットワークを介して組み込み機器10と接続されており、組み込み機器10の操作、状態監視等を行うことができる。
【0023】
外部端末30は、制御部31と、記憶部32と、操作部33と、表示部34と、通信部35と、を備える。これらは、それぞれ、端末側制御部、端末側記憶部、端末側操作部、端末側表示部、及び、端末側通信部と呼ぶこともできる。
【0024】
制御部31は、CPUを備える。CPUは、中央処理装置、中央演算装置、プロセッサ、マイクロプロセッサ、マイクロコンピュータ等とも呼び、外部端末30の制御に係る処理及び演算を実行する処理部として機能する。制御部31において、CPUは、記憶部32に記憶されているプログラム及びデータを読み出して動作し、外部端末30を統括制御する。
【0025】
記憶部32は、ROM、RAM、フラッシュメモリ等を備える。記憶部32は、制御部31が各種処理を行うために使用するプログラム及びデータを記憶する。また、記憶部32は、制御部31が各種処理を行うことにより生成又は取得するデータを記憶する。
【0026】
操作部33は、ボタン、タッチパッド、タッチパネル等の入力デバイスを備えており、ユーザからの操作入力を受け付ける。ユーザは、操作部33を操作することによって、様々な指示を外部端末30に入力することができる。操作部33は、ユーザから入力された指示を受け付けると、受け付けた指示を外部ブラウザ311に出力する。
【0027】
表示部34は、LCDパネル、有機EL等の表示デバイスを備える。表示部34は、表示駆動回路によって駆動され、外部ブラウザ311から出力される様々な画像を表示する。
【0028】
通信部35は、外部端末30の外部の機器と通信するための通信インタフェースを備える。例えば、通信部35は、LAN、USB等の周知の通信規格に則って、組み込み機器10を含む外部の機器と通信する。
【0029】
具体的には、通信部35は、外部ネットワークを介して組み込み機器10との間で暗号化された通信を行う。これにより、通信部35は、組み込み機器10から送信されるWeb文書121を取得する。
【0030】
組み込み機器10において、制御部11は、機能的に、内蔵ブラウザ111と、Webサーバ112と、アプリケーションサーバ113と、を備える。また、外部端末30において、制御部31は、機能的に、外部ブラウザ311を備える。
【0031】
これら各部は、ソフトウェア、ファームウェア、又は、ソフトウェアとファームウェアとの組み合わせによって実現される。ソフトウェア及びファームウェアは、プログラムとして記述され、ROM又は記憶部12,32に格納される。そして、CPUが、ROM又は記憶部12,32に記憶されたプログラムを実行することによって、各部の機能を実現する。
【0032】
次に、図2を参照して、制御部11,31に備えられる各部の機能について説明する。
【0033】
組み込み機器10において、内蔵ブラウザ111は、組み込み機器10に内蔵されたWebブラウザであって、表示部14に表示画面を表示する。また、内蔵ブラウザ111は、組み込み機器10のユーザが操作部13を操作して入力された操作指示を操作部13から取得する。
【0034】
内蔵ブラウザ111は、組み込み機器10の内部通信を介して、Webサーバ112に接続することができる。内蔵ブラウザ111は、内部通信を介して、記憶部12に記憶されたWeb文書121をWebサーバ112から取得し、Web文書121に基づく表示画面を表示部14に出力する。また、内蔵ブラウザ111は、内部通信を介して、操作部13から取得したユーザの操作指示をWebサーバ112に送信する。
【0035】
より詳細には、内蔵ブラウザ111は、内部通信であるループバック通信を介して、Webサーバ112に接続する。ループバック通信では、IPv4(Internet Protocol version 4)の場合は、送信元ブラウザ、送信先サーバともに、アドレスが“127.0.0.1”となり、IPv6(Internet Protocol version 6)の場合はアドレスが“::1”となる。このようなアドレスが割り当てられることにより、ループバック通信は、外部ネットワークからの通信と区別できるようになっている。
【0036】
外部端末30において、外部ブラウザ311は、外部端末30に搭載されたWebブラウザであって、表示部34に表示画面を表示する。また、外部ブラウザ311は、外部端末30のユーザが操作部33を操作して入力された操作指示を操作部33から取得する。
【0037】
外部ブラウザ311は、外部ネットワークを介して、組み込み機器10のWebサーバ112に接続することができる。外部ブラウザ311は、外部ネットワークを介して、記憶部12に記憶されたWeb文書121をWebサーバ112から取得し、Web文書121に基づく表示画面を表示部34に出力する。また、外部ブラウザ311は、外部ネットワークを介して、操作部33から取得したユーザの操作指示をWebサーバ112に送信する。
【0038】
組み込み機器10において、Webサーバ112は、Webブラウザである内蔵ブラウザ111及び外部ブラウザ311に対して画面の表示を実行させる機能を有する。また、Webサーバ112は、内蔵ブラウザ111及び外部ブラウザ311からアクセスされる通信を中継するリバースプロキシの機能を兼ねる。Webサーバ112は、例えばNginx(登録商標)によって構築される。
【0039】
Webサーバ112は、内蔵ブラウザ111及び外部ブラウザ311にWeb文書121を配布し、Web文書121に基づく表示画面を表示部14,34に表示させる。具体的に説明すると、Webサーバ112は、記憶部12に記憶されたWeb文書121を、内蔵ブラウザ111と外部ブラウザ311とのどちらにも配布する。このように内蔵ブラウザ111と外部ブラウザ311とのどちらにも共通のWeb文書121を配布し、配布したWeb文書121に基づいて表示画面を表示させるため、Web文書121の開発コストを抑えることができる。
【0040】
このように内蔵ブラウザ111と外部ブラウザ311とでWeb画面を共通化した場合において、内蔵ブラウザ111における表示処理と外部ブラウザ311における表示処理とで、同等のセキュリティ対策は必ずしも必要ない。具体的には、外部端末30が外部ネットワーク経由で組み込み機器10に接続する場合、組み込み機器10への不正アクセスを防ぐために、セキュリティ対策が必須となる。
【0041】
セキュリティ対策として、具体的には、(1)外部端末30と組み込み機器10との間の通信の暗号化、(2)ユーザ認証、(3)組み込み機器10を外部ネットワーク経由で操作するためのWebAPI(Application Programming Interface)の認証が挙げられる。実施の形態1では、これら(1)~(3)のそれぞれについて、内蔵ブラウザ111における表示処理と外部ブラウザ311における表示処理とで異なるセキュリティ対策を施す。
【0042】
(1)通信の暗号化
第1に、通信の暗号化について説明する。内蔵ブラウザ111とWebサーバ112との間の通信はループバック通信であり、通信内容が外部に漏れないため、通信に暗号化を施すことは不要である。また、組み込み機器10に搭載されるCPUは、一般的なパーソナルコンピュータのCPUよりも性能が低いため、不要な暗号化通信を行うと、CPUの負荷が問題となる。
【0043】
そのため、Webサーバ112は、内蔵ブラウザ111との間で暗号化されない通信を行う一方で、外部ブラウザ311との間で暗号化された通信を行う。ここで、暗号化されない通信は、一例としてHTTP(Hypertext Transfer Protocol)通信であり、暗号化された通信は、一例としてHTTPS(Hypertext Transfer Protocol Secure)通信である。
【0044】
このように接続先に応じて暗号化の有無を変える機能を実現するために、Webサーバ112は、仮想サーバと呼ばれる機能を持つ。仮想サーバは、1つのソフトウェアを動作させただけで複数のサーバを動作させた場合と同様の効果を得ることが可能な技術である。
【0045】
具体的には図3に示すように、Webサーバ112は、内部用仮想サーバ141と、外部用仮想サーバ142と、の機能を備える。Webサーバ112は、内部用仮想サーバ141により、内蔵ブラウザ111との間で暗号化されない通信を行い、外部用仮想サーバ142により、外部ブラウザ311との間で暗号化された通信を行う。
【0046】
Webサーバ112は、内蔵ブラウザ111又は外部ブラウザ311から通信を受けた場合、その通信の接続先が内蔵ブラウザ111であるか、それとも外部ブラウザ311であるかを判定する。上述したように、内蔵ブラウザ111は、ループバック通信によりWebサーバ112と通信し、外部ブラウザ311は、外部ネットワークによりWebサーバ112と通信する。
【0047】
そのため、Webサーバ112は、接続先のアドレスがループバックアドレスに該当する場合、内蔵ブラウザ111から接続を受けたと判定し、接続先のアドレスがループバックアドレス以外のアドレスに該当する場合、外部ブラウザ311から接続を受けたと判定する。なお、ループバックアドレスは、IPv4の場合は“127.0.0.1”であり、IPv6の場合は“::1”である。
【0048】
内蔵ブラウザ111から接続を受けたと判定された場合、内部用仮想サーバ141がその接続を受け付ける。一方で、外部ブラウザ311から接続を受けたと判定された場合、外部用仮想サーバ142がその接続を受け付ける。内部用仮想サーバ141では、暗号化されない通信であるHTTP通信のみ有効にされ、外部用仮想サーバ142では、暗号化された通信であるHTTPS通信のみ有効にされる。
【0049】
これにより、内蔵ブラウザ111から画面操作する場合、暗号化されない通信が行われるため、組み込み機器10のCPU負荷が低減される。一方で、例えば外部ネットワークからHTTP通信で接続した場合は、接続先のアドレスがループバックアドレスでないため、内部用仮想サーバ141に接続されない。一方で、外部用仮想サーバ142はHTTP通信に対応していないため、外部用仮想サーバ142にも接続されない。そのため、外部ネットワークに対しては暗号化されない通信が拒否されるため、機器のセキュリティが保たれる。
【0050】
Webサーバ112は、記憶部12に記憶されたWeb文書121を、暗号化されないHTTP通信を介して内蔵ブラウザ111に送信し、Web文書121に基づく第1の画面を内蔵ブラウザ111に表示させる。一方で、Webサーバ112は、記憶部12に記憶されたWeb文書121を、暗号化されたHTTPS通信を介して外部ブラウザ311に送信し、Web文書121に基づく第2の画面を外部ブラウザ311に表示させる。
【0051】
ここで、第1の画面と第2の画面とは、以降で説明するユーザ認証画面、又は、組み込み機器10の操作画面である。第1の画面と第2の画面とは、同一のWeb文書121から生成されるため、組み込み機器10と外部端末30とで個別に定められる表示設定による違いを除いて、同一である。表示設定は、例えば画面に含まれるアニメーションのフレームレート、画面が拡大、縮小又はスクロールされる際におけるイベントの間引き頻度等であって、クッキーにより定められる。
【0052】
(2)ユーザ認証
第2に、ユーザ認証について説明する。ユーザ認証は、ユーザが組み込み機器10の使用を開始するタイミングで適正なユーザを識別するために実行される処理である。
【0053】
外部端末30から外部ネットワーク経由で組み込み機器10を操作する場合、セキュリティ対策として、強固なユーザ認証を必要とする。一方で、組み込み機器10が設置される場所そのものにセキュリティ対策が施される場合がある。この場合、ユーザが組み込み機器10に直接的に接触して操作する際におけるユーザ認証は不要である。
【0054】
このように、ユーザが組み込み機器10を直接的な接触により操作する場合と、ユーザが組み込み機器10を外部ネットワーク経由で操作する場合とで、要求されるユーザ認証が異なる。そのため、表示システム1は、このような2つの場合におけるユーザ認証画面を同じWeb文書121で生成しつつ、接続元のWebブラウザに応じて、ユーザ認証の切り替えを行う。
【0055】
まず、HTTPS通信を介して外部ブラウザ311からユーザ認証の要求を受信した場合、Webサーバ112は、第2の画面として、ユーザ認証の入力画面を外部ブラウザ311に表示させる。具体的に説明すると、外部端末30のユーザが組み込み機器10を使用するために操作部33を操作した場合、外部ブラウザ311は、ユーザ認証の要求のHTML文書を、HTTPS通信により組み込み機器10に送信する。ユーザ認証の要求は、Web文書121におけるユーザ認証の入力画面のURL(Uniform Resource Locator)にアクセスするための要求である。
【0056】
外部ブラウザ311からユーザ認証の要求が送信されると、Webサーバ112は、外部用仮想サーバ142によりユーザ認証の要求を受信する。ユーザ認証の要求はHTTPS通信により暗号化されているため、外部用仮想サーバ142は、受信した要求の暗号化を解除する。そして、外部用仮想サーバ142は、要求に対する応答として、ユーザ認証の入力画面を生成するためのWeb文書121を、HTTPS通信により外部ブラウザ311に返信する。
【0057】
ここで、記憶部12に記憶されたWeb文書121は、ユーザ認証画面を生成するための記述を含んでいる。ユーザ認証画面は、ユーザ認証の入力画面と、ユーザ認証の完了画面と、を含んでいる。
【0058】
Web文書121が返信されると、外部ブラウザ311は、返信されたWeb文書121を解析して画面を生成し、表示部34に表示する。外部ブラウザ311は、例えば図4示すユーザ認証の入力画面を表示部34に表示する。外部端末30のユーザは、ユーザ認証の入力画面において、操作部33を操作してユーザ名とパスワードとを入力することにより、ユーザ認証を行う。
【0059】
外部ブラウザ311は、入力されたユーザ名及びパスワードを、HTTPS通信によりWebサーバ112に送信する。外部用仮想サーバ142は、外部ブラウザ311から送信されたユーザ名及びパスワードが適正であるか否かによりユーザ認証が成功か失敗かを判定する。そして、外部用仮想サーバ142は、ユーザ認証の完了画面を生成するためのWeb文書121を、HTTPS通信により外部ブラウザ311に返信する。
【0060】
外部ブラウザ311は、操作部33により受け付けられた操作によりユーザ認証に成功した場合、ユーザ認証の完了画面として、例えば図5に示すようなユーザ認証に成功したことを示す画面を表示部34に表示する。これに対して、外部ブラウザ311は、操作部33により受け付けられた操作によりユーザ認証に失敗した場合、図示を省略するが、ユーザ認証の完了画面として、ユーザ認証に失敗したことを示す画面を表示部34に表示する。
【0061】
これに対して、HTTP通信を介して内蔵ブラウザ111からユーザ認証の要求を受信した場合、Webサーバ112は、ユーザ認証の入力画面を内蔵ブラウザ111に表示させずに、第1の画面として、ユーザ認証の完了画面を内蔵ブラウザ111に表示させる。具体的に説明すると、組み込み機器10のユーザが組み込み機器10を使用するために操作部13を操作した場合、内蔵ブラウザ111は、ユーザ認証の要求のHTML文書を、HTTP通信により組み込み機器10に送信する。ユーザ認証の要求は、Web文書121におけるユーザ認証の入力画面のURLにアクセスするための要求である。
【0062】
内蔵ブラウザ111からユーザ認証の要求が送信されると、Webサーバ112は、内部用仮想サーバ141によりユーザ認証の要求を受信する。このとき、ユーザ認証の要求は暗号化されていないため、内部用仮想サーバ141は、受信した要求に対する暗号化解除を実行しない。
【0063】
内蔵ブラウザ111からユーザ認証の要求を受信した場合、ユーザが内蔵ブラウザ111から操作した場合、高いセキュリティが保たれていることが想定される。そのため、内部用仮想サーバ141は、ユーザ認証の入力画面を表示させる処理をスキップして、ユーザ認証の完了画面を内蔵ブラウザ111に表示させる。
【0064】
具体的に説明すると、内蔵ブラウザ111からユーザ認証の要求を受信した場合、内部用仮想サーバ141は、リダイレクト又はURLの書き換えにより、要求の接続先をユーザ認証の入力画面からユーザ認証の完了画面に変更する。ここで、リダイレクトは、特定のURLにアクセスされた場合に異なるURLに転送する仕組みを意味する。
【0065】
リダイレクトを行う場合、内部用仮想サーバ141は、ユーザ認証の入力画面のURLを接続先として受信した要求を、ユーザ認証の完了画面のURLに転送する。或いは、URL書き換えを行う場合、内部用仮想サーバ141は、受信した要求の接続先のURLを、ユーザ認証の入力画面のURLからユーザ認証の完了画面のURLに変更する。
【0066】
このようなリダイレクト又はURL書き換えにより、内部用仮想サーバ141は、ユーザ認証の入力画面を表示させず、ユーザ認証の完了画面に誘導する。その結果、内部用仮想サーバ141は、要求に対する応答として、ユーザ認証の入力画面ではなく、ユーザ認証の完了画面を生成するためのWeb文書121を、HTTP通信により内蔵ブラウザ111に返信する。
【0067】
Web文書121が返信されると、内蔵ブラウザ111は、返信されたWeb文書121を解析して画面を生成し、表示部14に表示する。具体的には、内蔵ブラウザ111は、ユーザ認証の完了画面として、例えば図5に示すようなユーザ認証に成功したことを示す画面を表示部14に表示する。
【0068】
このように、Webサーバ112は、内蔵ブラウザ111からユーザ認証の要求を受信した場合、ユーザ認証の入力画面を表示させる処理を実行しない。これにより、組み込み機器10におけるユーザ認証処理の負荷を低減することができる。
【0069】
(3)WebAPIの認証
第3に、WebAPIの認証について説明する。アプリケーションサーバ113は、組み込み機器10に搭載されたアプリケーションソフトウェアに基づく処理を実行する。組み込み機器10には、開発元ベンダが用意したアプリケーションソフトウェアと、開発元ベンダ以外の第三者が開発した機器操作のアプリケーションソフトウェアと、が搭載される。アプリケーションソフトウェアは、WebAPIを呼び出して、組み込み機器10の操作を行う。
【0070】
WebAPIは、組み込み機器10を操作するための操作要求がHTML形式の文書で送信され、組み込み機器10が操作要求に従った操作を行った後、操作結果の応答文書を返す仕組みを意味する。組み込み機器10の不正操作を防ぐため、外部ネットワークから操作要求を受け付けるか否かの認証の仕組みを、Web規格に沿った形で用意する必要がある。
【0071】
図2に示すように、アプリケーションサーバ113は、認証制御部131と、WebAPIサーバ132と、の機能を備える。認証制御部131は、アプリケーションソフトウェアを使用するための認証処理を実行する。WebAPIサーバ132は、アプリケーションソフトウェアに基づく処理であるアプリケーション処理を実行する。
【0072】
WebAPIにより組み込み機器10を操作する場合、内蔵ブラウザ111又は外部ブラウザ311は、組み込み機器10における指定のURLに対して、組み込み機器10の操作要求のHTML文書を送信する。内蔵ブラウザ111又は外部ブラウザ311からアプリケーションサーバ113に直接アクセスすることは許可されず、リバースプロキシ経由でアクセスされる。
【0073】
Webサーバ112は、HTTP通信を介して内蔵ブラウザ111からWebAPI用のURLを接続先とする操作要求のHTML文書を受信すると、内部用リバースプロキシとして動作し、受信したHTML文書をアプリケーションサーバ113に転送する。一方で、Webサーバ112は、HTTPS通信を介して外部ブラウザ311からWebAPI用のURLを接続先とする操作要求のHTML文書を受信すると、外部用リバースプロキシとして動作し、受信したHTML文書を、暗号化を解除してからアプリケーションサーバ113に転送する。Webサーバ112が暗号化を解除するため、アプリケーションサーバ113は、暗号化されたHTTPS通信に対応していなくても良い。
【0074】
アプリケーションサーバ113において、認証制御部131は、WebAPIサーバ132が実際にWebAPIの操作を行う前に、操作要求の認証処理を行う。認証制御部131による認証処理は、ユーザが組み込み機器10自体にアクセスするためのユーザ認証とは別の、WebAPIを保護するための認証処理である。
【0075】
具体的に説明すると、認証制御部131は、操作要求のHTML文書に正しい認証情報が含まれているか否かを判定する。認証制御部131は、操作要求のHTML文書に正しい認証情報が含まれていない場合、操作要求を拒否し、WebAPIサーバ132に転送しない。
【0076】
ここで、認証情報は、図4に示したユーザ認証画面におけるユーザ認証が成功した場合に、Webブラウザによって操作要求のHTML文書に付与される。そのため、ユーザが外部ブラウザ311から操作した場合には、操作要求のHTML文書に正しい認証情報が付与される。一方で、ユーザが内蔵ブラウザ111から操作した場合には、ユーザ認証画面におけるユーザ認証がスキップされるため、操作要求のHTML文書に正しい認証情報が付与されない。
【0077】
内蔵ブラウザ111から操作要求のHTML文書が送信された場合、認証制御部131は、認証処理を実行せず、操作要求のHTML文書を無条件でWebAPIサーバ132に通過させる。これにより、内蔵ブラウザ111から送信された操作要求が認証制御部131で拒否されることを防止する。
【0078】
認証制御部131は、Webサーバ112からアプリケーションサーバ113に転送された操作要求の送信元が内蔵ブラウザ111であるか外部ブラウザ311であるかを判定する。ここで、操作要求はリバースプロキシとして機能するWebサーバ112から転送されるため、操作要求が内蔵ブラウザ111と外部ブラウザ311とのどちから送信された場合であっても、アプリケーションサーバ113にとっての直接的な送信元は、リバースプロキシとなる。そのため、アプリケーションサーバ113から見た送信元のアドレスは、どちらの場合でもループバックアドレスとなる。
【0079】
操作要求の送信元が内蔵ブラウザ111であるか外部ブラウザ311であるかをアプリケーションサーバ113が区別できるようにするため、図3に示すように、Webサーバ112は、アドレス付与部143,144の機能を更に備える。
【0080】
Webサーバ112は、内蔵ブラウザ111から送信された操作要求を内部用仮想サーバ141により受信した場合、アドレス付与部143の機能により、受信された操作要求に、その送信元のアドレスとしてループバックアドレスを付与する。また、Webサーバ112は、外部ブラウザ311から送信された操作要求を外部用仮想サーバ142により受信した場合、アドレス付与部144の機能により、受信された操作要求に、その送信元のアドレスとして外部ブラウザ311のアドレスを付与する。
【0081】
より詳細には、Webサーバ112は、内蔵ブラウザ111又は外部ブラウザ311から操作要求を受信した場合、操作要求のヘッダ又はクエリパラメータに送信元のアドレスを追加することにより、操作要求に送信元のアドレスを付与する。
【0082】
第1のアドレス付与方法として、リバースプロキシとして動作するWebサーバ112は、操作要求のヘッダに送信元のアドレスを追加する。操作要求のヘッダは、具体的には、操作要求のHTML文書のヘッダであるHTMLヘッダに相当する。HTML文書は、HTMLの仕様に基づくヘッダと、本文と、を含んでいる。HTML文書をWebAPIで使用する場合、操作要求はHTML文書の本文に記述される。
【0083】
HTMLヘッダには、公的規格で定められた標準のヘッダ名の他に、非標準のヘッダ名を使用することができる。送信元のアドレスを付与するための標準のヘッダ名は存在しない。しかしながら、デファクトスタンダードとして、X-Forwarded-For又はX-Real-IPというHTMLヘッダ名に、送信元のアドレスを付与することが多い。そのため、Webサーバ112は、X-Forwarded-For又はX-Real-IPに、送信元のアドレスを追加する。
【0084】
この場合、認証制御部131は、HTML文書のHTMLヘッダに、X-Forwarded-For又はX-Real-IPが存在するかを判定する。そして、X-Forwarded-For又はX-Real-IPの内容がループバックアドレスである場合、認証制御部131は、認証処理をスキップしてHTML文書をWebAPIサーバ132に通過させる。
【0085】
或いは、第2のアドレス付与方法として、リバースプロキシとして動作するWebサーバ112は、操作要求のクエリパラメータに送信元のアドレスを追加しても良い。クエリパラメータは、URLの末尾に付与する情報を意味する。クエリパラメータを用いる場合、Webサーバ112は、操作要求の接続先であるWebAPIのURLのクエリパラメータに、送信元のアドレスを追加する。
【0086】
この場合、認証制御部131は、HTML文書のURLを取得する。そして、URLのクエリパラメータの送信元のアドレスがループバックアドレスである場合、認証制御部131は、認証処理をスキップしてHTML文書をWebAPIサーバ132に通過させる。
【0087】
なお、第1のアドレス付与方法と第2のアドレス付与方法は、いずれもリバースプロキシによる書き換えを必要とする。特に、第1のアドレス付与方法は、HTML文書の中身の更新が必要となる。暗号化されたHTTPS通信では、通信経路の途中で通信の中身の参照及び改ざんができない。そのため、リバースプロキシによる書き換えの前に、HTTPSサーバにより、外部ブラウザ311から送信された操作要求を復号する必要がある。一方で、上述したように、Web文書121を配布する機能を有するWebサーバ112が、HTTPSサーバとして機能する。そのため、実施の形態1では、Webサーバ112とリバースプロキシとを別のユニットとして分離させずに、Webサーバ112がリバースプロキシとして動作する。
【0088】
このように操作要求に送信元のアドレスを付与すると、Webサーバ112は、操作要求をアプリケーションサーバ113に転送する。アプリケーションサーバ113において、認証制御部131は、操作要求に付与された送信元のアドレスに基づいて、操作要求の送信元が内蔵ブラウザ111であるか外部ブラウザ311であるかを判定する。
【0089】
送信元が外部ブラウザ311であると判定した場合、認証制御部131は、操作要求に含まれるユーザ認証の情報に基づいて認証処理を実行する。認証に成功した場合、認証制御部131は、操作要求をWebAPIサーバ132に転送する。これに対して、認証制御部131は、送信元が内蔵ブラウザ111であると判定した場合、認証処理を実行せず、操作要求をそのままWebAPIサーバ132に転送する。
【0090】
このように、認証制御部131は、外部ブラウザ311から操作要求が送信された場合にはユーザ認証画面で認証済みの結果を利用し、内蔵ブラウザ111から操作要求が送信された場合には認証処理をスキップする。そのため、組み込み機器10自体のユーザ認証とWebAPIの認証とを二重に求められることがないため、ユーザの負担を減らすことができる。
【0091】
特に、WebAPIが認証で保護されている場合、WebAPIの認証の仕様をアプリの開発元に公開し、仕様に従ったアプリケーションソフトウェアの開発する必要がある。一方で、第三者が開発したアプリケーションソフトウェアを組み込み機器10に搭載する場合、認定されたアプリケーションソフトウェアのみを組み込み機器10に搭載するようにすれば、WebAPIを不正に使用されるおそれがなく、且つ、組み込み機器10が不正操作されることがない。そのため、アプリケーションソフトウェアから認証無しにWebAPIを使用できるようにすれば、組み込み機器10の認証の仕様を第三者に公開する必要がなくなり、且つ、組み込み機器10のユーザの負担を減らすことができる。
【0092】
WebAPIサーバ132は、認証制御部131から操作要求を転送されると、転送された操作要求に従って、アプリケーションソフトウェアに基づくアプリケーション処理を実行する。アプリケーション処理は、例えば組み込み機器10が空調コントローラである場合、空調制御に関する処理である。アプリケーション処理を実行する際、WebAPIサーバ132は、Webサーバ112に対して、アプリケーション処理を実行するための操作画面を内蔵ブラウザ111又は外部ブラウザ311に表示するように指示する。
【0093】
具体的に説明すると、HTTP通信を介して内蔵ブラウザ111から操作要求を受信した場合、Webサーバ112は、第1の画面として、操作画面を内蔵ブラウザ111に表示させる。この場合、Webサーバ112は、内部用仮想サーバ141として動作し、操作要求に対する応答として、組み込み機器10の操作画面を生成するためのWeb文書121を、HTTP通信により内蔵ブラウザ111に送信する。ここで、記憶部12に記憶されたWeb文書121は、操作画面を生成するための記述を含む。
【0094】
Web文書121が送信されると、内蔵ブラウザ111は、Web文書121を解析して操作画面を生成し、表示部14に表示する。一例として、組み込み機器10が空調コントローラである場合、内蔵ブラウザ111は、図6に示す操作画面を表示部14に表示する。ユーザは、このような操作画面を見ながら、空調のオン/オフ、運転モードの切り替え、設定温度及び風量の設定等を入力することができる。
【0095】
一方で、HTTPS通信を介して外部ブラウザ311から操作要求を受信した場合、上述のように認証制御部131が認証処理を実行した後で、Webサーバ112は、第2の画面として、操作画面を外部ブラウザ311に表示させる。この場合、Webサーバ112は、外部用仮想サーバ142として動作し、操作要求に対する応答として、組み込み機器10の操作画面を生成するためのWeb文書121を、HTTPS通信により外部ブラウザ311に返信する。
【0096】
Web文書121が送信されると、外部ブラウザ311は、Web文書121を解析して操作画面を生成し、図6と同様の操作画面を表示部34に表示する。内蔵ブラウザ111に表示される操作画面と外部ブラウザ311に表示される操作画面とは、表示設定による違いを除いて、同じである。
【0097】
内蔵ブラウザ111及び外部ブラウザ311は、このような操作画面に対してユーザから入力された操作情報を受け付けて、Webサーバ112及びWebAPIサーバ132に送信する。WebAPIサーバ132は、送信された操作情報に従って、アプリケーション処理を実行する。
【0098】
次に、図7及び図8を参照して、表示システム1により実行される処理の流れについて説明する。
【0099】
第1に、図7を参照して、組み込み機器10により実行されるユーザ認証処理について説明する。図7に示すユーザ認証処理は、ユーザが組み込み機器10の操作部13又は外部端末30の操作部33を操作して、組み込み機器10の使用を開始することを望む場合に、実行される。
【0100】
ユーザ認証処理を開始すると、組み込み機器10のWebサーバ112は、ユーザ認証の要求を受信する(ステップS101)。具体的に説明すると、ユーザが組み込み機器10の操作部13を操作した場合、内蔵ブラウザ111は、組み込み機器10の内部通信を介して、Webサーバ112にユーザ認証の要求のHTML文書を送信する。これに対して、ユーザが外部端末30の操作部33を操作した場合、外部ブラウザ311は、外部ネットワークを介して、Webサーバ112にユーザ認証の要求のHTML文書を送信する。Webサーバ112は、このように内蔵ブラウザ111又は外部ブラウザ311から送信されたユーザ認証の要求のHTML文書を受信する。
【0101】
ユーザ認証の要求を受信すると、Webサーバ112は、受信した要求の送信元を判定する(ステップS102)。具体的に説明すると、Webサーバ112は、送信元のアドレスがループバックアドレスであるか否かを判定する。そして、Webサーバ112は、送信元のアドレスがループバックアドレスである場合、送信元が内蔵ブラウザ111であると判定し、送信元のアドレスがループバックアドレス以外のアドレスである場合、送信元が外部ブラウザ311であると判定する。
【0102】
要求の送信元が外部ブラウザ311である場合(ステップS102;外部ブラウザ)、Webサーバ112は、外部用仮想サーバ142により接続を受け付ける(ステップS103)。外部用仮想サーバ142は、受信した要求の暗号化を解除する。
【0103】
接続を受け付けると、外部用仮想サーバ142は、ユーザ認証の入力画面を記述したWeb文書121を外部ブラウザ311に送信して、例えば図4に示したユーザ認証の入力画面を表示部34に表示させる(ステップS104)。
【0104】
ユーザ認証の入力画面を表示させると、外部用仮想サーバ142は、ユーザ認証の入力画面に入力されたユーザ名とパスワードとを外部ブラウザ311から受信し、ユーザ認証に成功したか否かを判定する(ステップS105)。
【0105】
認証に失敗した場合(ステップS105;NO)、外部用仮想サーバ142は、認証失敗画面を記述したWeb文書121を外部ブラウザ311に送信して、認証失敗画面を表示部34に表示させる(ステップS106)。
【0106】
これに対して、認証に成功した場合(ステップS105;YES)、外部用仮想サーバ142は、認証成功画面を記述したWeb文書121を外部ブラウザ311に送信して、例えば図5に示した認証成功画面を表示部34に表示させる(ステップS107)。
【0107】
一方で、ステップS102において、ユーザ認証の要求の送信元が内蔵ブラウザ111である場合(ステップS102;内蔵ブラウザ)、Webサーバ112は、内部用仮想サーバ141により接続を受け付ける(ステップS108)。
【0108】
接続を受け付けると、内部用仮想サーバ141は、リダイレクト又はURL書き換えにより、受信した要求を認証成功画面のURLに誘導する(ステップS109)。そして、内部用仮想サーバ141は、認証成功画面を記述したWeb文書121を内蔵ブラウザ111に送信して、例えば図5に示した認証成功画面を表示部14に表示させる(ステップS110)。以上により、図7に示したユーザ認証処理は終了する。
【0109】
第2に、図8を参照して、組み込み機器10により実行される操作画面表示処理について説明する。図8に示す操作画面表示処理は、図7に示したユーザ認証処理によるユーザ認証が成功した後において、実行される。
【0110】
操作画面表示処理を開始すると、Webサーバ112は、組み込み機器10の操作要求を受信する(ステップS201)。具体的に説明すると、ユーザが組み込み機器10の操作部13を操作した場合、内蔵ブラウザ111は、組み込み機器10の内部通信を介して、Webサーバ112に操作要求のHTML文書を送信する。これに対して、ユーザが外部端末30の操作部33を操作した場合、外部ブラウザ311は、外部ネットワークを介して、Webサーバ112に操作要求のHTML文書を送信する。Webサーバ112は、このように内蔵ブラウザ111又は外部ブラウザ311から送信された操作要求のHTML文書を受信する。
【0111】
操作要求を受信すると、Webサーバ112は、受信した操作要求の送信元を判定する(ステップS202)。具体的に説明すると、Webサーバ112は、送信元のアドレスがループバックアドレスであるか否かを判定する。そして、Webサーバ112は、送信元のアドレスがループバックアドレスである場合、送信元が内蔵ブラウザ111であると判定し、送信元のアドレスがループバックアドレス以外のアドレスである場合、送信元が外部ブラウザ311であると判定する。
【0112】
操作要求の送信元が外部ブラウザ311である場合(ステップS202;外部ブラウザ)、Webサーバ112は、外部用仮想サーバ142により接続を受け付ける(ステップS203)。外部用仮想サーバ142は、受信した操作要求の暗号化を解除する。
【0113】
接続を受け付けると、アドレス付与部144は、送信元のアドレスを操作要求に付与する(ステップS204)。具体的に説明すると、アドレス付与部144は、送信元のアドレスとして外部ブラウザ311のアドレスを、受信した操作要求のヘッダ又はクエリパラメータに追加する。
【0114】
送信元のアドレスを付与すると、アドレス付与部144は、アプリケーションサーバ113に操作要求を転送する(ステップS205)。
【0115】
一方で、ステップS202において、操作要求の送信元が内蔵ブラウザ111である場合(ステップS202;内蔵ブラウザ)、Webサーバ112は、内部用仮想サーバ141により接続を受け付ける(ステップS206)。
【0116】
接続を受け付けると、アドレス付与部143は、送信元のアドレスを操作要求に付与する(ステップS207)。具体的に説明すると、アドレス付与部144は、送信元のアドレスとしてループバックアドレスを、受信した操作要求のヘッダ又はクエリパラメータに追加する。
【0117】
送信元のアドレスを付与すると、アドレス付与部144は、アプリケーションサーバ113に操作要求を転送する(ステップS208)。
【0118】
Webサーバ112から操作要求が転送されると、アプリケーションサーバ113において、認証制御部131は、転送された操作要求の送信元を判定する(ステップS209)。具体的に説明すると、認証制御部131は、操作要求に付与されたアドレスに基づいて、操作要求の送信元が外部ブラウザ311であるか内蔵ブラウザ111であるかを判定する。
【0119】
送信元が外部ブラウザ311である場合(ステップS209;外部ブラウザ)、認証制御部131は、認証処理を実行する(ステップS210)。具体的に説明すると、認証制御部131は、ユーザ認証の際に外部ブラウザ311により付与された正しい認証情報が、転送された操作要求に含まれるか否かを判定する。操作要求に正しい認証情報が含まれる場合、認証制御部131は、認証に成功したと判定し、操作要求をWebAPIサーバ132に通過させる。これに対して、操作要求に正しい認証情報が含まれない場合、認証制御部131は、認証に失敗したと判定し、操作要求をWebAPIサーバ132に通過させない。
【0120】
一方で、送信元が内蔵ブラウザ111である場合(ステップS209;内蔵ブラウザ)、認証制御部131は、ステップS210の認証処理をスキップし、転送された操作要求を無条件でWebAPIサーバ132に通過させる。
【0121】
認証制御部131から操作要求を転送されると、WebAPIサーバ132は、Webサーバ112を介して、内蔵ブラウザ111又は外部ブラウザ311に操作画面を表示させる。そして、WebAPIサーバ132は、転送された操作要求に基づくアプリケーション処理を実行する(ステップS211)。
【0122】
具体的に説明すると、WebAPIサーバ132は、Webサーバ112に対して、操作画面を表示するように指示する。Webサーバ112は、内蔵ブラウザ111と外部ブラウザ311とのうちの操作要求の送信元のWebブラウザに、操作画面を記述するWeb文書121を送信し、例えば図6に示した操作画面を表示部14又は表示部34に表示させる。WebAPIサーバ132は、操作画面に対してユーザから入力された操作情報に従って、アプリケーション処理を実行する。以上により、図8に示した操作画面表示処理は終了する。
【0123】
以上説明したように、実施の形態1に係る組み込み機器10において、Webサーバ112は、記憶部12に記憶されたWeb文書121を暗号化されない通信を介して内蔵ブラウザ111に送信し、Web文書121に基づく第1の画面を内蔵ブラウザ111に表示させる。一方で、Webサーバ112は、記憶部12に記憶されたWeb文書121を暗号化された通信を介して外部ブラウザ311に送信し、Web文書121に基づく第2の画面を外部ブラウザ311に表示させる。
【0124】
このように、同じWeb文書121に基づく画面を内蔵ブラウザ111と外部ブラウザ311とに表示させる組み込み機器10において、内蔵ブラウザ111と外部ブラウザ311で異なるセキュリティを適用するため、内蔵ブラウザ111との通信における処理負荷を軽減することができる。その結果として、組み込み機器10の性能を向上させることができる。
【0125】
また、実施の形態1に係る組み込み機器10は、外部ブラウザ311からユーザ認証の要求を受信した場合、ユーザ認証の入力画面を外部ブラウザ311に表示させる一方で、内蔵ブラウザ111からユーザ認証の要求を受信した場合、ユーザ認証の入力画面を内蔵ブラウザ111に表示させずに、ユーザ認証の完了画面を内蔵ブラウザ111に表示させる。このように、内蔵ブラウザ111から接続された場合と外部ブラウザ311から接続された場合とで、セキュリティの違いを考慮して、ユーザ認証の方法を切り替えることができる。その結果、ユーザの操作性を向上させることができる。
【0126】
また、実施の形態1に係る組み込み機器10において、Web文書121を配布するWebサーバ112が、WebAPI用のリバースプロキシを兼用し、更に仮想サーバを動作させる。これにより、外部用Webサーバ、外部用リバースプロキシ、内部用Webサーバ、内部用リバースプロキシの4つの異なる機能をもつサーバを、1つのWebサーバ112で兼用することができる。その結果、組み込み機器10のリソースを節約することができる。
【0127】
また、実施の形態1に係る組み込み機器10において、Webサーバ112は、内蔵ブラウザ111からユーザ認証の要求を受信した場合、リダイレクト又はURLの書き換えにより、ユーザ認証の要求の接続先をユーザ認証の入力画面から完了画面に変更する。内蔵ブラウザ111からの接続と外部ブラウザ311からの接続とで画面を切り替える処理は、Web文書121のJavaScriptに記述することでも実現できる。しかしながら、Web文書121のJavaScriptのソースコードは、Webブラウザから参照することができる。そのため、内部用の処理をJavaScriptに記述すると、内部用の処理が漏洩することにつながる。実施の形態1では、リダイレクト又はURLの書き換えを用いるため、Web文書121内のJavaScriptのソースコードには漏洩してもよい処理だけを記述することができ、内部用の処理の漏洩を防ぐことができる。
【0128】
(実施の形態2)
次に、実施の形態2について説明する。実施の形態1と同様の構成及び機能については、適宜説明を省略する。
【0129】
上記実施の形態1では、Webサーバ112は、ユーザ認証画面のURL書き換え又はリダイレクトを行うことで、内蔵ブラウザ111からWebサーバ112に接続された場合にユーザ認証を省くことができた。これに対して、実施の形態2では、内蔵ブラウザ111からWebサーバ112に接続された場合、Webサーバ112は、組み込み機器10に搭載された認証デバイス400を用いたユーザ認証を行う画面に誘導する。
【0130】
外部ブラウザ311を操作するユーザは、通常は組み込み機器10から物理的に離れた場所に存在しているため、組み込み機器10に搭載されたハードウェアデバイスを操作することが困難である。しかしながら、ハードウェアデバイスを操作可能なアプリケーションサーバ113が組み込み機器10上で動作する構成では、内蔵ブラウザ111を操作するユーザは、ハードウェアデバイスを操作することが可能である。これを利用して、実施の形態2では、ハードウェアデバイスとして認証デバイス400を組み込み機器10に搭載し、認証デバイス400を用いて組み込み機器10を操作するユーザを認証する。
【0131】
図9を参照して、実施の形態2におけるユーザ認証に関する構成について説明する。実施の形態2に係る組み込み機器10は、認証デバイス400を更に備える。認証デバイス400は、組み込み機器10を操作するユーザを認証するデバイスである。
【0132】
認証デバイス400は、一例として、指紋認証、顔認証、静脈認証、虹彩認証等のようなユーザの生体認証を行う生体認証デバイスである。或いは、認証デバイス400は、接触型IC(Integrated Circuit)カードリーダ、NFC(Near Field Communication:近距離無線通信)リーダ等のような、ユーザが保有するID(Identification)カードを読み取る読み取りデバイスであっても良い。
【0133】
このように、認証デバイス400は、ユーザが内蔵ブラウザ111を見ながら手元で操作可能なデバイスである。認証デバイス400によるユーザ認証のためには、ユーザが認証デバイス400に物理的にアクセスすることが必要である。
【0134】
Webサーバ112は、暗号化されないHTTP通信を介して内蔵ブラウザ111からユーザ認証の要求を受信した場合、内部用仮想サーバ141の機能により、第1の画面として、認証デバイス400の操作を促す画面を内蔵ブラウザ111に表示させる。
【0135】
具体的に説明すると、Webサーバ112は、リダイレクト又はURLの書き換えにより、ユーザ認証の要求の接続先を、図4に示したユーザ認証の入力画面から、認証デバイス400の操作を促す画面に変更する。そして、Webサーバ112は、認証デバイス400の操作を促す画面を生成するためのWeb文書121を、HTTP通信を介して内蔵ブラウザ111に送信する。なお、実施の形態2において、Web文書121は、認証デバイス400の操作を促す画面を生成するための記述を含む。
【0136】
内蔵ブラウザ111は、Webサーバ112から送信されたWeb文書121に基づく第1の画像として、例えば図10に示すような、ユーザに認証デバイス400を用いたユーザ認証を行うように指示する画面を表示部14に表示する。ユーザは、このような画面を見ると、認証デバイス400に物理的にアクセスして、生体認証又はカード読み取り認証を行う。
【0137】
このとき、Webサーバ112は、内蔵ブラウザ111から送信されたユーザ認証の要求に対して、アドレス付与部143により送信元のアドレスであるループバックアドレスを付与し、ユーザ認証の要求をアプリケーションサーバ113に転送する。これにより、Webサーバ112は、認証デバイス400を制御するためのWebAPIを呼び出し、認証デバイス400の動作を開始させる。ユーザ認証の要求は、実施の形態1で説明した、内蔵ブラウザ111から送信された操作要求と同様に、認証制御部131による認証処理は実行されずに、WebAPIサーバ132に転送される。
【0138】
その後、WebAPIサーバ132は、認証デバイス400を監視し、認証デバイス400によるユーザ認証が成功したか否かを判定する。そして、WebAPIサーバ132は、ユーザ認証の結果を、Webサーバ112を経由して内蔵ブラウザ111に通知する。例えば、ユーザ認証に成功した場合、WebAPIサーバ132は、Webサーバ112を介して、図5に示したようなユーザ認証に成功したことを示す画面を内蔵ブラウザ111に表示させる。また、ユーザ認証に失敗した場合、WebAPIサーバ132は、Webサーバ112を介して、ユーザ認証に失敗したことを示す画面を内蔵ブラウザ111に表示させる。
【0139】
WebAPIサーバ132から内蔵ブラウザ111への通知は、Webの仕様に従う必要がある。1つの方法として、内蔵ブラウザ111上で動作しているJavaScriptからポーリングで定期的にユーザ認証の結果を問い合わせる方法が挙げられる。或いは、別の方法として、認証デバイス400の動作開始時に、内蔵ブラウザ111がWebAPIサーバ132にWebSocketの技術により接続し、WebAPIサーバ132がWebSocketで内蔵ブラウザ111にユーザ認証の成功を通知する方法が挙げられる。
【0140】
暗号化されたHTTPS通信を介して外部ブラウザ311からユーザ認証の要求を受信した場合は、Webサーバ112は、外部用仮想サーバ142の機能により、実施の形態1と同様の処理を実行する。具体的に説明すると、Webサーバ112は、記憶部12に記憶されたWeb文書121を、HTTPS通信を介して外部ブラウザ311に送信する。そして、Webサーバ112は、第2の画面として、例えば図4に示したような、認証デバイス400を使用しないユーザ認証の入力画面を外部ブラウザ311に表示させる。
【0141】
なお、認証デバイス400は、工場出荷時に組み込み機器10に予め搭載されていても良い。或いは、認証デバイス400は、組み込み機器10に設けられたスロット、USBコネクタ等に接続されることで、組み込み機器10に後付けで追加されても良い。上述したように、アプリケーションサーバ113には、後付けでアプリケーションソフトウェアを追加することができる。そのため、アプリケーションソフトウェアとして認証デバイス400の操作を行うWebAPIを実装することにより、ユーザ認証として、認証デバイス400によるユーザ認証を後付けで追加することもできる。
【0142】
認証デバイス400は、生体認証デバイス又は読み取りデバイスであることに限らない。例えば、認証デバイス400は、PIN(Personal Identification Number)コードによるユーザ認証を行うデバイスであっても良い。PINコードを用いる場合、組み込み機器10のローカル記憶域にユーザ名とパスワードとが記述される。そして、PINコードの4桁の数字は、ローカル記憶域のアクセスキーとして使用される。PINコードを用いる場合にも、ローカル記憶域へのハードウェアアクセスが必要になるため、認証デバイス400が生体認証デバイス又は読み取りデバイスである場合と類似の方法が使用可能である。
【0143】
(実施の形態3)
次に、実施の形態3について説明する。実施の形態1,2と同様の構成及び機能については、適宜説明を省略する。
【0144】
上記実施の形態1では、Webサーバ112は、内部用仮想サーバ141の機能と、外部用仮想サーバ142の機能と、を備えていた。これに対して、実施の形態3では、Webサーバ112は、仮想サーバの機能を持たない。
【0145】
仮想サーバの機能を使用せずに、内蔵ブラウザ111からの接続と外部ブラウザ311からの接続とでセキュリティに違いを設けるための1つの方法として、1つのサーバでHTTPサーバとHTTPSサーバとの両方を動作させる方法がある。具体的には、1つのWebサーバ112が、HTTPサーバとHTTPSサーバとの両方として動作することができる。
【0146】
この場合、Webサーバ112は、内部通信を介して内蔵ブラウザ111から接続を受け付けた場合、HTTPサーバによりその接続を受け付ける。一方で、Webサーバ112は、外部ネットワークを介して外部端末30上の外部ブラウザ311から接続を受け付けた場合、HTTPSサーバによりその接続を受け付ける。このとき、Webサーバ112は、ファイヤーウォールの機能により、内蔵ブラウザ111からHTTPサーバに接続できるが、外部ネットワークからはHTTPサーバに接続できないように制御する。これにより、内蔵ブラウザ111からの接続と外部ブラウザ311からの接続とでセキュリティに違いを設けるという課題を解決することができる。
【0147】
しかしながら、1つのサーバでHTTPサーバとHTTPSサーバとの両方を動作させた場合、HTTPサーバとHTTPSサーバとが分離されていない。そのため、接続元が内蔵ブラウザ111であるか外部ブラウザ311であるかに応じて、リダイレクト及びURL書き換えを行うことができない。
【0148】
仮想サーバの機能を使用せずにリダイレクト及びURL書き換えを行うための1つの方法として、HTTPサーバとHTTPSサーバとで使用するポート番号が異なることを利用して、同一のWebサーバ112を2つ用意する方法がある。具体的に説明すると、2つのWebサーバ112のうちの一方がHTTP用の設定で起動し、他方がHTTPS用の設定で起動する。
【0149】
この場合、HTTPの設定とHTTPSの設定とが分かれているため、接続元が内蔵ブラウザ111であるか外部ブラウザ311であるかに応じて、リダイレクト及びURL書き換えに対応可能になる。但し、このように2つのWebサーバ112が起動する場合、組み込み機器10で使用されるリソースが増加するという問題がある。
【0150】
そこで、実施の形態3では、Webサーバ112の仮想化を採用する。ここで、Webサーバ112の仮想化とは、1つのWebサーバアプリケーションを起動し、そのWebサーバアプリケーション内で異なる複数のWebサーバを動作せることを意味する。言い換えると、Webサーバ112の仮想化は、Webサーバソフトウェアのみで実現可能な、Webサーバソフトウェアが持つ機能を意味する。Webサーバソフトウェアは、例えばNginx(登録商標)を指す。
【0151】
Webサーバ112を仮想化するための1つの方法として、実施の形態3では、仮想マシンの技術を使用する。仮想マシンの技術を使用するためには、Webサーバソフトウェア以外に、仮想マシンソフトウェアを必要とする。仮想マシンソフトウェアは、例えばLinux(登録商標)KVM、VirtualBox又はVMWare(登録商標)を指す。
【0152】
仮想マシンの技術を使用する場合、組み込み機器10上で複数の仮想マシンが動作する。そして、Webサーバ112として、複数の仮想マシン上で、複数の仮想的なWebサーバが動作する。Webサーバ112は、第1の仮想マシンにより内蔵ブラウザ111との間で暗号化されない通信を行い、第2の仮想マシンにより外部ブラウザ311との間で暗号化された通信を行う。
【0153】
具体的には図11に示すように、実施の形態3に係る組み込み機器10は、複数の仮想マシン1~3の機能を備える。各仮想マシン1~3は、組み込み機器10のホストOS(Operating System)550上で動作する。仮想マシン1~3は、それぞれライブラリ512,522,532に基づいて動作する。第1の仮想マシン1上において、OS513及びHTTPサーバ511が動作する。第2の仮想マシン2上において、OS523及びHTTPSサーバ521が動作する。第3の仮想マシン3上において、OS533及びアプリケーションサーバ531が動作する。このように、各仮想マシン1~3上で異なるOSが個別に動作し、各OS上で個別にサーバが動作する。
【0154】
内蔵ブラウザ111からWebサーバ112に接続された場合、第1の仮想マシン1上で動作するHTTPサーバ511が接続を受け付ける。これに対して、外部ブラウザ311からWebサーバ112に接続された場合、第2の仮想マシン2上で動作するHTTPSサーバ521が接続を受け付ける。そして、第1の仮想マシン1上で実施の形態1で説明した内部用仮想サーバ141と同様の処理が実行され、第2の仮想マシン2上で実施の形態1で説明した外部用仮想サーバ142と同様の処理が実行され、第3の仮想マシン3上で実施の形態1で説明したアプリケーションサーバ113と同様の処理が実行される。その際、異なる仮想マシン間でネットワークファイルを共有することにより、第1の仮想マシン1と第2の仮想マシン2は、共通のWeb文書121を使用する。
【0155】
このように、実施の形態3では、Webサーバ112は、仮想サーバ機能を使用せずに、組み込み機器10上で複数の仮想マシン1~3を動作させる。そして、Webサーバ112は、第1の仮想マシン1上でHTTPサーバ511を動作させ、第2の仮想マシン2上でHTTPSサーバ521を動作させる。外部ネットワークからのアクセスが第2の仮想マシン2に限られるため、セキュリティを向上させることができる。
【0156】
なお、図11に示したシステム構成は、いくつかの種類の仮想マシンのうちの、ホスト型と呼ばれる仮想マシンを使用した例を示している。しかしながら、他の種類の仮想マシンを使用した場合であっても、同一の組み込み機器10上で複数の仮想マシンを動作させるという点では変わらないため、他の種類の仮想マシンを使用しても良い。
【0157】
(実施の形態4)
次に、実施の形態4について説明する。実施の形態1~3と同様の構成及び機能については、適宜説明を省略する。
【0158】
上記実施の形態3では、組み込み機器10上で複数の仮想マシンを動作させた。但し、組み込み機器10のCPU、メモリ等のハードウェアリソースは、一般的なパソコンと比べて小さいため、複数の仮想マシンを動作させることは難しい場合がある。そこで、実施の形態4では、Webサーバ112を仮想化するための別の方法として、コンテナ仮想化技術を使用する。
【0159】
コンテナ仮想化技術は、仮想マシンより少ないハードウェアリソースで実現可能な簡易的な仮想化ソフトウェアである。コンテナ仮想化技術を使用するためには、Webサーバソフトウェア以外に、コンテナ仮想化ソフトウェアを必要とする。コンテナ仮想化ソフトウェアは、例えばDocker(登録商標)を指す。
【0160】
コンテナ仮想化では、Webサーバ112及びその動作に必要な設定ファイルをコンテナと呼ばれる1つのパッケージにまとめて、コンテナ単位で動作させる。言い換えると、組み込み機器10上で複数のコンテナが生成される。そして、Webサーバ112として、複数のコンテナ上で、複数の仮想的なWebサーバが動作する。コンテナ仮想化は、同一のWebサーバ112を複数起動させる方法に類似しているが、コンテナ仮想化では、動作中のコンテナごとにファイルシステムが分離される。
【0161】
実施の形態3で説明した仮想マシンを使用する構成では、マシン自体を仮想化して、仮想マシンごとに独立したOSを動作させた。これに対して、コンテナ仮想化では、動作しているOSは組み込み機器10のOS1つだけであるため、原理的に、仮想マシンを使用する構成に比べて使用するハードウェアリソースが少ない。
【0162】
Webサーバ112は、コンテナ仮想化技術により生成された第1のコンテナにより、内蔵ブラウザ111との間で暗号化されない通信を行い、コンテナ仮想化技術により生成された第2のコンテナにより、外部ブラウザ311との間で暗号化された通信を行う。
【0163】
具体的には図12に示すように、実施の形態4に係る組み込み機器10は、複数のコンテナ1~3及びコンテナ管理部640の機能を備える。各コンテナ1~3は、コンテナ管理部640により管理され、組み込み機器10のOS650上で動作する。コンテナ1~3は、それぞれライブラリ612,622,632に基づいて動作する。第1のコンテナ1上において、HTTPサーバ611が動作する。第2のコンテナ2上において、HTTPSサーバ621が動作する。第3のコンテナ3上において、アプリケーションサーバ631が動作する。このように、各仮想マシン上で異なるOSが個別に動作し、各OS上で個別にサーバが動作する。
【0164】
内蔵ブラウザ111からWebサーバ112に接続された場合、第1のコンテナ1上で動作するHTTPサーバ611が接続を受け付ける。これに対して、外部ブラウザ311からWebサーバ112に接続された場合、第2のコンテナ2上で動作するHTTPSサーバ621が接続を受け付ける。そして、第1のコンテナ1上で実施の形態1で説明した内部用仮想サーバ141と同様の処理が実行され、第2のコンテナ2上で実施の形態1で説明した外部用仮想サーバ142と同様の処理が実行され、第3のコンテナ3上で実施の形態1で説明したアプリケーションサーバ113と同様の処理が実行される。
【0165】
Webサーバ112のリダイレクト及びURL書き換えは、第1のコンテナ1内で設定される。各コンテナ1~3から組み込み機器10自体のファイルシステムにアクセスすることも可能であるため、画面を共通化するためのWeb文書121は、組み込み機器10側のファイルシステムに配置しておいてもよい。
【0166】
このように、実施の形態4では、Webサーバ112は、組み込み機器10上で複数のコンテナ1~3を生成する。そして、Webサーバ112は、第1のコンテナ1上でHTTPサーバ611を動作させ、第2のコンテナ2上でHTTPSサーバ621を動作させる。コンテナごとにファイルシステムが分離されているため、内蔵ブラウザ111専用の画面を第1コンテナ1のみに含めることで、外部ネットワークからは内蔵ブラウザ111専用の画面にアクセスできないようになる。
【0167】
(変形例)
以上、実施の形態を説明したが、各実施の形態を組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
【0168】
例えば、上記実施の形態では、組み込み機器10は、(1)通信の暗号化、(2)ユーザ認証、(3)WebAPIの認証のそれぞれについて、内蔵ブラウザ111における表示処理と外部ブラウザ311における表示処理とで異なるセキュリティ対策を施した。しかしながら、組み込み機器10は、これら(1)~(3)の全てについて異なるセキュリティ対策を施すことに限らず、(1)~(3)のうちの少なくとも1つについて異なるセキュリティ対策を施しても良い。
【0169】
また、ユーザから入力された設定により、内蔵ブラウザ111用のユーザ認証画面を変更できるようにしても良い。例えば、Webサーバ112は、内蔵ブラウザ111からユーザ認証の要求を受信した場合、デフォルトでは、外部ブラウザ311からユーザ認証の要求を受信した場合と同じユーザ認証の入力画面を内蔵ブラウザ111に表示させる。そして、Webサーバ112は、内蔵ブラウザ111からユーザ認証の要求を受信した場合に、内蔵ブラウザ111にデフォルトの入力画面を表示させるか、又は、入力画面を表示させずにユーザ認証の完了画面を表示させるかを、ユーザから操作部13を介して入力された設定に応じて切り替えても良い。更には、実施の形態2で説明した認証デバイス400の操作を促す画面を表示させる選択肢が加えられても良い。Webサーバ112は、ユーザから入力された設定に応じて、リダイレクト又はURL書き換えにより、内蔵ブラウザ111からユーザ認証の要求を受信した場合の画面を切り替えることができる。
【0170】
上記実施の形態では、組み込み機器10は、空調コントローラであるとして説明した。しかしながら、組み込み機器10は、これに限らず、給湯機、炊飯器、洗濯機、冷蔵庫、テレビ等の電子機器であっても良いし、これらを操作するためのコントローラであっても良い。
【0171】
上記実施の形態では、暗号化されない通信及び暗号化された通信として、それぞれHTTP及びHTTPSによる通信を例にとって説明した。しかしながら、HTTP及びHTTPS以外の方式の通信を用いても良い。
【0172】
上記実施の形態では、制御部11において、CPUが記憶部12に記憶されたプログラムを実行することによって、内蔵ブラウザ111、Webサーバ112及びアプリケーションサーバ113として機能した。また、制御部31において、CPUが記憶部32に記憶されたプログラムを実行することによって、外部ブラウザ311として機能した。しかしながら、制御部11,31は、専用のハードウェアであってもよい。専用のハードウェアとは、例えば単一回路、複合回路、プログラム化されたプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、又は、これらの組み合わせ等である。制御部11,31が専用のハードウェアである場合、各部の機能それぞれを個別のハードウェアで実現してもよいし、各部の機能をまとめて単一のハードウェアで実現してもよい。
【0173】
また、各部の機能のうち、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現してもよい。このように、制御部11,31は、ハードウェア、ソフトウェア、ファームウェア、又は、これらの組み合わせによって、上述の各機能を実現することができる。
【0174】
組み込み機器10及び外部端末30のそれぞれの動作を規定するプログラムを、パーソナルコンピュータ、情報端末装置等の既存のコンピュータに適用することで、当該コンピュータを、組み込み機器10及び外部端末30のそれぞれとして機能させることも可能である。
【0175】
また、このようなプログラムの配布方法は任意であり、例えば、CD-ROM(Compact Disk ROM)、DVD(Digital Versatile Disk)、MO(Magneto Optical Disk)、メモリカード等のコンピュータ読み取り可能な記録媒体に格納して配布してもよいし、インターネット等の通信ネットワークを介して配布してもよい。
【0176】
本開示は、本開示の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この開示を説明するためのものであり、本開示の範囲を限定するものではない。すなわち、本開示の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして特許請求の範囲内及びそれと同等の開示の意義の範囲内で施される様々な変形が、この開示の範囲内とみなされる。
【符号の説明】
【0177】
1 表示システム、10 組み込み機器、11,31 制御部、12,32 記憶部、13,33 操作部、14,34 表示部、15,35 通信部、30 外部端末、111 内蔵ブラウザ、112 Webサーバ、113,531,631 アプリケーションサーバ、121 Web文書、131 認証制御部、132 WebAPIサーバ、141 内部用仮想サーバ、142 外部用仮想サーバ、143,144 アドレス付与部、311 外部ブラウザ、400 認証デバイス、511,611 HTTPサーバ、521,621 HTTPSサーバ、512,522,532,612,622,632 ライブラリ、513,523,533,550,650 OS、640 コンテナ管理部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12