以下に、本発明の実施の形態について、添付の図面を参照して説明する。
<システムの構成>
初めに、本実施形態に係る情報処理システムのシステム構成について説明する。
図1は一実施形態に係る情報処理システムの構成例を示す図である。情報処理システム100は、情報蓄積装置101、PC(Personal Computer)102a、102b、中継サーバ103等を有する。
情報蓄積装置(情報処理装置)101は、ファイアウォール等で守られたイントラネット105内に設けられた情報処理装置である。情報蓄積装置101は、高機能な処理の実行、ファイルサーバとしての処理の実行、及び中継サーバ103から、情報蓄積装置101へ要求を取得する処理の実行等を行う。なお、情報蓄積装置10は、複数のコンピュータに分散して構成するようにしても良い。
図1の例では、情報蓄積装置101は、イントラネット105内のLAN(Local Area Network)等のネットワーク106を介して、PC102bや、電子機器107(例えば、コピー機、プリンタ、複合機等のオフィス機器や、プロジェクタ、電子黒板、モニタ等)等に接続されている。なお、情報蓄積装置101は、インターネット104に接続し、中継サーバ103と通信することができる。
PC(端末装置)102a、102bは、例えば、ノートPC等、利用者が利用する情報処理装置である。なお、以下の説明の中で、PC102a、102bのうちの任意のPCを示す場合、「PC102」を用いる。PC102は、インターネット104や、イントラネット105内のネットワーク106等に接続する通信インタフェースを有している。また、PC102には、クライアントアプリ111、外部アプリ112等のアプリケーションプログラム(以下、アプリと呼ぶ)がインストールされている。
クライアントアプリ111は、例えば、PC102から、情報蓄積装置101に保存されたファイル等にアクセスする際に利用されるアプリである。利用者は、クライアントアプリ111を利用することにより、イントラネット105の外部から、中継サーバ103を介して、情報蓄積装置101に保存されたファイル等を利用することができる。
外部アプリ112は、例えば、文書作成アプリ、スプレッドシートアプリ等のクライアントアプリ111以外のアプリである。
中継サーバ103は、インターネット104に接続された情報処理装置であり、イントラネット105の外部にあるPC102a等から、イントラネット105の内部にある情報蓄積装置101へのデータの送受信を中継する。
上記の構成において、利用者は、例えば、イントラネット105内にPC102が接続されていれば、PC102のOSの機能を利用するなどして情報蓄積装置101に接続し、情報蓄積装置内のファイルを利用することができる。しかし、イントラネット105の外部からPC102を利用してアクセスする場合、ファイアウォール等がありアクセスすることができない。そのため、イントラネット105の外部からPC102をインターネット104に接続し、クライアントアプリ111を用いることにより、中継サーバ103を介して情報蓄積装置101に記憶されたファイル等を利用することができる。
また、本実施形態に係るクライアントアプリ111は、PC102で動作する他のプログラム(例えば外部アプリ112)に、情報蓄積装置101にアクセスするためのインタフェースを提供する。好ましくは、このインタフェースは、例えば、Windows(登録商標)のDLL(Dynamic Link Library)等のように、複数のプログラムから共通に利用できるライブラリ等として提供される。
このインタフェースを利用することにより、利用者は、外部アプリ112を用いて、中継サーバ103を介して情報蓄積装置101に記憶されたファイル等を利用することができるようになる。
また、本実施形態に係る情報蓄積装置101は、PC102からの処理の要求を取得し、取得した要求の要求元がクライアントアプリ111とは異なる場合、PC102に追加の認証を要求する。
これにより、PC102からクライアントアプリ111を用いて情報蓄積装置101の機能を利用する情報処理システム100において、セキュリティを確保しつつ、外部アプリ112から情報蓄積装置101の機能を利用することを容易にすることができる。
<ハードウェア構成>
次に、各装置のハードウェアの構成について説明する。
情報蓄積装置101、PC102、及び中継サーバ103は、一般的なコンピュータの構成を有している。
図2は、一実施形態に係るコンピュータのハードウェア構成例を示す図である。コンピュータ200は、例えば、CPU(Central Processing Unit)201、RAM(Random Access Memory)202、ROM(Read Only Memory)203、ストレージ部204、ネットワークI/F部205、入力部206、表示部207、外部I/F部208、及びバス209等を有する。なお、入力部206及び表示部207は、必要なときに接続して利用する形態であっても良い。
CPU201は、ROM203やストレージ部204等からプログラムやデータをRAM202上に読み出し、処理を実行することで、コンピュータ200全体の制御や機能を実現する演算装置である。RAM202はプログラムやデータを一時保持する揮発性のメモリ(記憶装置)の一例である。ROM203は、電源を切ってもプログラムやデータを保持することができる不揮発性のメモリ(記憶装置)の一例である。ROM203には、例えば、コンピュータ200の起動時に実行されるBIOSや、各種の設定等のプログラムやデータが格納されている。
また、ストレージ部204は、プログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには、コンピュータ200全体を制御する基本ソフトウェアであるOS(Operating System)、及びOS上において各種機能を提供するアプリケーションプログラム等が含まれる。ストレージ部204は、例えば、HDD(Hard Disk Drive)や、SSD(Solid State Drive)等によって実現される。
ネットワークI/F部205は、コンピュータ200を各種ネットワークに接続するインタフェースである。これにより、コンピュータ200は、ネットワークI/F部205を介してデータ通信を行うことができる。
入力部206は、例えば、キーボード、マウス、タッチパネル等を含み、利用者が各操作信号を入力するのに用いられる入力装置である。表示部207は、例えば、ディスプレイ等を含み、コンピュータ200による処理結果を表示する表示装置である。
外部I/F部208は、外部装置とのインタフェースである。外部装置には、記録媒体210等がある。これにより、コンピュータ200は外部I/F部208を介して記録媒体210の読み取り、書き込み等を行うことができる。記録媒体210には、USB(Universal Serial Bus)メモリ、各種のメモリカード等が含まれる。
バス209は、上記の各構成に共通に接続され、例えば、アドレス信号、データ信号、各種の制御信号等を伝達する。
情報蓄積装置101、PC102、及び中継サーバ103は、例えば、図2に示すコンピュータ200でプログラムを実行することにより、後述するような各種の処理を実現する。
<ソフトウェア構成>
(情報蓄積装置の処理ブロック図)
本実施形態に係る情報蓄積装置101は、例えば、図3に示す処理ブロックで実現される。
図3は一実施形態に係る情報蓄積装置の一例の処理ブロック図である。情報蓄積装置10は、プログラムを実行することで、OS301、Webサーバ302、アプリケーションサーバ303、WebUI304、WebApi305、共有フォルダ307、ドキュメント管理308、外部機器サービス309、中継クライアント310、ログ管理311、Web制御部306、及び認証部312等を実現している。
OS301は、情報蓄積装置101のオペレーティングシステムであり、システム全体を制御する。OS301は、例えばWindowsやLinux(登録商標)等である。
Webサーバ302は、HTTP(Hyper Text Transfer Protocol)で情報を送受信するソフトウェアである。Webサーバ302は例えばApache(登録商標)やIIS(登録商標)等である。
アプリケーションサーバ303は、例えば、Webサーバ302のプラグインとして動作するソフトウェアである。アプリケーションサーバ303は、例えば、Tomcat(登録商標)等である。
WebUI304は、HTTPリクエストによりシステム設定画面を表示する。利用者はWebブラウザ等を利用して、システム設定画面から設定の変更を行うことができる。
WebApi(Application Programming Interface)305はネットワーク経由で利用可能であり、HTTPリクエストを受付け、HTTPリクエストに応じた処理を行い、HTTPレスポンスを行う。WebApi25は、PC102等の端末装置からのリクエスト(要求)を受信するために設けられた予め定義されたインタフェース(API)であり、例えば関数やクラス等により構成される。
Web制御部306は、WebApiからの要求に応じて外部機器サービス309を制御する処理を行う。共有フォルダ307は、SMB(Server Message Block)プロトコルによってネットワーク上で利用可能なフォルダである。利用者は、PC102等の端末装置を用いて、共有フォルダ307に保存されたファイル等を利用する。
ドキュメント管理308は、共有フォルダ307に置かれたファイルを管理し、外部機器サービス309からの要求に応じてファイル変換の処理を行う。なお、本実施形態におけるファイルはデータの一形態である。
外部機器サービス309は、電子機器107のWebサービスにリクエストする処理を行う。中継クライアント(取得手段)310は、中継サーバ103にアクセスし、PC102等からの処理の要求を取得する処理を行う。ログ管理311は、ログのデータ(ログ情報)を管理する処理を行う。
認証部(認証手段)312は、中継クライアント310が取得した処理の要求に対する認証処理を行う。また、本実施形態に係る認証部312は、中継クライアント310が取得した処理の要求の要求元がクライアントアプリと異なる場合、後述する追加の認証処理を実行する。
(PCの処理ブロック図)
本実施形態に係るPC102は、例えば、図4に示すような処理ブロックで実現される。
図4は、一実施形態に係るPCの一例の処理ブロック図である。
PC102は、プログラムを実行することで、クライアントアプリ111、及び1つ以上の外部アプリ112等を実現している。
クライアントアプリ(第1のアプリケーション)111は、PC102から、中継サーバ103を介して、情報蓄積装置101に保存されたファイル等を利用するためのアプリである。クライアントアプリ111は、例えば、共通インタフェース部411、認証情報記憶部402、認証処理部403、表示入力部404等を有する。
認証情報記憶部402は、情報蓄積装置101を利用するための第1の認証情報を含む利用情報を記憶する手段であり、例えば、図2のストレージ部204、及び図2のCPU201で動作するプログラム等によって実現される。
認証情報記憶部402が記憶する利用情報の例を図7(a)に示す。利用情報701には、例えば、「中継サーバホスト」、「ファイルサーバID」、「IPアドレス」、「ユーザ名」、「パスワード」、「デバイスID」等の情報が含まれる。
「中継サーバホスト」は、中継サーバ103を特定するホスト名等の情報である。「ファイルサーバID」は、情報蓄積装置101を識別する識別情報である。「IPアドレス」は、情報蓄積装置101のIPアドレスである。クライアントアプリ111は、これらの情報に基づいて、情報蓄積装置101にアクセスすることができる。
「ユーザ名」は、例えば、ユーザの名前、識別情報、メールアドレス等、利用者を識別するための情報である。「パスワード」は、「ユーザ名」に対応するパスワード等の認証情報である。「デバイスID」は、PC102を識別するための識別情報(例えば、製造時に書込まれた個体識別情報や、MACアドレス等)である。なお、「ユーザ名」、「パスワード」、及び「デバイスID」は、クライアントアプリ111が有する情報蓄積装置101を利用するための第1の認証情報の一例である。
共通インタフェース部(DLL)401は、PC102で動作する複数のプログラム(外部アプリ112等)に、認証情報記憶部402が記憶した第1の認証情報を用いて情報蓄積装置101にアクセスするインタフェースを提供する手段である。共通インタフェース部401は、例えば、図2のCPU201で動作するプログラムによって実現される。
共通インタフェース部401は、例えば、WindowsのDLLの構成を有する。ただし、DLLは、共通インタフェース部401の一例であり、本発明の範囲を限定するものではない。なお、以下の説明の中で、共通インタフェース部401を、DLL401と呼ぶものとする。
認証処理部403は、情報蓄積装置101との認証に関する処理を行う手段であり、例えば、図2のCPU201で動作するプログラムによって実現される。
例えば、認証処理部403は、情報蓄積装置101との間で所定の認証処理(ペアリング)を行い、情報蓄積装置101を利用するための第1の認証情報(ユーザ名、パスワード、及びデバイスID等)を含む利用情報を、認証情報記憶部402に記憶する。このとき、情報蓄積装置101も、クライアントアプリ111に対応する第1の認証情報(ユーザ名、パスワード、及びデバイスID等)をユーザ情報として記憶する。
クライアントアプリ111は、この第1の認証情報を用いて、利用者によるIDやパスワードの入力によらずに、情報蓄積装置101が提供する機能を利用することができる。
表示入力部404は、例えば、情報蓄積装置101からの要求に応じて、後述する認証情報(第2の認証情報)の入力画面を表示させ、入力させた情報を受付ける手段である。表示入力部404は、例えば、図2の入力部206、表示部207、及び図2のCPU201で動作するプログラム等によって実現される。
外部アプリ112は、PC102で動作するクライアントアプリとは異なるアプリであり、クライアントアプリ111によって提供されるインタフェース(共通インタフェース部401)を介して、情報蓄積装置101に所定の処理を要求する。
なお、外部アプリ112やクライアントアプリ111は、図2に示すストレージ部204や、記録媒体210、ROM203、RAM202等のPC102の有する(或いはPC102に接続される)記憶領域(記憶手段)に記憶される。
また、図示しないが、クライアントアプリ111は、情報蓄積装置101に処理の要求を送信する要求送信部が含まれる。
クライアントアプリ111から要求される処理には、例えば情報蓄積装置101に記載されたファイルやフォルダの一覧の取得、ファイルの取得等が含まれる。また、クライアントアプリ111から要求される処理には、情報蓄積装置101と接続される他の装置(画像形成装置や投影装置、表示装置等の出力装置)へのデータの出力要求や、他の装置へ出力するためのファイルの取得要求等が含まれる。例えば、クライアントアプリ111は、情報蓄積装置101に記憶されたファイルを、ファイル形式を指定して要求し、指定されたファイルが、指定されたファイル形式で記憶されていない場合、指定されたファイル形式に変換してPC102に送信させる。
<処理の流れ>
続いて、本実施形態に係る情報処理システム100の処理の流れについて説明する。
図5は、一実施形態に係る情報処理システムの処理の例を示す図である。ここでは、PC102の外部アプリ112から、情報蓄積装置101にファイルの取得を要求する場合の処理の例について説明する。なお、ファイルの取得処理は、外部アプリ112から、情報蓄積装置101に要求する所定の処理の一例である。
なお、図5の例では、PC102から情報蓄積装置101に対する処理の要求は、中継サーバ103に一時的に記憶される。また、情報蓄積装置101は、例えば、定期的に中継サーバ103に自装置あての要求の有無を問合せ、自装置あての要求がある場合、要求を取得するものとする。
また、図5の開始時点において、PC102のクライアントアプリ111と、情報蓄積装置101との間で、前述した所定の認証処理(ペアリング)が完了しており、クライアントアプリ111及び情報蓄積装置101が、第1の認証情報を記憶しているものとする。
ステップS501において、情報蓄積装置101は、中継サーバ103に、情報蓄積装置101に対する処理の要求の有無を問い合わせる。なお、情報蓄積装置101は、同様の問合せを、例えば、定期的に中継サーバ103に行う。
ステップS502において、中継サーバ103は、情報蓄積装置101宛ての処理の要求がない場合、要求がないことを示す情報を情報蓄積装置101に通知する。
ステップS503において、PC102の利用者の操作等により、外部アプリ112が起動する。
ステップS504において、外部アプリ112は、起動に応じて、クライアントアプリ111によって提供されるDLL401を読込む。これにより、外部アプリ112は、DLL401を介して、情報蓄積装置101に処理を要求することができるようになる。
ステップS505において、外部アプリ112は、DLL401を介して、情報蓄積装置101にファイルの取得を要求する。
ステップS506において、クライアントアプリ111は、外部アプリ112から、DLL401を介してファイルの取得要求を受付けると、ステップS507において、ファイル取得要求を中継サーバ103に送信する。なお、ステップS507で、送信されるファイル取得要求には、後述するアクセス情報が含まれる。
ステップS508において、中継サーバ103は、クライアントアプリ111から受信したファイルの取得要求を記憶する。
ステップS509において、情報蓄積装置101が中継サーバ103に、情報蓄積装置101に対する処理の要求の有無を問い合わせると、ステップS510において、中継サーバ103は、ステップS508で記憶した要求を情報蓄積装置101に送信する。
ステップS511において、情報蓄積装置101は、図6で説明する認証処理を行い、認証が許可された場合、ステップS512〜S514において、要求されたファイルを、外部アプリ112に提供する。
図6は、一実施形態に係る情報蓄積装置の認証処理の例を示すフローチャートである。なお、図6の処理は、図5のステップS511の認証処理に対応している。
ステップS601において、情報蓄積装置101の認証部312は、中継サーバ103から取得した要求に含まれる第1の認証情報(ユーザ名、パスワード、及びデバイスID等)が正しいかどうかを判断する。
認証部312は、PC102のクライアントアプリ111との間で処理の認証処理(ペアリング)が行われたとき、クライアントアプリ111に対応する第1の認証情報を、例えば、図7(b)に示すユーザ情報702として記憶しているものとする。認証部312は、中継サーバ103から取得された要求に含まれる第1の認証情報が、ユーザ情報702に含まれる場合、第1の認証情報が正しいと判断する。
ステップS601において、中継サーバ103から取得された要求に含まれる第1の認証情報が正しくない場合、認証部312は処理を終了する。一方、中継サーバ103から取得した要求に含まれる第1の認証情報が正しい場合、認証部312は、ステップS602に処理を移行させる。
ステップS602に移行すると、情報蓄積装置101の認証部312は、中継サーバ103から取得した要求に含まれるアクセス情報に基づいて、要求の要求元がクライアントアプリ111であるか否かを判断する。
図8は、一実施形態に係る要求に含まれるアクセス情報の例を示す図である。
図8(a)の例では、アクセス情報801には、「CID」、「Authorization」、「deviceID」、及び「accessType」等の情報が含まれる。
「CID」には、図7(a)の「ファイルサーバID」が設定される。「Authorization」は、図7(a)の「ユーザ名」及び「パスワード」が設定される。「debiceID」には、図7(a)の「デバイスID」が設定される。このように、アクセス情報801には、第1の認証情報が含まれる。
さらに、「accessType」には、図8(b)の要求元情報803に示すように、要求元がクライアントアプリ111である場合、「0」が設定され、要求元が外部アプリである場合、「1」が設定される。
これにより、情報蓄積装置101の認証部312は、このアクセス情報801に含まれる「accessType」802の情報に基づいて、要求の要求元がクライアントアプリであるかどうかを判断することができる。
図6に戻ってフローチャートの説明を続ける。
ステップS602において、要求の要求元がクライアントアプリである場合、情報蓄積装置101は、ステップS605に処理を移行させて、要求された処理を実行する。一方、ステップS602において、要求の要求元がクライアントアプリでない場合、認証部312は、処理をステップS603に移行させて、追加の認証処理を行う。なお、追加の認証処理については、第1〜3の実施形態で具体的な処理内容を説明する。
ステップS604において、追加の認証処理の認証結果に応じて、処理を分岐させる。追加の認証処理の結果が「OK」である場合、情報蓄積装置101は、ステップS605において、要求された所定の処理を実行する。一方、追加の認証処理の結果が「OK」でない場合、情報蓄積装置101は処理を終了させる。
このように、本実施形態に係る情報処理システム100では、PC102の利用者は、外部アプリ112を用いて、情報蓄積装置101に所定の処理を要求することができる。
また、情報蓄積装置101は、PC102からの要求の要求元がクライアントアプリ111ではない場合、追加の認証処理を行う。
続いて、追加の認証処理について、複数の実施形態に分けて説明を行う。
[第1の実施形態]
図9は、第1の実施形態に係る情報蓄積装置の認証処理の例を示すフローチャートである。
ステップS901において、情報蓄積装置101の認証部312は、中継サーバ103から取得した要求に含まれる第1の認証情報(ユーザ名、パスワード、及びデバイスID等)が正しいかどうかを判断する。中継サーバ103から取得された要求に含まれる第1の認証情報が正しくない場合、認証部312は処理を終了させる。一方、中継サーバ103から取得した要求に含まれる第1の認証情報が正しい場合、認証部312は、ステップS902に処理を移行させる。
ステップS902に移行すると、情報蓄積装置101の認証部312は、中継サーバ103から取得した要求に含まれるアクセス情報に基づいて、要求の要求元がクライアントアプリ111であるか否かを判断する。要求の要求元がクライアントアプリである場合、情報蓄積装置101は、ステップS906に処理を移行させて、要求された処理を実行する。一方、要求の要求元がクライアントアプリでない場合、認証部312は、処理をステップS903に移行させる。
ステップS903に移行すると、情報蓄積装置101の認証部312は、要求された処理内容に応じて、追加の認証が必要か否かを判断する。例えば、認証部312は、図10に示すような追加認証の設定情報を予め記憶しておき、予め記憶された追加認証の設定情報に基づいて、追加認証が必要か否かを判断する。
図10は、第1の実施形態に係る追加認証の設定情報の例を示す図である。
図10(a)の例では、設定情報には、複数の処理毎に、追加認証の要否を示す情報が設定されている。例えば、要求された処理内容が、「ファイル一覧の取得」である場合、追加認証の要否は「否」と判断される。また、要求された処理内容が、「オリジナルファイルの取得」である場合、追加認証の要否は「要」と判断される。
図10(b)の例では、設定情報には、複数の処理毎に、追加認証の要求方法を示す情報が設定されている。例えば、要求された処理内容が、「サムネイルの取得」である場合、追加認証の要求方法(種別)は「なし」となり、追加認証を行わない。また、要求された処理内容が、「オリジナルファイルの取得」である場合、追加認証の要求方法(種別)は「毎回」となり、「オリジナルファイルの取得」が要求される度に追加認証を行う。
さらに、要求された処理内容が、「ファイル一覧の取得」である場合、追加認証の要求方法は、「一回」となる。この場合、認証部312は、一回目に「ファイル一覧の取得」を要求されたときに追加の認証を行い、2回目以降に「ファイル一覧の取得」を要求されたときには追加の認証を行わない。
具体的な一例として、認証部312は、「ファイル一覧の取得」の要求を受けた日時と、追加の認証を行った場合の認証結果を、図11に示すようなアクセス記録情報として記憶しておくと良い。
図11は、第1の実施形態に係るアクセス記録情報の例を示す図である。
「デバイスID」、「ユーザ名」、及び「パスワード」は、要求元のクライアントアプリ111を特定するための情報の一例である。「アクセス日時」は、例えば、「ファイル一覧の取得」の要求を受けた日時を示す情報である。「認証」は、追加の認証を行った場合の認証結果を示す情報であり、「OK」は、認証結果が「OK」であったことを示す。認証部312は、例えば、「認証」が「OK」となった「アクセス日時」の後、所定の期間内(例えば30分以内)に取得した「ファイル一覧の取得」の要求に対して、追加の認証を行わないように制御する。
図9に戻って、フローチャートの説明を続ける。
ステップS903で、追加の認証が必要でないと判断された場合、情報蓄積装置101は、処理をステップS906に移行させて、要求された処理を実行する。一方、追加の認証が必要と判断された場合、情報蓄積装置101は、処理をステップS904に移行させる。
ステップS904に移行すると、情報蓄積装置101の認証部312は、PC102(端末装置)に追加の認証情報を要求する。例えば、情報蓄積装置101は、PC102にユーザ名とパスワードを入力させる認証画面を表示させ、認証情報の入力を促す。
ステップS905に移行すると、認証部312は、PC102から取得した追加の認証情報が正しいか否かを判断する。取得した追加の認証情報が正しい場合、情報蓄積装置101は、処理をステップS906に移行させて、要求された処理を実行する。一方、取得した追加の認証情報が正しくない場合、情報蓄積装置101は処理を終了させる。
続いて、情報処理システム100の全体の認証処理の流れについて説明する。
図12は、第1の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。なお、ここでは、情報蓄積装置101の認証部312は、図10(a)の設定情報を用いて、追加認証の要否を判断するものとして以下の説明を行う。また、図12において、破線の矢印は、利用者による操作等を示す。
ステップS1201において、利用者が、PC102の外部アプリ112にファイル一覧の要求操作を行う。
ステップS1202において、利用者から、ファイル一覧の要求操作を受付けた外部アプリ112は、クライアントアプリ111が提供するDLL401を介して、情報蓄積装置101にファイルの取得を要求する。なお、図12では、DLL401の図示を省略しているが、処理内容は、図5のステップS505、S506と同様である。
ステップS1203において、クライアントアプリ111は、外部アプリ112から、DLL401を介してファイル一覧の取得要求を受付けると、アクセス情報を含むファイル一覧の取得要求を、中継サーバ103に送信する。
ステップS1204において、情報蓄積装置101は、中継サーバ103から、アクセス情報を含むファイル一覧の取得要求を取得する。なお、図12では、情報蓄積装置101からの要求問合せ処理の図示を省略しているが、処理内容は、図5のステップS509、S510と同様である。
ステップS1205において、情報蓄積装置101は、図9に示す認証処理を行う。例えば、図9のステップS901において、要求に含まれる認証情報が正しい場合、ステップS902において、要求元は外部アプリ112なので、ステップS903に移行する。ステップS903に移行すると、要求された処理はファイル一覧の取得なので、図10(a)の設定情報に基づいて追加の認証は不要と判断する。
ステップS1206において、情報蓄積装置101は、要求されたファイル一覧の取得を実行し、中継サーバ103にファイル一覧を送信する。ステップS1207において、中継サーバ103は、受信したファイル一覧をPC102に送信する。
ステップS1208において、PC102の外部アプリ112は、クライアントアプリ111を介してファイルの一覧を受信し、ステップS1209において、受信したファイル一覧を表示入力部404に表示させる。このとき、表示入力部404に表示される表示画面の例を図13(a)に示す。
図13(a)の例では、外部アプリ112の表示画面1301に、情報蓄積装置101から取得したファイル一覧が表示されている。利用者は、表示されたファイル一覧の中から、例えば、ファイルA1302を選択し、ファイル取得1303を選択することにより、ファイルAの取得を要求することができる。
ステップS1210において、利用者によりファイルの取得操作が行われる。
ステップS1211において、利用者から、ファイルの取得操作を受付けた外部アプリ112は、クライアントアプリ111が提供するDLL401を介して、情報蓄積装置101にファイルの取得を要求する。
ステップS1212において、クライアントアプリ111は、外部アプリ112から、DLL401を介してファイルの取得要求を受付けると、アクセス情報を含むファイルの取得要求を、中継サーバ103に送信する。
ステップS1213において、情報蓄積装置101は、中継サーバ103から、アクセス情報を含むファイルの取得要求を取得する。
ステップS1214において、情報蓄積装置101は、図9に示す認証処理を行う。例えば、図9のステップS901において、要求に含まれる認証情報が正しい場合、ステップS902において、要求元は外部アプリ112なので、ステップS903に移行する。ステップS903に移行すると、要求された処理はファイルの取得(例えば、オリジナルファイルの取得)なので、図10(a)の設定情報に基づいて追加の認証が要と判断する。
ステップS1215において、情報蓄積装置101は、中継サーバ103を介して、PC102に追加の認証情報を要求する。なお、この処理は、図9のステップS904に対応する。
ステップS1216において、中継サーバ103は、情報蓄積装置101から受信したい追加の認証情報の要求を、PC102に転送する。
ステップS1217において、中継サーバ103を介して、情報蓄積装置101から、追加の認証情報の要求を受付けたクライアントアプリ111は、追加の認証情報の入力画面を、表示入力部404に表示させる。このとき、表示入力部404に表示される表示画面の例を図13(b)に示す。
図13(b)の例では、表示画面1304に、追加の認証情報を入力するための認証画面1305が表示されている。このように、情報蓄積装置101は、クライアントアプリ111以外からのファイルの取得要求を取得した場合、再度ユーザ名とパスワードの入力を求めることで、登録済の利用者がファイルの取得を要求していることを確認する。
利用者は、例えば、ユーザ名の入力欄1306にユーザ名を入力し、パスワードの入力欄1307にパスワード入力して、送信ボタン1308を選択することにより、追加の認証情報を情報蓄積装置101に送信することができる。なお、このとき、利用者が入力するユーザ名とパスワードは、例えば、第1の認証情報に含まれるユーザ名とパスワードを用いる。
図12に戻ってシーケンス図の説明を続ける。
ステップS1218において、利用者により追加の認証情報の入力操作が行われる。
ステップS1219において、利用者による追加の認証情報の入力を受付けると、クライアントアプリ111は、追加の認証情報を中継サーバ103に送信する。
ステップS1220において、情報蓄積装置101は、中継サーバ103から、追加の認証情報を取得し、取得した追加の認証情報が正しいかどうかを判断する。なお、この処理は、図9のステップS905に対応する。取得した追加の認証情報が正しい場合、ステップS1221において、情報蓄積装置101は、要求されたファイルを、中継サーバ103に送信する。
ステップS1222において、中継サーバ103は、受信したファイルをPC102に送信する。
ステップS1223において、PC102の外部アプリ112は、クライアントアプリ111を介してファイルを受信し、受信したファイルを表示入力部404に表示させる。このとき、表示入力部404に表示される表示画面の例を図14(a)に示す。
図14(a)の例では、外部アプリ112の表示画面1401に、情報蓄積装置101から取得したファイル(ファイルA)1402が表示されているものとする。
一方、例えば、追加の認証情報が正しくない場合等には、例えば、図14(b)に示すような表示画面1403が表示される。図14(b)の例では、表示画面1403には、ファイルを取得することができなかったことを示すメッセージ1404が表示されている。
[第2の実施形態]
第1の実施形態では、情報蓄積装置101は、処理の要求元がクライアントアプリ111かどうかにより追加認証の制御を行っていた。第2の実施形態では、外部アプリ112の識別情報に応じて追加認証の制御を行う場合の例について説明する。
図15は、第2の実施形態に係る情報処理システムの処理の例を示すシーケンス図である。なお、図15のステップS501〜504、及びS508〜514は、図5に示す処理と同様なので、ここでは差分を中心に説明を行う。
外部アプリ112は、外部アプリ112の起動(ステップS503)に応じてクライアントアプリ111が提供するDLLの読込を行う(S504)。
ステップS1501において、外部アプリ112は、DLL401を介して、情報蓄積装置101にファイルの取得(所定の処理の一例)を要求する。
ステップS1502において、クライアントアプリ111は、外部アプリ112から、DLL401を介してファイルの取得要求を受付けると、ステップS1503において、ファイル取得要求を中継サーバ103に送信する。
本実施形態では、このファイル取得要求に、要求元のアプリを識別するための識別情報(以下、アプリIDと呼ぶ)が含まれる。このアプリIDは、例えば、外部アプリ112が、DLL401を介して処理を要求する際に、DLL401に通知するものであっても良い。或いは、クライアントアプリ111(DLL401を含む)が、要求元の外部アプリ112に応じて付与するものであっても良い。
図16は、第2の実施形態に係る要求に含まれるアクセス情報の例を示す図である。
図16(a)に示すように、本実施形態に係るアクセス情報1601には、「CID」、「Authorization」、「deviceID」、及び「accessType」等の情報が含まれる。なお、「CID」、「Authorization」、及び「deviceID」等の情報は、図8で説明した第1の実施形態と同様の情報が設定される。
さらに、「accessType」1602には、図16(b)に示すように、要求元に応じて異なる値が設定される。例えば、クライアントアプリ111である場合、第1の実施形態と同様に「0」が設定され、要求元が外部アプリ1である場合、外部アプリ1のアプリIDである「AP001」が設定される。
これにより、情報蓄積装置101は、処理の要求元のアプリが、クライアントアプリ111と異なる場合、要求元の外部アプリ112を識別することができるようになる。
図17は、第2の実施形態に係るアクセス記録情報、及びアクセス可否情報の例を示す図である。
図17(a)に示すように、本実施形態に係るアクセス記録情報には、図11に示す第1の実施形態のアクセス記録情報に加えて、「アプリID」が含まれる。
これにより、情報蓄積装置101の認証部312は、外部アプリ112毎に、「認証」が「OK」となった「アクセス日時」を管理し、所定の期間内(例えば30分以内)に取得した要求に対して、追加の認証を行わない制御を行うことができる。
例えば、認証部312は、図17(a)に示すアクセス記録情報に基づいて、図17(b)に示すようなアプリID毎のアクセス可否情報を作成し、追加の認証の要否を判断する。
例えば、図17(a)において、アプリID「AP001」は、時刻「22:10:00」に認証がOKとなっているので、時刻「22:10:00」から所定の期間、図17(b)のアクセス可否情報の「アクセス」を「OK」とし、追加の認証を「不要」とする。
一方、所定の期間内に認証が「OK」となっていないアプリID(例えば、「AP003」)は、図17(b)のアクセス可否情報の「アクセス」を「NG」とし、追加の認証を「要」とする。
このように、本実施形態によれば、情報蓄積装置101の認証部312は、外部アプリ毎に追加の認証を制御することができるようになる。
好適な一例として、情報蓄積装置101は、図10に示す設定情報を、外部アプリ毎に個別に設定することができる。例えば、外部アプリ1には図10(a)の設定情報を適用し、外部アプリ2には図10(b)の設定情報を適用すること等が可能となる。これにより、本実施形態に係る情報処理システム100によれば、外部アプリ毎に認証レベルや、認証方法等を設定することができるようになる。
[第3の実施形態]
第2の実施形態では、情報蓄積装置101は、外部アプリ112毎に追加認証の制御を行っていた。第3の実施形態では、外部アプリ112の起動毎に固有の識別情報を生成する場合の例について説明する。
図18は、第3の実施形態に係る情報処理システムの処理の例を示す図である。
ステップS1801において、PC102の利用者の操作等により、外部アプリA112aが起動する。
ステップS1802において、外部アプリA112aは、クライアントアプリ111によって提供されるDLL401の読込みを要求する。
ステップS1802において、DLL401は、外部アプリA112aからの読込みの要求に応じて、固有情報(以下、固有IDと呼ぶ)「XXXXX1」を生成する。なお、固有情報の生成方法は任意の方法であって良い。例えば、DLL401は、要求を受ける毎に固有IDの値をインクリメントさせるもの等であっても良いし、時刻等に基づいて固有IDを生成するもの等であっても良い。
ステップS1804において、DLL401は、外部アプリA112aが読込むDLLに、生成した固有ID「XXXXX1」を付与する。
このように、本実施形態では、外部アプリ112が読込まれる毎に固有の固有IDが生成される。
ステップS1805において、外部アプリA112aは、DLL401を介して、情報蓄積装置101にファイルの取得を要求する。この要求には、ステップS1803で生成された固有ID「XXXXX1」が含まれる。
ステップS1806において、クライアントアプリ111は、外部アプリA112aから、DLL401を介してファイルの取得要求を受付けると、ステップS1807において、ファイル取得要求を中継サーバ103に送信する。
本実施形態では、このファイル取得要求には、ステップS1803で生成された固有ID「XXXXX1」が含まれる。
図19は、第3の実施形態に係る要求に含まれるアクセス情報の例を示す図である。
図19に示すように、本実施形態に係るアクセス情報1901には、「CID」、「Authorization」、「deviceID」、及び「accessType」等の情報が含まれる。なお、「CID」、「Authorization」、及び「deviceID」等の情報は、図8で説明した第1の実施形態と同様の情報が設定される。
また、「accessType」1902には、外部アプリA112aが起動し、DLLを読込む際に付与された固有ID「XXXXX1」が含まれる。
図18に戻ってシーケンス図の説明を続ける。
ステップS1808において、中継サーバ103は、PC102から受信したファイル取得要求を記憶する。なお、情報蓄積装置101が中継サーバ103から要求を取得する処理は、図5で説明したステップS509、S510の処理と同様なので、ここでは説明を省略する。
次に、例えば、ステップS1809において、PC102の利用者の操作等により、外部アプリB112bが起動する。
ステップS1810において、外部アプリB112bは、外部アプリB112bの起動に応じて、クライアントアプリ111によって提供されるDLL401の読込みを要求する。
ステップS1811において、DLL401は、外部アプリB112bからの読込みの要求に応じて、固有ID「XXXXX2」を生成する。
ステップS1812において、DLL401は、外部アプリB112bが読込むDLLに、生成した固有IDを付与する。
このように、本実施形態では、例えば、起動済の外部アプリA112aと異なる外部アプリB112bが起動すると、新たな固有IDが生成され、外部アプリB112bに付与される。
ステップS1813において、外部アプリB112bは、DLL401を介して、情報蓄積装置101にファイルの取得を要求する。この要求には、ステップS1811で生成された固有ID「XXXXX2」が含まれる。
ステップS1814において、クライアントアプリ111は、外部アプリB112bから、DLL401を介してファイルの取得要求を受付けると、ステップS1815において、ファイル取得要求を中継サーバ103に送信する。このファイル取得要求には、ステップS1811で生成された固有ID「XXXXX2」が含まれる。
ステップS1816において、中継サーバ103は、PC102から受信したファイル取得要求を記憶する。
続いて、例えば、ステップS1817において、PC102の利用者の操作等により、外部アプリA112aが再び起動するものとする。例えば、利用者は、外部アプリA112aを2つ起動させるものであっても良いし、外部アプリA112aを一度終了させてから再度起動させるものであっても良い。
ステップS1818において、外部アプリA112aは、クライアントアプリ111によって提供されるDLL401の読込みを要求する。
ステップS1819において、DLL401は、外部アプリA112aからの読込みの要求に応じて、固有ID「XXXXX3」を生成する。
ステップS1820において、DLL401は、外部アプリA112aが読込むDLLに、生成した固有IDを付与する。
このように、本実施形態では、例えば、起動済の外部アプリA112aと同じ外部アプリA112aが起動した場合でも、新たな固有IDが生成され、新たに起動した外部アプリA112aに付与される。
ステップS1821において、外部アプリA112aは、DLL401を介して、情報蓄積装置101にファイルの取得を要求する。この要求には、ステップS1819で生成された固有ID「XXXXX3」が含まれる。
ステップS1822において、クライアントアプリ111は、外部アプリA112aから、DLL401を介してファイルの取得要求を受付けると、ステップS1823において、ファイル取得要求を中継サーバ103に送信する。このファイル取得要求には、ステップS1814で生成された固有ID「XXXXX3」が含まれる。
ステップS1824において、中継サーバ103は、PC102から受信したファイル取得要求を記憶する。
図20は、第3の実施形態に係るアクセス記録情報、及びアクセス可否情報の例を示す図である。
図20(a)に示すように、本実施形態に係るアクセス記録情報には、図11に示す第1の実施形態のアクセス記録情報に加えて、「固有ID」が含まれる。
これにより、情報蓄積装置101の認証部312は、固有ID毎に、「認証」が「OK」となった「アクセス日時」を管理し、所定の期間内(例えば30分以内)に取得した要求に対して、追加の認証を行わないように制御することができる。
例えば、認証部312は、図20(a)に示すアクセス記録情報に基づいて、図20(b)に示すような固有ID毎のアクセス可否情報を作成し、追加の認証の要否を判断することができる。
例えば、図20(a)において、固有ID「XXXXX1」は、時刻「22:10:00」に認証がOKとなっているので、時刻「22:10:00」から所定の期間、図20(b)のアクセス可否情報の「アクセス」を「OK」とし、追加の認証を不要とする。
また、図20(a)において、固有ID「XXXXX3」は、時刻「22:15:15」に認証がOKとなっているので、時刻「22:15:15」から所定の期間、図20(b)のアクセス可否情報の「アクセス」を「OK」とし、追加の認証を不要とする。
このように、本実施形態によれば、外部アプリ112が起動される毎に、起動した外部アプリに固有IDが付与される。これにより、情報蓄積装置101の認証部312は、同じ外部アプリ112が新たに起動された場合等に、追加認証を要求することができるようになる。
なお、第3の実施形態は、第2の実施形態と組み合わせて実施することも可能である。例えば、図18のステップS1807で、クライアントアプリ111が中継サーバ103に送信するファイル取得要求のアクセス情報の「AccessType」に、固有IDとアプリIDを含めて送信する。
これにより、情報蓄積装置101の認証部312は、PC102で、同じアプリIDを有する外部アプリ112が2つ以上起動されたことを検知することができるようになる。
例えば、図20(a)において、固有ID「XXXXX1」と「XXXXX3」の要求元が、外部アプリA112aであるものとする。この場合、情報蓄積装置101の認証部312は、図20(c)に示すように、固有ID「XXXXX3」の認証を許可(OK)した後、同じアプリIDを有する固有ID「XXXXX1」のアクセスを不許可(NG)とすること等ができるようになる。或いは、認証部312は、固有ID「XXXXX3」の認証を許可(OK)した後、同じアプリIDを有する固有ID「XXXXX1」のアクセス可否情報を削除するもの等であっても良い。
なお、上記の各実施の形態において、PC102が、中継サーバ103を介して情報蓄積装置101にアクセスする場合について説明を行った。ただし、これはあくまで一例であり、PC102は、例えば、図1のPC102bのように、中継サーバ103を介さずに情報蓄積装置101に接続されているものであっても良い。
<まとめ>
以上、本発明に係る情報処理システム(100)は、
端末装置(102)と情報処理装置(101)とを含む情報処理システム(100)であって、
前記端末装置(102)は、
前記情報処理装置(101)を利用するための第1の認証情報を有し、前記端末装置(102)で動作する他のアプリケーションに、前記第1の認証情報を用いて前記情報処理装置(101)にアクセスするインタフェース(401)を提供する第1のアプリケーション(111)と、
前記提供されたインタフェース(401)を介して前記情報処理装置(101)に所定の処理を要求する第2のアプリケーション(112)と、
を記憶する記憶手段(204)を有し、
前記情報処理装置(101)は、
前記端末装置(102)から要求を取得する取得手段(310)と、
前記取得した要求の要求元が前記第1のアプリケーション(111)と異なる場合、追加の認証処理を実行する認証手段(312)と、
を有する。
これにより、情報処理システム(100)は、セキュリティを確保しつつ、端末装置(102)の任意のアプリケーションから情報処理装置(101)にアクセスすることを容易にすることができる。
なお、上記括弧内の参照符号は、理解を容易にするために付したものであり、一例に過ぎず、本発明の範囲を限定するものではない。