JP7234849B2 - 情報処理装置、アクセス制御システム及びアクセス制御プログラム - Google Patents

情報処理装置、アクセス制御システム及びアクセス制御プログラム Download PDF

Info

Publication number
JP7234849B2
JP7234849B2 JP2019143650A JP2019143650A JP7234849B2 JP 7234849 B2 JP7234849 B2 JP 7234849B2 JP 2019143650 A JP2019143650 A JP 2019143650A JP 2019143650 A JP2019143650 A JP 2019143650A JP 7234849 B2 JP7234849 B2 JP 7234849B2
Authority
JP
Japan
Prior art keywords
api
terminal
code
information processing
ticket
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.)
Active
Application number
JP2019143650A
Other languages
English (en)
Other versions
JP2021026487A (ja
Inventor
拓也 坂本
理一郎 武
和明 二村
栄信 伊藤
達郎 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2019143650A priority Critical patent/JP7234849B2/ja
Priority to US16/945,963 priority patent/US11343320B2/en
Publication of JP2021026487A publication Critical patent/JP2021026487A/ja
Application granted granted Critical
Publication of JP7234849B2 publication Critical patent/JP7234849B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16YINFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
    • G16Y40/00IoT characterised by the purpose of the information processing
    • G16Y40/30Control
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、情報処理装置、アクセス制御システム及びアクセス制御プログラムに関する。
IoT(Internet of Things)と呼ばれるムーブメントが起こり、様々なデバイスがネットワークに接続されてリモートで制御である。また、シェアードエコノミーと呼ばれるムーブメントもあり、或る個人が所有するものを不特定多数に貸し出すというサービス(例えば、シェアードカーや民泊)が普及している。IoT機器をシェアして利用するには、その時々で利用権限を有さない人には利用が制限されるようにアクセス制御が行われる必要がある。
国際公開2006/040991号 特開2004-32220号公報 特開2007-4579号公報
そこで、IoT機器の制御に関するサービスの提供者が提供する、IoT機器の制御用のAPI(Application Programming Interface)についてアクセス制御を行うことが考えられる。この方法は、例えば、民泊として貸し出す家の鍵としてのIoT機器の解錠又は施錠や、電球としてのIoT機器の点灯又は消灯のように、制御の粒度が大きい(制御の種類が少ない)場合には有効であると考えられる。
一方、例えば、電球について、色の調整(RGBの各値の変更)の制御を可能としたい場合のようにIoT機器について複数種類の制御(細粒度な制御)を可能としたい場合も考えられる。斯かる制御の具体例として、電球の色について、RGBのいずれかの値を+N、-N(Nは、1~255)したり、RGBのいずれかの値に0~255のいずれかを設定することが挙げられる。
このような場合において、制御の粒度に合わせて細粒度なアクセス制御(例えば、或るユーザにはRとGについて値の変更を可能とし、他のユーザについては、Bについて値の変更を可能とするアクセス制御等)を行おうとすると、アクセス制御の管理機構が複雑になってしまう。
そこで、一側面では、本発明は、ネットワークを介して制御可能な機器についてアクセス制御の粒度を細かくすることを目的とする。
一つの態様では、ネットワークを介して接続される機器の制御に関するAPI群を提供する情報処理装置は、前記API群のうちのいずれかのAPIに関するデータを端末から受信する受信部と、前記データに含まれている、前記情報処理装置が実行する処理を示す第1のコードを実行して、前記API群のうち前記第1のコードに指定されているAPIを前記端末から呼び出し可能な状態にするコード実行部と、前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する制御部と、を有する。
一側面として、ネットワークを介して制御可能な機器についてアクセス制御の粒度を細かくすることができる。
第1の実施の形態におけるアクセス制御システムの構成例を示す図である。 第1の実施の形態におけるサーバ装置10のハードウェア構成例を示す図である。 第1の実施の形態におけるユーザ端末20のハードウェア構成例を示す図である。 第1の実施の形態におけるサーバ装置10及びユーザ端末20の機能構成例を示す図である。 第1の実施の形態におけるアクセス制御システムにおいて実行される処理手順の一例を説明するための図である。 チケットの構成例を示す図である。 サーバコードの一例を示す図である。 クライアントコードの一例を示す図である。 第2の実施の形態におけるアクセス制御システムにおいて実行される処理手順の一例を説明するための図である。 API情報の一例を示す図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、第1の実施の形態におけるアクセス制御システムの構成例を示す図である。図1において、アクセス制御システム1は、サーバ装置10、1以上のユーザ端末20、及び1以上の機器30を含む。サーバ装置10と各ユーザ端末20とはネットワークN1を介して接続される。サーバ装置10と各機器30とはネットワークN2を介して接続される。ネットワークN1及びネットワークN2は、例えば、インターネット、LAN(Local Area Network)、又は近距離無線通信等である。ネットワークN1及びネットワークN2は、共通のネットワークであってもよい。
サーバ装置10は、ユーザ端末20による機器30へのアクセスを仲介する1以上のコンピュータである。具体的には、サーバ装置10は、各機器30を制御するためのWebAPI(以下、単に「API」という。)をネットワークN1上に公開する。但し、各APIは、常にアクセス可能ではなく、サーバ装置10がユーザ端末20からチケットを受信した際に、当該チケットにおいてアクセス対象とされているAPIがオープンされ、アクセス可能となる。サーバ装置10は、チケットに基づいてオープンされたいずれかのAPIがアクセスされると、当該チケットに対応する機器30について当該APIに応じた制御を実行する。なお、チケットとは、サーバ装置10がネットワークを介して公開可能なAPI群(機器30の制御用のAPI群)のうち、ユーザ端末20(ユーザ)がアクセス可能(呼び出し可能)なAPIを制限するためのデータである。チケットの構成の詳細については後述される。
ユーザ端末20は、いずれかの機器30を遠隔操作するユーザが利用する端末である。例えば、PC(Personal Computer)、スマートフォン、タブレット端末等がユーザ端末20の一例として挙げられる。ユーザ端末20は、機器30を遠隔操作するためのチケットを入手し、当該チケットをサーバ装置10へ送信することで、当該機器30に対する所望の制御をサーバ装置10に実行させる。なお、チケットを生成するのは、サーバ装置10であるが、ユーザ端末20がサーバ装置10からチケットを入手するとは限らない。例えば、ユーザは、チケットのブローカーを通じてチケットを入手し、当該チケットをユーザ端末20にインストール(保存)してもよい。一例として、民泊として借りた部屋の鍵としての機器30をチケットで制御することを考えると、家の持ち主と借り主をつなぐ仲介業者が運営するコンピュータを通じてチケットが入手されてもよい。この際、当該仲介業者とユーザとの間の契約等に応じて、当該チケットを用いてアクセス可能(呼び出し可能)なAPI群等が決定され、サーバ装置10は、当該API群にアクセス可能な(当該API群を呼び出し可能な)チケットを生成する。又は、チケットの流通が許容される場合、或るユーザから他のユーザに対してチケットが譲渡されてもよい。例えば、特開2019-113981号公報に開示された方法と同様の方法でチケットが入手されてもよい。
機器30は、ネットワークN2を介して制御可能な機器である。IoT機器が機器30として利用されてもよい。本実施の形態では、色(RGB)の調整の制御をネットワークを介して可能な電球を機器30の一例として説明するが、家電製品、自動車やその他の通信機器等が機器30として利用されてもよい。
図2は、第1の実施の形態におけるサーバ装置10のハードウェア構成例を示す図である。図2のサーバ装置10は、それぞれバスで相互に接続されているドライブ装置100、補助記憶装置102、メモリ装置103、CPU104、及びインタフェース装置105等を有する。
サーバ装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従ってサーバ装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
なお、記録媒体101の一例としては、CD-ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
図3は、本発明の実施の形態におけるユーザ端末20のハードウェア構成例を示す図である。図3のユーザ端末20は、それぞれバスBで相互に接続されているドライブ装置200、補助記憶装置202、メモリ装置203、CPU204、インタフェース装置205、表示装置206、及び入力装置207等を有する。
ユーザ端末20での処理を実現するプログラムは、記録媒体201によって提供される。プログラムを記録した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってユーザ端末20に係る機能を実現する。インタフェース装置205は、ネットワークに接続するためのインタフェースとして用いられる。表示装置206はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置207はキーボード、マウス、ボタン、又はタッチパネル等であり、様々な操作指示を入力させるために用いられる。
なお、記録媒体201の一例としては、CD-ROM、DVDディスク、USBメモリ、又はSDカード等の可搬型の記録媒体が挙げられる。また、補助記憶装置202の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体201及び補助記憶装置202のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
図4は、第1の実施の形態におけるサーバ装置10及びユーザ端末20の機能構成例を示す図である。図4において、ユーザ端末20は、チケット送信部21、クライアントコード実行部22及びAPI呼出部23等を有する。これら各部は、ユーザ端末20にインストールされたアプリケーションプログラムが、CPU204に実行させる処理により実現される。当該アプリケーションプログラムは、例えば、サーバ装置10が提供するサービスに対応するアプリケーションプログラムである。例えば、HTML及びJavaScript(登録商標)が当該アプリケーションプログラムを構成してもよい。ユーザ端末20は、また、チケット記憶部24を有する。チケット記憶部24は、例えば、補助記憶装置202等を用いて実現可能である。
チケット送信部21は、例えば、ユーザによる操作等に応じたタイミングで、チケット記憶部24に記憶されているチケットをサーバ装置10へ送信する。チケット記憶部24には、ユーザが予め入手したチケットが記憶されている。本実施の形態では、便宜上、チケット記憶部24には1つのチケットが記憶されていることとする。但し、複数のチケットがチケット記憶部24に記憶されていてもよい。この場合、送信対象とされるチケットは、ユーザによる操作等に応じて選択されてもよい。
クライアントコード実行部22は、チケットに含まれている情報のうち、ユーザ端末20に実行させるプログラミングコード(以下、「クライアントコード」という。)を含む部分(以下、「クライアント部」という。)を解釈し、当該クライアントコードに応じた処理を実行する。クライアント部には、当該チケットによってアクセスが許可されるAPIが指定されたクラアイントコードが含まれる。
API呼出部23は、クライアントコード実行部22によるクライアントコードに応じた処理の実行の結果として呼び出し対象とされる、当該チケットにおいてアクセスが許可されるAPIの呼び出しを行う。
一方、サーバ装置10は、チケット受信部11、サーバコード実行部12及び機器制御部13等を有する。これら各部は、サーバ装置10にインストールされた1以上のプログラムが、CPU104に実行させる処理により実現される。
チケット受信部11は、ユーザ端末20から送信されたチケットを受信する。
サーバコード実行部12は、チケット受信部11が受信したチケットに含まれている情報のうち、サーバ装置10に実行させるプログラミングコード(以下、「サーバコード」という。)を含む部分(以下、「サーバ部」という。)を解釈し、当該サーバコードに応じた処理を実行する。サーバ部には、当該チケットによってアクセスが許可されるAPIのオープンや、当該APIの呼び出しに応じた処理に関する定義が含まれる。APIのオープンとは、APIを有効化することをいう。APIの有効化とは、APIをアクセス可能(呼び出し可能)な状態にすることをいう。例えば、APIに対応するソケットのオープンや、APIに対応するスレッドの起動等によってAPIの有効化が実現されてもよい。
機器制御部13は、サーバコード実行部12によるサーバコードに応じた処理の実行の結果として呼び出される、機器30の制御用の関数(API)の呼び出しに応じ、呼び出された関数に対応する制御を機器30に対して実行する。
以下、アクセス制御システム1において実行される処理手順について説明する。図5は、第1の実施の形態におけるアクセス制御システムにおいて実行される処理手順の一例を説明するための図である。
ステップS110において、ユーザ端末20のチケット送信部21は、例えば、ユーザによる操作に応じ、チケット記憶部24に記憶されているチケットを、当該チケットに記述されている送信先に送信する。当該チケットの送信は、Webサービスで通常利用されるHTTPSを使用して安全に実行される。
図6は、チケットの構成例を示す図である。図6に示されるチケットは、JSON(JavaScript(登録商標) Object Notation)形式によって記述されている。図6において、チケットは、headerキー(key)の値(value)であるヘッダ部h1と、payloadキー(key)の値(value)であるペイロード部p1とを含む。
ヘッダ部h1は、urlキー及びその値と、metadataキー及びその値とを含む。urlキーの値である「http://service1.fff.com/service1」は、当該チケットの送信先のURL(Uniform Resource Locator)である。
metadataキーの値は、当該チケットの有効期限(begindate、enddate)や当該チケットに関する説明("description":"LED controller")等を含む。metadataキーの値(特に、descriptionキーの値)は、表示用の情報である。
ペイロード部p1は、serverキーの値であるサーバ部p1sと、clientキーの値であるクライアント部p1cとを含む。サーバ部p1s及びクライアント部p1cは、base64でエンコードされている。但し、サーバ部p1sは、エンコードの前にサーバ装置10に記憶されている暗号鍵(以下、「サーバ鍵」という。)によって暗号化されている。そうすることで、サーバ装置10が実行する処理が不正に書き換えられることを防止することができる。
本実施の形態において、チケットのヘッダ部h1のurlキーの値として記述されるURLは、サーバ装置10に対応する。したがって、ステップS110において送信されたチケット(以下、「対象チケット」という。)は、サーバ装置10のチケット受信部11によって受信される(S120)。
続いて、サーバ装置10のサーバコード実行部12は、対象チケットのペイロード部p1のサーバ部p1sをデコードしてサーバ鍵で復号することにより、サーバコードを得る(S130)。
図7は、サーバコードの一例を示す図である。図7には、WoT(Web of Things)で規定されているScripting API(https://w3c.github.io/wot-scripting-api/)を利用したプログラムとしてサーバコードが記述された例が示されている。Scripting APIは、W3CのWoT WGが検討している、機器30を制御するためのAPIを生成したり、生成したAPIにアクセスしたりするプログラムを簡単に記述することを可能にするAPIを定義するものである。
続いて、サーバコード実行部12は、復号されたサーバコードに従った処理を実行する(S140)。このタイミングでは、サーバコード実行部12は、記述d12及び記述d14のそれぞれのaddPropertyを呼び出すことで、2つのAPIのオープンを実行する(S150)。具体的には、記述d12に含まれている"ledRed"に対応するAPIと、記述d14に含まれている"ledGreen" に対応するAPIとがオープンされる。ここでオープンされたAPIが、対象チケットの送信元のユーザ端末20に対してアクセスが許可されるAPIである。
続いて、サーバコード実行部12は、オープンした各APIに対してそれぞれのURLを対応付けて、各APIの呼び出しを待機する(S160)。例えば、サーバコード実行部12は、サーバ装置10のURL(http://service1.fff.com/service1)に対して、記述d11に含まれているLED電球の識別情報である"LED12345678"及び"ledRed"を含むパス名を付加したURLである「http://service1.fff.com/service1/LED12345678/ledRed」を、"ledRed"に対応するAPIに対応付ける。また、サーバコード実行部12は、サーバ装置10のURL(http://service1.fff.com/service1)に対して、記述d11に含まれているLED電球の識別情報である"LED12345678"及び"ledGreen"を含むパス名を付加したURLである「http://service1.fff.com/service1/LED12345678/ledRed」を、"ledGreen"に対応するAPIに対応付ける。なお、
続いて、サーバコード実行部12は、対象チケットに対する応答を対象チケットの送信元のユーザ端末20へ送信する(S170)。
ユーザ端末20のチケット送信部21が当該応答を受信すると(S180)、クライアントコード実行部22は、対象チケットのクライアント部p1cをデコードすることで得られるクライアントコードに従った処理を実行する(S190)。
図8は、クライアントコードの一例を示す図である。図8では、HTMLの中にJavaScriptが記述される形式でクライアントコードが実装されている。但し、クライアントコード実行部22が解釈可能な形式であれば、クライアントコードの形式は所定のものに限定されない。
記述d21では、td変数によりサーバ装置10で用意するAPIの名前(ledRed、ledGreen)と、当該APIにアクセスするためのURL(http://service1.fff.com/service1/LED12345678/ledRed、http://service1.fff.com/service1/LED12345678/ledGreen)との対応付けが記述されている。当該各URLは、サーバ装置10のサーバコード実行部12が各APIに対して動的に対応付けるURLに一致する。換言すれば、サーバコード実行部12は、クライアントコードに記述されている各URLに一致するように、オープン対象の各APIに対するURLを生成する。URLが動的に生成されることで、APIに対するURLの推測を困難にすることができ、APIに対する不正アクセスの可能性を低下させることができる。なお、名前が「ledRed」であるAPIを、以下「RedAPI」といい、名前が「ledGreen」であるAPIを、以下「GreenAPI」という。
記述d22には、invokeActionにより、クライアントコードとしてのHTMLによってユーザ端末20に表示される画面(以下、「アプリ画面」という。)の赤色に対応するテキストボックス(redText)に入力された値(0~255)を指定して、ledRedの名前に対応するRedAPI(すなわち、「http://service1.fff.com/service1/LED12345678/ledRed」)を呼び出す定義が記述されている。
記述d23には、invokeActionにより、アプリ画面の緑色に対応するテキストボックス(greenText)に入力された値(0~255)を指定して、ledGreenの名前に対応するGreenAPI(すなわち、「http://service1.fff.com/service1/LED12345678/ledGreen」)を呼び出す定義が記述されている。
記述d21、記述d22及び記述d23等は、サーバコードと同様に、WoTのScripting APIに基づいて記述されている。
ステップS190では、記述d21と、記述d22又は記述d23と等に応じた処理が実行される。その結果、API呼出部23が、記述d22又は記述d23に応じたAPIの呼び出しを実行する(S200)。具体的には、API呼出部23は、当該APIに対応するURL宛てにリクエストを送信する。なお、当該リクエストには、アプリ画面のテキストボックスに入力された値(0~255)も含まれる。
サーバ装置10のサーバコード実行部12は、当該リクエストを受信すると(S210)、サーバコード実行部12は、サーバコードにおいて当該リクエストに係るURLに対応するAPIの定義に従った処理を実行する(S220)。例えば、当該URLが、「http://service1.fff.com/service1/LED12345678/ledRed」であれば、サーバコード実行部12は、サーバコード(図7)の記述d13の「LED.changeRed(value);」を呼び出す。一方、当該URLが「http://service1.fff.com/service1/LED12345678/ledGreen」であれば、サーバコード実行部12は、サーバコード(図7)の記述d15の「LED.changeGreen(value);」を呼び出す。これらの呼び出しは、機器制御部13が提供する関数の呼び出しに相当する。すなわち、当該関数の呼び出しは、機器制御部13に対する機器30の制御要求に相当する。なお、リクエストに係るURLに対応するAPIの定義に従った処理を実行は、記述d12又は記述d13におけるsetPropertyWriteHandlerによる、関数の呼び出し設定に基づいて実現される。また、記述d13の「LED.changeRed(value);」又は記述d15の「LED.changeGreen(value);」のvalueには、受信されたリクエストに含まれている値(0~255)が代入される。
当該関数の呼び出しに応じ、機器制御部13は、機器30に対して当該関数に応じた制御命令を送信する(S230)。例えば、Rの値を255にすることを示す命令等が送信される。機器30は、当該制御命令を受信すると、当該制御命令に応じた動作を実行する(S240)。なお、図5では省略されているが、必要に応じて、機器30による動作結果を示す情報を含む応答がサーバコード実行部12からユーザ端末20へ送信されてもよい。
ステップS200~S240は、例えば、ユーザによるアプリ画面の操作に応じて繰り返される。その後、APIのクローズ要求が発生すると(S250でYes)、サーバコード実行部12は、ステップS150においてオープンした全てのAPIをクローズする(S260)。APIのクローズとは、APIを無効化することをいう。APIの無効化とは、APIをアクセスできない状態にすることをいう。例えば、APIに対応するソケットのクローズや、APIに対応するスレッドの停止等によってAPIの無効化が実現されてもよい。
なお、本実施の形態では、サーバコード(図7)の記述d16におけるsetTimeout関数において、APIのオープンから10000ミリ秒後にthing.stop()を呼び出して、process.exit(1)を呼び出すことが定義されている。当該定義は、APIをオープンしてから10000ミリ秒後に当該APIをクローズされることを示す。
したがって、サーバコード実行部12は、ステップS150から10000ミリ秒経過後にステップS160を実行して、ステップS150においてオープンした全てのAPIをクローズする。その結果、以降においてユーザ端末20からAPIが呼び出されたとしても、当該APIの呼び出しに関するリクエストはサーバコード実行部12によって受信されなくなる。すなわち、当該APIへのアクセスが不可能になる。
なお、本実施の形態では、APIのオープンからの経過時間によって当該APIのクローズのタイミングが規定される例を示したが、ユーザ端末20からAPIのクローズの要求を可能としてもよい。この場合、APIのクローズを示すAPI(以下、「クローズAPI」という。)へのユーザ端末20によるアクセスが可能となるようにチケットのペイロード部p1が定義されればよい。具体的には、ペイロード部p1のクライアント部p1cのクライアントコードには、ユーザによるアプリ画面に対する何らかの操作に応じてクローズAPIを呼び出す処理の定義が記述されればよい。一方、ペイロード部p1のサーバ部p1sのサーバコードには、クローズAPIの呼び出しに応じて、APIをクローズする処理の定義が記述されればよい。
上述したように、第1の実施の形態によれば、チケットのペイロード部p1に、機器30の制御用のAPIを一時的にオープンするためのコードが記述され、当該コードの実行に応じてAPIがオープンされる。APIのオープンによって、ユーザ端末20から当該APIを通じて機器30を制御することが可能となる。すなわち、ユーザ端末20がアクセスできるAPIは、チケットに定義されたコードにおいて指定されたAPIに制限される。したがって、細粒度なアクセス制御を行いたい場合には、サーバ装置10において特別な管理機構を設けずとも、所望の粒度に応じたアクセスを可能とするチケットを定義すればよい。よって、本実施の形態によれば、ネットワークを介して制御可能な機器についてアクセス制御の粒度を細かくすることができる。
また、サーバ装置10は、チケットの受信に応じて当該チケットにおいて指定されている(オープンが要求されている)APIをオープンし、所定期間経過後に当該APIをクローズする。したがって、各APIにアクセス可能な期間が限定されるため、APIに対する不正アクセスの可能性を低下させることができる。
なお、上記では、APIがWebAPIである例について示したが、Bluetooth(登録商標)やICカードリーダとの通信方法を用いた通信におけるAPIについて本実施の形態が適用されてもよい。この場合、Bluetooth(登録商標)アドレスや、ICカードのID等によって各APIが区別されてもよい。この場合、例えば、機器30に対してユーザ端末20をタッチすることで、機器30を制御可能とすることができる。
なお、本実施の形態ではチケットの受信に応じて当該チケットにおいて指定されたAPIがオープンされる例を示したが、例えば、制御対象の機器30に関する利用料金の支払いやユーザ認証等、他の要件が更に満たされた場合に、APIのオープンが実行されるようにしてもよい。
次に、第2の実施の形態について説明する。第2の実施の形態では第1の実施の形態と異なる点について説明する。第2の実施の形態において、特に言及されない点については、第1の実施の形態と同様でもよい。
図9は、第2の実施の形態におけるアクセス制御システムにおいて実行される処理手順の一例を説明するための図である。図9中、図5と同一ステップには同一ステップ番号を付し、その説明は省略する。
第2の実施の形態において、サーバコード実行部12は、ステップS150に続いてステップS151を実行する。ステップS151において、サーバコード実行部12は、第2の実施の形態においてクライアント部p1cのクライアントコードの代わりとなるAPI情報を、対象チケットのヘッダ部h1及びサーバ部p1s等に基づいて生成する。なお、第2の実施の形態において、対象チケットのペイロード部p1には、クライアント部p1cは含まれていなくてよい。一方、サーバ部p1sは、第1の実施の形態と同様のものが対象チケットのペイロード部p1に含まれているとする。
図10は、API情報の一例を示す図である。API情報には、ユーザ端末20からアクセス可能(呼び出し可能)な(ユーザ端末20に対してアクセスが許可される)APIごとに、当該APIを呼び出すために必要な情報(以下「API呼び出し情報」という。)が含まれている。各API呼び出し情報では、当該APIの機能の名称と当該APIに対応するURLが対応付けられている。
図10において、記述d31は、RedAPIのAPI呼び出し情報(以下、「RedAPI呼び出し情報」という。)である。すなわち、記述d31には、R(ledRed)の値を変更したいのであれば、「http://service1.fff.com/service1/LED12345678/ledRed」にアクセスすべきことが定義されている。また、GreenAPIのAPI呼び出し情報(以下、「GreenAPI呼び出し情報」という。)である。すなわち、記述d32には、G(ledGreen)の値を変更したいのであれば、「http://service1.fff.com/service1/LED12345678/ledGreen」にアクセスすべきことが定義されている。
RedAPI情報は、対象チケットのヘッダ部h1(図6)と、対象チケットのサーバ部p1s(図7)の記述d11及びd12等に基づいて生成可能である。GreenAPI情報は、対象チケットのヘッダ部h1(図6)と、対象チケットのサーバ部p1s(図7)の記述d11及びd14等に基づいて生成可能である。
なお、図10のAPI情報に含まれる各API呼び出し情報は、WoTで規定されているThing Descriptionの形式を流用して記述されているため、WoTに準拠したユーザ端末20にとって親和性が高い。但し、APIごとにアクセスする先が明確に指定された情報であれば、API呼び出し情報は、他の形式によって記述されてもよい。
ユーザ端末20のチケット送信部21が当該API情報を受信すると(S180a)、API呼出部23が当該API情報を解釈する。API呼出部23は、当該API情報に含まれるAPI呼び出し情報に基づいて、ユーザ端末20がアクセス可能ないずれかのAPIに対応するURL宛てにリクエストを送信する(S200)。なお、呼び出し対象とするAPIは、アプリ画面等のユーザインタフェースにおいてユーザによって選択可能とされてもよい。
以降は、第1の実施の形態と同様である。
上述したように、第2の実施の形態によれば、チケットのペイロード部p1においてクライアント部p1cの記述は不要とされる。したがって、チケットの作成に関する作業負担を軽減することができる。
なお、上記各実施の形態において、サーバ装置10は、情報処理装置の一例である。ユーザ端末20は、端末の一例である。チケットは、データの一例である。チケット受信部11は、受信部の一例である。サーバコード実行部12は、コード実行部、生成部及び送信部の一例である。機器制御部13は、制御部の一例である。サーバコードは、第1のコードの一例である。クライアントコードは、第2のコードの一例である。
以上、本発明の実施の形態について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
ネットワークを介して接続される機器の制御に関するAPI群を提供する情報処理装置であって、
前記API群のうちのいずれかのAPIに関するデータを端末から受信する受信部と、
前記データに含まれている、前記情報処理装置が実行する処理を示す第1のコードを実行して、前記API群のうち前記第1のコードに指定されているAPIを前記端末から呼び出し可能な状態にするコード実行部と、
前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する制御部と、
を有することを特徴とする情報処理装置。
(付記2)
前記データは、前記端末が実行する処理を示す第2のコードを含み、
前記制御部は、前記端末が前記第2のコードを実行することで前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
ことを特徴とする付記1記載の情報処理装置。
(付記3)
前記第1のコードを実行することで前記端末から呼び出し可能な状態になるAPIを前記端末から呼び出すために必要な情報を前記データに基づいて生成する生成部と、
前記情報を前記端末へ送信する送信部とを有し、
前記制御部は、前記情報に基づいて前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
ことを特徴とする付記1記載の情報処理装置。
(付記4)
ネットワークを介して接続される機器の制御に関するAPI群を提供する情報処理装置と、前記情報処理装置にネットワークを介して接続される端末とを含むアクセス制御システムであって、
前記情報処理装置は、
前記API群のうちのいずれかのAPIに関するデータを端末から受信する受信部と、
前記データに含まれている、前記情報処理装置が実行する処理を示す第1のコードを実行して、前記API群のうち前記第1のコードに指定されているAPIを前記端末から呼び出し可能な状態にするコード実行部と、
前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する制御部と、
を有することを特徴とするアクセス制御システム。
(付記5)
前記データは、前記端末が実行する処理を示す第2のコードを含み、
前記制御部は、前記端末が前記第2のコードを実行することで前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
ことを特徴とする付記4記載のアクセス制御システム。
(付記6)
前記情報処理装置は、
前記第1のコードを実行することで前記端末から呼び出し可能な状態になるAPIを前記端末から呼び出すために必要な情報を前記データに基づいて生成する生成部と、
前記情報を前記端末へ送信する送信部とを有し、
前記制御部は、前記情報に基づいて前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
ことを特徴とする付記4記載のアクセス制御システム。
(付記7)
ネットワークを介して接続される機器の制御に関するAPI群を提供する情報処理装置に、
前記API群のうちのいずれかのAPIに関するデータを端末から受信し、
前記データに含まれている、前記情報処理装置が実行する処理を示す第1のコードを実行して、前記API群のうち前記第1のコードに指定されているAPIを前記端末から呼び出し可能な状態にし、
前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
処理を実行させることを特徴とするアクセス制御プログラム。
(付記8)
前記データは、前記端末が実行する処理を示す第2のコードを含み、
前記制御を前記機器に対して実行する処理は、前記端末が前記第2のコードを実行することで前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
ことを特徴とする付記7記載のアクセス制御プログラム。
(付記9)
前記第1のコードを実行することで前記端末から呼び出し可能な状態になるAPIを前記端末から呼び出すために必要な情報を前記データに基づいて生成し、
前記情報を前記端末へ送信する、
処理を前記情報処理装置に実行させ、
前記制御を前記機器に対して実行する処理は、前記情報に基づいて前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
ことを特徴とする付記7記載のアクセス制御プログラム。
1 アクセス制御システム
10 サーバ装置
11 チケット受信部
12 サーバコード実行部
13 機器制御部
20 ユーザ端末
21 チケット送信部
22 クライアントコード実行部
23 API呼出部
24 チケット記憶部
30 機器
100 ドライブ装置
101 記録媒体
102 補助記憶装置
103 メモリ装置
104 CPU
105 インタフェース装置
200 ドライブ装置
201 記録媒体
202 補助記憶装置
203 メモリ装置
204 CPU
205 インタフェース装置
206 表示装置
207 入力装置
N1 ネットワーク
N2 ネットワーク

Claims (5)

  1. ネットワークを介して接続される機器の制御に関するAPI群を提供する情報処理装置であって、
    前記API群のうちのいずれかのAPIに関するデータを端末から受信する受信部と、
    前記データに含まれている、前記情報処理装置が実行する処理を示す第1のコードを実行して、前記API群のうち前記第1のコードに指定されているAPIを前記端末から呼び出し可能な状態にするコード実行部と、
    前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する制御部と、
    を有することを特徴とする情報処理装置。
  2. 前記データは、前記端末が実行する処理を示す第2のコードを含み、
    前記制御部は、前記端末が前記第2のコードを実行することで前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
    ことを特徴とする請求項1記載の情報処理装置。
  3. 前記第1のコードを実行することで前記端末から呼び出し可能な状態になるAPIを前記端末から呼び出すために必要な情報を前記データに基づいて生成する生成部と、
    前記情報を前記端末へ送信する送信部とを有し、
    前記制御部は、前記情報に基づいて前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
    ことを特徴とする請求項1記載の情報処理装置。
  4. ネットワークを介して接続される機器の制御に関するAPI群を提供する情報処理装置と、前記情報処理装置にネットワークを介して接続される端末とを含むアクセス制御システムであって、
    前記情報処理装置は、
    前記API群のうちのいずれかのAPIに関するデータを端末から受信する受信部と、
    前記データに含まれている、前記情報処理装置が実行する処理を示す第1のコードを実行して、前記API群のうち前記第1のコードに指定されているAPIを前記端末から呼び出し可能な状態にするコード実行部と、
    前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する制御部と、
    を有することを特徴とするアクセス制御システム。
  5. ネットワークを介して接続される機器の制御に関するAPI群を提供する情報処理装置に、
    前記API群のうちのいずれかのAPIに関するデータを端末から受信し、
    前記データに含まれている、前記情報処理装置が実行する処理を示す第1のコードを実行して、前記API群のうち前記第1のコードに指定されているAPIを前記端末から呼び出し可能な状態にし、
    前記端末から送信される前記第1のコードに指定されているAPIの呼び出し要求に応じ、当該APIに応じた制御を前記機器に対して実行する、
    処理を実行させることを特徴とするアクセス制御プログラム。
JP2019143650A 2019-08-05 2019-08-05 情報処理装置、アクセス制御システム及びアクセス制御プログラム Active JP7234849B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019143650A JP7234849B2 (ja) 2019-08-05 2019-08-05 情報処理装置、アクセス制御システム及びアクセス制御プログラム
US16/945,963 US11343320B2 (en) 2019-08-05 2020-08-03 Information processing apparatus, access control system, and non-transitory computer-readable storage medium for storing access control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019143650A JP7234849B2 (ja) 2019-08-05 2019-08-05 情報処理装置、アクセス制御システム及びアクセス制御プログラム

Publications (2)

Publication Number Publication Date
JP2021026487A JP2021026487A (ja) 2021-02-22
JP7234849B2 true JP7234849B2 (ja) 2023-03-08

Family

ID=74499018

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019143650A Active JP7234849B2 (ja) 2019-08-05 2019-08-05 情報処理装置、アクセス制御システム及びアクセス制御プログラム

Country Status (2)

Country Link
US (1) US11343320B2 (ja)
JP (1) JP7234849B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258924A (ja) 2004-03-12 2005-09-22 Canon Inc 情報処理装置及びその制御方法、及び画像形成システム
WO2014106882A1 (ja) 2013-01-02 2014-07-10 セイコーエプソン株式会社 デバイス制御システム、印刷装置、及び、デバイス制御システムの制御方法
JP2016019203A (ja) 2014-07-10 2016-02-01 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
JP2016091311A (ja) 2014-11-05 2016-05-23 株式会社リコー 情報処理装置、情報処理システム、及び情報処理方法
JP2017167755A (ja) 2016-03-15 2017-09-21 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP2017228059A (ja) 2016-06-22 2017-12-28 株式会社リコー 情報処理システム及び認可方法
US20180004553A1 (en) 2016-06-30 2018-01-04 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US20180212970A1 (en) 2017-01-20 2018-07-26 Verizon Patent And Licensing Inc. Distributed authentication for internet-of-things resources

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3896909B2 (ja) 2002-06-24 2007-03-22 富士ゼロックス株式会社 電子チケットを用いたアクセス権管理装置
WO2006040991A1 (ja) 2004-10-08 2006-04-20 Sharp Kabushiki Kaisha 端末装置、サーバ装置、及びWebサービス提供システム
JP2007004579A (ja) 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> 情報家電製品に対するサービス制御及び機器制御方法または装置
US9043455B1 (en) * 2011-04-06 2015-05-26 Cellco Partnership Universal data remote
US9262136B2 (en) * 2013-11-07 2016-02-16 Netronome Systems, Inc. Allocate instruction and API call that contain a sybmol for a non-memory resource
JP6736305B2 (ja) * 2016-02-18 2020-08-05 キヤノン株式会社 情報処理システム、情報処理装置、サーバ装置、情報処理システムの制御方法、及びプログラム
JP7029051B2 (ja) 2017-12-22 2022-03-03 富士通株式会社 情報処理装置、情報処理方法、および情報処理プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005258924A (ja) 2004-03-12 2005-09-22 Canon Inc 情報処理装置及びその制御方法、及び画像形成システム
WO2014106882A1 (ja) 2013-01-02 2014-07-10 セイコーエプソン株式会社 デバイス制御システム、印刷装置、及び、デバイス制御システムの制御方法
JP2016019203A (ja) 2014-07-10 2016-02-01 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
JP2016091311A (ja) 2014-11-05 2016-05-23 株式会社リコー 情報処理装置、情報処理システム、及び情報処理方法
JP2017167755A (ja) 2016-03-15 2017-09-21 株式会社リコー 情報処理システム、情報処理装置、情報処理方法、及びプログラム
JP2017228059A (ja) 2016-06-22 2017-12-28 株式会社リコー 情報処理システム及び認可方法
US20180004553A1 (en) 2016-06-30 2018-01-04 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US20180212970A1 (en) 2017-01-20 2018-07-26 Verizon Patent And Licensing Inc. Distributed authentication for internet-of-things resources

Also Published As

Publication number Publication date
JP2021026487A (ja) 2021-02-22
US11343320B2 (en) 2022-05-24
US20210044657A1 (en) 2021-02-11

Similar Documents

Publication Publication Date Title
TWI761357B (zh) 塊鏈實施之方法及系統
JP5534520B2 (ja) スマートカードにブラウザベースでアクセスするシステムおよび方法
US9747425B2 (en) Method and system for restricting execution of virtual application to a managed process environment
JP4880331B2 (ja) アクセス管理システム等におけるリソース等にアクセスする権限の委任
CA2846575C (en) Proxy authentication
US9704313B2 (en) Systems and methods for interacting with access control devices
US7519816B2 (en) Portable computing environment solution
JP4606409B2 (ja) アクセス制御装置及び電子機器
US9356922B2 (en) Operation of mobile device as trusted mobile web client or trusted mobile web server
US20070016958A1 (en) Allowing any computer users access to use only a selection of the available applications
WO2007039865A2 (en) System and/or method for authentication and/or authorization
WO2007039866A2 (en) System and/or method for authentication and/or authorization via a network
JP2007507768A (ja) 可動性装置
KR102209852B1 (ko) 호환 가능한 블록체인 네트워크 간의 트랜잭션 전송 중계 방법
AU2005222507A1 (en) Portable computing environment
WO2007119594A1 (ja) セキュアデバイス及び読み書き装置
JP7234849B2 (ja) 情報処理装置、アクセス制御システム及びアクセス制御プログラム
US20220216987A1 (en) Device and method for managing shared digital key
US20140372612A1 (en) Information processing device, information processing method, and program
KR102573894B1 (ko) 플래시 메모리를 이용한 펌웨어 업데이트 공유키 관리 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
CN111506899B (zh) 一种安全系统的权限管理方法和权限管理架构
CN111104666A (zh) 用于访问服务的方法、设备和计算机程序产品
JP4625665B2 (ja) 情報暗号化システム,管理サーバ,サービス提供サーバ,情報処理装置,およびそのプログラムと方法
KR102510167B1 (ko) 플래시 메모리를 이용한 펌웨어 대용량 업데이트 개선 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
KR20180010606A (ko) 플러그인 설치 없이 웹 서비스를 제공하기 위한 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220407

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230206

R150 Certificate of patent or registration of utility model

Ref document number: 7234849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150