JP2023168098A - 外部リソース接続支援装置、WebAPI接続支援装置、プログラムおよび外部リソース接続支援方法 - Google Patents

外部リソース接続支援装置、WebAPI接続支援装置、プログラムおよび外部リソース接続支援方法 Download PDF

Info

Publication number
JP2023168098A
JP2023168098A JP2022079748A JP2022079748A JP2023168098A JP 2023168098 A JP2023168098 A JP 2023168098A JP 2022079748 A JP2022079748 A JP 2022079748A JP 2022079748 A JP2022079748 A JP 2022079748A JP 2023168098 A JP2023168098 A JP 2023168098A
Authority
JP
Japan
Prior art keywords
external
processing unit
connection support
external resource
resource
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
JP2022079748A
Other languages
English (en)
Inventor
諒介 貞兼
Ryosuke Sadakane
知香子 午來
Chikako Gorai
夏紀 太田
Natsuki Ota
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.)
Hitachi Systems Ltd
Original Assignee
Hitachi Systems 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 Hitachi Systems Ltd filed Critical Hitachi Systems Ltd
Priority to JP2022079748A priority Critical patent/JP2023168098A/ja
Publication of JP2023168098A publication Critical patent/JP2023168098A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】リソース識別子により利用可能とされる手段であって、外部リソースに対して外部処理を依頼する処理を支援する手段を提供する。【解決手段】外部リソース接続支援装置であって、通信部と、ハブ処理部と、アダプター処理部と、を備え、ハブ処理部は、通信部を介してリソース識別子により第一の処理を依頼されると、該リソース識別子に付帯するサブスクリプションキーが、アダプター処理部への第二の処理の依頼が不可能とされるものであれば第一の処理を中止し、第二の処理の依頼が可能であれば第二の処理を依頼し、アダプター処理部は、認証トークンに応じた利用者識別子を特定し、サブスクリプションキーおよび利用者識別子が外部リソースに外部処理を依頼するための外部リソース識別子に予め対応付けられている場合には外部利用情報を付帯させて外部リソース識別子により外部リソースに外部処理を依頼する。【選択図】図1

Description

本発明は、外部リソース接続支援装置、WebAPI接続支援装置、プログラムおよび外部リソース接続支援方法に関するものである。
昨今、クラウドサービスを利用するアプリケーションソフトウェアの提供が増加しつつある。例えば、ブラウザ等によりユーザー体験に注力したプレゼンテーションを提供し、データ管理等の汎用的な機能は外部リソースとしてクラウドサービスを利用するソフトウェアがある。このような構造のソフトウェアは、使い勝手やデザイン、あるいは応用的な機能を提供することに注力しやすい。例えば、革新的な入力インターフェースを採用して他のソフトウェアとの差別化を図り利用者を増やすことに注力できる。
その一方で、クラウドサービスの利用のためにはアカウントやライセンス管理が必要である。特許文献1には、API基盤(クラウドサービスに相当)のアプリ認証/認可情報とアプリに払い出したAPI-Keyとを関連付け、払い出したAPI-Keyを含むAPIリクエストを受信した場合、API-KeyをAPIリクエストの転送先のAPI基盤のアプリ認証/認可情報に変換したうえで、API基盤へ転送する技術が開示されている。
特開2019-139621号公報
しかし、複数のクラウドサービスを利用するためにはそれぞれのライセンスについて支払管理やキーの管理事務が必要なことから、管理負荷は膨大なものとなる。
また、使い勝手やデザイン、あるいは応用的な機能を提供するソフトウェア部品は、クラウドサービス化されることもある。他のソフトウェアからの再利用を可能とするためである。
本発明の目的は、リソース識別子により利用可能とされる手段であって、外部リソースに対して外部処理を依頼する処理を支援する手段を提供することにある。
本願は、上記課題の少なくとも一部を解決する手段を複数含んでいるが、その例を挙げるならば、以下のとおりである。本発明の一態様に係る外部リソース接続支援装置は、通信部と、ハブ処理部と、アダプター処理部と、を備え、前記ハブ処理部は、前記通信部を介して所定のリソース識別子により第一の処理を依頼されると、該リソース識別子に付帯するサブスクリプションキーと認証トークンを取得し、該サブスクリプションキーが、前記アダプター処理部への所定の第二の処理の依頼が不可能とされるものであれば該第一の処理を中止し、前記第二の処理の依頼が可能とされるものであれば、前記リソース識別子に応じて、前記サブスクリプションキーと前記認証トークンとを付帯させて前記アダプター処理部に前記第二の処理を依頼し、前記アダプター処理部は、前記第二の処理を依頼されると、該依頼に付帯する前記サブスクリプションキーと前記認証トークンとを取得し、前記認証トークンに応じた利用者識別子を特定し、前記サブスクリプションキーおよび前記利用者識別子が所定の外部リソースに所定の外部処理を依頼するための外部リソース識別子に予め対応付けられているか否か判定し、対応付けられている場合には前記外部リソース識別子に付帯させる外部利用情報を特定し、該外部利用情報を付帯させて前記外部リソース識別子により前記通信部を介して前記外部リソースに前記外部処理を依頼する、ことを特徴とする。
また例えば、上記の外部リソース接続支援装置において、前記ハブ処理部は、前記リソース識別子に応じて、前記アダプター処理部に前記第二の処理を依頼するための第二のリソース識別子を特定し、前記サブスクリプションキーと前記認証トークンとを付帯させて第二のリソース識別子により前記アダプター処理部に前記第二の処理を依頼し、前記アダプター処理部は、前記第二のリソース識別子により前記第二の処理の依頼を受け付ける、ことを特徴とするものであってもよい。
また例えば、上記の外部リソース接続支援装置において、前記外部利用情報には、前記外部リソースに前記外部処理を依頼するために必要な認証のために該外部リソースから要求される外部利用APIキー情報または利用者特定情報が含まれ、前記アダプター処理部は、前記認証が有効な期間と同じかより短い周期で前記外部利用情報を更新する、ことを特徴とするものであってもよい。
また例えば、上記の外部リソース接続支援装置において、前記アダプター処理部が複数含まれ、夫々の前記アダプター処理部は、互いに異なる前記外部リソースのいずれかに前記外部処理を依頼するものである場合、前記ハブ処理部は、前記認証トークンに応じて前記アダプター処理部のいずれかを選択して前記第二の処理を依頼する、ことを特徴とするものであってもよい。
また例えば、上記の外部リソース接続支援装置において、前記アダプター処理部は、前記外部リソースが提供する前記外部処理の仕様に応じて前記外部処理を複数組み合わせて依頼する、ことを特徴とするものであってもよい。
また、本発明の別の態様にかかるWebAPI接続支援装置は、通信部と、プロセッサーと、を備え、前記プロセッサーは、前記通信部を介して所定のURLにより所定の第一の処理を依頼されると、該URLに付帯するサブスクリプションキーと認証トークンを取得するステップと、前記サブスクリプションキーが有効なものでない場合には処理を中止するステップと、前記認証トークンに応じた利用者識別子を特定するステップと、前記サブスクリプションキーおよび前記利用者識別子が所定のWebAPIに所定の外部処理を依頼するための外部URLに予め対応付けられているか否か判定するステップと、対応付けられている場合には、前記外部URLに付帯させる外部利用情報を特定し、該外部利用情報を付帯させて前記外部URLにより前記通信部を介して前記WebAPIに前記外部処理を依頼するステップと、を実施することを特徴とする。
また例えば、上記のWebAPI接続支援装置において、前記外部利用情報には、前記WebAPIに前記外部処理を依頼するために必要な認証のために該WebAPIから要求される外部利用APIキー情報または利用者特定情報が含まれ、前記プロセッサーは、前記認証が有効な期間と同じかより短い周期で前記外部利用情報を更新する、ことを特徴とするものであってもよい。
また、本発明の別の態様にかかるプログラムは、少なくとも通信装置と、プロセッサーと、を備えるコンピュータを外部リソース接続支援装置として機能させるプログラムであって、前記プロセッサーに、前記通信装置を介して所定のリソース識別子により所定の第一の処理を依頼されると、該リソース識別子に付帯するサブスクリプションキーと認証トークンを取得するステップと、前記サブスクリプションキーが有効なものでない場合には処理を中止するステップと、前記認証トークンに応じた利用者識別子を特定するステップと、前記サブスクリプションキーおよび前記利用者識別子が所定の外部リソースに所定の外部処理を依頼するための外部リソース識別子に予め対応付けられているか否か判定するステップと、対応付けられている場合には、前記外部リソース識別子に付帯させる外部利用情報を特定し、該外部利用情報を付帯させて前記外部リソース識別子により前記通信装置を介して前記外部リソースに前記外部処理を依頼するステップと、を実行させることを特徴とする。
また、本発明の別の態様にかかる外部リソース接続支援方法は、少なくとも通信装置と、プロセッサーと、を備えるコンピュータを用いた外部リソース接続支援方法であって、前記プロセッサーに、前記通信装置を介して所定のリソース識別子により所定の第一の処理を依頼されると、該リソース識別子に付帯するサブスクリプションキーと認証トークンを取得するステップと、前記サブスクリプションキーが有効なものでない場合には処理を中止するステップと、前記認証トークンに応じた利用者識別子を特定するステップと、前記サブスクリプションキーおよび前記利用者識別子が所定の外部リソースに所定の外部処理を依頼するための外部リソース識別子に予め対応付けられているか否か判定するステップと、対応付けられている場合には、前記外部リソース識別子に付帯させる外部利用情報を特定し、該外部利用情報を付帯させて前記外部リソース識別子により前記通信装置を介して前記外部リソースに前記処理を依頼するステップと、を実行させることを特徴とする。
本発明によると、リソース識別子により利用可能とされる手段であって、外部リソースに対して外部処理を依頼する処理を支援する手段を提供することができる。
上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
外部リソース接続支援システムの構成を例示するブロック図である。 利用バックエンドサービス記憶部のデータ構造例を示す図である。 外部利用情報記憶部のデータ構造例を示す図である。 外部リソース接続支援装置のハードウェア構成例を示す図である。 外部リソース接続支援フローの例を示す図である。 ハブ処理部の実行制御の例を示す図である。 外部利用情報記憶部のデータ構造の別の例を示す図である。 外部利用情報更新処理の例を示す図である。
以下に、本発明の一態様に係る実施形態を適用した外部リソース接続支援システム1について、図面を参照して説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。また、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではない。また、「Aからなる」、「Aよりなる」、「Aを有する」、「Aを含む」と言うときは、特にその要素のみである旨明示した場合等を除き、それ以外の要素を排除するものでない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。
以下の説明では、「表示部220」は、一つ以上のインターフェースデバイスでよい。当該一つ以上のインターフェースデバイスは、下記のうちの少なくとも一つでよい。
・一つ以上のI/O(Input/Output)インターフェースデバイス。I/Oインターフェースデバイスは、I/Oデバイスと外部リソース接続支援装置100とのうちの少なくとも一つに対するインターフェースデバイスである。外部リソース接続支援装置100に対するI/Oインターフェースデバイスは、通信インターフェースデバイスでよい。少なくとも一つのI/Oデバイスは、ユーザインターフェースデバイス、例えば、キーボード及びポインティングデバイスのような入力デバイスと、表示デバイスのような出力デバイスとのうちのいずれでもよい。
・一つ以上の通信インターフェースデバイス。一つ以上の通信インターフェースデバイスは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「メモリ」は、一つ以上の記憶デバイスの一例である一つ以上のメモリデバイスであり、典型的には主記憶デバイスでよい。メモリにおける少なくとも一つのメモリデバイスは、揮発性メモリデバイスであってもよいし不揮発性メモリデバイスであってもよい。
また、以下の説明では、「記憶部」または「ストレージ」は、メモリと永続記憶装置のうちメモリかまたは両方であればよい。具体的には、永続記憶装置は例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、NVME(Non-Volatile Memory Express)ドライブ、又は、SCM(Storage Class Memory)でよい。
また、以下の説明では、「処理部」または「プロセッサー」は、一つ以上のプロセッサーデバイスでよい。少なくとも一つのプロセッサーデバイスは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサーデバイスでよいが、GPU(Graphics Processing Unit)のような他種のプロセッサーデバイスでもよい。少なくとも一つのプロセッサーデバイスは、シングルコアでもよいしマルチコアでもよい。少なくとも一つのプロセッサーデバイスは、プロセッサーコアでもよい。少なくとも一つのプロセッサーデバイスは、処理の一部又は全部を行うハードウェア記述言語によりゲートアレイの集合体である回路(例えばFPGA(Field-Programmable Gate Array)、CPLD(Complex Programmable Logic Device)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサーデバイスでもよい。
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサーによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現される。あるいはまた、その機能は、それらの組合せによって実現されてもよい。プログラムがプロセッサーによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われる。そのため、その機能はプロセッサーの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサーあるいはそのプロセッサーを有する装置が行う処理としてもよい。プログラムは、プログラムソースからインストールされてもよい。プログラムソースは、例えば、プログラム配布計算機又は計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、「プログラム」や「処理部」を主語として処理を説明する場合があるが、プログラムを主語として説明された処理は、プロセッサーあるいはそのプロセッサーを有する装置が行う処理としてもよい。また、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、「xxxテーブル」や「yyy部」といった表現にて、入力に対して出力が得られる情報を説明することがあるが、当該情報は、どのような構造のテーブルでもよい。またあるいは、入力に対する出力を発生するニューラルネットワーク、遺伝的アルゴリズムやランダムフォレストに代表されるような学習モデルでもよい。従って、「xxxテーブル」あるいは「yyy部」を「xxx情報」と言うこともできる。また、以下の説明において、各テーブルの構成は一例である。そのため、一つのテーブルは、二つ以上のテーブルに分割されてもよいし、二つ以上のテーブルの全部又は一部が一つのテーブルであってもよい。
また、以下の説明では、「外部リソース接続支援システム」は、一つ以上の物理的な計算機で構成されたシステムでもよいし、物理的な計算リソース群(例えば、クラウド基盤)上に実現されたシステム(例えば、クラウドコンピューティングシステム)でもよい。外部リソース接続支援システムが表示用情報を「表示する」ことは、計算機が有する表示デバイスに表示用情報を表示することであってもよいし、計算機が表示用計算機に表示用情報を送信することであってもよい(後者の場合は表示用計算機によって表示用情報が表示される)。
外部リソース(クラウドシステムにおいては、WebAPIとして公開される処理)を利用する環境が整いつつある。例えば、予定表機能は「Microsoft 365」や「Google Workspace」等において利用可能に提供されている。あるいは、乗換案内については、「ジョルダン 乗換案内Biz API」等において利用可能に提供されている。
このような外部リソースを単独で使用するのではなく、利用者に応じて使い分ける必要がある場合を考える。例えば、利用者は「Microsoft 365」あるいは「Google Workspace」のいずれかの予定表機能の利用契約を行っているものとする。この場合、統一的なアプリケーションからは、利用者ごとにこれらの外部リソースを使い分けたいニーズがある。
このような統一的なアプリケーションを作成する場合には、統一的なインターフェースを提供しつつ外部リソースを呼び分ける必要がある点と、外部リソースのライセンス管理と、不正な利用をさせないアクセス管理と、が重要となる。
本実施形態に係る外部リソース接続支援システム1においては、外部リソース接続支援装置100では、クライアント装置200の処理部210においてアプリケーション機能を実現する場合に、外部リソースとなるバックエンドサービス提供装置300への接続の支援を行う。
図1は、外部リソース接続支援システムの構成を例示するブロック図である。外部リソース接続支援システム1では、利用者は、クライアント装置200を用いて予定表機能あるいは乗換案内等の所定の機能を利用する。
クライアント装置200は、処理部210と、表示部220と、通信部230と、を備える。処理部210は、アプリケーション機能を実現する。例えば、処理部210は、利用者に対するポータル画面や、予定表管理機能、乗換案内機能、気象情報提供機能等の各種の操作画面を提供する。表示部220は、上述したように、一つ以上のI/Oインターフェースデバイスあるいは一つ以上の通信インターフェースデバイスである。すなわち、利用者は、クライアント装置200をI/Oインターフェースデバイス経由で使用する。あるいは、利用者は、クライアント装置200を一つ以上の通信インターフェースデバイスを介して他の情報処理装置(例えば、スマートフォン)等経由で使用する。通信部230は、ネットワーク50を介する他の装置との通信の制御を行う。
認証サーバー150は、ネットワーク経由で認証を行い、多装置間でのシングルサインオンを実現する。具体的には、認証サーバー150は、ネットワーク50経由でクライアント装置200および外部リソース接続支援装置100間でシングルサインオンを実現する。例えば、認証サーバー150は、一般的なLDAP(Lightweight Directory Access Protocol)サーバー、あるいはAD(Active Directory)サーバーである。認証サーバー150は、クライアント装置200から利用者IDおよびパスワードを受け付けて、認証に成功すると認証トークンを発行する。そして、認証サーバー150は、外部リソース接続支援装置100から認証トークンを受け付けると、外部リソース接続支援装置100に利用者IDを受け渡す。
外部リソース接続支援装置100は、クライアント装置200からバックエンドサービス提供装置300への接続支援を行う装置であり、WebAPI接続支援装置である。外部リソース接続支援装置100は、記憶部110と、処理部120と、通信部130と、を備える。記憶部110は、情報の記憶および読み出しを行う。記憶部110には、利用バックエンドサービス記憶部111と、外部利用情報記憶部112と、が含まれる。
図2は、利用バックエンドサービス記憶部のデータ構造例を示す図である。利用バックエンドサービス記憶部111には、操作ID111AおよびサービスID111Bの組み合わせ毎に、アダプターURL111Cが対応付けて格納される。操作ID111Aは、クライアント装置200の処理部210から呼び出されるAPIに応じてあらかじめ定められた識別情報である。サービスID111Bは、バックエンドサービスすなわち外部リソースの識別情報である。アダプターURL111Cは、外部リソースへのアクセスを支援するアダプター処理部122にアクセスするためのWebAPIのリソース識別子となるURL(Uniform Resource Locator)である。
図3は、外部利用情報記憶部のデータ構造例を示す図である。外部利用情報記憶部112には、利用者ID112AおよびサービスID112Bの組み合わせ毎に、APIキー112Cが対応付けて格納される。利用者ID112Aは、利用者を特定する識別子である。サービスID112Bは、バックエンドサービスすなわち外部リソースの識別情報である。APIキー112Cは、外部リソースにアクセスする際に、外部リソースからライセンス管理・アクセス管理のために要求されるキー情報である。APIキーは、外部リソースへの対価(通常は、サブスクリプション料金等)の支払いに応じて発行されるキー情報である。
処理部120には、ハブ処理部121と、アダプター処理部122と、が含まれる。ハブ処理部121は、通信部130を介して所定のリソース識別子により第一の処理を依頼されると、該リソース識別子に付帯するサブスクリプションキーと認証トークンを取得する。そして、ハブ処理部121は、該サブスクリプションキーが、アダプター処理部122への所定の第二の処理の依頼が不可能とされるものであれば、該第一の処理を中止する。一方で、ハブ処理部121は、第二の処理の依頼が可能とされるものであれば、リソース識別子に応じて、サブスクリプションキーと認証トークンとを付帯させてアダプター処理部122に第二の処理を依頼する。
より具体的には、ハブ処理部121は、リソース識別子に応じて、アダプター処理部122に第二の処理を依頼するための第二のリソース識別子を特定する。そして、ハブ処理部121は、サブスクリプションキーと認証トークンとを付帯させて第二のリソース識別子によりアダプター処理部122に第二の処理を依頼する。
なお、アダプター処理部122は、認証が有効な期間と同じかより短い周期で、後述する外部利用情報を更新する。
また、アダプター処理部122が複数含まれるものであって、夫々のアダプター処理部122が、互いに異なる外部リソースのいずれかに外部処理を依頼するものである場合、ハブ処理部121は、認証トークンに応じてアダプター処理部122のいずれかを選択して第二の処理を依頼する。
アダプター処理部122は、第二の処理を依頼されると、該依頼に付帯するサブスクリプションキーと認証トークンとを取得し、認証トークンに応じた利用者識別子を特定し、サブスクリプションキーおよび利用者識別子が所定の外部リソース識別子に予め対応付けられているか否か判定する。ここで、外部リソース識別子は、外部リソースに所定の外部処理を依頼するための情報である。サブスクリプションキーおよび利用者識別子が所定の外部リソース識別子に予め対応付けられている場合には、アダプター処理部122は、外部リソース識別子に付帯させる外部利用情報を特定する。そして、アダプター処理部122は、該外部利用情報を付帯させて外部リソース識別子により通信部130を介して外部リソースに外部処理を依頼する。
具体的には、アダプター処理部122は、第二のリソース識別子により第二の処理の依頼を受け付ける。
ここで、外部利用情報とは、外部リソースに外部処理を依頼するために必要な認証のために該外部リソースから要求される情報である。外部利用情報には、APIキー情報または利用者特定情報(例えば、利用者IDとパスワード)が含まれる。
また、アダプター処理部122は、外部リソースが提供する外部処理の仕様に応じて、外部処理を複数組み合わせて依頼する。
通信部130は、ネットワーク50を介する他の装置との通信の制御を行う。
バックエンドサービス提供装置300は、他の装置、例えば外部リソース接続支援装置100からみた外部リソースとして、各種のアプリケーション機能を提供する。具体的には、バックエンドサービス提供装置300は、WebAPIとして公開される処理を有償、無償のいずれかにて提供する。例えば、予定表機能は「Microsoft 365」や「Google Workspace」等においてWebAPIにより有償で利用可能に提供されている。あるいは、乗換案内については、「ジョルダン 乗換案内Biz API」等においてWebAPIにより有償にて利用可能に提供されている。
本実施形態においては、バックエンドサービス提供装置300は、クラウドサービスとしてインターネットを介してWebAPIを提供する装置である。ただし、必ずしもバックエンドサービス提供装置300は一装置として存在する必要はない。実際には、バックエンドサービス提供装置300は、多重化されたHTTPS(Hypertext Transfer Protocol Secure)サーバー等のフロント処理を行う複数のサーバー群等を含む複数の装置から構成されていてもよい。あるいは、バックエンドサービス提供装置300は、各種のデータ管理のためのデータベースサーバーおよび処理実行のためのアプリケーションサーバー等を含んで構成されるものであってもよい。いずれにせよ、バックエンドサービス提供装置300は、他の装置、例えば外部リソース接続支援装置100からWebAPI(APIキーを含む)により所定の外部処理を要求されると、該当する処理を行い、処理結果を返す処理を行う。
例えば、外部処理には、予定表の一覧取得や、予定表への予定情報の追加、削除、変更、アラーム設定等の処理が含まれる。これらの外部処理は、バックエンドサービスを提供する主体が決定したWebAPIと、APIキーとを用いてアクセスされる。
ネットワーク50は、例えば、インターネットあるいはイントラネット等のネットワークである。ネットワーク50は、これに限られず、さらに、WAN(Wide Area Network)、携帯電話網等、あるいはこれらが複合した通信網であってもよい。または、ネットワーク50は、携帯電話通信網等の無線通信網上のVPN(Virtual Private Network)等であってもよい。
図4は、外部リソース接続支援装置のハードウェア構成例を示す図である。外部リソース接続支援装置100は、いわゆるサーバー装置、ワークステーション、パーソナルコンピューター、スマートフォンあるいはタブレット端末の筐体により実現されるハードウェア構成を備える。外部リソース接続支援装置100は、プロセッサー101と、メモリ102と、ストレージ103と、通信装置104と、各装置をつなぐバス107と、を備える。なお、認証サーバー150、クライアント装置200、バックエンドサービス提供装置300についても、同様である。また他に、クライアント装置200は、タッチパネルやキーボード、ディスプレイ等の入出力装置を備えてもよい。
プロセッサー101は、例えばCPU(Central Processing Unit)などの演算装置である。
メモリ102は、例えばRAM(Random Access Memory)などのメモリ装置である。
ストレージ103は、デジタル情報を記憶可能な、いわゆるハードディスク(Hard Disk Drive)やSSD(Solid State Drive)あるいはフラッシュメモリなどの不揮発性記憶装置である。
通信装置104は、ネットワークカード等の有線通信装置、あるいは無線通信装置である。
上記した外部リソース接続支援装置100のハブ処理部121と、アダプター処理部122とは、プロセッサー101に処理を行わせるプログラムによって実現される。このプログラムは、メモリ102、ストレージ103または図示しないROM装置内に記憶され、実行にあたってメモリ102上にロードされ、プロセッサー101により実行される。
また、外部リソース接続支援装置100の記憶部110は、メモリ102及びストレージ103により実現される。また、通信部130は、通信装置104により実現される。以上が、外部リソース接続支援装置100のハードウェア構成例である。
外部リソース接続支援装置100の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、1つの構成要素がさらに多くの処理を実行するように分類することもできる。
また、各処理部(ハブ処理部121と、アダプター処理部122)は、それぞれの機能を実現する専用のハードウェア(ASIC、GPUなど)により構築されてもよい。また、各処理部の処理が一つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
次に、本実施形態における外部リソース接続支援システム1の動作を説明する。
図5は、外部リソース接続支援フローの例を示す図である。外部リソース接続フローは、例えばクライアント装置200に対するいずれかの利用者からの操作により開始される。
まず、利用者250は、クライアント装置200に対して利用者IDおよびパスワードを入力する(ステップS001)。クライアント装置200の処理部210は、利用者IDとパスワードを認証サーバー150に送信する処理を含むログイン処理を行う(ステップS002)。
認証サーバー150は、認証処理を行い、認証に成功すれば、認証トークンをクライアント装置200に発行する(ステップS003)。
そして、利用者250は、クライアント装置200に対して利用する処理を入力する(ステップS004)。例えば、利用者250は、クライアント装置200に対して、予定表への予定の追加処理を依頼する場合には、追加する予定情報を入力する。
クライアント装置200の処理部210は、外部リソース接続支援装置100に対して、利用する処理を要求する(ステップS005)。例えば、利用者250から予定表への予定の追加処理を受け付けた場合には、処理部210は、追加する予定情報を含む入力データと、処理部210に予め割り当てられているサブスクリプションキーと、認証トークンと、を外部リソース接続支援装置100に対して送信する。なお、処理部210は、外部リソース接続支援装置100に対して、利用する処理に応じたリソース識別子(WebAPIのURI)を用いてアクセスする。
外部リソース接続支援装置100のハブ処理部121は、要求された処理が実行可能か否か判定する(ステップS006)。具体的には、ハブ処理部121は、処理の要求に係るリソース識別子に付帯するサブスクリプションキーと認証トークンを取得する。そして、ハブ処理部121は、該サブスクリプションキーが、アダプター処理部122への所定の第二の処理の依頼が不可能とされるものであるか否か判定する。アダプター処理部122への所定の第二の処理の依頼が不可能とされるものであれば、ハブ処理部121は、要求された処理を中止する。
図6は、ハブ処理部の実行制御の例を示す図である。ハブ処理部の実行制御の例は、ステップS006における具体的な実施例である。まず、ハブ処理部121Aが、第二の処理に応じて3つのアダプター処理部122A~122Cのいずれかを択一的に依頼する構造であるとする。例えば、アダプター処理部122Aは、「Microsoft 365」サービスの予定の追加処理を第二の処理として担うとする。同様に、アダプター処理部122Bは、「Microsoft 365」サービスの予定の削除処理を第二の処理として担うとする。またさらに、アダプター処理部122Cは、「Google Workspace」サービスの予定の追加処理を第二の処理として担うとする。
ここで、サブスクリプションキーが、アダプター処理部122A~122Cのいずれにも処理を依頼可能とされるものである場合を考える。この場合、図6の上段のような関係となる。このような場合、ハブ処理部121Aは、「サブスクリプションキー認証内」すなわち「第二の処理の依頼が可能とされるもの」であるとして、アダプター処理部122A~122Cのいずれかに対して、要求に応じて処理を依頼する。
一方で、サブスクリプションキーが、アダプター処理部122A~122Cのいずれかに処理を依頼不可能な場合を考える。この場合、ハブ処理部121Aは、例えば図6の下段のような認証外のアダプター処理部122Cを呼び出す可能性がある。このような場合、ハブ処理部121Aは、「サブスクリプションキー認証外」すなわち「第二の処理の依頼が不可能とされるもの」であるとして、アダプター処理部122A~122Cのいずれに対しても処理を依頼せず、処理を中止する。
第二の処理の依頼が可能とされるサブスクリプションキーであれば、ハブ処理部121は、処理を依頼するアダプター処理部122にアクセスするための第二のリソース識別子であるアダプターURLを特定する(ステップS007)。具体的には、ハブ処理部121は、ハブ処理部121が予め備える操作IDと、サブスクリプションキーに対応したサービスID(利用する外部サービスを特定する情報)とを用いて、アダプターURL111Cを特定する。このアダプターURLを特定する処理において、ハブ処理部121は、利用バックエンドサービス記憶部111を参照する。
そして、ハブ処理部121は、アダプター処理部122の第二のリソース識別子(アダプターURL)に応じて、入力データと、サブスクリプションキーと、認証トークンと、を付帯させてアダプター処理部122に第二の処理を依頼する(ステップS008)。なお、処理部210は、この第二の処理の依頼においては、第二の処理に応じた第二のリソース識別子(アダプターURL)を用いてアダプター処理部122にアクセスする。ただし、ハブ処理部121は、認証トークンに外部サービスを特定する情報が含まれる場合、認証トークンに含まれる外部サービスに応じてアダプター処理部122のいずれかを選択して第二の処理を依頼してもよい。
アダプター処理部122は、入力データと、サブスクリプションキーと、認証トークンと、を取得し、認証確認を行う(ステップS009)。具体的には、アダプター処理部122は、受け付けた認証トークンを認証サーバー150へ送信し、認証トークンにより特定される利用者IDを特定する。
認証サーバー150は、認証トークンを受け付けると、認証トークンに対応する利用者の利用者IDをアダプター処理部122に送信する(ステップS010)。
アダプター処理部122は、第二の処理において、外部処理の依頼先となる外部リソースが要求するAPIキーを特定する(ステップS011)。具体的には、アダプター処理部122は、外部利用情報記憶部112を参照して、利用者IDと、サービスIDとの組み合わせに応じて、APIキー112Cを特定する。ここで、APIキーは、外部リソースにアクセスする際に用いる所定のWebAPIのURL(外部リソース識別子)に付帯させる外部利用情報である。なお、外部利用情報は、APIキーに限られず、利用者特定情報(利用者識別子を含む情報、あるいは利用者識別子およびパスワード等)であればよい。また、利用者IDと、サービスIDとの組み合わせに応じたAPIキーが存在しない場合には、アダプター処理部122は、当該第二の処理要求はアクセス権を違反すると判定する。その場合、アダプター処理部122は、処理の中止等の所定のエラー処理を行う。
そして、アダプター処理部122は、APIキーと、入力データと、を外部リソース識別子に付帯させて、外部リソースに外部処理を依頼する(ステップS012)。なお、アダプター処理部122は、外部リソースが提供する外部処理の仕様に応じて、外部処理を複数組み合わせて外部リソースに依頼するようにしてもよい。具体的には、外部リソースが提供する外部処理によっては、第二の処理を完了するために外部処理を複数行う必要がある場合が考えられる。例えば、外部リソースにおいて予定の変更を行うためには、アダプター処理部122は、予定の削除処理および予定の作成処理を外部処理として依頼する。
以上が、実施形態に係る外部リソース接続支援システムの例である。該実施形態に係る外部リソース接続支援システム1の例によれば、リソース識別子(WebAPI)により利用可能とされる手段であって、外部リソース(バックエンドサービス)に対して外部処理を依頼する処理を支援する手段を提供することができる。
具体的には、クライアント装置200の処理部210は、外部リソースを利用する処理を行う際に、外部リソース接続支援装置100のWebAPIにアクセスするだけで外部リソースの利用が可能となる。例えば、処理部210は、外部リソースの利用に必要なライセンス等の情報を扱うことなく外部リソースを利用できる。また、外部リソースの仕様変更等の影響をアダプター処理部122が吸収することが可能となるため、処理部210の仕様変更は最小限に抑えられる。
また、上記実施形態の例は、外部リソースにアクセスする外部利用情報(APIキー)を固定的に使用する基礎的な例について説明したものであるが、よりセキュリティを高める実施形態とすることもできる。具体的には、アダプター処理部122が、ライセンスの認証が有効な期間と同じかより短い周期で外部利用情報を更新するようにする。以下に、そのようなセキュリティを高める実施形態の別の例を説明する。
図7は、外部利用情報記憶部のデータ構造の別の例を示す図である。外部利用情報記憶部112´には、利用者ID112Aと、サービスID112Bと、APIキー112Cと、に加えて、有効期限112Dと、入替日112Eと、が対応付けて格納される。
有効期限112Dは、ライセンスの有効期限である。入替日112Eは、ライセンスを入れ替えた日を特定する情報である。
図8は、外部利用情報更新処理の例を示す図である。外部利用情報更新処理は、ライセンスの認証が有効な期間と同じかより短い周期で外部利用情報を更新する処理である。
まず、アダプター処理部122は、有効期限経過前の所定期間にあるAPIキーを抽出する(ステップS101)。具体的には、アダプター処理部122は、外部利用情報記憶部112´を参照して、有効期限112Dが所定期間未満(例えば、1週間未満)に到来するAPIキーを特定する。
そして、アダプター処理部122は、抽出したAPIキーを新APIキーと交換する(ステップS102)。具体的には、アダプター処理部122は、抽出したAPIキー112Cをライセンス更新により発行された新APIキーの情報と入れ替える。そして、アダプター処理部122は、有効期限112Dに更新後の有効期限を格納する。
そして、アダプター処理部122は、新APIキーの入替日112Eに、処理日を設定する(ステップS103)。
次に、アダプター処理部122は、入替日から所定期間(例えば1週間、あるいはAPIキーの最大有効期間の一定割合の期間)が経過したAPIキーを抽出する(ステップS104)。具体的には、アダプター処理部122は、外部利用情報記憶部112´を参照して、入替日から所定期間が経過したAPIキーを特定する。
そして、アダプター処理部122は、抽出したAPIキーを、有効期限が同じ他のAPIキーと交換する(ステップS105)。具体的には、アダプター処理部122は、抽出したAPIキー112Cについて、有効期限が同じ他のAPIキーの情報と交換する。交換する対象のAPIキーは、所定の規則に従って選択されてもよいし、ランダムに選択されてもよい。
そして、アダプター処理部122は、交換したAPIキーの入替日112Eに、処理日を設定する(ステップS106)。
以上が、外部利用情報更新処理の例である。外部利用情報更新処理の例によれば、外部リソース接続支援装置100は、有効期限が経過する前にAPIキーを新たなAPIキーと交換することができる。また、外部リソース接続支援装置100は、有効期限内のAPIキーであって有効期限が同じAPIキー同士を所定期間ごとに交換することができる。このようにすることで、外部リソース接続支援装置100は、APIキーのライセンスの認証が有効な期間を維持し続け、また、一度入手したAPIキーを再利用して不正に外部リソースを利用するような不当なアクセスを排除することが可能となる。
また、上記した実施形態の技術的要素は、単独で適用されてもよいし、プログラム部品とハードウェア部品のような複数の部分に分けられて適用されるようにしてもよい。
以上、本発明について、実施形態を中心に説明した。
1・・・外部リソース接続支援システム、50・・・ネットワーク、100・・・外部リソース接続支援装置、110・・・記憶部、111・・・利用バックエンドサービス記憶部、112・・・外部利用情報記憶部、120・・・処理部、121・・・ハブ処理部、122・・・アダプター処理部、130・・・通信部、150・・・認証サーバー、200・・・クライアント装置、210・・・処理部、220・・・表示部、230・・・通信部、300・・・バックエンドサービス提供装置。

Claims (9)

  1. 通信部と、ハブ処理部と、アダプター処理部と、を備え、
    前記ハブ処理部は、前記通信部を介して所定のリソース識別子により第一の処理を依頼されると、該リソース識別子に付帯するサブスクリプションキーと認証トークンを取得し、該サブスクリプションキーが、前記アダプター処理部への所定の第二の処理の依頼が不可能とされるものであれば該第一の処理を中止し、前記第二の処理の依頼が可能とされるものであれば、前記リソース識別子に応じて、前記サブスクリプションキーと前記認証トークンとを付帯させて前記アダプター処理部に前記第二の処理を依頼し、
    前記アダプター処理部は、前記第二の処理を依頼されると、該依頼に付帯する前記サブスクリプションキーと前記認証トークンとを取得し、前記認証トークンに応じた利用者識別子を特定し、前記サブスクリプションキーおよび前記利用者識別子が所定の外部リソースに所定の外部処理を依頼するための外部リソース識別子に予め対応付けられているか否か判定し、対応付けられている場合には前記外部リソース識別子に付帯させる外部利用情報を特定し、該外部利用情報を付帯させて前記外部リソース識別子により前記通信部を介して前記外部リソースに前記外部処理を依頼する、
    ことを特徴とする外部リソース接続支援装置。
  2. 請求項1に記載の外部リソース接続支援装置であって、
    前記ハブ処理部は、前記リソース識別子に応じて、前記アダプター処理部に前記第二の処理を依頼するための第二のリソース識別子を特定し、前記サブスクリプションキーと前記認証トークンとを付帯させて第二のリソース識別子により前記アダプター処理部に前記第二の処理を依頼し、
    前記アダプター処理部は、前記第二のリソース識別子により前記第二の処理の依頼を受け付ける、
    ことを特徴とする外部リソース接続支援装置。
  3. 請求項1に記載の外部リソース接続支援装置であって、
    前記外部利用情報には、前記外部リソースに前記外部処理を依頼するために必要な認証のために該外部リソースから要求される外部利用APIキー情報または利用者特定情報が含まれ、
    前記アダプター処理部は、前記認証が有効な期間と同じかより短い周期で前記外部利用情報を更新する、
    ことを特徴とする外部リソース接続支援装置。
  4. 請求項1に記載の外部リソース接続支援装置であって、
    前記アダプター処理部が複数含まれ、
    夫々の前記アダプター処理部は、互いに異なる前記外部リソースのいずれかに前記外部処理を依頼するものである場合、
    前記ハブ処理部は、前記認証トークンに応じて前記アダプター処理部のいずれかを選択して前記第二の処理を依頼する、
    ことを特徴とする外部リソース接続支援装置。
  5. 請求項1に記載の外部リソース接続支援装置であって、
    前記アダプター処理部は、前記外部リソースが提供する前記外部処理の仕様に応じて前記外部処理を複数組み合わせて依頼する、
    ことを特徴とする外部リソース接続支援装置。
  6. 通信部と、プロセッサーと、を備え、
    前記プロセッサーは、前記通信部を介して所定のURLにより所定の第一の処理を依頼されると、該URLに付帯するサブスクリプションキーと認証トークンを取得するステップと、
    前記サブスクリプションキーが有効なものでない場合には処理を中止するステップと、
    前記認証トークンに応じた利用者識別子を特定するステップと、
    前記サブスクリプションキーおよび前記利用者識別子が所定のWebAPIに所定の外部処理を依頼するための外部URLに予め対応付けられているか否か判定するステップと、
    対応付けられている場合には、前記外部URLに付帯させる外部利用情報を特定し、該外部利用情報を付帯させて前記外部URLにより前記通信部を介して前記WebAPIに前記外部処理を依頼するステップと、
    を実施することを特徴とするWebAPI接続支援装置。
  7. 請求項6に記載のWebAPI接続支援装置であって、
    前記外部利用情報には、前記WebAPIに前記外部処理を依頼するために必要な認証のために該WebAPIから要求される外部利用APIキー情報または利用者特定情報が含まれ、
    前記プロセッサーは、前記認証が有効な期間と同じかより短い周期で前記外部利用情報を更新する、
    ことを特徴とするWebAPI接続支援装置。
  8. 少なくとも通信装置と、プロセッサーと、を備えるコンピュータを外部リソース接続支援装置として機能させるプログラムであって、
    前記プロセッサーに、
    前記通信装置を介して所定のリソース識別子により所定の第一の処理を依頼されると、該リソース識別子に付帯するサブスクリプションキーと認証トークンを取得するステップと、
    前記サブスクリプションキーが有効なものでない場合には処理を中止するステップと、
    前記認証トークンに応じた利用者識別子を特定するステップと、
    前記サブスクリプションキーおよび前記利用者識別子が所定の外部リソースに所定の外部処理を依頼するための外部リソース識別子に予め対応付けられているか否か判定するステップと、
    対応付けられている場合には、前記外部リソース識別子に付帯させる外部利用情報を特定し、該外部利用情報を付帯させて前記外部リソース識別子により前記通信装置を介して前記外部リソースに前記外部処理を依頼するステップと、
    を実行させることを特徴とするプログラム。
  9. 少なくとも通信装置と、プロセッサーと、を備えるコンピュータを用いた外部リソース接続支援方法であって、
    前記プロセッサーに、
    前記通信装置を介して所定のリソース識別子により所定の第一の処理を依頼されると、該リソース識別子に付帯するサブスクリプションキーと認証トークンを取得するステップと、
    前記サブスクリプションキーが有効なものでない場合には処理を中止するステップと、
    前記認証トークンに応じた利用者識別子を特定するステップと、
    前記サブスクリプションキーおよび前記利用者識別子が所定の外部リソースに所定の外部処理を依頼するための外部リソース識別子に予め対応付けられているか否か判定するステップと、
    対応付けられている場合には、前記外部リソース識別子に付帯させる外部利用情報を特定し、該外部利用情報を付帯させて前記外部リソース識別子により前記通信装置を介して前記外部リソースに前記処理を依頼するステップと、
    を実行させることを特徴とする外部リソース接続支援方法。
JP2022079748A 2022-05-13 2022-05-13 外部リソース接続支援装置、WebAPI接続支援装置、プログラムおよび外部リソース接続支援方法 Pending JP2023168098A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022079748A JP2023168098A (ja) 2022-05-13 2022-05-13 外部リソース接続支援装置、WebAPI接続支援装置、プログラムおよび外部リソース接続支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022079748A JP2023168098A (ja) 2022-05-13 2022-05-13 外部リソース接続支援装置、WebAPI接続支援装置、プログラムおよび外部リソース接続支援方法

Publications (1)

Publication Number Publication Date
JP2023168098A true JP2023168098A (ja) 2023-11-24

Family

ID=88837953

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022079748A Pending JP2023168098A (ja) 2022-05-13 2022-05-13 外部リソース接続支援装置、WebAPI接続支援装置、プログラムおよび外部リソース接続支援方法

Country Status (1)

Country Link
JP (1) JP2023168098A (ja)

Similar Documents

Publication Publication Date Title
US11489671B2 (en) Serverless connected app design
JP7015916B2 (ja) クライアントのためのアプリケーションの管理をサポートするためのコンピュータ自動化方法、コンピュータ・プログラム、およびシステム
US10643149B2 (en) Whitelist construction
US11645375B2 (en) Authorization of resource access
US11632397B2 (en) Temporary interface to provide intelligent application access
CA3087858C (en) Authentication and authorization using tokens with action identification
CN111614673A (zh) 一种基于cas的权限认证系统的工作方法
US20170171191A1 (en) Certificate renewal and deployment
US11411881B2 (en) Organization level identity management
US10397213B2 (en) Systems, methods, and software to provide access control in cloud computing environments
KR20130046155A (ko) 클라우드 컴퓨팅 서비스에서의 접근제어 시스템
US20170310659A1 (en) Protection of application passwords using a secure proxy
US20220232003A1 (en) Limiting scopes in token-based authorization systems
CN114726621A (zh) 用于最终用户启动的访问服务器真实性检查的方法和系统
CN108073823B (zh) 数据处理方法、装置及系统
JP2010538365A (ja) 転送可能な制限付きセキュリティトークン
CN103460215A (zh) 为服务应用提供授权访问以便使用最终用户的受保护资源的方法
JP2012256248A (ja) クラウドシステム、クラウドサービスのライセンス管理方法、およびプログラム
US20190044979A1 (en) Virtual communication endpoint services
US11163457B2 (en) Authorizing modification of resources
US9075996B2 (en) Evaluating a security stack in response to a request to access a service
US20230222137A1 (en) Data management platform
JP2019036245A (ja) 情報処理装置
JP2023168098A (ja) 外部リソース接続支援装置、WebAPI接続支援装置、プログラムおよび外部リソース接続支援方法
US20110113474A1 (en) Network system security managment