本発明は、サービス提供装置、サービス提供方法、サービス提供プログラム及び記録媒体に関する。
従来のWWW(World Wide Web)によるサービスは、サービス会社ごとに「ホームページ」を持ち、そのホームページ上で「閉じた」サービスを展開していた。ホームページ上では、該ホームページを提供する会社が提供するサービスのみを享受することができるが、他のサービス会社のサービスを受けたいときには、ユーザは、また別に、該他のサービス会社のURL(Uniform Resource Locator)を指定して、該他のサービス会社が提供するホームページへ移動しなければならなかった。
最近では、このようなWeb上に存在する各種のサービスを「コンポーネント」として分散し、そのコンポーネントを組み合わせて提供する「Webサービス」が普及しつつある。
このような分散コンポーネント環境におけるコンポーネント間の通信は、XML(Extensible Markup Language)形式でデータ交換を行い、データアクセスを行うプロトコルとしてSOAP(Simple Object Access Protocol)プロトコルを使用し、下位プロトコルとしてHTTP(Hypertext Transfer Protocol)プロトコルなどを使用する場合が多い。
この仕組みによって、インターネット上に公開されるWebサービスを相互に連携し、一つのアプリケーションとして人間を介することなくWebサービスが他のWebサービスとやり取りすることが可能になる。
例えば、有料のコンテンツを印刷して配送するWebサービスを提供したいときには、既にある決済サービスや配送サービスを利用するようにできれば、開発効率が高まる。
通信プロトコルとしてHTTPを用いると、ファイアウォールを導入している企業とも通信できるし、SSL(Secure Sockets Layer)を用いてセキュリティを高めることもできる。
しかし、インターネットにおける伝送速度が遅いため、大量のデータを送受信すると応答時間(オーバヘッド)が問題となる。
このため、ユーザの認証や権限等を証明するチケットを用意し、このチケットを更に暗号化してネットワーク上に流すことによって、ネットワーク上に流れるデータの量を減らして、オーバヘッドの問題を解決している。
また、個人情報や機密文書等の秘密情報が頻繁にネットワーク上を流れるのでは、なりすまし、改竄あるいは盗聴といった問題にもこのチケットを利用して漏洩を最小限に抑えることが可能になる。
例えば、特許文献1の「ファイル印刷方法、ネットワーク・システム、コンピュータ・システム、ファイル・サーバ及びプリント・サーバ」では、次のように動作する。
(1)クライアント・システムからファイル・ソースへ権限を要求する。
(2)ファイル・ソースは、その識別名やファイルへのパス等を含む"留置き"証明書(チケット)を作成して、クライアントへ戻す。
(3)クライアントは、その留置き証明書をプリント・サーバへ送信して印刷を要求する。
(4)プリント・サーバは、受信した留置き証明書内のファイル・ソースの識別名及びファイルへのパスを用いて、ファイル・ソースから直接ファイルを要求する。
(5)ファイル・ソースは、その留置き証明書の内容を確認し要求が有効な場合、ファイルを直接プリント・サーバに送信する。
(6)プリント・サーバは、受信したファイルの内容を印刷する。
以上により、留置き証明書(チケット)というファイル・ソースにあるファイルを操作する権限を委譲する証明書をファイル・ソースが発行することで、ネットワーク上を秘密情報が流れる回数を減らすとともに、一度ファイル・ソースからファイルをクライアントへダウンロードし、その後クライアントからプリント・サーバへファイルをアップロードして印刷依頼するというように、2回のファイル移動を行うことがなくなり、無駄なデータの移動や操作を行う回数を減らすことが可能になる。
また、ネットワーク上に分散している複数のWebサービスを連携させるような場合、認証を集中的に行うサーバでいったんユーザ認証を受ければ、ユーザ認証を前提としたあらゆるサービスを受けられるようにするしくみとして、シングル・サインオン(Single−Sign−On)がある。
例えば、互いに独立してサービスを提供するファイル・サーバとメール・サーバ等では、それらのサービスを受けるために、各サーバでユーザ認証を受けなければならない。これに対し、シングル・サインオンに対応したサービスでは、ユーザ認証を集中的に行うサーバで認証を受ければ、ユーザは自身が認証ユーザだとしてこのユーザ認証サーバに対応したあらゆるネットワーク・サービスを利用できるようになる。
上述したように、このチケットは多くのシステムで認証したことを証明するために利用されるが、例えば、発行したチケットの有効期限を延長してしまうことにより半永久的にそのチケットを利用され続けてしまうような悪意あるクライアントからサービスを守る機能が必要不可欠となる。このため、セキュリティホールとならないようにチケットには短い有効期限を設けることが多い。
しかしながら、予想以上にWebサービスの処理が伸びてしまった場合にはチケットの有効期限が切れてしまい、クライアントが求める処理を行えない可能性が出てきてしまう。
このような場合、クライアントはチケットの有効期限を延長する必要があるが、チケットが漏洩した場合には、悪用される恐れがあるため、セキュリティ対策を講じる必要がでてくる。
上述した特許文献1の技術では、クライアントがチケットを受信した後に、しばらく使用しなかった場合、あるいは、ファイル・ソース又はプリント・サーバが故障又は電源が切られていて、このチケットの有効期限が切れてしまったような場合についての対処法は示唆されていない。
この問題に対しては、特許文献2の「短寿命証明書によるクライアント側公開鍵認証方法とその装置」では、鍵配布センター(KDC)は公開-秘密鍵ペアーと証明書テンプレートを生成し格納しておき、ユーザがKDCに対して認証を求めると、KDCは短寿命証明書を生成、署名することによってユーザの公開鍵を再証明するようにしている。
特許3218107号公報
特表2002−501218号公報
しかしながら、寿命が尽きた短寿命証明書を使うときには、その都度、ユーザが再証明をしなければならない問題があった。また、Webサービスをシングル・サインオンによって稼動させた場合には、その効果を享受することができない問題があった。
本発明は、上記の点に鑑みなされたもので、セキュリティ効果を保ちながら容易にチケットの有効期限を延長することを目的とする。
そこで、上記問題を解決するため、本発明は、サービスを提供するサービス提供手段を有するサービス提供装置であって、前記サービス提供手段は、前記サービスに係る、有効期限を有する証明情報を管理する証明情報管理手段と、前記有効期限の延長要求を受付ける有効期限延長要求受付手段と、前記有効期限の延長要求に応じて、前記証明情報の有効期限を延長する証明情報更新手段と、を有することを特徴とする。
本発明によれば、サービスを提供するサービス提供手段を有するサービス提供装置であって、前記サービス提供手段は、前記サービスに係る、有効期限を有する証明情報を管理する証明情報管理手段と、前記有効期限の延長要求を受付ける有効期限延長要求受付手段と、前記有効期限の延長要求に応じて、前記証明情報の有効期限を延長する証明情報更新手段と、を有することによって、セキュリティ効果を保ちながら容易にチケットの有効期限を延長することができる。
なお、サービス提供手段は、例えば後述するサービスA又はサービスB等に対応する。また、証明情報管理手段は、例えば後述するチケット保存部40に対応する。また、有効期限延長要求受付手段は、例えば後述するWebサービスI/F10及び/又は要求処理部20に対応する。また、証明情報更新手段は、例えば後述するチケット更新部50に対応する。また、証明情報は、例えば後述する認証チケット、印刷チケット等のチケットに対応する。
また、上記課題を解決するための手段として、サービス提供方法、サービス提供プログラム及び記録媒体としてもよい。
本発明によれば、セキュリティ効果を保ちながら容易にチケットの有効期限を延長することができる。
以下、本発明の実施の形態について図面に基づいて説明する。
以下、本発明に係る実施例を、有料コンテンツの販売サービスを例にして、図1を用いて説明する。図1は、有料コンテンツの販売サービスの一例を説明するための図である。
図1に示される有料コンテンツの販売サービスは、有料コンテンツの販売サービスを行うポータルサイトと、ユーザを認証するサービスAと、有料のコンテンツを保管している複数のサービスBと、有料のコンテンツを購入するときの代金決済のサービスCと、購入したコンテンツを印刷・配送するサービスDとを含む。
なお、各サービスは、一般に、コンピュータシステム上で動作するサービスの機能を実現するソフトウェアで構成されている。各サービスは、一つの装置(サービス提供装置)に含まれていてもよいし、複数の装置(サービス提供装置)に分散して含まれていてもよい。
この有料コンテンツ販売サービスは次のように動作することによって、ユーザがコンテンツを購入することができる。
(1)ユーザは、自分のユーザ名とパスワード等によってポータルサイトにログインする。
(2)ポータルサイトは、このユーザ名とパスワードとによってサービスA(認証サービス)に認証を依頼する(A)。なお、ポータルサイトは、該ユーザ名と、パスワードとを、一時保持しておくことによって、例えば後述する認証チケットの有効期限が切れた場合、再び認証の要求を、認証サービスAに依頼することができる。
(3)サービスAは、ユーザ名やパスワード等が登録されているユーザ登録ファイル等を参照して、正しいユーザ名とパスワードとの組み合わせの場合、ユーザの認証を証明する認証チケットを作成し、該認証チケットを識別する認証チケットID等をポータルサイトへ戻す(B)。ポータルサイトは、サービスAより取得した認証チケットID等を保持し、該認証チケットIDを用いて、例えば、サービスB、サービスC、サービスD等とセッションを張ることができる。
(4)ユーザは、認証されると、ポータルサイトに登録された複数の有料コンテンツの中から購入すべきコンテンツを探す。
ユーザが購入するコンテンツを決定して、そのコンテンツの印刷を行う要求を出した場合、ポータルサイトは該当サービス(例えば、サービスB)に対して、該当コンテンツの印刷権限を証明する印刷チケットを要求する(C)。サービスBは、要求して来たポータルサイトに、印刷権限があるかどうかを確かめて印刷権限があれば、印刷チケットを作成し、該印刷チケットを識別する印刷チケットID等をポータルサイトへ戻す(D)。
(5)ポータルサイトは、ユーザに印刷権限があるときは、ユーザから指定された代金払い込み方法と認証チケットIDとをサービスC(決済サービス)へ送付して代金決済を依頼する(E)。サービスCは、認証チケットIDを用いてサービスAに照会して本人確認を行い(F、G)、決済結果をポータルサイトへ戻す(H)。
(6)ポータルサイトは決済されると、印刷チケットIDをサービスD(印刷・配送サービス)へ送付して、コンテンツの印刷と配送を依頼する(I)。
サービスDは、印刷チケットIDをサービスBへ送付して、当該コンテンツを送るように依頼する(J)。
サービスBは、当該サービスB自身が発行した印刷チケット(又は印刷チケットID)であることを確認して、依頼されたコンテンツをサービスDへ送付する(K)。
サービスDは、送付されたコンテンツを印刷し、ユーザ宛配送するとともに、その結果をポータルサイトへ戻す(L)。
以下、本発明のサービス提供装置の一例のハードウェア構成を、図2を用いて説明する。図2は、サービス提供装置の一例のハードウェア構成図である。
図2に示されるサービス提供装置のハードウェア構成は、それぞれバスで相互に接続されている入力装置11と、表示装置12と、ドライブ装置13と、記録媒体14と、ROM(Read Only Memory)15と、RAM(Random Access Memory)16と、CPU(Central Processing Unit)17と、インターフェース装置18と、HDD(Hard Disk Drive)19と、を含む。
入力装置11は、サービス提供装置の利用者が操作するキーボード及びマウス等で構成され、サービス提供装置に各種操作信号を入力するのに用いられる。
表示装置12は、サービス提供装置の利用者が利用するディスプレイ等で構成され、各種情報を表示する。
インターフェース装置18は、サービス提供装置をネットワーク等に接続するインターフェースである。
サービス(例えば、サービスA)に対応するアプリケーションプログラム及び/又はポータルサイトに対応するアプリケーションプログラム、サービス提供装置の全体の処理を制御するメインプログラム等は、例えば、CD−ROM等の記録媒体14によってサービス提供装置に提供されるか、ネットワークを通じてダウンロードされる。記録媒体14は、ドライブ装置13にセットされ、前記アプリケーションプログラムや前記メインプログラム等が記録媒体14からドライブ装置13を介してROM15にインストールされる。
ROM15は、データや前記アプリケーションプログラムや前記メインプログラム等を格納する。RAM16は、サービス提供装置の起動時にROM15から前記アプリケーションプログラムや前記メインプログラム等を読み出して格納する。CPU17は、RAM16に読み出され格納された前記アプリケーションプログラムや前記メインプログラム等に従って処理を実行する。
HDD19は、データやファイル等を格納する。例えば、HDD19は、チケットや、クライアントリスト等を格納する。
以下、有料コンテンツ販売サービスを構成するサービスの機能構成の一例を、図3を用いて説明する。図3は、サービスの機能構成の一例を説明するための図である。
図3において、サービスは、サービス提供部70と、WebサービスI/F10と、要求処理部20と、チケット作成部30と、チケット保存部40と、チケット更新部50と、チケット検証部60と、を含む。
サービス提供部70は、他のサービス(上述の例では、ポータルサイト、サービスA、B、C、D等)からの要求を受信し、処理した結果を返信する。
例えば、上述の認証サービスを行うサービスAでは、ポータルサイトから依頼されるユーザの認証とその認証チケット(認証チケットID)の返信、及び各サービスからの本人確認依頼等の機能処理を行う。
また、上述のコンテンツ保管サービスを行うサービスBでは、ユーザからのコンテンツ閲覧要求に対応してポータルサイトからの検索や内容確認等の機能処理に加えて、ユーザからのコンテンツ印刷要求に対応してポータルサイトからのコンテンツの印刷権限チェックと印刷チケット(印刷チケットID)の返信、及びサービスD(印刷サービス)からの印刷チケットの照会によって、当該コンテンツの転送等を行う。
WebサービスI/F10は、サービス提供部70が機能を実行する際、Webサービス中核機能との仲立ちをするインターフェースである。
要求処理部20は、WebサービスI/F10を介して受信したサービス提供部70からの要求がチケットの作成時には、チケット作成部30を実行させ、要求がチケットの更新の時にはチケット更新部50を実行させ、また、要求がチケットの検証であれば、チケット検証部60を実行させ、実行結果をWebサービスI/F10を介してサービス提供部70へ返信する。
チケット作成部30は、他のサービス、例えば図3に示すサービスがサービスAの場合はポータルサイト又はサービスB又はサービスC又はサービスD(以下、他のサービスを単にクライアントともいう)、から要求されたチケットを作成し、該作成したチケットをチケット保存部40へ格納し、サービス提供部70を使ってチケットIDとチケットの有効期限とをクライアントへ返信させる。
なお、クライアントからは、次のようなデータを指定してチケット作成要求がなされる。
(1)チケット作成の基となるデータ
例えば、認証サービスの場合には、ユーザ名とパスワード等、
また、文書保管やコンテンツ保管サービスの場合には、閲覧・印刷・転送の対象となる文書やコンテンツを特定する識別子(ファイル名やファイルを示すパス等)、また要求元のサービスと当該文書保管又はコンテンツ保管サービスとのセッションを識別するセッションID。
(2)チケットの有効期限
発行されるチケットの有効期限を指定する。この有効期限が妥当な値でないときには予め設定された有効期限に修正される。有効期限はチケット検証部60で検査され、該有効期限を経過したチケットは利用できなくなる。
(3)クライアントが利用するサービス名(IPアドレス、又は、ホスト名とドメイン名等)のリスト
チケット保存部40は、クライアントに対する以下のようなデータをクライアントリストとして、チケットと対応付けて管理する(図4参照)。
・クライアントを識別する識別子(クライアントID)
・クライアントを特定するための情報(クライアント情報)
例えば、クライアント名、IPアドレスあるいはホスト名・ドメイン名等
・クライアントが利用するサービス(クライアント利用サービス)ごとに、
該サービスの利用権限(例えば、閲覧、印刷、転送等)、及び
チケットの有効期限延長権限
なお、例えば、当該サービスがサービスAとすると、例えばクライアントの1つは、ポータルサイトとなり、例えばクライアント利用サービスは、サービスB、サービスC、サービスD等となる。
なお、チケット作成部30は、チケットの作成要求を受け取ると、クライアントリストを参照して、チケット作成要求をしてきたクライアントの利用サービスごとの利用権限を調べて、チケットを作成するようにしてもよい。
例えば、当該サービスがサービスBとし、例えばポータルサイトから、クライアントが利用するサービス名として、印刷サービスであるサービスDを含む印刷チケットの作成要求を受け取ると、チケット作成部30は、クライアントリストを参照し、ポータルサイトのクライアント利用サービスとしてサービスDが含まれているかどうか判定し、含まれていたら該サービスDの利用権限を参照し、該利用権限に応じた(例えば、コンテンツの印刷と閲覧を許可する)印刷チケットを作成するようにしてもよい。
なお、図4に示されるクライアントリストは、サービスBのチケット保存部40において管理されているクライアントリストの一例を示している。
この作成されたチケットには、該チケットを識別するチケットIDと、有効期限と、チケット利用サービスと該チケットサービスの利用権限とのリストと、が含まれる(図5参照)。なお、チケット利用サービスは、例えば、図4に示したクライアント利用サービス及び/又はクライアントID又はクライアント情報等である。
チケット作成部30は、作成されたチケットにチケットIDを付加して、チケット保存部40へ登録し、チケットIDとチケットの有効期限とをクライアントへ戻す。
このチケット保存部40は、チケットIDに対して、クライアントの識別子(クライアントID)と作成したチケットの内容とを関連付けて保存する(図6参照)。なお、図6に示されるような内容を、図5に示したチケットに含めるようにしてもよい。
チケット更新部50は、有効期限の延長要求を受け取ると、クライアントから受信したチケットIDと該クライアントの識別子(クライアントID)とでチケット保存部40を調べ、当該サービスが発行したチケットであるかどうかを調べる。チケット更新部50は、当該サービスが発行したチケットでなければ、延長要求が不成功としてクライアントへ戻す。
また、チケット更新部50は、当該サービスが発行したチケットであれば、チケットIDに対応するチケットに含まれる有効期限と、現在の時間とを比較する。チケット更新部50は、現在の時間が印刷チケットの有効期限内でなければ、延長要求が不成功としてクライアントへ戻す。
また、チケット更新部50は、現在の時間が印刷チケットの有効期限内であれば、クライアントリストを参照して、有効期限の延長要求の要求元のクライアントにチケットの更新権限があるかどうかを調べる。チケット更新部50は、クライアントにチケットの更新権限がなければ、延長要求が不成功としてクライアントへ戻す。一方、チケット更新部50は、クライアントにチケットの更新権限があれば、クライアントによって指定された延長期間分又は予め設定されている延長期間分だけ延長した有効期限を設定し、この新しい有効期限をチケット保存部40へ登録し(図6参照)、チケットIDと更新されたチケットの有効期限とをクライアントへ戻す。
ここで、予め設定される延長期間は、サービスのセキュリティの強さによって決定され、チケットを発行するサービスの管理責任者等がHDD19等に格納されている定義ファイルに設定する。
なお、図4に示されるクライアントリストには、チケットの作成要求を行ったクライアントに係る情報(クライアントIDと、クライアント情報)が含まれているが、該項目を含まないようにクライアントリストを構成するようにしてもよい。
また、以下ではチケットの作成要求を行ったクライアントに対しては、チケットの更新権限があるものとして説明を行う。
チケット検証部60は、サービスの利用要求を受け取ると、サービスの利用を要求してきたクライアントから受信したチケットIDと該クライアントの識別子(クライアントID)とでチケット保存部40を調べ、当該サービスが発行したチケットであるかどうかを調べる。当該サービスが発行したチケットでなければ、検証要求がエラーとしてクライアントへ戻す。
また、チケット検証部60は、当該サービスが発行したチケットであれば、受信したチケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、チケットの有効期限より現在の時間が超過していれば、検証要求がエラーとしてクライアントへ戻す。ここで、チケット検証部60は、チケット保存部40に延長した有効期限が設定されていれば、この延長された有効期限と現在時間とを比較する。
チケット検証部60は、有効期限を超過していなければ、クライアントから要求されたサービスの利用権限を取り出して、サービス提供部70へ戻し、サービス提供部70ではこの利用権限に応じて、指定されたサービスの処理を行う。
上記の有料コンテンツ販売サービスの例で説明すると、ポータルサイトがサービスB(コンテンツ保管サービス)からコンテンツの印刷チケットを受け取った後に、サービスC(決済サービス)の処理に手間取り、サービスD(印刷サービス)へ渡す前に印刷チケットの有効期限が切れてしまうかもしれない。そこで、ポータルサイトは、サービスBが応答を返した後か、サービスCの処理中にサービスBに対して、印刷チケットの有効期限延長(更新)要求を行うようにすれば、チケットの有効期限切れの問題を解決することができる。
サービスを以上のように構成することによって、チケットの有効期限を延長できるクライアントを制限して、本来の意図とは異なるクライアントによるチケットの更新を制限することができる。
以下、実施例1における有効期限延長処理の一例を、図7を用いて説明する。図7は、実施例1における有効期限延長処理の一例を説明するためのフローチャートである。なお、以下では、説明の簡略化のため、サービスBを用いて有効期限の延長処理の一例を説明する。
ステップS10において、サービスBは、例えばポータルサイトより、印刷チケットの有効期限の延長要求を受信する。
ステップS10に続いてステップS11に進み、サービスBは、ステップS10において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDと、ポータルサイトを識別するクライアントIDと、に基づいて図6に示したようなチケット保存部40のデータを参照し、当該サービスBが発行した印刷チケットかどうかを判定する。
サービスBは、当該自身が発行した印刷チケットであると判定すると(ステップS11においてYES)、ステップS12に進み、当該自身が発行した印刷チケットでないと判定すると(ステップS11においてNO)、ステップS15に進む。
ステップS12では、サービスBが、印刷チケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、現在の時間が印刷チケットの有効期限内かどうかを判定する。
サービスBは、現在の時間が印刷チケットの有効期限内であると判定すると(ステップS12においてYES)、ステップS13に進み、現在の時間が印刷チケットの有効期限内でないと判定すると(ステップS12においてNO)、ステップS15に進む。なお、サービスBは、チケット保存部40に延長した有効期限が設定されていれば、この延長された有効期限と現在時間とを比較する。
ステップS13では、サービスBが、図4に示したようなクライアントリストを参照し、印刷チケットの有効期限の延長要求を行ったポータルサイトに印刷チケットの更新権限があるかどうかを判定する。
サービスBは、ポータルサイトに印刷チケットの更新権限があると判定すると(ステップS13においてYES)、ステップS14に進み、ポータルサイトに印刷チケットの更新権限がないと判定すると(ステップS13においてNO)、ステップS15に進む。
ステップS14では、サービスBが、予め定められた延長期間分延長するか、又はステップS10において受信した印刷チケットの有効期限の延長要求に含まれるポータルサイトより要求された延長期間分延長するかを判定する。
サービスBは、要求された延長期間分延長すると判定すると(ステップS14においてYES)、ステップS16に進み、予め定められた延長期間分延長すると判定すると(ステップS14においてNO)、ステップS17に進む。
例えば、サービスBは、HDD19等に格納されている定義ファイルに定義されているフラグ等を参照し、予め定められた延長期間分延長するか、又は要求された延長期間分延長するかを判定する。
一方、ステップS15では、サービスBが、延長要求が失敗した旨の情報を含む有効期限延長応答を作成する。
ステップS16では、サービスBが、印刷チケットIDに対応する印刷チケットに含まれる有効期限を、要求された延長期間分延長する。
ステップS17では、サービスBが、印刷チケットIDに対応する印刷チケットに含まれる有効期限を、予め定められた延長期間分延長する。
ステップS18では、サービスBが、ステップS16又はステップS17において延長した有効期限(更新有効期限)を、図6に示されるように、チケット保存部40に保存する。
ステップS18に続いてステップS19に進み、サービスBは、延長要求が成功した旨の情報と、チケットIDと、延長した有効期限(更新有効期限)と、を含む有効期限延長応答を作成する。
ステップS20では、サービスBが、ステップS15又はステップS19において作成した有効期限延長応答を、要求元のポータルサイトに送信する。
サービスが、図7に示したような処理を行うことによって、チケットの有効期限延長権限があるクライアントからの有効期限延長要求に応じて、対応するチケットの有効期限を延長することができる。
以下、実施例1におけるサービス提供処理の一例を、図8を用いて説明する。図8は、実施例1におけるサービス提供処理の一例を説明するためのフローチャートである。なお、以下では、説明の簡略化のため、サービスBを用いてサービス提供処理の一例を説明する。
ステップS30において、サービスBは、例えばサービスDよりサービスBが提供するサービスの利用要求を受信する。
ステップS30に続いてステップS31に進み、サービスBは、ステップS30において受信したサービスの利用要求に含まれる印刷チケットIDと、サービスDを識別するクライアントIDと、に基づいて図6に示したようなチケット保存部40のデータを参照し、当該サービスBが発行した印刷チケットかどうかを判定する。
サービスBは、当該自身が発行した印刷チケットであると判定すると(ステップS31においてYES)、ステップS32に進み、当該自身が発行した印刷チケットでないと判定すると(ステップS31においてNO)、ステップS34に進む。
ステップS32では、サービスBが、印刷チケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、現在の時間が印刷チケットの有効期限内かどうかを判定する。
サービスBは、現在の時間が印刷チケットの有効期限内であると判定すると(ステップS32においてYES)、ステップS33に進み、現在の時間が印刷チケットの有効期限内でないと判定すると(ステップS32においてNO)、ステップS34に進む。なお、サービスBは、チケット保存部40に延長した有効期限が設定されていれば、この延長された有効期限と現在時間とを比較する。
ステップS33では、サービスBが、ステップS30において受信したサービスの利用要求に含まれるサービスDを識別するクライアントIDと、サービスの利用種別(例えば、コンテンツの取得)と、に基づいて、図4に示したようなクライアントリストを参照し、サービスDに、例えばコンテンツを取得する権限があるかどうかを判定する。
サービスBは、要求元のクライアントに、要求したサービスを利用する利用権限があると判定すると(ステップS33においてYES)、ステップS35に進み、要求元のクライアントに、要求したサービスを利用する利用権限がないと判定すると(ステップS33においてNO)、ステップS34に進む。
ステップS34では、サービスBが、サービス利用要求が失敗した旨の情報を含むサービス利用応答を作成する。
一方、ステップS35では、サービスBが、サービスDが要求したサービスの提供処理、例えばサービスBが保持、管理するコンテンツの中から対応するコンテンツを取得する処理、等を行う。
ステップS35に続いてステップS36に進み、サービスBは、サービス利用要求が成功した旨の情報と、例えばステップS35において取得したコンテンツと、を含むサービス利用応答を作成する。
ステップS37では、サービスBが、ステップS34又はステップS36において作成したサービス利用応答を、要求元のサービスDに送信する。
サービスが、図8に示したような処理を行うことによって、サービスの利用権限があるクライアントからのサービスの利用要求に応じて、対応するサービスを提供することができる。
上記の実施例1の構成では、単に有効期限を延長するだけであり、チケットを盗まれていた場合に悪用される恐れがでてくる。
そのために、本実施例2では、チケットの有効期限を延長する要求を受けた際に、現状のチケットを破棄し、新しくチケットを発行するようにする。
本実施例2に係るサービスの機能構成は、図3と同様に、サービス提供部70と、WebサービスI/F10と、要求処理部20と、チケット作成部30と、チケット保存部40と、チケット更新部50と、チケット検証部60と、を含むので、以下では相違点についてのみ説明する。
チケット更新部50は、有効期限の延長要求を受け取ると、クライアントから受信したチケットIDとクライアントの識別子(クライアントID)とでチケット保存部40を調べ、当該サービスが発行したチケットであるかどうかを調べる。当該サービスが発行したチケットでなければ、延長要求が不成功としてクライアントへ戻す。
また、チケット更新部50は、当該サービスが発行したチケットであれば、チケットIDに対応するチケットに含まれる有効期限と、現在の時間とを比較する。チケット更新部50は、現在の時間が印刷チケットの有効期限内でなければ、延長要求が不成功としてクライアントへ戻す。
また、チケット更新部50は、現在の時間が印刷チケットの有効期限内であれば、クライアントリストを参照して、有効期限の延長要求の要求元のクライアントにチケットの更新権限があるかどうかを調べる。チケット更新部50は、クライアントにチケットの更新権限がなければ、延長要求が不成功としてクライアントへ戻す。一方、チケット更新部50は、クライアントにチケットの更新権限があれば、クライアントによって指定された延長期間分又は予め設定されている延長期間分だけ延長した有効期限を設定して、新しくチケットを作成し、チケット保存部40へ登録する(図9参照)。また、チケット更新部50は、新しく作成されたチケットを識別するチケットIDと延長されたチケットの有効期限とをクライアントへ戻す。チケット更新部50は、古いチケットはチケット保存部40から削除しておく。なお、削除せずに、該古いチケットに使用不可能のフラグ等を立てるようにしてもよい。但し、以下では説明の簡略化のため、古いチケットはチケット保存部40から削除するものとして説明を行う。
チケット検証部60は、サービスの利用要求を受け取ると、サービスの利用を要求してきたクライアントから受信したチケットIDと該クライアントの識別子(クライアントID)とでチケット保存部40を調べ、当該サービスが発行したチケットであるかどうかを調べる。当該サービスが発行したチケットでなければ、検証要求がエラーとしてクライアントへ戻す。
また、チケット検証部60は、当該サービスが発行したチケットであれば、受信したチケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、チケットの有効期限より現在の時間が超過していれば、検証要求がエラーとしてクライアントへ戻す。
チケット検証部60は、有効期限を超過していなければ、クライアントから要求されたサービスの利用権限を取り出して、サービス提供部70へ戻し、サービス提供部70ではこの利用権限に応じて、指定されたサービスの処理を行う。
サービスを以上のように構成することによって、チケットの有効期限延長前にチケットが盗まれていても、有効期限延長後には古いチケットが利用できなくなり、有効期限をセキュリティ上安全に延長することができる。
以下、実施例2における有効期限延長処理の一例を、図10を用いて説明する。図10は、実施例2における有効期限延長処理の一例を説明するためのフローチャートである。なお、以下では、説明の簡略化のため、サービスBを用いて有効期限の延長処理の一例を説明する。
ステップS40において、サービスBは、例えばポータルサイトより、印刷チケットの有効期限の延長要求を受信する。
ステップS40に続いてステップS41に進み、サービスBは、ステップS40において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDと、ポータルサイトを識別するクライアントIDと、に基づいて図9に示したようなチケット保存部40のデータを参照し、当該サービスBが発行した印刷チケットかどうかを判定する。
サービスBは、当該自身が発行した印刷チケットであると判定すると(ステップS41においてYES)、ステップS42に進み、当該自身が発行した印刷チケットでないと判定すると(ステップS41においてNO)、ステップS45に進む。
ステップS42では、サービスBが、印刷チケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、現在の時間が印刷チケットの有効期限内かどうかを判定する。
サービスBは、現在の時間が印刷チケットの有効期限内であると判定すると(ステップS42においてYES)、ステップS43に進み、現在の時間が印刷チケットの有効期限内でないと判定すると(ステップS42においてNO)、ステップS45に進む。
ステップS43では、サービスBが、図4に示したようなクライアントリストを参照し、印刷チケットの有効期限の延長要求を行ったポータルサイトに印刷チケットの更新権限があるかどうかを判定する。
サービスBは、ポータルサイトに印刷チケットの更新権限があると判定すると(ステップS43においてYES)、ステップS44に進み、ポータルサイトに印刷チケットの更新権限がないと判定すると(ステップS43においてNO)、ステップS45に進む。
ステップS44では、サービスBが、予め定められた延長期間分延長するか、又はステップS40において受信した印刷チケットの有効期限の延長要求に含まれるポータルサイトより要求された延長期間分延長するかを判定する。
サービスBは、要求された延長期間分延長すると判定すると(ステップS44においてYES)、ステップS46に進み、予め定められた延長期間分延長すると判定すると(ステップS44においてNO)、ステップS47に進む。
例えば、サービスBは、HDD19等に格納されている定義ファイルに定義されているフラグ等を参照し、予め定められた延長期間分延長するか、又は要求された延長期間分延長するかを判定する。
一方、ステップS45では、サービスBが、延長要求が失敗した旨の情報を含む有効期限延長応答を作成する。
ステップS46では、サービスBが、印刷チケットIDに対応する印刷チケットに含まれる有効期限を、要求された延長期間分延長する。
ステップS47では、サービスBが、印刷チケットIDに対応する印刷チケットに含まれる有効期限を、予め定められた延長期間分延長する。
ステップS48では、サービスBが、ステップS46又はステップS47において延長した有効期限(更新有効期限)と、新たに振りなおした印刷チケットIDと、を含む新たな印刷チケットを作成する。
ステップS48に続いてステップS49に進み、サービスBは、ステップS48において新たに作成した印刷チケットをチケット保存部40へ登録する。
ステップS49に続いてステップS50に進み、サービスBは、ステップS40において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDに対応する印刷チケットをチケット保存部40より削除する。
ステップS50に続いてステップS51に進み、サービスBは、延長要求が成功した旨の情報と、新たに作成した印刷チケットのチケットIDと、該新たに作成した印刷チケットに含まれる有効期限と、を含む有効期限延長応答を作成する。
ステップS52では、サービスBが、ステップS45又はステップS51において作成した有効期限延長応答を、要求元のポータルサイトに送信する。
サービスが、図10に示したような処理を行うことによって、チケットの有効期限延長権限があるクライアントからの有効期限延長要求に応じて、対応する古いチケットを使用不能にし、有効期限を延長した新たなチケットを作成することができる。
以下、実施例2におけるサービス提供処理の一例を、図11を用いて説明する。図11は、実施例2におけるサービス提供処理の一例を説明するためのフローチャートである。なお、以下では、説明の簡略化のため、サービスBを用いてサービス提供処理の一例を説明する。
ステップS60において、サービスBは、例えばサービスDよりサービスBが提供するサービスの利用要求を受信する。
ステップS60に続いてステップS61に進み、サービスBは、ステップS60において受信したサービスの利用要求に含まれる印刷チケットIDと、サービスDを識別するクライアントIDと、に基づいて図9に示したようなチケット保存部40のデータを参照し、当該サービスBが発行した印刷チケットかどうかを判定する。
サービスBは、当該自身が発行した印刷チケットであると判定すると(ステップS61においてYES)、ステップS62に進み、当該自身が発行した印刷チケットでないと判定すると(ステップS61においてNO)、ステップS64に進む。
ステップS62では、サービスBが、印刷チケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、現在の時間が印刷チケットの有効期限内かどうかを判定する。
サービスBは、現在の時間が印刷チケットの有効期限内であると判定すると(ステップS62においてYES)、ステップS63に進み、現在の時間が印刷チケットの有効期限内でないと判定すると(ステップS62においてNO)、ステップS64に進む。
ステップS63では、サービスBが、ステップS60において受信したサービスの利用要求に含まれるサービスDを識別するクライアントIDと、サービスの利用種別(例えば、コンテンツの取得)と、に基づいて、図4に示したようなクライアントリストを参照し、サービスDに、例えばコンテンツを取得する権限があるかどうかを判定する。
サービスBは、要求元のクライアントに、要求したサービスを利用する利用権限があると判定すると(ステップS63においてYES)、ステップS65に進み、要求元のクライアントに、要求したサービスを利用する利用権限がないと判定すると(ステップS63においてNO)、ステップS64に進む。
ステップS64では、サービスBが、サービス利用要求が失敗した旨の情報を含むサービス利用応答を作成する。
一方、ステップS65では、サービスBが、サービスDが要求したサービスの提供処理、例えばサービスBが保持、管理するコンテンツの中から対応するコンテンツを取得する処理、等を行う。
ステップS65に続いてステップS66に進み、サービスBは、サービス利用要求が成功した旨の情報と、例えばステップS65において取得したコンテンツと、を含むサービス利用応答を作成する。
ステップS67では、サービスBが、ステップS64又はステップS66において作成したサービス利用応答を、要求元のサービスDに送信する。
サービスが、図11に示したような処理を行うことによって、サービスの利用権限があるクライアントからのサービスの利用要求に応じて、対応するサービスを提供することができる。
上述の実施例1及び実施例2では、悪意あるクライアントが、発行されたチケットを取得してしまった場合に、半永久的な有効期限のチケットを作成することができれば、セキュリティ上の大きな脅威となってしまう。
そのために、本実施例3では、チケットを発行する際や有効期限の延長の際に、有効期限の長さに制限を設けるようにして、セキュリティ上の問題を解決する。
本実施例3に係るサービスの機能構成は、図3と同様に、サービス提供部70と、WebサービスI/F10と、要求処理部20と、チケット作成部30と、チケット保存部40と、チケット更新部50と、チケット検証部60と、を含む。各部の機能は実施例1又は実施例2の何れかの構成を基にしているので、以下では相違点についてのみ説明する。
チケット作成部30は、実施例1及び実施例2と同様にチケットを作成して、該作成したチケットをチケット保存部40へ格納する。
この作成するチケットには、該チケットを識別するチケットIDと、最大延長有効期限と、有効期限と、チケット利用サービスと該チケットサービスの利用権限のリストと、が含まれる(図12参照)。
なお、該最大延長有効期限は、例えばチケットを発行するサービスの管理責任者等がHDD19等に格納されている定義ファイル等に予め設定した延長期間の最大値に、チケット作成時期(作成年月日及び時刻)を加えた値として、チケット作成部30等が計算し、チケットに含める。ここで、予め設定される延長期間の最大値は、サービスのセキュリティの強さによって決定され、設定される。
チケット更新部50は、実施例1又は実施例2と同様にチケットの有効期限を延長する。
ここで、クライアントによって指定された延長期間分又は予め設定されている延長期間分だけ延長した有効期限が最大延長有効期限よりも大きい場合には、最大延長有効期限に置き換えて新たな有効期限とし、チケットを更新する。
ここで、予め設定される延長期間は、サービスのセキュリティの強さによって決定され、チケットを発行するサービスの管理責任者等がHDD19等に格納されている定義ファイルに設定する。
サービスを以上のように構成することによって、半永久的に有効なチケットの存在を回避できるため、悪意あるクライアントがチケットを手に入れ、その有効期限の延長を行ったとしても、永久的にチケットを利用することはできない。
以下、実施例3における有効期限延長処理の一例を、図13を用いて説明する。図13は、実施例3における有効期限延長処理の一例を説明するためのフローチャートである。なお、以下では、説明の簡略化のため、サービスBを用いて有効期限の延長処理の一例を説明する。また、実施例2において説明したように、古いチケットを削除し、新たなチケットを作成する方法を用いて実施例3における有効期限延長処理の一例を説明する。
ステップS70において、サービスBは、例えばポータルサイトより、印刷チケットの有効期限の延長要求を受信する。
ステップS70に続いてステップS71に進み、サービスBは、ステップS70において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDと、ポータルサイトを識別するクライアントIDと、に基づいて図9に示したようなチケット保存部40のデータを参照し、当該サービスBが発行した印刷チケットかどうかを判定する。
サービスBは、当該自身が発行した印刷チケットであると判定すると(ステップS71においてYES)、ステップS72に進み、当該自身が発行した印刷チケットでないと判定すると(ステップS71においてNO)、ステップS75に進む。
ステップS72では、サービスBが、印刷チケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、現在の時間が印刷チケットの有効期限内かどうかを判定する。
サービスBは、現在の時間が印刷チケットの有効期限内であると判定すると(ステップS72においてYES)、ステップS73に進み、現在の時間が印刷チケットの有効期限内でないと判定すると(ステップS72においてNO)、ステップS75に進む。
ステップS73では、サービスBが、図4に示したようなクライアントリストを参照し、印刷チケットの有効期限の延長要求を行ったポータルサイトに印刷チケットの更新権限があるかどうかを判定する。
サービスBは、ポータルサイトに印刷チケットの更新権限があると判定すると(ステップS73においてYES)、ステップS74に進み、ポータルサイトに印刷チケットの更新権限がないと判定すると(ステップS73においてNO)、ステップS75に進む。
ステップS74では、サービスBが、予め定められた延長期間分延長するか、又はステップS70において受信した印刷チケットの有効期限の延長要求に含まれるポータルサイトより要求された延長期間分延長するかを判定する。
サービスBは、要求された延長期間分延長すると判定すると(ステップS74においてYES)、ステップS76に進み、予め定められた延長期間分延長すると判定すると(ステップS74においてNO)、ステップS77に進む。
例えば、サービスBは、HDD19等に格納されている定義ファイルに定義されているフラグ等を参照し、予め定められた延長期間分延長するか、又は要求された延長期間分延長するかを判定する。
一方、ステップS75では、サービスBが、延長要求が失敗した旨の情報を含む有効期限延長応答を作成する。
ステップS76では、サービスBが、印刷チケットIDに対応する印刷チケットに含まれる有効期限を、要求された延長期間分延長する。
ステップS77では、サービスBが、印刷チケットIDに対応する印刷チケットに含まれる有効期限を、予め定められた延長期間分延長する。
ステップS78では、サービスBが、ステップS76又はステップS77において延長した有効期限(更新有効期限)と、図12に示したような、対応するチケットに含まれる最大延長有効期限と、を比較し、更新有効期限が、最大延長有効期限内かどうかを判定する。
サービスBは、更新有効期限が、最大延長有効期限内であると判定すると(ステップS78においてYES)、ステップS79に進み、更新有効期限が、最大延長有効期限内でないと判定すると(ステップS78においてNO)、ステップS80に進む。
ステップS79では、サービスBが、更新有効期限と、新たに振りなおした印刷チケットIDと、を含む新たな印刷チケットを作成する。
一方、ステップS80では、サービスBが、ステップS70において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDに対応する印刷チケットの最大延長有効期限を有効期限として含む、新たな印刷チケットを作成する。なお、該印刷チケットもステップS79で作成した印刷チケットと同様、新たに振りなおした印刷チケットIDを含む。
ステップS81では、サービスBが、ステップS79又はステップS80において新たに作成した印刷チケットをチケット保存部40へ登録する。
ステップS81に続いてステップS82に進み、サービスBは、ステップS70において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDに対応する印刷チケットをチケット保存部40より削除する。
ステップS82に続いてステップS83に進み、サービスBは、延長要求が成功した旨の情報と、新たに作成した印刷チケットのチケットIDと、該新たに作成した印刷チケットに含まれる有効期限と、を含む有効期限延長応答を作成する。
ステップS84では、サービスBが、ステップS75又はステップS83において作成した有効期限延長応答を、要求元のポータルサイトに送信する。
サービスが、図13に示したような処理を行うことによって、チケットの有効期限延長権限があるクライアントからの有効期限延長要求に応じて、予め定められた最大延長有効期限内で有効期限を延長した新たなチケットを作成することができる。
上述の実施例1、実施例2及び実施例3では、悪意あるクライアントが、発行されたチケットを取得してしまった場合に、有効期限が切れる前に有効期限の延長要求を行うことを繰り返すことで、永久的にチケットを利用することが可能となってしまい、セキュリティ上大きな脅威となる。
そのために、本実施例4では、チケットを発行する際や有効期限の延長の際に、有効期限の延長回数に最大値を設けるようにして、セキュリティ上の問題を解決する。
本実施例4に係るサービスの機能構成は、図3と同様に、サービス提供部70と、WebサービスI/F10と、要求処理部20と、チケット作成部30と、チケット保存部40と、チケット更新部50と、チケット検証部60と、を含む。各部の機能は上述した実施例(1、2及び3)の何れかの構成を基にしているので、以下では相違点についてのみ説明する。
チケット作成部30は、チケットの作成要求を受け取ると、上述の実施例と同様にチケットを作成して、該作成したチケットをチケット保存部40へ格納し、該格納したチケット有効期限の延長要求回数をゼロに設定する(図14及び図15参照)。
ここで、図14は、実施例1に対応したチケット保存部40を表し、図15は、実施例2に対応したチケット保存部40を表している。
なお、チケット作成部30が作成したチケットには、該チケットを識別するチケットIDと、延長上限回数と、有効期限と、チケット利用サービスと該チケットサービスの利用権限のリストと、が含まれる(図16参照)。
この延長上限回数は、予め設定したチケットの有効期限を延長する回数の最大値である。この予め設定される延長上限回数は、サービスのセキュリティの強さによって決定され、例えば、特に、シングル・サインオンのための認証チケットのような重要なチケットの場合には、延長上限回数を少なくするなど、チケットを発行するサービスの管理責任者等がHDD19等に格納されている定義ファイルに設定する。
チケット更新部50は、有効期限の延長要求を受け取ると、上述の実施例と同様にチケットの有効期限を延長する。
ここで、チケット更新部50は、チケットの有効期限を延長する際、延長上限回数を超える場合には、有効期限の延長をエラーとしてクライアントへ戻す。一方、チケット更新部50は、チケットを更新すると、チケット保存部40の該当チケットの有効期限の延長要求回数を1つカウントアップする。
チケット検証部60は、サービスの利用要求を受け取ると、まず、クライアントから受信したチケットIDとクライアントの識別子(クライアントID)とでチケット保存部40を調べ、当該サービスが発行したチケットであるかどうかを調べる。当該サービスが発行したチケットでなければ、検証要求がエラーとしてクライアントへ戻す。
また、チケット検証部60は、当該サービスが発行したチケットであれば、受信したチケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、チケットの有効期限より現在の時間が超過していれば、検証要求がエラーとしてクライアントへ戻す。
チケット検証部60は、有効期限を超過していなければ、クライアントから要求されたサービスの利用権限を取り出して、サービス提供部70へ戻し、サービス提供部70ではこの利用権限に応じて、指定されたサービスの処理を行う。
サービスを以上のように構成することによって、チケットを発行する側で有効期限の延長可能回数を設定してしまうため、悪意のあるクライアントがチケットを手に入れ、その有効期限の延長を行おうとしても、半永久的にチケットを利用することはできない。
以下、実施例4における有効期限延長処理の一例を、図17を用いて説明する。図17は、実施例4における有効期限延長処理の一例を説明するためのフローチャートである。なお、以下では、説明の簡略化のため、サービスBを用いて有効期限の延長処理の一例を説明する。また、実施例2において説明したように、古いチケットを削除し、新たなチケットを作成する方法を用いて実施例4における有効期限延長処理の一例を説明する。
ステップS90において、サービスBは、例えばポータルサイトより、印刷チケットの有効期限の延長要求を受信する。
ステップS90に続いてステップS91に進み、サービスBは、ステップS90において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDと、ポータルサイトを識別するクライアントIDと、に基づいて図9に示したようなチケット保存部40のデータを参照し、当該サービスBが発行した印刷チケットかどうかを判定する。
サービスBは、当該自身が発行した印刷チケットであると判定すると(ステップS91においてYES)、ステップS92に進み、当該自身が発行した印刷チケットでないと判定すると(ステップS91においてNO)、ステップS96に進む。
ステップS92では、サービスBが、印刷チケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、現在の時間が印刷チケットの有効期限内かどうかを判定する。
サービスBは、現在の時間が印刷チケットの有効期限内であると判定すると(ステップS92においてYES)、ステップS93に進み、現在の時間が印刷チケットの有効期限内でないと判定すると(ステップS92においてNO)、ステップS96に進む。
ステップS93では、サービスBが、図4に示したようなクライアントリストを参照し、印刷チケットの有効期限の延長要求を行ったポータルサイトに印刷チケットの更新権限があるかどうかを判定する。
サービスBは、ポータルサイトに印刷チケットの更新権限があると判定すると(ステップS93においてYES)、ステップS94に進み、ポータルサイトに印刷チケットの更新権限がないと判定すると(ステップS93においてNO)、ステップS96に進む。
ステップS94では、サービスBが、ステップS90において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDに基づいて、図16に示したような印刷チケットの延長上限回数と、図15に示したようなチケット保存部40のデータの有効期限の延長要求回数とを比較して、有効期限の延長要求回数が延長上限回数内かどうかを判定する。
サービスBは、有効期限の延長要求回数が延長上限回数内であると判定すると(ステップS94においてYES)、ステップS95に進み、有効期限の延長要求回数が延長上限回数内でないと判定すると(ステップS94においてNO)、ステップS96に進む。
ステップS95では、サービスBが、予め定められた延長期間分延長するか、又はステップS90において受信した印刷チケットの有効期限の延長要求に含まれるポータルサイトより要求された延長期間分延長するかを判定する。
サービスBは、要求された延長期間分延長すると判定すると(ステップS95においてYES)、ステップS97に進み、予め定められた延長期間分延長すると判定すると(ステップS95においてNO)、ステップS98に進む。
例えば、サービスBは、HDD19等に格納されている定義ファイルに定義されているフラグ等を参照し、予め定められた延長期間分延長するか、又は要求された延長期間分延長するかを判定する。
一方、ステップS96では、サービスBが、延長要求が失敗した旨の情報を含む有効期限延長応答を作成する。
ステップS97では、サービスBが、印刷チケットIDに対応する印刷チケットに含まれる有効期限を、要求された延長期間分延長する。
ステップS98では、サービスBが、印刷チケットIDに対応する印刷チケットに含まれる有効期限を、予め定められた延長期間分延長する。
ステップS99では、サービスBが、図15に示したようなチケット保存部40のデータの有効期限の延長要求回数を1つカウントアップする。
ステップS99に続いてステップS100に進み、サービスBは、ステップS97又はステップS98において延長した有効期限(更新有効期限)と、新たに振りなおした印刷チケットIDと、を含む新たな印刷チケットを作成する。
ステップS100に続いてステップS101に進み、サービスBは、ステップS100において新たに作成した印刷チケットをチケット保存部40へ登録する。
ステップS101に続いてステップS102に進み、サービスBは、ステップS90において受信した印刷チケットの有効期限の延長要求に含まれる印刷チケットIDに対応する印刷チケットをチケット保存部40より削除する。
ステップS102に続いてステップS103に進み、サービスBは、延長要求が成功した旨の情報と、新たに作成した印刷チケットのチケットIDと、該新たに作成した印刷チケットに含まれる有効期限と、を含む有効期限延長応答を作成する。
ステップS104では、サービスBが、ステップS96又はステップS103において作成した有効期限延長応答を、要求元のポータルサイトに送信する。
サービスが、図17に示したような処理を行うことによって、チケットの有効期限延長権限があるクライアントからの有効期限延長要求に応じて、予め定められた延長上限回数のみ、有効期限を延長し、新たなチケットを作成することができる。
(実施例4の変形)
上述した実施例4では、有効期限の延長の制限として有効期限の延長上限回数を設けたが、有効期限の延長上限回数の代わりに、チケットの利用上限回数を設けるようにしてもよい。
この場合のチケット作成部30、チケット保存部40、チケット更新部50、チケット検証部60の機能の追加は次のようになる。
チケット作成部30は、チケットの作成要求を受け取ると、上述の実施例と同様にチケットを作成して、該作成したチケットをチケット保存部40へ格納し、該格納したチケット利用回数をゼロに設定する。
なお、チケット作成部30が作成したチケットには、該チケットを識別するチケットIDと、利用上限回数と、有効期限と、チケット利用サービスと該チケットサービスの利用権限のリストと、が含まれる(図18参照)。
この利用上限回数は、予め設定したチケットの利用回数の最大値である。この予め設定される利用回数の最大値は、サービスのセキュリティの強さによって決定され、チケットを発行するサービスの管理責任者等がHDD19等に格納されている定義ファイルに設定する。
チケット更新部50は、有効期限の延長要求を受け取ると、上述の実施例と同様にチケットの有効期限を延長する。
ここで、チケット更新部50は、チケットの有効期限を延長する際、利用上限回数を超える場合には、有効期限の延長をエラーとしてクライアントへ戻す。一方、チケット更新部50は、チケットを更新すると、チケット保存部40の該当チケットの利用回数を1つカウントアップする。
チケット検証部60は、サービスの利用要求を受け取ると、上述の実施例と同様に、まず、クライアントから受信したチケットIDとクライアントの識別子(クライアントID)とでチケット保存部40を調べ、当該サービスが発行したチケットであるかどうかを調べる。当該サービスが発行したチケットでなければ、検証要求がエラーとしてクライアントへ戻す。
また、チケット検証部60は、当該サービスが発行したチケットであれば、受信したチケットIDに対応するチケットに含まれる該チケットの利用回数と該チケットの利用上限回数とを比較し、該チケットの利用回数が該チケットの利用上限回数を超えている場合には、検証要求がエラーとしてクライアントへ戻す。
更に、チケット検証部60は、当該サービスが発行したチケットであれば、受信したチケットIDに対応するチケットに含まれる該チケットの有効期限と、現在の時間と、を比較し、チケットの有効期限より現在の時間が超過していれば、検証要求がエラーとしてクライアントへ戻す。
チケット検証部60は、有効期限を超過していなければ、クライアントから要求されたサービスの利用権限を取り出して、サービス提供部70へ戻し、サービス提供部70ではこの利用権限に応じて、指定されたサービスの処理を行う。
チケット検証部60は、指定されたサービスの処理を行うと、チケット保存部40の該当チケットの利用回数を1つカウントアップする。
この実施例4の変形において、有効期限の延長についても利用回数に入れて説明を行ったが、サービスの利用のみを利用回数としてカウントするようにしてもよい。
実施例1で説明したように、有料コンテンツ販売サービスの場合に、ポータルサイトがサービスB(コンテンツ保管サービス)からコンテンツの印刷チケットを受け取った後に、サービスC(決済サービス)の処理に手間取り、サービスD(印刷サービス)へ渡す前に印刷チケットの有効期限が切れてしまうかもしれない。この場合、印刷チケットの有効期限が途中で切れてしまうと、チケットを取り直す必要があるため、ポータルサイトはチケットの有効期限を延長する必要がある。
したがって、本実施例5では、チケットの有効期限が切れそうな場合に、そのチケットの作成要求元へ有効期限を知らせることによって、通知を受けたチケットの要求元がチケットの有効期限延長要求を行うようにすれば、チケットの有効期限切れの問題を解決することができる。
本実施例5に係るサービスの機能構成は、図19に示すように、サービス提供部70と、WebサービスI/F10と、要求処理部20と、チケット作成部30と、チケット保存部40と、チケット更新部50と、チケット検証部60と、有効期限監視部80と、を含む。
ここで、サービス提供部70と、WebサービスI/F10と、要求処理部20と、チケット作成部30と、チケット保存部40と、チケット更新部50と、チケット検証部60と、の機能は上述した実施例の何れかの構成を基にしているので、以下では有効期限監視部80についてのみ説明する。
有効期限監視部80は、予め定められた時刻(例えば5分)ごとに、チケット保存部40に登録された各チケットの有効期限を現在の時刻と比較して、予め定められた時間(例えば3分)以内になっているかどうかを調べる。
有効期限監視部80は、この予め定められた時間以内になったチケットが見つかった場合、該チケットに対応するクライアントリストよりチケットの作成要求を行ったクライアントへの連絡先(クライアント情報)を取得する。また、有効期限監視部80は、この予め定められた時間以内になったチケットより該チケットに含まれるチケットの有効期限を取得する。
有効期限監視部80は、取得したクライアントへの連絡先(クライアント情報)へ、取得したチケットの有効期限を通知する。
例えば、クライアントへの連絡先へ送信するメッセージとしては以下のような例が考えられる。
例1:FROM2002−08−27T00:00:20ZTO2002−08−27T00:04:20Z_XXXXXX
この例は、2002年08月27日00:00:20から2002年08月27日00:04:20まで有効なチケットであることを示している。
例2:(XMLを用いた例)
<Ticket>
<From>2002−08−27T00:00:20Z</From>
<To>2002−08−27T00:04:20Z</To>
<Challenge>XXXXXXX</Challenge>
</Ticket>
本実施例5のように、チケットを発行したサービスが、チケットの有効期限を監視して、チケットの有効期限を知らせるようにすると、チケットの有効期限が切れる前に、該チケットを利用するサービスが有効期限延長要求を出すことができる。
また、本実施例5のように、チケットを発行したサービスが、チケットの有効期限を監視して、チケットの有効期限を知らせるようにすると、有効期限を知るために、チケットの発行(作成)を要求したサービスが、チケットを発行したサービスに、わざわざ問い合わせる必要がない。Webサービスの場合は、要求と応答のオーバヘッドがCOM(Component Object Model)などに比べて大きいため、問い合わせを行う必要がないことは重要である。
また、チケットの有効期限を延長するタイミングとしては、実施例5のようにチケット作成側からの通知によらずに、チケットの作成を要求したクライアント側で有効期限の期限切れを監視して、有効期限が切れそうになった場合に有効期限の延長要求を出すようにしてもよい。
この場合、チケットの作成を要求したクライアント側で、要求に基づき作成又は更新されたチケットと、作成又は更新された時点での有効期限と、をチケットの作成側から受け取るようにする。
なお、有効期限監視部80において、チケットの有効期限の監視を行うときに、チケットの有効期限が切れそうになった(予め定められた時間以内になった)場合、当該チケットの要求元のクライアントに、チケットの更新権限があれば、有効期限監視部80が、チケット更新部50に通知を行い、チケット更新部50において自動的にチケットの有効期限を延長させるようにしてもよい。
以下、実施例5における有効期限の延長に係る通知処理の一例を、図20を用いて説明する。図20は、実施例5における有効期限の延長に係る通知処理の一例を説明するためのフローチャートである。以下では、説明の簡略化のため、サービスBを用いて有効期限の延長に係る通知処理の一例を説明する。
ステップS110においてサービスBは、予め定められた時刻(例えば5分)ごとに、チケット保存部40に登録された各チケットの有効期限を現在の時刻と比較して、有効期限が、予め定められた時間(例えば3分)以内になっているチケットが存在するかどうか判定する。
サービスBは、有効期限が、予め定められた時間(例えば3分)以内になっているチケットが存在すると判定すると(ステップS110においてYES)、ステップS111に進み、有効期限が、予め定められた時間(例えば3分)以内になっているチケットが存在しないと判定すると(ステップS110においてNO)、ステップS110の処理を繰り返す。
なお、チケットを監視する予め定められた時刻(上述の例において5分)及び予め定められた時間(上述の例において3分)は、例えばチケットを発行するサービスの管理責任者等HDD19等に格納されている定義ファイルに設定する。
ステップS110に続いてステップS111に進み、サービスBは、チケット保存部40より対応するチケットの有効期限と、クライアント情報と、を取得する。
ステップS111に続いてステップS112に進み、サービスBは、ステップS111において取得したチケットの有効期限を含むメッセージを、ステップS111において取得したクライアント情報に含まれるクライアントに送信する。
サービスが、図20に示したような処理を行うことによって、有効期限延長に係る情報を、チケットの作成要求を行ったクライアントに送信することができる。
なお、上述した実施例は適宜必要に応じて組み合わせた構成とすることによって、チケットの有効期限をよりセキュリティを高く保ちながら延長することができる。
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
実施形態を説明するためのWebサービスの例である。
サービス提供装置の一例のハードウェア構成図である。
サービスの一例の機能構成を示すブロック図である。
クライアントリストのデータ構造例である。
実施例1のチケットのデータ構造例である。
実施例1のチケット保存部のデータ構造例である。
実施例1における有効期限延長処理の一例を説明するためのフローチャートである。
実施例1におけるサービス提供処理の一例を説明するためのフローチャートである。
実施例2のチケット保存部のデータ構造例である。
実施例2における有効期限延長処理の一例を説明するためのフローチャートである。
実施例2におけるサービス提供処理の一例を説明するためのフローチャートである。
実施例3のチケットのデータ構造例である。
実施例3における有効期限延長処理の一例を説明するためのフローチャートである。
実施例4のチケット保存部のデータ構造例(その1)である。
実施例4のチケット保存部のデータ構造例(その2)である。
実施例4のチケットのデータ構造例である。
実施例4における有効期限延長処理の一例を説明するためのフローチャートである。
実施例4の変形例のチケットのデータ構造例である。
サービスの他の機能構成を示すブロック図である。
実施例5における有効期限の延長に係る通知処理の一例を説明するためのフローチャートである。
符号の説明
10 WebサービスI/F
20 要求処理部
30 チケット作成部
40 チケット保存部
50 チケット更新部
60 チケット検証部
70 サービス提供部
80 有効期限監視部