1.構成
(1)システム全体の構成
図1は、本実施形態に係る中継システム1の全体構成を示す図である。中継システム1は、サービス提供装置10A、10B及び10Cと、クライアント装置20と、中継装置30と、権限登録装置40とを備える。なお、以下の説明では、サービス提供装置10A、10B及び10Cを区別する必要がない場合には、これらを総称して「サービス提供装置10」という。
サービス提供装置10、クライアント装置20、中継装置30及び権限登録装置40は、インターネット等の通信回線2を介して接続される。なお、クライアント装置20及び権限登録装置40は、LAN(Local Area Network)等の別の通信回線を介して通信回線2に接続されてもよい。
サービス提供装置10は、データを保存するサービス等の各種のサービスを提供する。このサービスは、いわゆるクラウドサービスであってもよい。サービス提供装置10にアクセスするには、サービス提供装置10にアクセスする権限を示すトークン、又は正しいユーザが提供可能な信用情報が必要となる。
クライアント装置20は、例えば画像処理装置であり、ユーザがサービス提供装置10から提供されるサービスを利用するときに用いられる。クライアント装置20は、スキャナ機能の他、コピー機能、プリント機能、ファクシミリ機能等の複数の機能を有していてもよい。
中継装置30は、クライアント装置20又は権限登録装置40とサービス提供装置10との間のデータのやり取りを中継する機能を有する。中継装置30を中継してデータをやり取りすることにより、中継装置30にログインするだけで、複数のサービス提供装置10から提供されるサービスの利用が実現される。
権限登録装置40は、例えばパーソナルコンピュータであり、中継装置30と連携して、サービス提供装置10から発行されたトークンを中継装置30に登録する処理を行う。クライアント装置20は、この処理の実行に必要な構成を備えていない場合がある。したがって、権限登録装置40は、クライアント装置20にかえてこの処理を行う。
(2)クライアント装置20のハードウェア構成
図2は、クライアント装置20のハードウェア構成を示す図である。クライアント装置20は、制御部21と、通信部22と、操作部23と、表示部24と、記憶部25と、画像読取部26と、画像形成部27とを備える。
制御部21は、例えばCPU(Central Processing Unit)と、メモリとを備え、クライアント装置20の各部を制御する。CPUは、メモリ又は記憶部25に記憶されたプログラムを実行する。メモリは、例えばROM(Read Only Memory)とRAM(Random Access Memory)とを備える。ROMは、予めプログラムやデータを記憶する。RAMは、プログラムやデータを一時的に記憶し、CPUがプログラムを実行する際の作業領域として用いられる。
通信部22は、通信回線2に接続される通信用のインタフェースである。通信部22は、通信回線2を介して中継装置30と通信を行う。操作部23は、例えば各種のキー及びタッチパネルを備え、ユーザの操作に応じた情報を制御部21に入力する。表示部24は、例えば液晶ディスプレイを備え、各種の情報を表示する。記憶部25は、例えばハードディスクを備え、制御部21により用いられる各種のプログラムやデータを記憶する。このプログラムには、Webブラウザが含まれる。
画像読取部26は、例えばイメージスキャナを備え、原稿の画像を読み取って画像データを生成する。画像形成部27は、例えば電子写真方式のプリントエンジンを備え、画像データに応じた画像を用紙等の媒体に形成する。
(3)中継装置30のハードウェア構成
図3は、中継装置30のハードウェア構成を示す図である。中継装置30は、制御部31と、通信部32と、記憶部33とを備える。
制御部31は、例えばCPUとメモリとを備え、中継装置30の各部を制御する。CPUは、メモリ又は記憶部33に記憶されたプログラムを実行する。メモリは、例えばROMとRAMとを備える。ROMは、予めプログラムやデータを記憶する。RAMは、プログラムやデータを一時的に記憶し、CPUがプログラムを実行する際の作業領域として用いられる。
通信部32は、通信回線2に接続される通信用のインタフェースである。通信部32は、通信回線2を介してクライアント装置20やサービス提供装置10、権限登録装置40と通信を行う。記憶部33は、例えばハードディスクを備え、制御部31により用いられる各種のプログラムやデータを記憶する。このプログラムには、Webサーバソフトウェアが含まれる。また、記憶部33は、ユーザに関する情報の管理に用いられるユーザ管理テーブル331を記憶する。
図4は、ユーザ管理テーブル331の一例を示す図である。ユーザ管理テーブル331には、アカウント情報と、各サービス提供装置10のトークンと、このトークンの状態とが対応付けて格納される。アカウント情報は、中継装置30へのログインに必要な情報である。アカウント情報には、ユーザIDとパスワードとが含まれる。ユーザIDは、ユーザ名であってもよいし、ユーザに割り当てられたメールアドレスであってもよい。トークンは、サービス提供装置10にアクセスする権限を示す情報である。トークンは、ユーザ毎に発行され、ユーザ管理テーブル331に格納される。トークンの状態は、トークンの登録の有無、又はトークンの効力を示す情報である。例えば、トークンがユーザ管理テーブル331に格納されている場合には、「有」という状態が格納され、トークンがユーザ管理テーブル331に格納されていない場合には、「無」という状態が格納される。また、トークンが失効している場合には、「失効」という状態が格納される。
図4に示すユーザ管理テーブル331では、ユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10Aのトークンの状態「無」と、サービス提供装置10Bのトークンの状態「無」と、サービス提供装置10Cのトークンの状態「無」とが格納されている。これは、サービス提供装置10A〜10Cにアクセスするための、ユーザID「User01@aaa.example.com」のユーザのトークンが、中継装置30に登録されていないことを示す。
(4)権限登録装置40のハードウェア構成
図5は、権限登録装置40のハードウェア構成を示す図である。権限登録装置40は、制御部41と、通信部42と、操作部43と、表示部44と、記憶部45とを備える。
制御部41は、例えばCPUとメモリとを備え、権限登録装置40の各部を制御する。CPUは、メモリ又は記憶部45に記憶されたプログラムを実行する。メモリは、例えばROMとRAMとを備える。ROMは、予めプログラムやデータを記憶する。RAMは、プログラムやデータを一時的に記憶し、CPUがプログラムを実行する際の作業領域として用いられる。
通信部42は、通信回線2に接続される通信用のインタフェースである。通信部42は、通信回線2を介して中継装置30やサービス提供装置10と通信を行う。操作部43は、例えばキーボードとマウスとを備え、ユーザの操作に応じた情報を制御部41に入力する。表示部44は、例えば液晶ディスプレイを備え、各種の情報を表示する。記憶部45は、例えばハードディスクを備え、制御部41により用いられる各種のプログラムやデータを記憶する。このプログラムには、Webブラウザが含まれる。
(5)システムの機能構成
図6は、中継システム1の機能構成を示す図である。クライアント装置20は、クライアント部211という機能を有する。この機能は、例えば制御部21のCPUがプログラムを実行することにより実現される。クライアント部211は、サービス提供装置10から提供されるサービスを受けるのに必要な処理を行う。
中継装置30は、認証部311と、中継部312と、第1の取得部313と、アクセス部314と、登録処理部315と、第2の取得部316という機能を有する。これらの機能は、例えば制御部31のCPUがプログラムを実行することにより実現される。認証部311は、クライアント装置20からのログイン要求に応じて、ユーザ管理テーブル331を参照してユーザの認証を行う。中継部312は、クライアント装置20又は権限登録装置40とサービス提供装置10との間のデータのやり取りを中継する。
第1の取得部313は、クライアント装置20からのアクセス要求の対象となるサービス提供装置10に登録されたユーザの識別情報を取得する。この識別情報は、例えばユーザIDとパスワードを含むユーザの信用情報である。アクセス部314は、対象となるサービス提供装置10へのアクセスに必要な権限情報が記憶部33に記憶されていない場合には、記憶部33に記憶された権限情報にかえて、第1の取得部313により取得された識別情報を用いて対象となるサービス提供装置10にアクセスする。この権限情報は、例えばトークンである。登録処理部315は、クライアント装置20からの要求に応じて、トークンの登録処理を行う。第2の取得部316は、サービス提供装置10にアクセスする権限を示す権限情報をこのサービス提供装置10から取得する。
権限登録装置40は、権限登録部411と、第3の取得部412と、送信部413という機能を有する。これらの機能は、例えば制御部41のCPUがプログラムを実行することにより実現される。権限登録部411は、中継装置30と連携して、サービス提供装置10にアクセスする権限を示す権限情報を中継装置30に登録する処理を行う。第3の取得部412は、サービス提供装置10にアクセスする権限を示す権限情報の取得を許可する許可情報をこのサービス提供装置10から取得する。この許可情報は、例えばトークンの取得を許可するコードである。送信部413は、第3の取得部412により取得された許可情報を中継装置30に送信する。
なお、クライアント装置20、中継装置30、サービス提供装置10及び権限登録装置40間のデータのやり取りは、HTTP(HyperText Transfer Protocol)に従って行われてもよい。また、中継装置30及びサービス提供装置10は、Webサーバの機能により、クライアント装置20や権限登録装置40で表示される画面を提供してもよい。この場合、クライアント装置20、権限登録装置40では、Webブラウザの機能によりこの画面が表示される。
2.動作
次に、中継システム1の動作について説明する。中継システム1では、ユーザは、クライアント装置20を用いて、中継装置30を介してサービス提供装置10にデータを格納したり、サービス提供装置10からデータを取得したりする。このとき、中継装置30は、予め登録されたトークンを用いてサービス提供装置10にアクセスする。しかし、中継装置30にトークンが登録されていない場合や中継装置30に登録されたトークンが失効している場合等、サービス提供装置10のアクセスに必要なトークンが中継装置30に登録されていない場合がある。ここでは、このような場合における中継システム1の動作について説明する。
(1)トークン未登録の場合
まず、中継装置30にトークンが登録されていない場合の動作について説明する。図7は、中継装置30にトークンが登録されていない場合の動作を示すシーケンス図である。ここでは、中継装置30とサービス提供装置10A、10B及び10Cとが、予め相互に連携登録されているものとする。
サービス提供装置10から提供されるサービスを利用する場合、ユーザは、まずクライアント装置20を用いて中継装置30にログインする。具体的には、ユーザは、操作部23を用いた操作により、中継装置30にログインするためのアカウント情報を入力する。例えば、中継装置30にログインするためのアカウント情報がユーザID「User01@aaa.example.com」及びパスワード「password01」である場合には、このユーザID及びパスワードが入力される。
ステップS101において、クライアント装置20のクライアント部211は、ユーザの操作により入力されたアカウント情報を含む認証要求を、通信部22を介して中継装置30に送信する。中継装置30は、通信部32を介してこの認証要求を受信する。
ステップS102において、中継装置30の認証部311は、クライアント装置20から受信した認証要求に応じて、ユーザ認証を行う。具体的には、認証部311は、認証要求に含まれるアカウント情報が、ユーザ管理テーブル331に格納されているか否かに基づいて、ユーザ認証を行う。認証要求に含まれるアカウント情報がユーザ管理テーブル331に格納されている場合、ユーザ認証は成功する。一方、認証要求に含まれるアカウント情報がユーザ管理テーブル331に格納されていない場合、ユーザ認証は失敗する。この例では、認証要求に含まれるユーザID「User01@aaa.example.com」及びパスワード「password01」の組が図4に示すユーザ管理テーブル331に格納されているため、ユーザ認証は成功する。この場合、認証部311は、このユーザIDをメモリに記憶させる。メモリに記憶されたユーザIDは、ログインユーザのユーザIDとして用いられる。
ステップS103において、認証部311は、ステップS102で行ったユーザ認証の認証結果を、通信部32を介してクライアント装置20に送信する。クライアント装置20は、通信部22を介してこの認証結果を受信する。クライアント装置20は、ユーザ認証が成功したことを示す認証結果を受信した場合には、ステップS104に進む。一方、クライアント装置20は、ユーザ認証が失敗したことを示す認証結果を受信した場合には、以降の処理を行わずにこの処理を終了する。この例では、クライアント装置20は、ユーザ認証が成功したことを示す認証結果を受信するため、ステップS104に進む。
ステップS104において、クライアント装置20のクライアント部211は、予め連携登録されたサービス提供装置10から提供されるサービスの一覧を示すサービスリストの取得要求を、通信部22を介して中継装置30に送信する。中継装置30は、通信部32を介してこの取得要求を受信する。
ステップS105において、中継装置30の中継部312は、クライアント装置20から受信した取得要求に応じて、サービスリストを作成する。このサービスリストには、予め連携登録された全てのサービス提供装置10の識別情報と、これらのサービス提供装置10にアクセスするためのログインユーザのトークンの状態とが記述される。
この例では、中継装置30は、予めサービス提供装置10A〜10Cと相互に連携登録しているため、サービスリストには、サービス提供装置10A〜10Cの識別情報が記述される。また、この例では、図4に示すユーザ管理テーブル331において、メモリに記憶されたログインユーザのユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10Aのトークンの状態「無」、サービス提供装置10Bのトークンの状態「無」及びサービス提供装置10Cのトークンの状態「無」が格納されているため、サービスリストには、これらのトークンの状態が記述される。
ステップS106において、中継部312は、ステップS105で作成したサービスリストを、通信部32を介してクライアント装置20に送信する。クライアント装置20は、通信部22を介してこのサービスリストを受信する。
ステップS107において、クライアント装置20のクライアント部211は、中継装置30から受信したサービスリストに基づいて、表示部24にサービスリスト画面241を表示させる。
図8は、サービスリスト画面241の一例を示す図である。このサービスリスト画面241には、中継装置30から受信したサービスリストが表示される。ユーザは、このサービスリストの中から所望のサービスを提供するサービス提供装置10を選択する。例えば、サービス提供装置10Aから提供されるサービスを利用したい場合、ユーザは、操作部23を用いた操作により、サービス提供装置10Aを選択する。
また、サービスリスト画面241には、信用情報の入力に用いられる入力欄C1が表示される。ユーザは、選択したサービス提供装置10のトークンの状態が「無」である場合には、操作部23を用いた操作により、このサービス提供装置10に予め登録された信用情報を入力欄C1に入力する。この例では、サービス提供装置10Aのトークンの状態が「無」になっているため、ユーザは、操作部23を用いた操作により、サービス提供装置10Aに予め登録された信用情報を入力欄C1に入力する。例えば、サービス提供装置10Aに登録されたユーザの信用情報がユーザID「user01@service_a.example.com」及びパスワード「passwordA1」である場合には、このユーザID及びパスワードが入力欄C1に入力される。
また、サービスリスト画面241には、サービス提供装置10に要求する各種の処理の実行指示に用いられるボタンが表示される。例えば、サービス提供装置10Aに格納されたユーザが利用可能なデータの一覧を閲覧したい場合、ユーザは、操作部23を用いて一覧表示ボタンB1を押す。このように、信用情報が入力された後、一覧表示ボタンB1が押されると、クライアント装置20はステップS108に進む。
ステップS108において、クライアント部211は、サービスリスト画面241で選択されたサービス提供装置10のファイルリストの取得要求を、通信部22を介して中継装置30に送信する。この取得要求には、サービスリスト画面241で選択されたサービス提供装置10の識別情報と、入力欄C1に入力された信用情報とが含まれる。この例では、取得要求には、サービス提供装置10Aの識別情報と、ユーザID「user01@service_a.example.com」及びパスワード「passwordA1」とが含まれる。中継装置30は、通信部32を介してこの取得要求を受信する。第1の取得部313は、この取得要求から信用情報を取得し、RAM等の電源の切断により記憶内容が削除されるメモリにこの信用情報を記憶させる。
ステップS109において、中継装置30のアクセス部314は、クライアント装置20から受信した取得要求を、通信部32を介して、対象となるサービス提供装置10に転送する。このとき、アクセス部314は、メモリに記憶された信用情報を用いてサービス提供装置10にアクセスする。この例では、取得要求にサービス提供装置10Aの識別情報と、ユーザID「user01@service_a.example.com」及びパスワード「passwordA1」とが含まれるため、このユーザID及びパスワードを用いてサービス提供装置10Aへのアクセスが行われる。
中継装置30から信用情報を用いてアクセスされると、サービス提供装置10Aは、信用情報が登録されているか否かに基づいて、中継装置30からのアクセスを許可するか否かを判断する。取得要求に含まれる信用情報が登録されている場合、サービス提供装置10Aは中継装置30からのアクセスを許可し、ステップS110に進む。一方、取得要求に含まれる信用情報が登録されていない場合、サービス提供装置10Aは中継装置30からのアクセスを拒否し、以降の処理を行わずに処理を終了する。この例では、取得要求に含まれるユーザID「user01@service_a.example.com」及びパスワード「passwordA1」がサービス提供装置10Aに登録されているため、サービス提供装置10Aは、中継装置30からのアクセスを許可し、ステップS110に進む。
ステップS110において、サービス提供装置10Aは、中継装置30から受信した取得要求に応じて、ファイルリストを作成する。ファイルリストには、サービス提供装置10Aに格納されたデータのうち、ユーザが利用可能な全てのデータの識別情報が記述される。この例では、ファイルリストには、ユーザID「user01@service_a.example.com」のユーザが利用可能な全てのデータの識別情報が記述される。なお、ユーザが利用可能なデータは、例えばデータに付加された属性情報に基づいて判断される。例えば、データにユーザID「user01@service_a.example.com」又はこれに対応するユーザIDが付加されている場合には、このデータは、ユーザが利用可能なデータとして判断される。
ステップS111において、サービス提供装置10Aは、ステップS110で作成したファイルリストを中継装置30に送信する。中継装置30は、通信部32を介してこのファイルリストを受信する。
ステップS112において、中継装置30の中継部312は、サービス提供装置10Aから受信したファイルリストを、通信部32を介してクライアント装置20に転送する。クライアント装置20は、通信部22を介してこのファイルリストを受信する。
ステップS113において、クライアント装置20のクライアント部211は、中継装置30から受信したファイルリストに基づいて、ファイルリスト画面を表示部24に表示させる。このファイルリスト画面には、ファイルリストが表示される。
この後、ユーザの操作によりファイルリストの中からデータが選択されると、クライアント装置20は、上述したステップS108〜S112と同様の手順で、選択されたデータを中継装置30を介してサービス提供装置10Aから取得する。このとき、中継装置30のアクセス部314は、上述したステップS108でメモリに記憶された信用情報を用いてサービス提供装置10Aにアクセスする。サービス提供装置10Aから取得されたデータは、例えば画像形成部27による画像の形成に用いられる。
(2)トークンが有効期限切れの場合
次に、中継装置30に登録されたトークンの有効期限が切れている場合の動作について説明する。図9は、中継装置30に登録されたトークンの有効期限が切れている場合の動作を示すシーケンス図である。ここでは、記憶部33には、図4に示すユーザ管理テーブル331にかえて、図10に示すユーザ管理テーブル331が記憶されているものとする。
図10に示すユーザ管理テーブル331では、ユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10Aのトークンの状態「有」と、サービス提供装置10Bのトークンの状態「有」と、サービス提供装置10Cのトークンの状態「有」とが格納されている。これは、サービス提供装置10A〜10Cにアクセスするための、ユーザID「User01@aaa.example.com」のユーザのトークンが、いずれも中継装置30に登録されていることを示す。
図9に示すステップS201〜S207の処理は、上述したステップS101〜S107の処理と同様である。ただし、ステップS205では、図10に示すユーザ管理テーブル331に基づいて、サービスリストが作成される。図10に示すユーザ管理テーブル331には、メモリに記憶されたログインユーザのユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10Aのトークンの状態「有」、サービス提供装置10Bのトークンの状態「有」及びサービス提供装置10Cのトークンの状態「有」が格納されている。この場合、サービスリストには、これらのトークンの状態が記述される。
また、ステップS207では、このサービスリストに基づいて、サービスリスト画面241が表示される。図11は、このときに表示されるサービスリスト画面241の一例を示す図である。図11に示す例では、サービス提供装置10Aが選択されているが、サービス提供装置10Aのトークンの状態が「有」になっているため、ユーザは、この段階では信用情報の入力を行わない。
ステップS208において、クライアント部211は、サービスリスト画面241で選択されたサービス提供装置10のファイルリストの取得要求を、通信部22を介して中継装置30に送信する。この取得要求には、サービスリスト画面241で選択されたサービス提供装置10の識別情報が含まれる。なお、この例では、サービスリスト画面241で信用情報が入力されていないため、上述したステップS108とは異なり、取得要求には信用情報が含まれない。
ステップS209において、中継装置30のアクセス部314は、クライアント装置20から受信した取得要求を、通信部32を介して、対象となるサービス提供装置10に転送する。ここで、アクセス部314は、上述したステップS109とは異なり、サービス提供装置10にアクセスするためのログインユーザのトークンをユーザ管理テーブル331から読み出し、読み出したトークンを用いてサービス提供装置10にアクセスする。この例では、図10に示すユーザ管理テーブル331から、メモリに記憶されたログインユーザのユーザID「User01@aaa.example.com」と対応付けて格納されたサービス提供装置10AのトークンA1が読み出され、このトークンA1を用いてサービス提供装置10Aへのアクセスが行われる。
中継装置30からトークンA1を用いてアクセスされると、サービス提供装置10Aは、トークンA1が有効であるか否かに基づいて、中継装置30からのアクセスを許可するか否かを判断する。トークンには、有効期限が設定されている。例えば、トークンA1が有効期限内である場合等、トークンA1が有効である場合には、サービス提供装置10Aは、中継装置30からのアクセスを許可する。一方、トークンA1の有効期限が切れている場合等、トークンA1が失効している場合には、サービス提供装置10Aは、中継装置30からのアクセスを拒否する。ここでは、トークンA1の有効期限が切れているため、トークンA1が失効している場合を想定する。
ステップS210において、サービス提供装置10Aにより中継装置30からのアクセスが拒否されると、中継装置30は、ファイルリストの取得に失敗する。これにより、中継装置30は、サービス提供装置10AにアクセスするためのログインユーザのトークンA1が失効していると判断する。
ステップS211において、中継装置30の中継部312は、この判断に応じて、ユーザ管理テーブル331を更新する。図12は、更新後のユーザ管理テーブル331の一例を示す図である。この例では、トークンA1を用いたアクセスが拒否されたため、トークンA1が失効していると考えられる。したがって、図12に示すように、ユーザ管理テーブル331に格納されたログインユーザのトークンA1の状態が「有」から「失効」に変更される。
ステップS212において、中継部312は、トークンの失効により、サービス提供装置10Aのファイルリストの取得に失敗したことを示すエラー通知を、通信部32を介してクライアント装置20に送信する。クライアント装置20は、通信部22を介してこのエラー通知を受信する。
この後、ステップS213〜S216において、上述したステップS204〜S207と同様の処理が行われる。ただし、ステップS214では、ステップS212で更新されたユーザ管理テーブル331に基づいて、サービスリストが作成される。図12に示す更新後のユーザ管理テーブル331には、メモリに記憶されたログインユーザのユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10Aのトークンの状態「失効」、サービス提供装置10Bのトークンの状態「有」及びサービス提供装置10Cのトークンの状態「有」が格納されている。この場合、サービスリストには、これらのトークンの状態が記述される。
また、ステップS216では、このサービスリストに基づいて、サービスリスト画面241が表示される。図13は、このときに表示されるサービスリスト画面241の一例を示す図である。図13に示すサービスリスト画面241では、サービス提供装置10Aのトークンの状態が「失効」になっている。この場合、ユーザは、サービス提供装置10Aを選択するときは、操作部23を用いた操作により、サービス提供装置10Aに登録された信用情報を入力欄C1に入力する。例えば、サービス提供装置10Aに登録されたユーザの信用情報がユーザID「user01@service_a.example.com」及びパスワード「passwordA1」である場合には、このユーザID及びパスワードが入力欄C1に入力される。以降の処理は、上述したステップS108〜S113の処理と同じである。
(3)串刺し検索時にトークンが有効期限切れの場合
次に、串刺し検索を行う際に、中継装置30に登録されたトークンの有効期限が切れている場合の動作について説明する。この串刺し検索とは、同一の検索条件で複数のサービス提供装置10に格納されたデータを一括して検索することをいう。図14は、串刺し検索を行う際に、中継装置30に登録されたトークンの有効期限が切れている場合の動作を示すシーケンス図である。ここでは、記憶部33には、図10に示すユーザ管理テーブル331が記憶されているものとする。
ステップS301〜S306の処理は、上述したステップS101〜S106の処理と同じである。ステップS307において、クライアント装置20のクライアント部211は、まず上述したステップS107と同様に、中継装置30から受信したサービスリストに基づいて、サービスリスト画面241を表示部24に表示させる。この例では、図11に示すサービスリスト画面241が表示される。例えば、サービス提供装置10A〜10Cに対して串刺し検索を行う場合、ユーザは、操作部23を用いた操作により、サービス提供装置10A〜10Cを選択した後、検索ボタンB2を押す。なお、図11に示す例では、サービス提供装置10A〜10Cのトークンの状態はいずれも「有」になっているため、ユーザは、この段階では信用情報の入力を行わない。
検索ボタンB2が押されると、サービスリスト画面241から検索画面242に遷移する。図15は、検索画面242の一例を示す図である。この検索画面242には、検索条件の入力に用いられる入力欄C2と、検索ボタンB3が表示される。ユーザは、操作部23を用いた操作により、入力欄C2に検索条件を入力した後、検索ボタンB3を押す。検索ボタンB3が押されると、クライアント装置20はステップS308に進む。
ステップS308において、クライアント部211は、サービスリスト画面241で選択されたサービス提供装置10に対する検索要求を、通信部22を介して中継装置30に送信する。この検索要求には、サービスリスト画面241で選択されたサービス提供装置10の識別情報と、検索画面242で入力された検索条件とが含まれる。中継装置30は、通信部32を介してこの検索要求を受信する。
ステップS309において、中継部312は、サービスリスト画面241で選択されたサービス提供装置10のうち、ユーザ管理テーブル331に格納されたログインユーザのトークンの状態が「有」であるサービス提供装置10に対して、トークンの有効性の確認を行う。具体的には、中継部312は、通信部32を介して、対象となるサービス提供装置10に情報の取得要求を送信する。取得要求の対象となる情報は、サービス提供装置10に格納された情報であれば、どのような情報であってもよい。例えば、サービス提供装置10にユーザ情報が格納されている場合には、このユーザ情報であってもよい。
この例では、検索要求には、サービスリスト画面241で選択されたサービス提供装置10A〜10Cの識別情報が含まれている。また、図10に示すユーザ管理テーブル331には、ログインユーザのユーザID「User01@aaa.example.com」と対応付けて、このサービス提供装置10A〜10Cのトークンの状態としていずれも「有」が格納されている。この場合、サービス提供装置10A〜10Cにそれぞれ情報の取得要求が送信される。
このとき、中継部312は、サービス提供装置10A〜10Cにアクセスするためのログインユーザのトークンをユーザ管理テーブル331から読み出し、読み出したトークンを用いてサービス提供装置10A〜10Cにアクセスする。図10に示す例では、ユーザ管理テーブル331には、メモリに記憶されたログインユーザのユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10AのトークンA1、サービス提供装置10BのトークンB1、サービス提供装置10CのトークンC1が格納されている。この場合、中継部312は、トークンA1、B1及びC1を用いて、それぞれ、サービス提供装置10A、10B及び10Cにアクセスする。
中継装置30からトークンA1、B1及びC1を用いてアクセスされると、サービス提供装置10A、10C、10Cは、それぞれ、トークンA1、B1及びC1の有効性を判断する。例えば、トークンが有効期限内である場合、サービス提供装置10は、トークンが有効であると判断する。一方、トークンの有効期限が切れている場合、サービス提供装置10は、トークンが失効していると判断する。
ここでは、トークンB1及びC1は有効であるが、トークンA1は失効している場合を想定する。この場合、サービス提供装置10B及び10Cは、中継装置30からのアクセスを許可し、中継装置30から受信した取得要求に応じて、対象の情報を中継装置30に送信する。中継装置30は、サービス提供装置10B及び10Cから情報を受信することにより、サービス提供装置10B及び10Cのトークンが有効であると判断する。一方、サービス提供装置10Aは、中継装置30からのアクセスを拒否する。この場合、中継装置30は、サービス提供装置10Aからの情報の取得に失敗する。これにより、中継装置30は、サービス提供装置10AのトークンA1が失効していると判断する。
ステップS310において、中継装置30の中継部312は、上述したステップS211と同様に、ユーザ管理テーブル331を更新する。この例では、トークンA1を用いたアクセスが拒否されたため、トークンA1が失効していると考えられる。したがって、図12に示すように、ユーザ管理テーブル331に格納されたログインユーザのトークンA1の状態が「有」から「失効」に変更される。
ステップS311において、中継部312は、上述したステップS212と同様に、サービス提供装置10Aの情報の取得に失敗したことを示すエラー通知を、通信部32を介してクライアント装置20に送信する。クライアント装置20は、通信部22を介してこのエラー通知を受信する。
この後、ステップS312〜S315において、上述したステップS304〜S307と同様の処理が行われる。ただし、ステップS313では、ステップS310で更新されたユーザ管理テーブル331に基づいて、サービスリストが作成される。この例では、図12に示すユーザ管理テーブル331において、メモリに記憶されたログインユーザのユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10Aのトークンの状態「失効」、サービス提供装置10Bのトークンの状態「有」及びサービス提供装置10Cのトークンの状態「有」が格納されているため、サービスリストには、これらのトークンの状態が記述される。
また、ステップS315では、このサービスリストに基づいて、図13に示すようなサービスリスト画面241が表示される。このサービスリスト画面241において、ユーザは、操作部23を用いた操作により、サービス提供装置10A〜10Cを選択する。ここで、サービス提供装置10A〜10Cうちサービス提供装置10Aについては、トークンの状態が「失効」になっている。この場合、ユーザは、サービス提供装置10Aに登録された信用情報の入力を行う。例えば、サービス提供装置10Aに登録されたユーザの信用情報がユーザID「user01@service_a.example.com」及びパスワード「passwordA1」である場合には、このユーザID及びパスワードが入力欄C1に入力される。
ステップS316において、クライアント部211は、上述したステップS308と同様に、サービスリスト画面241で選択されたサービス提供装置10に対する検索要求を、通信部22を介して中継装置30に送信する。ただし、この検索要求には、ステップS308と異なり、サービスリスト画面241で選択されたサービス提供装置10の識別情報及び検索画面242で入力された検索条件に加えて、入力欄C1に入力された信用情報が含まれる。この例では、サービス提供装置10A〜10Cの識別情報、検索条件、ユーザID「user01@service_a.example.com」及びパスワード「passwordA1」を含む検索要求が中継装置30に送信される。中継装置30は、通信部32を介してこの取得要求を受信する。第1の取得部313は、この取得要求に含まれる信用情報を取得し、RAM等の電源の切断により記憶内容が削除されるメモリにこの信用情報を記憶させる。
ステップS317において、中継部312は、上述したステップS309と同様に、サービスリスト画面241で選択されたサービス提供装置10のうち、ユーザ管理テーブル331に格納されたログインユーザのトークンの状態が「有」であるサービス提供装置10に対して、トークンの有効性の確認を行う。ただし、ここでは、ステップS310で更新されたユーザ管理テーブル331に基づいて、トークンの有効性の確認が行われる。
この例では、検索要求には、サービスリスト画面241で選択されたサービス提供装置10A〜10Cの識別情報が含まれている。また、図12に示す更新後のユーザ管理テーブル331には、メモリに記憶されたログインユーザのユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10Aのトークンの状態「失効」、サービス提供装置10Bのトークンの状態「有」及びサービス提供装置10Cのトークンの状態「有」が格納されている。この場合、サービス提供装置10B及び10Cについては、トークンの有効性の確認が行われるが、サービス提供装置10Aについては、トークンの有効性の確認は行われない。なお、上述したステップS309で説明したように、サービス提供装置10B及び10CのトークンB1及びC1はいずれも有効であるため、サービス提供装置10B及び10Cからは、それぞれ、取得要求に応じて対象となる情報が返信される。
ステップS318において、中継部312は、クライアント装置20から受信した検索要求を、サービスリスト画面241で選択されたサービス提供装置10に通信部32を介して転送する。この例では、検索要求には、サービスリスト画面241で選択されたサービス提供装置10A〜10Cの識別情報が含まれているため、サービス提供装置10A〜10Cに検索要求が転送される。
ここで、サービス提供装置10B及び10Cは、上述したステップS317でトークンの有効性が確認されているため、中継部312は、ステップS317と同様に、ログインユーザのトークンB1及びC1を用いてサービス提供装置10B及び10Cにアクセスする。一方、サービス提供装置10Aは、ログインユーザのトークンA1が失効しているため、中継部312は、メモリに記憶された信用情報を用いてサービス提供装置10Aにアクセスする。この例では、サービス提供装置10Aは、トークンを用いたアクセスを許可しない第1のサービス提供装置に相当し、サービス提供装置10B及び10Cは、第1のサービス提供装置以外の第2のサービス提供装置に相当する。
中継装置30から信用情報を用いてアクセスされた場合、サービス提供装置10Aは、この信用情報が登録されているか否かに基づいて、中継装置30からのアクセスを許可するか否かを判断する。取得要求に含まれる信用情報が登録されている場合、サービス提供装置10Aは中継装置30からのアクセスを許可する。一方、取得要求に含まれる信用情報が登録されていない場合、サービス提供装置10Aは中継装置30からのアクセスを拒否し、以降の処理を行わずに処理を終了する。この例では、取得要求に含まれるユーザID「user01@service_a.example.com」及びパスワード「passwordA1」がサービス提供装置10Aに登録されているため、サービス提供装置10Aは、中継装置30からのアクセスを許可する。また、サービス提供装置10B及び10Cは、トークンB1及びC1が有効であるため、中継装置30からのアクセスを許可する。
この場合、サービス提供装置10A〜10Cは、中継装置30から受信した検索要求に応じて、データの検索を行う。具体的には、サービス提供装置10A、10B及び10Cは、検索要求に含まれる検索条件に合うデータを検索する。そして、サービス提供装置10A、10B及び10Cは、データの検索結果を中継装置30に送信する。中継装置30は、通信部32を介してこれらの検索結果を受信する。
ステップS319において、中継装置30の中継部312は、サービス提供装置10A、10B及び10Cから受信した検索結果をマージする。
ステップS320において、中継部312は、ステップS319でマージされた検索結果を、通信部32を介してクライアント装置20に送信する。クライアント装置20は、通信部22を介してこの検索結果を受信する。
ステップS321において、クライアント装置20のクライアント部211は、中継装置30から受信した検索結果に基づいて、表示部24に検索結果画面を表示させる。この検索結果画面には、検索結果が表示される。
この後、ユーザの操作により検索結果の中からデータが選択されると、クライアント装置20は、上述したステップS108〜S112と同様の手順で、選択されたデータを中継装置30を介してサービス提供装置10A、10B又は10Cから取得する。ここで、サービス提供装置10Aからデータを取得する場合、中継装置30のアクセス部314は、上述したステップS316でメモリに記憶された信用情報を用いてサービス提供装置10Aにアクセスする。サービス提供装置10A、10B又は10Cから取得されたデータは、例えば画像形成部27による画像の形成に用いられる。
(4)トークンの登録処理
中継装置30にトークンが登録されておらず、又は中継装置30に登録されたトークンが失効している場合、ユーザは、権限登録装置40を用いて、中継装置30に新たなトークンを登録する処理を行う。図16は、中継装置30にトークンを登録する処理を示すシーケンス図である。ここでは、記憶部33には、図12に示すユーザ管理テーブル331が記憶されているものとする。
図12に示すユーザ管理テーブル331では、ユーザID「User01@aaa.example.com」と対応付けて、サービス提供装置10Aのトークンの状態「失効」が格納されている。これは、サービス提供装置10Aにアクセスするための、ユーザID「User01@aaa.example.com」のユーザのトークンが失効していることを示す。
中継装置30にトークンを登録する処理を行う場合、ユーザは、まず権限登録装置40を用いて中継装置30にログインする。具体的には、ユーザは、操作部43を用いた操作により、中継装置30にログインするためのアカウント情報を入力する。例えば、中継装置30にログインするためのアカウント情報がユーザID「User01@aaa.example.com」及びパスワード「password01」である場合には、このユーザID及びパスワードが入力される。
ステップS401において、権限登録装置40の権限登録部411は、ユーザの操作により入力されたアカウント情報を含む認証要求を、通信部42を介して中継装置30に送信する。中継装置30は、通信部32を介してこの認証要求を受信する。
ステップS402において、中継装置30の認証部311は、上述したステップS102と同様に、権限登録装置40から受信した認証要求に応じて、ユーザ認証を行う。
ステップS403において、認証部311は、ユーザ認証の認証結果を、通信部32を介して権限登録装置40に送信する。権限登録装置40は、通信部42を介してこの認証結果を受信する。権限登録装置40は、ユーザ認証が成功したことを示す認証結果を受信した場合には、ステップS404に進む。一方、権限登録装置40は、ユーザ認証が失敗したことを示す認証結果を受信した場合には、以降の処理を行わずにこの処理を終了する。この例では、権限登録装置40は、ユーザ認証が成功したことを示す認証結果を受信するため、ステップS404に進む。
ステップS404において、権限登録装置40の権限登録部411は、予め連携登録したサービス提供装置10から提供されるサービスの一覧を示すサービスリストの取得要求を、通信部42を介して中継装置30に送信する。中継装置30は、通信部32を介してこの取得要求を受信する。
ステップS405において、中継装置30の登録処理部315は、上述したステップS105と同様に、権限登録装置40から受信した取得要求に応じて、サービスリストを作成する。
ステップS406において、登録処理部315は、ステップS405で作成したサービスリストを、通信部32を介して権限登録装置40に送信する。権限登録装置40は、通信部42を介してこのサービスリストを受信する。
ステップS407において、権限登録装置40の権限登録部411は、中継装置30から受信したサービスリストに基づいて、表示部44にサービスリスト画面243を表示させる。
図17は、このとき表示されるサービスリスト画面243の一例を示す図である。このサービスリスト画面243には、サービス提供装置10A〜10Cのトークンの状態が記述されたサービスリストが表示される。ユーザは、このサービスリストにより、中継装置30に新たに登録するトークンの発行元であるサービス提供装置10を選択する。図16に示すサービスリスト画面243では、サービス提供装置10Aのトークンの状態が「失効」になっている。この場合、ユーザは、サービス提供装置10Aの有効なトークンを中継装置30に登録するために、操作部43を用いた操作により、サービス提供装置10Aを選択した後、選択ボタンB4を押す。選択ボタンB4が押されると、権限登録装置40はステップS408に進む。
ステップS408において、権限登録部411は、サービスリスト画面243で選択されたサービス提供装置10から発行されるトークンの登録処理要求を、通信部42を介して中継装置30に送信する。この登録処理要求には、サービスリスト画面243で選択されたサービス提供装置10の識別情報が含まれる。この例では、サービスリスト画面243でサービス提供装置10Aが選択されるため、登録処理要求には、サービス提供装置10Aの識別情報が含まれる。中継装置30は、通信部32を介して、この登録処理要求を受信する。
ステップS409において、中継装置30の登録処理部315は、権限登録装置40のアクセス先を、サービスリスト画面243で選択されたサービス提供装置10にリダイレクトする。具体的には、登録処理部315は、サービスリスト画面243で選択されたサービス提供装置10のURLを移動先として通知する応答を、通信部32を介して権限登録装置40に送信する。この例では、登録処理要求には、サービスリスト画面243で選択されたサービス提供装置10Aの識別情報が含まれるため、サービス提供装置10AのURL(Uniform Resource Locator)を移動先として通知する応答が権限登録装置40に送信される。また、この応答には、中継装置30のURLが含まれる。権限登録装置40は、通信部42を介してこの応答を受信する。
ステップS410において、権限登録装置40の第3の取得部412は、トークンの取得を許可するコードの取得要求を、通信部42を介してリダイレクト先のサービス提供装置10に送信する。この例では、中継装置30から受信した応答により、サービス提供装置10AのURLが移動先として通知されるため、この取得要求がサービス提供装置10Aに送信される。また、この取得要求には、この応答に含まれる中継装置30のURLが含まれる。
ステップS411において、サービス提供装置10Aは、中継装置30から受信した取得要求に応じて、トークンの取得を許可するコードを発行し、権限登録装置40のアクセス先を中継装置30にリダイレクトする。具体的には、サービス提供装置10Aは、まず権限登録装置40にログイン要求を送信する。ユーザは、この要求に応じて、操作部43を用いた操作により、サービス提供装置10AにログインするためのユーザIDとパスワードを入力する。権限登録装置40は、ユーザの操作により入力されたユーザIDとパスワードを、通信部42を介してサービス提供装置10Aに送信する。サービス提供装置10Aは、権限登録装置40から受信したユーザIDとパスワードに基づいてユーザ認証を行い、ユーザ認証に成功した場合には、トークンの取得を許可するコードを発行する。また、サービス提供装置10Aは、権限登録装置40から受信した取得要求に含まれる中継装置30のURLを移動先として通知する応答を権限登録装置40に送信する。この応答には、発行したコードが含まれる。権限登録装置40は、通信部42を介してこの応答を受信する。第3の取得部412は、この応答に含まれるコードを取得する。
ステップS412において、権限登録装置40の送信部413は、サービス提供装置10Aから受信した応答に含まれるコードを、通信部42を介してリダイレクト先の中継装置30に送信する。中継装置30は、通信部32を介してこのコードを受信する。
ステップS413において、中継装置30の第2の取得部316は、通信部32を介して、サービスリスト画面243で選択されたサービス提供装置10にトークンの取得要求を送信する。この取得要求には、権限登録装置40から受信したコードが含まれる。この例では、ステップS408で受信した登録処理要求にサービスリスト画面243で選択されたサービス提供装置10Aの識別情報が含まれるため、サービス提供装置10Aにトークンの取得要求が送信される。
ステップS414において、サービス提供装置10Aは、中継装置30から受信した取得要求にコードが含まれるため、ログインユーザのトークンを発行し、発行したトークンを中継装置30に送信する。中継装置30は、通信部32を介してこのトークンを受信する。第2の取得部316は、このトークンを取得する。
ステップS415において、中継装置30の登録処理部315は、サービス提供装置10Aから受信したトークンをユーザ管理テーブル331に格納する。この例では、サービス提供装置10Aからログインユーザのトークンが取得されるため、図12に示すユーザ管理テーブル331において、ログインユーザのユーザID「User01@aaa.example.com」と対応付けて格納されたサービス提供装置10AのトークンA1に替えて、サービス提供装置10Aから受信した新たなトークンが格納される。
ステップS416において、登録処理部315は、新たなトークンの格納に応じて、ユーザ管理テーブル331を更新する。この例では、ステップS415において、サービス提供装置10Aにアクセスするためのログインユーザの新たなトークンがユーザ管理テーブル331に格納されている。そのため、図12に示すユーザ管理テーブル331において、メモリに記憶されたログインユーザのユーザID「User01@aaa.example.com」と対応付けて格納されたサービス提供装置10Aのトークンの状態が「失効」から「有」に変更される。
ステップS417において、登録処理部315は、トークンの登録処理が完了したことを示す通知を、通信部32を介して権限登録装置40に送信する。権限登録装置40は、通信部42を介してこの通知を受信する。
以上説明した実施形態によれば、サービス提供装置10へのアクセスに必要なトークンが中継装置30に登録されていない場合にも、サービス提供装置10に登録された信用情報を入力することにより、サービス提供装置10にアクセスし、サービスの提供が受けられる。そのため、従来技術のように、このような場合に、クライアント装置20の操作中にも関わらず、わざわざ権限登録装置40へと移動し、権限登録装置40を操作して中継装置30にトークンを登録する処理を行う必要がないため、ユーザの利便性が向上する。
また、ユーザにより入力された信用情報は、中継装置30のRAM等のメモリに記憶され、電源が切断されると削除されるようになっている。この場合、信用情報がメモリに記憶された期間に限り、信用情報を用いてサービス提供装置10へのアクセスが実現される。これにより、サービス提供装置10への一時的なアクセスが実現される。また、ユーザにより入力された信用情報は、ユーザの個人情報である。本実施形態によれば、ユーザの信用情報が中継装置30で保持され続けることがないため、中継装置30から信用情報が漏洩するリスクが軽減される。
また、上述した実施形態のように、トークンの有効期限がサービス提供装置10で管理される場合には、中継装置30に格納されているトークンが失効していることがある。しかし、上述した「(2)トークンが有効期限切れの場合」の動作によれば、このような場合であっても、サービス提供装置10に登録された信用情報を入力することにより、サービス提供装置10にアクセスし、サービスの提供が受けられる。
また、串刺し検索を行う場合には、検索の対象となるサービス提供装置10に、アクセスに必要なトークンが登録されているサービス提供装置10と、アクセスに必要なトークンが登録されていないサービス提供装置10とが混在する場合がある。しかし、上述した「(3)串刺し検索時にトークンが有効期限切れの場合」の動作によれば、このような場合であっても、各々のサービス提供装置10へのアクセスが実現される。
また、上述した「(4)トークンの登録処理」によれば、サービス提供装置10へのアクセスに必要なトークンが中継装置30に登録されていない場合に、このサービス提供装置10にアクセスするためのトークンが中継装置30に登録される。
3.変形例
上述した実施形態は、本発明の一例である。これらの実施形態は、以下のように変形してもよい。また、以下の変形例は、互いに組み合わせてもよい。
(1)上述した実施形態では、ユーザにより入力された信用情報は、中継装置30のRAM等のメモリに記憶され、電源が切断されたときに削除される例について説明した。しかし、予め定められた条件を満たすときに、信用情報を削除してもよい。
図18は、本変形例に係る中継システムの機能構成を示す図である。本変形例に係る中継装置30は、実施形態で説明した機能の他に、削除部317という機能を有する。削除部317は、予め決められた条件を満たしたときに、メモリから信用情報を削除する。この変形例では、メモリは記憶部として機能する。この予め決められた条件とは、クライアント装置20からの要求に係るサービス提供装置10との間の処理が終了したことであってもよい。例えば、サービス提供装置10Aからデータを取得する処理を行う場合、削除部317は、ユーザにより選択されたデータをサービス提供装置10Aから取得したときに、メモリに記憶された信用情報を削除してもよい。
また、予め決められた条件とは、ユーザが中継装置30からログアウトしたことであってもよい。この場合、削除部317は、例えばクライアント装置20からログアウト要求を受信したときに、メモリから信用情報を削除してもよい。
また、予め決められた条件とは、信用情報がメモリに記憶された時点から予め決められた時間が経過したことであってもよい。この場合、削除部317は、例えばタイマーを用いて信用情報がメモリに記憶された時点から時間を計測し、計測した時間が予め決められた時間を経過したときに、メモリから信用情報を削除してもよい。
(2)上述した実施形態では、サービス提供装置10A〜10Cがいずれも信用情報を用いたアクセスを許可する例について説明した。しかし、サービス提供装置10の中には、信用情報を用いたアクセスを許可しないものが含まれる場合がある。この場合、中継装置30は、各サービス提供装置10が信用情報を用いたアクセス対応しているか否かを示す対応情報を記憶し、この対応情報に基づいて、トークンが失効しているサービス提供装置10が信用情報を用いたアクセスに対応しているか否かを判断してもよい。
トークンが失効しているサービス提供装置10が信用情報を用いたアクセスに対応している場合、中継装置30は、図8に示すような信用情報の入力欄C1を表示するサービスリスト画面241を提供する。一方、トークンが失効しているサービス提供装置10が信用情報を用いたアクセスに対応していない場合、中継装置30は、例えば「トークンを登録してください」というメッセージを表示するサービスリスト画面241を提供する。このサービスリスト画面241には、信用情報の入力に用いられる入力欄C1は表示されない。
(3)上述した実施形態において、クライアント装置20の制御部21により実行されるプログラム、中継装置30の制御部31により実行されるプログラム及び権限登録装置40の制御部41により実行されるプログラムは、インターネットなどの通信回線を介してダウンロードされてもよい。また、このプログラムは、磁気記録媒体(磁気テープ、磁気ディスクなど)、光記録媒体(光ディスクなど)、光磁気記録媒体、半導体メモリなどの、コンピュータが読取可能な記録媒体に記録した状態で提供されてもよい。