(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023093961
(43)【公開日】2023-07-05
(54)【発明の名称】接続制御装置、接続制御方法、及びプログラム
(51)【国際特許分類】
G06F 21/44 20130101AFI20230628BHJP
H04L 67/02 20220101ALI20230628BHJP
【FI】
G06F21/44
H04L67/02
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021209120
(22)【出願日】2021-12-23
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】311012169
【氏名又は名称】NECパーソナルコンピュータ株式会社
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100175824
【弁理士】
【氏名又は名称】小林 淳一
(74)【代理人】
【識別番号】100206081
【弁理士】
【氏名又は名称】片岡 央
(72)【発明者】
【氏名】岩穴口 芳史
(57)【要約】
【課題】サーバとクライアントとの接続について、簡易な手順でセキュリティが得られるようにする。
【解決手段】クライアントがアクセスに用いるアクセス情報をサーバが生成し、クライアントがアクセスするウェブコンテンツと同一オリジンのURLに、サーバがウェブブラウザをアクセスさせて、URLに記述された接続用ポート番号とアクセス情報とをウェブブラウザのローカルストレージに保存させ、クライアントが同一オリジンのURLにアクセスしてローカルストレージから接続用ポート番号とアクセス情報とを取得し、サーバの接続用ポート番号のポートにアクセスしたことに応じて、サーバがアクセス情報を利用して認証処理を実行し、サーバとクライアントとの接続を確立させる接続制御部とを備えて接続制御装置を構成する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
サーバにクライアントを接続させる接続制御装置であって、
前記クライアントが前記サーバにアクセスするのに用いるアクセス情報を生成するアクセス情報生成部と、
前記クライアントがアクセスするウェブコンテンツと同一オリジンで、所定の接続用ポート番号と前記アクセス情報とを記述したURL(Uniform Resource Locator)にウェブブラウザをアクセスさせることにより、前記URLに記述された前記接続用ポート番号と前記アクセス情報とを前記ウェブブラウザのローカルストレージに保存させる情報保存制御部と、
前記クライアントを起動させる起動制御部と、
起動された前記クライアントが、前記同一オリジンのURLにアクセスしてローカルストレージから前記接続用ポート番号と前記アクセス情報とを取得し、前記接続用ポート番号のポートを使用して前記サーバにアクセスしてきたことに応じて、前記クライアントが取得したアクセス情報を利用して認証処理を実行し、認証成立に応じて前記サーバと前記クライアントとの接続を確立させる接続制御部と
を備える接続制御装置。
【請求項2】
前記アクセス情報は、認証に使用可能な回数が制限されるチケットである
請求項1に記載の接続制御装置。
【請求項3】
空き状態にあるポートのうちから決定したポートのポート番号を前記接続用ポート番号として取得するポート番号取得部を備える
請求項1または2に記載の接続制御装置。
【請求項4】
ウェブシステムを外部から利用するためのプログラムの呼出機能を有さないサーバにウェブアクセス機能を有するクライアントを接続させる接続制御装置における接続制御方法であって、
前記クライアントが前記サーバにアクセスするのに用いるアクセス情報を生成するステップと、
前記クライアントがアクセスするウェブコンテンツと同一オリジンで、所定の接続用ポート番号と前記アクセス情報とを記述したURLにウェブブラウザをアクセスさせることにより、前記URLに記述された前記接続用ポート番号と前記アクセス情報とを前記ウェブブラウザのローカルストレージに保存させるステップと、
前記クライアントを起動させるステップと、
起動された前記クライアントが、前記同一オリジンのURLにアクセスしてローカルストレージから前記接続用ポート番号と前記アクセス情報とを取得し、前記接続用ポート番号のポートを使用して前記サーバにアクセスしてきたことに応じて、前記クライアントが取得したアクセス情報を利用して認証処理を実行し、認証成立に応じて前記サーバと前記クライアントとの接続を確立させるステップと
を含む接続制御方法。
【請求項5】
ウェブシステムを外部から利用するためのプログラムの呼出機能を有さないサーバにウェブアクセス機能を有するクライアントを接続させる接続制御装置としてのコンピュータを、
前記クライアントが前記サーバにアクセスするのに用いるアクセス情報を生成するアクセス情報生成部、
前記クライアントがアクセスするウェブコンテンツと同一オリジンで、所定の接続用ポート番号と前記アクセス情報とを記述したURLにウェブブラウザをアクセスさせることにより、前記URLに記述された前記接続用ポート番号と前記アクセス情報とを前記ウェブブラウザのローカルストレージに保存させる情報保存制御部、
前記クライアントを起動させる起動制御部、
起動された前記クライアントが、前記同一オリジンのURLにアクセスしてローカルストレージから前記接続用ポート番号と前記アクセス情報とを取得し、前記接続用ポート番号のポートを使用して前記サーバにアクセスしてきたことに応じて、前記クライアントが取得したアクセス情報を利用して認証処理を実行し、認証成立に応じて前記サーバと前記クライアントとの接続を確立させる接続制御部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、接続制御装置、接続制御方法、及びプログラムに関する。
【背景技術】
【0002】
HTTP(Hypertext Transfer Protocol)のもとでクライアントがウェブサーバにログインするにあたり、認証情報を用いてユーザ認証を行うようにされた技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
サーバとクライアントとの接続に関しては、例えば環境等によっては、簡易な手順でありながらもセキュリティが得られるようにすることが好ましい。
【0005】
本発明は、このような事情に鑑みてなされたもので、サーバとクライアントとの接続について、簡易な手順でありながらもセキュリティが得られるようにすることを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決するための本発明の一態様は、サーバにクライアントを接続させる接続制御装置であって、前記クライアントが前記サーバにアクセスするのに用いるアクセス情報を生成するアクセス情報生成部と、前記クライアントがアクセスするウェブコンテンツと同一オリジンで、所定の接続用ポート番号と前記アクセス情報とを記述したURL(Uniform Resource Locator)にウェブブラウザをアクセスさせることにより、前記URLに記述された前記接続用ポート番号と前記アクセス情報とを前記ウェブブラウザのローカルストレージに保存させる情報保存制御部と、前記クライアントを起動させる起動制御部と、起動された前記クライアントが、前記同一オリジンのURLにアクセスしてローカルストレージから前記接続用ポート番号と前記アクセス情報とを取得し、前記接続用ポート番号のポートを使用して前記サーバにアクセスしてきたことに応じて、前記クライアントが取得したアクセス情報を利用して認証処理を実行し、認証成立に応じて前記サーバと前記クライアントとの接続を確立させる接続制御部とを備える接続制御装置。
【0007】
また、本発明の一態様は、ウェブシステムを外部から利用するためのプログラムの呼出機能を有さないサーバにウェブアクセス機能を有するクライアントを接続させる接続制御装置における接続制御方法であって、前記クライアントが前記サーバにアクセスするのに用いるアクセス情報を生成するステップと、前記クライアントがアクセスするウェブコンテンツと同一オリジンで、所定の接続用ポート番号と前記アクセス情報とを記述したURLにウェブブラウザをアクセスさせることにより、前記URLに記述された前記接続用ポート番号と前記アクセス情報とを前記ウェブブラウザのローカルストレージに保存させるステップと、前記クライアントを起動させるステップと、起動された前記クライアントが、前記同一オリジンのURLにアクセスしてローカルストレージから前記接続用ポート番号と前記アクセス情報とを取得し、前記接続用ポート番号のポートを使用して前記サーバにアクセスしてきたことに応じて、前記クライアントが取得したアクセス情報を利用して認証処理を実行し、認証成立に応じて前記サーバと前記クライアントとの接続を確立させるステップとを含む接続制御方法である。
【0008】
また、本発明の一態様は、ウェブシステムを外部から利用するためのプログラムの呼出機能を有さないサーバにウェブアクセス機能を有するクライアントを接続させる接続制御装置としてのコンピュータを、前記クライアントが前記サーバにアクセスするのに用いるアクセス情報を生成するアクセス情報生成部、前記クライアントがアクセスするウェブコンテンツと同一オリジンで、所定の接続用ポート番号と前記アクセス情報とを記述したURLにウェブブラウザをアクセスさせることにより、前記URLに記述された前記接続用ポート番号と前記アクセス情報とを前記ウェブブラウザのローカルストレージに保存させる情報保存制御部、前記クライアントを起動させる起動制御部、起動された前記クライアントが、前記同一オリジンのURLにアクセスしてローカルストレージから前記接続用ポート番号と前記アクセス情報とを取得し、前記接続用ポート番号のポートを使用して前記サーバにアクセスしてきたことに応じて、前記クライアントが取得したアクセス情報を利用して認証処理を実行し、認証成立に応じて前記サーバと前記クライアントとの接続を確立させる接続制御部として機能させるためのプログラムである。
【発明の効果】
【0009】
以上説明したように本発明によれば、サーバとクライアントとの接続について、簡易な手順でありながらもセキュリティが得られるという効果が得られる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態における電子機器の構成例を示す図である。
【
図2】本実施形態の電子機器において、第1アプリケーションに第2アプリケーションを接続するための手順例を模式的に示す図である。
【
図3】本実施形態の電子機器において、第1アプリケーションに第2アプリケーションを接続するための処理手順例を示すシーケンス図である。
【発明を実施するための形態】
【0011】
図1は、本実施形態における電子機器100の構成例を示している。同図の電子機器100は、例えばパーソナルコンピュータであってよい。また、電子機器100は、スマートフォンやタブレット端末等であってもよい。電子機器100は、例えばインストールされたアプリケーションのプログラムを実行することで、当該アプリケーションの機能を実現するように動作することができる。
同図に示される電子機器100としての機能は、ハードウェアとしての電子機器100が備えるCPU(Central Processing Unit)、GPU(Graphics Processing Unit)がプログラムを実行することにより実現される。
【0012】
電子機器100は、通信部101、表示部102、操作部103、制御部104、及び記憶部105を備える。
通信部101は、ネットワークNWを経由して通信を行う。
表示部102は、制御部104の制御に応じて画面を表示する。表示部102は、ハードウェアとして、例えば液晶ディスプレイ、OLED(Organic Light-Emitting Diode)ディスプレイ等のディスプレイデバイスを備えてよい。また、ディスプレイデバイスがタッチパネルとして構成されてもよい。
操作部103は、電子機器100が備える操作子や入力デバイス、電子機器100に接続される入力デバイス等を備えて構成され、ユーザが操作子や入力デバイスに対して行った操作を受け付ける。
【0013】
制御部104は、電子機器100における各種の制御を実行する。制御部104は、第1アプリケーション対応処理部141と第2アプリケーション対応処理部142とを備える。
【0014】
電子機器100には第1アプリケーションがインストールされている。インストールされた第1アプリケーションが動作する電子機器100は、接続制御装置の一例である。
第1アプリケーションは、OS(Operating System)上で動作するネイティブアプリケーションである。第1アプリケーション自体は、例えばウェブシステムを外部から利用するためのプログラムの呼出機能(以下、「ウェブシステム対応機能」とも記載する)を有さないものであってよい。ウェブシステムとは、例えばインターネット上のECサイト、オークションサイト、銀行口座管理サイト等のように、ネットワーク上で利用可能なサービスやシステムである。
本実施形態において、第1アプリケーションは、後述のようにしてPWA(Progressive Web Apps)としての第2アプリケーションと通信可能に接続される。PWAとしての第2アプリケーションは、ウェブシステム対応機能を有するアプリケーションである。
第1アプリケーションはHTTPに対応するサーバ(ローカルサーバ)として機能する。第2アプリケーションがクライアントとして第1アプリケーションと接続されることで、第1アプリケーションは、第2アプリケーションのウェブシステム対応機能を間接的に利用して所定の機能を提供することができる。
【0015】
一例として、第1アプリケーションは、第2アプリケーションがアクセスしたウェブ広告等のウェブコンテンツを第1アプリケーションのアプリケーション画面にて提供することができる。この際、第1アプリケーションは、例えばアプリケーション画面にて表示させるウェブ広告を操作や時間経過等に応じて切り替えたり、ユーザの第1アプリケーションに対する操作に応じてウェブ広告のリンクにウェブブラウザをアクセスさせる制御を実行したりすることができる。
【0016】
また、このようなPWAである第2アプリケーションは、ウェブブラウザ上で動作していることから、ウェブブラウザとクッキーなどの特定情報を共有することも可能である。このため、PWAである第2アプリケーションを単独で用いて、ターゲティング広告によるコンテンツをユーザに提供したり、ログイン情報が記憶済みのウェブサイトにログインしてアクセスするなどして、パーソナライズされたコンテンツを表示することができる。
【0017】
例えば、第2アプリケーションとしてのPWAの実体としてはウェブブラウザとみてよい。PWAでは、アプリケーション画面としてのアプリケーションウィンドウのフレームデザインに制約がある。また、PWAでは、他のアプリケーションやハードウェアを制御することにも制約が生じる。つまり、PWAでは、ネイティブアプリケーションのように高い自由度で他のアプリケーションやハードウェアを制御することは困難である。
そこで、ネイティブアプリケーションである第1アプリケーションのアプリケーション画面にて第2アプリケーションがアクセスしたウェブコンテンツを表示すれば、第1アプリケーションのアプリケーション画面にて、ユーザに提供したい高度なUI(User Interface)等を提供することも容易に可能となる。
【0018】
第1アプリケーション対応処理部141は、第1アプリケーションのプログラムの実行により第1アプリケーションとしての動作を実現する機能部である。
第1アプリケーション対応処理部141は、後述の
図2、
図3に示す第2アプリケーションとの接続の制御に関連して、ポート番号取得部1411、アクセス情報生成部1412、情報保存制御部1413、起動制御部1414、及び接続制御部1415を備える。
【0019】
ポート番号取得部1411は、電子機器100のOSが使用中でないポート(空きポート)のポート番号を接続用ポート番号として取得する。ポート番号取得部1411が取得した接続用ポート番号により示されるポートは、第2アプリケーションが第1アプリケーションと接続する際のポート(接続用ポート)として使用される。
【0020】
アクセス情報生成部1412は、第2アプリケーションが第1アプリケーションにアクセスするのに用いるアクセス情報を生成する。アクセス情報は、具体的には、第2アプリケーションが第1アプリケーションにアクセス可能な正当性を有するアプリケーションであることの認証に用いられる情報であってよい。
本実施形態において、アクセス情報生成部1412は、アクセス情報としてチケットを生成する。チケットは、第2アプリケーションが第1アプリケーションにアクセスする際に用いられる認証情報である。また、チケットは、ワンタイム認証に対応して1回限りの認証処理に有効な認証情報である。
【0021】
情報保存制御部1413は、電子機器100に実装されたウェブブラウザのローカルストレージに、第2アプリケーションがアクセスするウェブコンテンツと同一オリジンのURLに埋め込んだ接続用ポート番号とアクセス情報とが保存されるように制御を行う。
【0022】
起動制御部1414は、第1アプリケーション以外の他のアプリケーションを起動させる制御を実行する。本実施形態において、起動制御部1414は、ウェブブラウザを起動させることができる。また、起動制御部1414は、第2アプリケーションを起動させることができる。
【0023】
第1アプリケーションはHTTPに対応するローカルサーバ機能を有する。接続制御部1415は、第1アプリケーションのローカルサーバ機能に対応して第2アプリケーションとの接続を制御する。
接続制御部1415は、第1アプリケーションが有するローカルサーバ機能に対応して、クライアントとの接続に関する制御を実行する。接続制御部1415は、第2アプリケーションが接続用ポートを使用してアクセス(ログイン)を行ったことに応じて、認証処理を実行する。接続制御部1415は、認証処理にあたり、第2アプリケーションが起動に際してローカルストレージにアクセスして取得したチケットを認証情報として利用する。接続制御部1415は、認証処理により認証が成立すると、第1アプリケーションのローカルサーバと第2アプリケーションとの接続を確立させる。
【0024】
電子機器100には、ウェブブラウザ300上で動作する第2アプリケーションがインストールされる。
第2アプリケーションは、例えばネットワークNW経由でウェブコンテンツCTへのアクセスが可能で、OSが提供するAPI(Application Programming Interface)の利用が不可なアプリケーションである。
ウェブコンテンツCTは、ウェブ(ネットワーク)上で提供されるコンテンツである。ウェブコンテンツCTは、ウェブサイト(ウェブページ)などであってよい。
【0025】
一例として、第2アプリケーションはPWAである。PWAは、ウェブブラウザ上で動作し、HTML(Hyper Text Markup Language)、CSS(Cascading Style Sheets))、JavaScript等を使用して実現され、ウェブサイトやウェブアクセスが可能なウェブアプリケーションをネイティブアプリのようにインストール可能にする技術である。PWAは、クッキーなどの特定情報にアクセス可能な機能を有することから、例えばクッキーを用いたターゲティング広告の表示等をはじめとするウェブ広告技術に対応可能とされる。また、クッキーにアクセス可能とされていることでログイン情報が記憶済みのウェブサイトにアクセスしてパーソナライズされたウェブコンテンツを表示することも可能とされる。
また、PWAは、オフラインでの動作、プッシュ通知、全画面表示、デバイスのハードウェアへのアクセスが可能である。一方で、PWAは、UI(User Interface)の構成や他のネイティブアプリとの連携に制限がある。
第2アプリケーションのインストールには、電子機器100にインストールされているウェブブラウザが用いられる。
【0026】
第2アプリケーション対応処理部142は、第2アプリケーションとしての動作を実現する機能部である。
【0027】
記憶部105は、電子機器100が対応する各種の情報を記憶する。記憶部105が記憶する情報には、電子機器100にインストールされたアプリケーションのプログラム等が含まれる。記憶部105が対応するハードウェアとしての記憶装置(HDD、SSD等)の一部記憶領域は、ブラウザ対応記憶部151として設けられる。ブラウザ対応記憶部151は、ウェブブラウザが備えるローカルストレージとして機能する。
【0028】
前述のようにウェブシステム対応機能を有さない第1アプリケーションとウェブシステム対応機能を有する第2アプリケーションとはHTTPのもとで接続可能とされる。第1アプリケーションと第2アプリケーションとが接続されることで、例えば前述のように、第1アプリケーションは、第2アプリケーションがアクセスしたウェブコンテンツを、アプリケーション画面にて高度なUIとともに提供できる。
このような第1アプリケーションと第2アプリケーションとの接続に関しては、第1アプリケーションがサーバとなり、第2アプリケーション500がクライアントとなる。この場合において、クライアントとなる第2アプリケーションについては、例えば正当性が確認されなければ第1アプリケーションと接続できないようにするというようにセキュリティ性を有することが求められる。
【0029】
そこで、本実施形態の電子機器100は、以下に
図2により説明する手順により第1アプリケーションと第2アプリケーションとの接続を行うようにされる。
図2の説明は、図中において示す手順1~手順12に従って行う。また、以下の説明にあたり、電子機器100は、第1アプリケーション及び第2アプリケーションに加えて、ウェブブラウザのアプリケーションがインストールされて動作可能とされている場合を例に挙げる。
また、同図の手順は、第1アプリケーションに対応する処理については、第1アプリケーション対応処理部141が実行し、第2アプリケーションに対応する処理については、第2アプリケーション対応処理部142が実行する。
【0030】
手順1:第1アプリケーション200は、起動されて動作可能となったことに応じて、接続用ポート番号を取得する。
本実施形態の第1アプリケーション200は、PWAとしての第2アプリケーションとの通信のためにローカルサーバ210を備える。ローカルサーバ210は、電子機器100内(ローカル)にてウェブサーバとして機能する。
当該手順1にて取得する接続用ポート番号は、第1アプリケーション200におけるローカルサーバ210に第2アプリケーションを接続させることに用いられる。
【0031】
接続用ポート番号の取得にあたり、第1アプリケーション200は、OS上で動作するネットワーク設定機能に対して空きポートのポート番号を問合せる。ネットワーク設定機能は、問合せに応答して、空きポートのうちの1つのポート番号を返す。第1アプリケーション200は、返されたポート番号を接続用ポート番号として取得する。
【0032】
手順2:第1アプリケーション200は、ワンタイム認証に対応する認証情報であるチケットを生成(発行)する。チケットは、例えば認証対象(許可対象)を識別するための識別情報(例えば、GUIDでもよい)、有効期限、使い捨てのランダム値であるNonce等を含んでよい。また、第1アプリケーション200は、暗号化されたチケットを生成してよい。
【0033】
手順3:第1アプリケーション200はHTTPに対応するローカルサーバ機能を有する。第1アプリケーション200は、自己のローカルサーバ機能であるローカルサーバ210を起動させる。この際、第1アプリケーション200は、手順1にて取得した接続用ポート番号を、ローカルサーバ210が使用する接続用ポートのポート番号として設定する。
【0034】
手順4:第1アプリケーション200は、他のアプリケーションを制御可能なアプリケーション制御機能により、ウェブブラウザ300を起動させる。ウェブブラウザ300は、PWAとしての第2アプリケーションに接続用ポート番号とチケットを取得させるのに利用される。
【0035】
手順5:第1アプリケーション200は、手順4により起動させたウェブブラウザ300を、PWAである第2アプリケーション500がアクセスするウェブコンテンツとURL(Uniform Resource Locator)が同一オリジンのウェブページにアクセスさせる制御を行う。
同一オリジンのURLとは、URLにおけるプロトコル(スキーム)、ドメイン(ホスト)、ポートの記述が同じURLである。ローカルストレージ400は、
図1のブラウザ対応記憶部151が対応し、ウェブブラウザからのアクセスが可能であるが、ウェブブラウザ以外のアプリケーションからのアクセスは不可なように管理される記憶領域である。そのうえで、ローカルストレージ400は、URLのオリジンごとにアクセス可否が制御される。つまり、ローカルストレージ400は、ウェブブラウザとしてのアプリケーションによるアクセスに制限されたうえで、さらに特定の同一オリジンに限定してアクセスが可能とされるものであり、アクセスの制限が強い記憶領域である。
具体的に、本実施形態のローカルストレージ400は、同一オリジンを持たないPWA等の第2アプリケーション500以外のアプリケーションがローカルストレージ400にアクセスをすることが不可とされる。このようにローカルストレージ400は、同一オリジン以外のアプリケーションからのアクセスを受け付けないようにしてセキュアが確保されている。
【0036】
第1アプリケーション200は、第2アプリケーション500がアクセスするウェブコンテンツ(PWAコンテンツ)と同一オリジンのURLをウェブブラウザに指定してアクセスの実行を命令する。
なお、第1アプリケーション200は、アクセス対象とするPWAコンテンツとURLが同一オリジンのウェブページとして、アクセス可能な任意のURLを指定してよい。
【0037】
また、第1アプリケーション200は、PWAコンテンツと同一オリジンのURLをウェブブラウザに指定するにあたり、PWAコンテンツと同一オリジンのURLにおけるパラメータの領域に、手順1により取得した接続用ポート番号と手順2により生成したチケットとを記述する。ウェブブラウザ300は、指定されたURLのウェブページにアクセスする。
【0038】
手順6:ローカルストレージ400は、ウェブブラウザ300が備える記憶装置としての機能である。ローカルストレージ400は、例えばハードウェアとしては、電子機器100が備えるHDD(Hard Disk Drive)、SSD(Solid State Drive)などの記憶装置における一部の記憶領域が用いられてよい。
ウェブブラウザ300は、手順5により指定されたPWAコンテンツと同一オリジンのURLのウェブページにアクセスする。ウェブブラウザ300はアクセスしたウェブページから、当該URLのパラメータの領域に記述されている接続用ポート番号とチケットを取得し、ローカルストレージ400に記憶させる。つまり、第1アプリケーション200は、手順5によりPWAコンテンツと同一オリジンのURLにウェブブラウザ300をアクセスさせることで、URLに記述されていた接続用ポート番号とチケットとをローカルストレージ400に保存させるように制御する。
当該手順6において、接続用ポート番号とチケットの取得とローカルストレージ400に保存させる処理自体とについては、ウェブブラウザ300がアクセスしたPWAコンテンツと同一オリジンのURLのウェブページに埋め込まれたJavaScriptコードが実行してよい。
【0039】
手順7:上記手順6により接続用ポート番号とチケットとがローカルストレージ400に保存された後、第1アプリケーション200は、ウェブブラウザ300を終了させる。
【0040】
手順8:次に、第1アプリケーション200は、他のアプリケーションを制御可能なアプリケーション制御機能により、第2アプリケーション500を起動させる。
【0041】
手順9:ローカルストレージ400は、先の手順6によりウェブブラウザ300がアクセスしたウェブページのURLに記述されていた接続用ポート番号とチケットとを保存している。起動された第2アプリケーション500がアクセスするPWAコンテンツのURLは、手順6によりウェブブラウザ300がアクセスしたウェブページのURLと同一オリジンである。このため、第2アプリケーション500は、ローカルストレージ400において同一オリジンのもとで記憶される接続用ポート番号とチケットにアクセすることができる。
第2アプリケーション500は、ローカルストレージ400に記憶されている接続用ポート番号とチケットにアクセスし、アクセスした接続用ポート番号とチケットを取得する。
【0042】
手順10:第2アプリケーション500は、手順9により取得した接続用ポート番号のポート(接続用ポート)を使用して第1アプリケーション200のローカルサーバ210にアクセスする。この際、第2アプリケーション500は、第1アプリケーション200に対し、認証情報として手順9により取得したチケットを第1アプリケーション200に送信する。
【0043】
手順11:第1アプリケーション200は、第2アプリケーション500から送信されたチケットを利用して認証処理を実行する。
【0044】
手順12:手順11による認証処理の結果として認証が成立すると、第1アプリケーション200は、第2アプリケーション500との接続を確立させる。
このような手順が実行されることで、電子機器100において、第1アプリケーション200と第2アプリケーション500とが接続される。
【0045】
図3のシーケンス図を参照して、
図2に示した手順について
図1に示される電子機器100の機能部が実行する処理として説明する。
ステップS100:第1アプリケーション対応処理部141においてポート番号取得部1411は、接続用ポート番号を取得する。当該ステップS100の処理は、
図2の手順1が対応する。
【0046】
ステップS102:第1アプリケーション対応処理部141においてアクセス情報生成部1412は、アクセス情報としてチケットを生成する。当該ステップS102の処理は、
図2の手順2が対応する。
【0047】
ステップS104:第1アプリケーション対応処理部141は、ローカルサーバ210を起動させる。当該ステップS102の処理は、
図2の手順3が対応する。
【0048】
ステップS106:第1アプリケーション対応処理部141において起動制御部1414は、ウェブブラウザ300を起動させる。当該ステップS106の処理は、
図2の手順4が対応する。
【0049】
ステップS108:第1アプリケーション対応処理部141において情報保存制御部1413は、ステップS106により起動させたウェブブラウザ300にURLを指定してアクセスを指示する。
情報保存制御部1413が指定するURLは、PWAである第2アプリケーション500がアクセスするウェブコンテンツと同一オリジンの任意のウェブページを示すものである。
この際、情報保存制御部1413は、アクセス先として指定するURLのパラメータに、ステップS100により取得した接続用ポート番号とステップS102により生成したチケットとを記述する。
【0050】
ステップS110:ステップS106により起動したウェブブラウザ300は、ネットワークNW経由で、ステップS108により指定されたURLをウェブページにアクセスする。指定されたURLのウェブページは、
図1におけるウェブコンテンツCTのいずれかに含まれる。
ステップS108とステップS110の処理は、
図2の手順5が対応する。
【0051】
ステップS112:ステップS110によりウェブブラウザ300がウェブページにアクセスしたことに応じて、アクセスしたウェブページに埋め込まれたJavaScriptコードにより、URLに記述されていた接続用ポート番号とチケットの取得とローカルストレージ400への保存とが行われる。当該ステップS108の処理は、
図2の手順6が対応する。
【0052】
ステップS114:第1アプリケーション対応処理部141において起動制御部1414は、ウェブブラウザ300を終了させる。当該ステップS114の処理は、
図2の手順7が対応する。
【0053】
ステップS116:第1アプリケーション対応処理部141において起動制御部1414は、第2アプリケーション500を起動させる。第2アプリケーション500が起動されたことに応じて、第2アプリケーション対応処理部142としての機能が有効となる。当該ステップS116の処理は、
図2の手順8が対応する。
【0054】
ステップS118:第2アプリケーション対応処理部142は、ネットワークNW経由で、ステップS110によりウェブブラウザ300がアクセスしたウェブページと同一オリジンのウェブページにアクセスする処理を実行する。
同一オリジンのウェブページへのアクセスに応じて、第2アプリケーション対応処理部142は、ローカルストレージ400において保存されている同一オリジンのURLに記述された接続用ポート番号とチケットとを取得する。当該ステップS118の処理は、
図2の手順9が対応する。
【0055】
ステップS120:ステップS118により接続用ポート番号とチケットとを取得すると、第2アプリケーション対応処理部142は、HTTPにより第1アプリケーション200にアクセスし、認証情報であるチケットを送信する。
第2アプリケーション対応処理部142は、第1アプリケーション200へのアクセスにあたり、ステップS118により取得した接続用ポート番号が示すポートにアクセスする。また、当該ステップS120により第2アプリケーション対応処理部142が第1アプリケーション200に送信するチケットは、ステップS118により取得されたものである。当該ステップS120の処理は、
図2の手順10が対応する。
【0056】
ステップS122:第1アプリケーション対応処理部141においてローカルサーバ210が対応する機能部である接続制御部1415は、ステップS120により送信されたチケットを受信すると、受信したチケットを利用して認証処理を実行する。具体的に、接続制御部1415は、ステップS102により生成したチケットと、ステップS120にて第2アプリケーション500から受信したチケットに含まれる認識情報の一致性、有効期限の妥当性を確認し、チケットの有効性を判定してよい。
ステップS102により生成したチケットと、ステップS120にて第2アプリケーション500から受信したチケットとが同一である場合には、今回において第1アプリケーション200にアクセスした第2アプリケーション500は、ステップS108~S112によりローカルストレージ400に保存された接続用ポート番号とチケットとを取得した正当なアプリケーションであることになる。そこで、接続制御部1415は、ステップS102により生成したチケットと、ステップS120により第2アプリケーション500から受信したチケットとが同一であると判定した場合には、認証が成立したものとして判定してよい。当該ステップS122の処理は、
図2の手順11が対応する。
【0057】
ステップS124:ステップS122により認証が成立したことに応じて、第1アプリケーション対応処理部141においてローカルサーバ210が対応する機能部である接続制御部1415は、第2アプリケーション500との接続を確立させる。当該ステップS124の処理は、
図3の手順12が対応する。
【0058】
例えば、第2アプリケーション500が第1アプリケーション200にアクセスして認証を受けるにあたっては、ログインID及びパスワード等によるログイン情報を用いてもよい。
しかしながら、このようなログイン情報を利用する認証では、ログイン情報を管理するデータベース等の規模が大きくなる。この点で、本実施形態のような電子機器100内でのアプリケーション間の接続にログイン情報を用いて認証を行うことは避けることが好ましい。
そこで、本実施形態においては、ローカルサーバ210として機能する第1アプリケーション200がチケットを発行(生成)し、第2アプリケーション500は、生成されたチケットを取得して認証を受けるようにされている。これにより、本実施形態ではログイン情報を利用しない簡易な手順でありながらも適正に認証を行ってセキュリティを確保できる。
【0059】
また、チケットを利用した認証としては、一般的にサーバにチケット発行用のAPIを実装するということが行われる。しかしながら、このようなAPIは、外部公開されることから、セキュリティホールとなって外部からの攻撃も受けやすくなる場合がある。
本実施形態の場合、第1アプリケーションが生成するチケットは、
図3の手順5~手順9を経てウェブブラウザ300のローカルストレージ400を経由して第2アプリケーション500が取得するようにされる。このような取得経路とすることで、本実施形態では、第2アプリケーション500にチケットを提供するためのAPIを実装する必要はなくなることから、上記のようなセキュリティホールに対する外部攻撃から防御することができる。
【0060】
また、本実施形態においては、接続先となる第1アプリケーション200のローカルサーバ210が、第2アプリケーション500がアクセスするウェブコンテンツと同一オリジンのURLに対応させてウェブブラウザ300のローカルストレージ400に接続用ポート番号とチケットを保存するようにされる。この場合、接続元である第2アプリケーション500は、自己がアクセス可能なウェブコンテンツのURLのオリジンが、ローカルストレージ400に保存された接続用ポート番号とチケットが対応するURLと同じでなければ、接続用ポート番号とチケットを取得できないことになる。つまり、本実施形態においては、接続用ポート番号とチケット番号とを記述するURLのオリジンの設定により、第1アプリケーション200にアクセス可能となる正当な第2アプリケーション500を制限することが可能なる。
【0061】
また、第1アプリケーション200と第2アプリケーション500との接続のセキュリティを得るにあたり、予め定めた特定のポート番号によるポートを固定的に使用してもよい。
しかしながら、電子機器100においてポートは、ローカルサーバを使用する第2アプリケーション500以外のアプリケーションも使用する。このため、第1アプリケーション200と第2アプリケーション500との接続に用いるものとして定めたポート番号が、他のアプリケーションが使用するものと定められたポート番号と重複してしまうといったように、ポート番号が競合する可能性がある。このために、第1アプリケーション200と第2アプリケーション500との接続に用いるポート番号を事前に定めておくことが難しい。
そこで、本実施形態においては、第1アプリケーション200が空きの状態にあるポートうちから接続用ポートを動的に決定するようにされている(
図3の手順1、
図4のステップS100)。また、決定された接続用ポート番号は、チケットとともに第2アプリケーション500がアクセス可能なウェブコンテンツと同一オリジンのURLに記述されることで、セキュリティを保って第2アプリケーション500に渡すことができる。
【0062】
なお、第1アプリケーション200と第2アプリケーション500との接続に対応するプロトコルとしては、HTTPに代えてHTTPS(Hypertext Transfer Protocol Secure)を用いてよい。
また、第1アプリケーション200と第2アプリケーション500との接続は、相互通信を行う場合には、スキームとして例えばWebSocketを使用してよい。この場合において、セキュアを高めるためWSSを用いてもよい。
また、第1アプリケーション200と第2アプリケーション500との接続のもとで送受信されるデータは暗号化されてよい。
【0063】
なお、上記実施形態における第1アプリケーション200のローカルサーバ210と第2アプリケーション500との接続は、ネットワーク上のサーバとクライアントとの接続にも適用されてよい。
【0064】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。上記の実施形態において説明した各構成は、矛盾しない限り任意に組み合わせることができる。
【0065】
また、上述した実施形態における電子機器100の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【符号の説明】
【0066】
100 電子機器、101 通信部、102 表示部、103 操作部、104 制御部、105 記憶部、141 第1アプリケーション対応処理部、142 第2アプリケーション対応処理部、151 ブラウザ対応記憶部、200 第1アプリケーション、210 ローカルサーバ、300 ウェブブラウザ、400 ローカルストレージ、500 第2アプリケーション、1411 ポート番号取得部、1412 アクセス情報生成部、1413 情報保存制御部、1414 起動制御部、1415 接続制御部