図4は、文書管理サービス提供装置の一例のハードウェア構成図である。図4では説明に必要な構成を表し、説明に必要の無い構成を省略してある。以下の図においても同様である。
図4に示されるように、文書管理サービス提供装置1は、それぞれバスで相互に接続されているドライブ装置13と、ROM(Read Only Memory)15と、RAM(Random Access Memory)16と、CPU(Central Processing Unit)17と、インターフェース装置18と、HDD(Hard Disk Drive)19と、を含む。
インターフェース装置18は、文書管理サービス提供装置1をネットワークに接続するインターフェースである。
後述する文書管理サービス10に対応するプログラム(以下、単に文書管理サービスプログラムという)は、例えば、CD−ROMなどの記録媒体14によって文書管理サービス提供装置1に提供されるか、ネットワークを通じてダウンロードされる。記録媒体14は、ドライブ装置13にセットされ、データや文書管理サービスプログラムが記録媒体14からドライブ装置13を介してHDD19にインストールされる。
ROM15は、データ等を格納する。RAM16は、例えば文書管理サービス提供装置1の起動時にHDD19から文書管理サービスプログラムを読み出して格納する。CPU17は、RAM16に読み出され格納された文書管理サービスプログラムに従って処理を実行する。
HDD19は、文書管理サービスプログラムや、データベースによって管理される文書を格納したり、フォルダ又はディレクトリを有し、該フォルダ又はディレクトリにおいて文書や、文書管理サービスプログラム等を格納したりする。
以下、認証サービス提供装置2のハードウェア構成の一例を、図5に示す。図5は、認証サービス提供装置の一例のハードウェア構成図である。
図5に示されるように、認証サービス提供装置2は、それぞれバスで相互に接続されているドライブ装置23と、ROM25と、RAM26と、CPU27と、インターフェース装置28と、HDD29と、を含む。
インターフェース装置28は、認証サービス提供装置2をネットワークに接続するインターフェースである。
後述する認証サービス20に対応するプログラム(以下、単に認証サービスプログラムという)は、例えば、CD−ROMなどの記録媒体24によって認証サービス提供装置2に提供されるか、ネットワークを通じてダウンロードされる。記録媒体24は、ドライブ装置23にセットされ、データや認証サービスプログラムが記録媒体24からドライブ装置23を介してHDD29にインストールされる。
ROM25は、データ等を格納する。RAM26は、例えば認証サービス提供装置2の起動時にHDD29から認証サービスプログラムを読み出して格納する。CPU27は、RAM26に読み出され格納された認証サービスプログラムに従って処理を実行する。
HDD29は、後述するデフォルト認証チケットや、Persistent認証チケット、認証サービスプログラム等を格納する。
なお、図4及び図5では、文書管理サービス10(又は文書管理サービスプログラム)は、文書管理サービス提供装置1にインストールされ、認証サービス20(又は認証サービスプログラム)は、認証サービス提供装置2にインストールされるものとして説明を行ったが、文書管理サービス10(又は文書管理サービスプログラム)及び認証サービス20(又は認証サービスプログラム)が同じ装置にインストールされていてもよい。
また、文書管理サービス10や、認証サービス20、及びクライアントにインストールされるクライアントサービス等は、Webサービスとして、お互いSOAP(Simple Object Access Protocol)に基づいてメッセージのやり取りを行う。なお、以下では説明の簡略化のため、クライアントサービスは、単にクライアント又は、クライアントA、クライアントB等という。また、文書管理サービス10を特に図中においてrepositoryともいう。
以下、文書管理サービス10の一例の機能構成を、図6に示す。図6は、文書管理サービスの一例の機能構成図である。なお、以下では説明の簡略化のため、特に言及しない限り、文書の利用許可を証明する証明情報である文書チケットを用いて本発明の実施を説明する。なお、文書管理サービス提供装置1のフォルダの利用許可を証明する証明情報であるフォルダチケットを用いた場合の本発明の構成及び処理等は、特に言及しない限り、以下に示す「文書チケット」の部分を、「フォルダチケット」と、また、「文書」の部分を、「フォルダ」と、読み替えるとよい。
図6に示されるように、文書管理サービス10は、セッション開始リクエスト受信部101と、ユーザ情報取得リクエスト生成部102と、ユーザ情報取得リクエスト送信部103と、ユーザ情報取得レスポンス受信部104と、セッション生成部105と、セッション管理部106と、セッション開始レスポンス生成部107と、セッション開始レスポンス送信部108と、文書チケット取得リクエスト受信部109と、認証チケットコピーリクエスト生成部110と、認証チケットコピーリクエスト送信部111と、認証チケットコピーレスポンス受信部112と、文書チケット生成部113と、文書チケット管理部114と、暗号化部115と、復号化部116と、文書チケット取得レスポンス生成部117と、文書チケット取得レスポンス送信部118と、文書チケットによる文書操作リクエスト受信部119と、利用回数チェック部120と、有効期限チェック部121と、再認証リクエスト生成部122と、再認証リクエスト送信部123と、再認証レスポンス受信部124と、文書操作部125と、文書チケットによる文書操作レスポンス生成部126と、文書チケットによる文書操作レスポンス送信部127と、を含む。
セッション開始リクエスト受信部101は、クライアント(例えば、クライアントA等)から、クライアントのユーザの認証チケットを識別する識別子である認証チケットA ID(後述するデフォルト認証チケットID)等を含むセッション開始リクエストを受信する。
ユーザ情報取得リクエスト生成部102は、セッション開始リクエストに応じて、例えば対応する認証チケットA IDを含むユーザ情報取得リクエストを生成する。なお、ここで、ユーザ情報とは、例えば後述する図25に示されるように、ユーザの情報(例えば、ユーザ名又はユーザID)と共に、ユーザが所属するグループの情報(例えば、グループ名、グループID)等も含むものとする。
ユーザ情報取得リクエスト送信部103は、ユーザ情報取得リクエスト生成部102が生成したユーザ情報取得リクエストを対応する認証サービス20に送信する。
ユーザ情報取得レスポンス受信部104は、ユーザ情報取得リクエストに対応する、ユーザ情報等を含むユーザ情報取得レスポンスを、認証サービス20より受信する。
セッション生成部105は、ユーザ情報取得レスポンス受信部104が受信したユーザ情報取得レスポンスに含まれるユーザ情報に応じて、要求元のクライアントと、当該文書管理サービス10と、のセッションを生成する。例えば、セッション生成部105は、ユーザ情報に応じて、後述する図9に示すような認証チケットA IDを含むセッションを生成する。
セッション管理部106は、セッション生成部105が生成したセッションをRAM16上及び/又はHDD19上等に保存し、管理する。
セッション開始レスポンス生成部107は、セッション開始リクエストに対応するセッション開始レスポンスを生成する。例えば、セッション開始レスポンス生成部107は、セッション生成部105が生成したセッションを識別するセッションIDを含むセッション開始レスポンスを生成する。
セッション開始レスポンス送信部108は、セッション開始レスポンス生成部107が生成したセッション開始レスポンスを、要求元のクライアントに送信する。
文書チケット取得リクエスト受信部109は、クライアント(例えば、クライアントA等)から、セッションIDや、少なくとも1つ以上の文書ID(フォルダチケット取得リクエストの場合はフォルダID)、有効期限を指定する情報、利用回数を指定する情報、文書チケットの権限(例えば、Read権限や、Read及びWrite権限等)を指定する情報、等を含む文書チケット取得リクエストを受信する。
認証チケットコピーリクエスト生成部110は、認証チケットID Aを含む認証チケットコピーリクエストを生成する。例えば、認証チケットコピーリクエスト生成部110は、文書チケット取得リクエストに含まれるセッションIDに基づいて、セッション管理部106より対応するセッションに含まれる認証チケットID Aを取得し、該認証チケットID Aを含む認証チケットコピーリクエストを生成する。
認証チケットコピーリクエスト送信部111は、認証チケットコピーリクエスト生成部110が生成した認証チケットコピーリクエストを、対応する認証サービス20に送信する。
認証チケットコピーレスポンス受信部112は、認証チケットコピーリクエストに対応する認証チケットコピーレスポンスを、認証サービス20より受信する。なお、認証チケットコピーレスポンスには、認証チケットID Aで識別される認証チケットA(後述するデフォルト認証チケット)のユーザ情報等をコピーした認証チケットB(後述するPersistent認証チケット又はSelfContained認証チケット)を識別する認証チケットID B又は暗号化された認証チケットBが含まれる。
文書チケット生成部113は、認証チケットコピーレスポンス受信部112が受信した認証チケットコピーレスポンスに含まれる認証結果に応じて、文書チケットを生成する。例えば、文書チケット生成部113は、認証チケットコピーレスポンス受信部112が受信した認証チケットコピーレスポンスに含まれる認証チケットID B又は暗号化された認証チケットBや、文書チケット取得リクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいた、有効期限及び/又は利用回数と、文書チケット取得リクエストに含まれる少なくとも1つ以上の文書IDと、文書チケット取得リクエストに含まれる文書チケットの権限を指定する情報に基づいた、文書チケットが許可する操作内容に係る情報と、を含む、後述する図12に示されるような文書チケットを生成する。
文書チケット管理部114は、文書チケット生成部113が生成した文書チケットを、RAM16上のチケットプール及び/又はHDD19上のディスクファイル等に保存し、管理する。なお、文書チケット管理部114は、後述する一時シングル読み取り文書チケット、一時シングル書き込み文書チケット、一時マルチプル読み取り文書チケット、一時マルチプル書き込み文書チケット、永続シングル読み取り文書チケット、永続シングル書き込み文書チケット等をRAM16上のチケットプール及び/又はHDD19上のディスクファイル等に保存し、管理する。
暗号化部115は、要求に応じて文書チケット等を暗号化する。例えば、暗号化部115は、後述する永続マルチプル読み取り文書チケットや、永続マルチプル書き込み文書チケット等を、暗号化する。
復号化部116は、要求に応じて文書チケット等を復号化する。例えば、復号化部116は、後述する暗号化された永続マルチプル読み取り文書チケットや、永続マルチプル書き込み文書チケット等を、復号化する。
文書チケット取得レスポンス生成部117は、文書チケット取得リクエストに対応する文書チケット取得レスポンスを生成する。例えば、文書チケット取得レスポンス生成部117は、文書チケット生成部113が生成した文書チケットを識別する文書チケットID又は文書チケット生成部113が生成し、暗号化部115が暗号化した文書チケットを含む文書チケット取得レスポンスを生成する。
文書チケット取得レスポンス送信部118は、文書チケット取得レスポンス生成部117が生成した文書チケット取得レスポンスを、要求元のクライアントに送信する。
文書チケットによる文書操作リクエスト受信部119は、クライアント(例えば、クライアントB等)から、文書チケットID又は暗号化された文書チケットを含む文書チケットによる文書操作リクエストを受信する。
なお、本発明の実施例では、例えば後述する図15に示すように、例えばクライアントBが、クライアントA等より委譲された文書チケットID又は暗号化された文書チケットを用いて、該文書チケットID又は暗号化された文書チケットを含む文書操作リクエストを、文書管理サービス10に送信する例を示しているが、クライアントBが、まず文書チケットID又は暗号化された文書チケットを用いて、文書管理サービス10とセッションを張って、該文書チケットを用いて張ったセッションを識別するセッションID等を用いて、文書管理サービス10等に、文書又はフォルダの操作リクエストを送信するようにしてもよい。但し、以下では説明の簡略化のため、例えばクライアントBが、クライアントA等より委譲された文書チケットID又は暗号化された文書チケットを用いて、該文書チケットIDを含む文書操作リクエストを、文書管理サービス10に送信するものとして説明を行う。
利用回数チェック部120は、文書チケットによる文書操作リクエスト等に応じて、対応する文書チケットを参照し、利用回数が有効な利用回数内か否かを判定する。
有効期限チェック部121は、文書チケットによる文書操作リクエスト等に応じて、対応する文書チケットを参照し、現在の時刻が有効な有効期限内か否かを判定する。
再認証リクエスト生成部122は、文書チケットによる文書操作リクエスト等に応じて、例えば対応する文書チケットに含まれる認証チケットB ID又は暗号化された認証チケットBを含む再認証リクエストを生成する。
再認証リクエスト送信部123は、再認証リクエスト生成部122が生成した再認証リクエストを対応する認証サービス20に送信する。
再認証レスポンス受信部124は、再認証リクエストに対応する、再取得されたユーザ情報等を含む再認証レスポンスを、認証サービス20より受信する。
文書操作部125は、再認証レスポンスに含まれる再取得されたユーザ情報等に基づいて、該ユーザ情報に係るユーザの権限等でデータベースにアクセスし、文書チケットによる文書操作リクエストで指定された文書に対して、指定された操作(例えば、文書の読み取り、文書の書き込み、文書の削除等)を行う。なお、フォルダチケットの場合の操作とは、例えば、フォルダに格納されている文書の読み取りや、フォルダに格納されている文書への書き込み、フォルダに格納されている文書の削除、フォルダへの文書の書き込み(保存)、フォルダの削除等である。
文書チケットによる文書操作レスポンス生成部126は、文書操作の操作結果等を含む文書チケットによる文書操作レスポンスを生成する。
文書チケットによる文書操作レスポンス送信部127は、文書チケットによる文書操作レスポンス生成部126が生成した文書チケットによる文書操作レスポンスを要求元のクライアントに送信する。
なお、図6においては、文書管理サービス10と、クライアント(クライアントA又はクライアントB)と、認証サービス20と、の間で、セッションIDをリクエストやレスポンスに含め、送受信したが、セッション自身を暗号化し、リクエストやレスポンスに含めて送受信するようにしてもよい。以下においても同様である。
また、もちろんクライアントAが文書チケットID又は暗号化された文書チケットを用いて、文書を操作したり、指定したフォルダに文書を格納したりするようにしてもよい。
以下、認証サービス20の一例の機能構成を、図7に示す。図7は、認証サービスの一例の機能構成図である。
図7に示されるように、認証サービス20は、認証リクエスト受信部201と、認証実行部202と、デフォルト認証チケット生成部203と、デフォルト認証チケット管理部204と、認証レスポンス生成部205と、認証レスポンス送信部206と、ユーザ情報取得リクエスト受信部207と、ターゲット名チェック部208と、有効期限チェック部209と、ユーザ情報取得部210と、ユーザ情報取得レスポンス生成部211と、ユーザ情報取得レスポンス送信部212と、認証チケットコピーリクエスト受信部213と、生成認証チケット種類判定部214と、ユーザ情報コピー部215と、Persistent認証チケット生成部216と、Persistent認証チケット管理部217と、SelfContained認証チケット生成部218と、認証チケットエンコーダ219と、認証チケットコピーレスポンス生成部220と、認証チケットコピーレスポンス送信部221と、再認証リクエスト受信部222と、認証チケットデコーダ223と、再認証レスポンス生成部224と、再認証レスポンス送信部225と、を含む。
認証リクエスト受信部201は、クライアント(例えば、クライアントA等)より、例えばユーザIDやパスワード等の認証情報を含む認証リクエストを受信する。
認証実行部202は、認証リクエストに含まれる認証情報に基づいて、認証を実行する。
デフォルト認証チケット生成部203は、認証実行部202の認証結果に応じて、後述するデフォルト認証チケット(認証チケットA)を生成する。
デフォルト認証チケット管理部204は、デフォルト認証チケット生成部203が生成したデフォルト認証チケットをRAM26上のチケットプール等に保存し、管理する。
認証レスポンス生成部205は、認証リクエストに対応する認証レスポンスを生成する。例えば認証レスポンス生成部205は、認証結果や、デフォルト認証チケットを識別するデフォルト認証チケットID(認証チケットA ID)等を含む認証レスポンスを生成する。
認証レスポンス送信部206は、認証レスポンス生成部205が生成した認証レスポンスを、要求元のクライアントに送信する。
ユーザ情報取得リクエスト受信部207は、文書管理サービス10等より、デフォルト認証チケットID(認証チケットA ID)を含むユーザ情報取得リクエストを受信する。
ターゲット名チェック部208は、要求に応じて、対応する認証チケット(例えば認証チケットA又は認証チケットB)を参照し、例えば該認証チケットに含まれるターゲット名と、ユーザ情報取得リクエスト又は再認証リクエストを送信してきた送信先のサービス名(本実施例では文書管理サービス10)と、が同一か否かを判定する。
有効期限チェック部209は、要求に応じて、対応する認証チケット(例えば認証チケットA又は認証チケットB)を参照し、現在の時刻が有効な有効期限内か否かを判定する。
ユーザ情報取得部210は、例えば認証チケットIDに基づき、対応する認証チケット(例えば認証チケットA又は認証チケットB)に含まれるユーザ情報を取得したり、ユーザ管理データベース等より対応するユーザ情報を取得したりする。
ユーザ情報取得レスポンス生成部211は、ユーザ情報取得部210が取得したユーザ情報を含むユーザ情報取得レスポンスを生成する。
ユーザ情報取得レスポンス送信部212は、ユーザ情報取得レスポンス生成部211が生成したユーザ情報取得レスポンスを、要求元の文書管理サービス10に送信する。
認証チケットコピーリクエスト受信部213は、文書管理サービス10等より、デフォルト認証チケットID(認証チケットA ID)や、有効期限を指定する情報及び/又は利用回数を指定する情報等を含む認証チケットコピーリクエストを受信する。
生成認証チケット種類判定部214は、認証チケットコピーリクエスト受信部213が受信した認証チケットコピーリクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいて、生成(又は再発行)する認証チケットの種類を判定する。
ユーザ情報コピー部215は、認証チケットコピーリクエスト受信部213が受信した認証チケットコピーリクエストに含まれるデフォルト認証チケットIDに基づいて、デフォルト認証チケット管理部204において管理されている、対応するデフォルト認証チケットのユーザ情報をコピーする。
Persistent認証チケット生成部216は、生成認証チケット種類判定部214の判定結果に応じて、ユーザ情報コピー部215がコピーしたユーザ情報及び、認証チケットコピーリクエスト受信部213が受信した認証チケットコピーリクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいた、有効期限及び/又は利用回数を含む、後述するPersistent認証チケット(認証チケットB)を生成する。
Persistent認証チケット管理部217は、Persistent認証チケット生成部216が生成したPersistent認証チケットを、RAM26上のチケットプール及び/又はHDD29上のディスクファイル等に保存し、管理する。
SelfContained認証チケット生成部218は、生成認証チケット種類判定部214の判定結果に応じて、ユーザ情報コピー部215がコピーしたユーザ情報等を含む、後述するSelfContained認証チケット(認証チケットB)を生成する。
認証チケットエンコーダ219は、認証チケット(例えば、SelfContained認証チケット)をエンコード(暗号化)する。
認証チケットコピーレスポンス生成部220は、認証チケットコピーリクエストに対応する認証チケットコピーレスポンスを生成する。例えば、認証チケットコピーレスポン生成部220は、Persistent認証チケットを識別するPersistent認証チケットID(認証チケットB ID)又は暗号化されたSelfContained認証チケット(認証チケットB)を含む認証チケットコピーレスポンスを生成する。
認証チケットコピーレスポンス送信部221は、認証チケットコピーレスポンス生成部220が生成した認証チケットコピーレスポンスを、要求元の文書管理サービス10等に送信する。
再認証リクエスト受信部222は、文書管理サービス10等より、Persistent認証チケットID(認証チケットB ID)又は暗号化されたSelfContained認証チケット(認証チケットB)を含む再認証リクエストを受信する。
認証チケットデコーダ223は、要求に応じて暗号化された認証チケット(例えば、SelfContained認証チケット)をデコード(復号化)する。
再認証レスポンス生成部224は、再認証リクエストに対応する再認証レスポンスを生成する。例えば、再認証レスポンス生成部224は、ターゲット名チェック部208及び/又は有効期限チェック部209がチェックしたチェック結果(再認証結果)及び/又はユーザ情報取得部210が取得したユーザ情報を含む再認証レスポンスを生成する。
再認証レスポンス送信部225は、再認証レスポンス生成部224が生成した再認証レスポンスを、要求元の文書管理サービス10等に送信する。
図6及び図7に示されるように、文書管理に係る機能と、認証に係る機能とを、分けることにより、例えば文書管理サービス10の内部制御(又は内部機能)を簡略化することができる。
以下、認証サービス20を利用した、クライアントAと、文書管理サービス10と、のセッション生成処理の一例を、図8に示す。図8は、認証サービスを利用した、クライアントAと、文書管理サービスと、のセッション生成処理の一例のシーケンス図である。なお、図8では、クライアントAは、認証サービス20より、既に認証チケットA IDを取得しているものとして説明を行う。
クライアントAは、認証チケットA IDや、セッションの有効期限を指定する情報等を含むセッション開始リクエストを生成し、文書管理サービス10に送信する(シーケンスSQ20)。
文書管理サービス10は、セッション開始リクエストを受信すると、該セッション開始リクエストに含まれる認証チケットA IDを用いて、該認証チケットA IDを含むユーザ情報取得リクエストを生成し(シーケンスSQ21)、認証サービス20に送信する(シーケンスSQ22)。
認証サービス20は、ユーザ情報取得リクエストを受信すると、該ユーザ情報取得リクエストに含まれる認証チケットA IDに対応する認証チケットAを参照し、例えば、該認証チケットAに含まれるターゲット名と、ユーザ情報取得リクエストを送信してきた送信先のサービス名(本実施例では文書管理サービス10)と、が同一か否かを判定する(シーケンスSQ23)。
認証サービス20は、ターゲット名と、サービス名と、が同一であると判定すると、ユーザ情報取得リクエストに含まれる認証チケットA IDに対応する認証チケットAを参照し、現在の時刻が、例えば、該認証チケットAに含まれる有効期限内か否かを判定する(シーケンスSQ24)。
認証サービス20は、現在の時刻が該認証チケットAに含まれる有効期限内であると判定すると、例えば、ユーザ情報取得リクエストに含まれる認証チケットA IDに対応する認証チケットAよりユーザ情報を取得する(シーケンスSQ25)。なお、シーケンスSQ23で行ったターゲット名のチェックと、シーケンスSQ24で行った有効期限のチェックと、の処理順序はどちらが先であってもよい。以下においても同様である。
認証サービス20は、ユーザ情報を取得すると、該ユーザ情報を含むユーザ情報取得レスポンスを生成し(シーケンスSQ26)、要求元の文書管理サービス10に送信する(シーケンスSQ27)。
文書管理サービス10は、ユーザ情報取得レスポンスを受信すると、該ユーザ情報取得レスポンスに含まれるユーザ情報をチェックし、セッションを開始してもよいユーザ(又はクライアント)か否かを判定する(シーケンスSQ28)。
文書管理サービス10は、セッションを開始してもよいユーザ(又はクライアント)であると判定すると、例えば認証チケットA IDを含む、要求元のクライアントと、当該文書管理サービス10と、のセッションを生成し(シーケンスSQ29)、生成したセッションをRAM16上及び/又はHDD19上等に保存し、管理する。なお、セッションの一例を、後述する図9に示す。
また、文書管理サービス10は、例えば、生成したセッションを識別するセッションIDを含むセッション開始レスポンスを生成し(シーケンスSQ30)、要求元のクライアント(図8の例ではクライアントA)に送信する(シーケンスSQ31)。
以下、クライアントと、文書管理サービス10と、のセッションの一例を、図9に示す。図9は、クライアントと、文書管理サービスと、のセッションの一例を示す図である。
図9に示されるように、例えばセッションには、セッションIDと、認証チケットA IDと、該セッションの有効期限と、が含まれている。なお、図9の例では、セッションの有効期限として、セッションを作成してからの有効期限が秒数を単位に格納されている。
また、図9では、セッションの一例として、セッションに認証チケットA IDが含まれている構成を示したが、本実施例において、必ずしもセッションに認証チケットA IDが含まれる必要はなく、文書管理サービス10において、セッションと、認証チケットA IDと、を対応付けて管理していればよい。
以下、認証サービス20を利用した文書チケット生成処理の一例のシーケンスを、図10に示す。図10は、認証サービスを利用した文書チケット生成処理の一例のシーケンス図である。
クライアントAは、後述する図11に示されるような、セッションIDや、少なくとも1つ以上の文書ID(フォルダチケット取得リクエストの場合はフォルダID)、有効期限を指定する情報、利用回数を指定する情報、文書チケットの権限を指定する情報、等を含む文書チケット取得リクエストを生成し、文書管理サービス10に送信する(シーケンスSQ40)。
文書管理サービス10は、文書チケット取得リクエストを受信すると、該文書チケット取得リクエストに含まれるセッションIDに基づいて、対応するセッションを検索及び参照し、対応する有効なセッションが存在するか否かを判定する(シーケンスSQ41)。例えば、文書管理サービス10は、セッションIDに対応するセッションが存在し、且つ現在の日時が、該セッションの有効期限内の場合、有効なセッションが存在すると判定する。
文書管理サービス10は、有効なセッションが存在すると判定すると、例えば該セッションに含まれる認証チケットA IDを取得し、該認証チケットID Aと、文書チケット取得リクエストに含まれていた、有効期限を指定する情報と、利用回数を指定する情報と、を含む認証チケットコピーリクエストを生成し(シーケンスSQ42)、認証サービス20に送信する(シーケンスSQ43)。
認証サービス20は、認証チケットコピーリクエストを受信すると、該認証チケットコピーリクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいて、生成する認証チケット(認証チケット B)の種類を判定する(シーケンスSQ44)。なお、認証チケットの種類の判定処理の詳細は、後述する図13を用いて説明する。
認証サービス20は、生成する認証チケットの種類を判定すると、認証チケットコピーリクエストに含まれる認証チケットID Aに基づいて、対応する認証チケットAを検索し、例えば該認証チケットAに含まれるユーザ情報をコピーし、取得する(シーケンスSQ45)。
認証サービス20は、シーケンスSQ44における判定結果に応じて、有効期限及び/又は利用回数や、シーケンスSQ45においてコピーし、取得したユーザ情報等を含む認証チケットBを生成する(シーケンスSQ46)。
認証サービス20は、認証チケットBを識別する認証チケットB ID又は暗号化された認証チケットBを含む認証チケットコピーレスポンスを生成し(シーケンスSQ47)、要求元の文書管理サービス10に送信する(シーケンスSQ48)。なお、図10では簡略化のため、認証チケットコピーレスポンスには、認証チケットB IDが含まれているものとして図示してある。
また、認証チケットコピーリクエストに応じた、認証チケットBの生成及び、認証チケットコピーレスポンスの生成等の詳細は、後述する図25、図28等を用いて説明する。
文書管理サービス10は、認証チケットコピーレスポンスを受信すると、該認証チケットコピーレスポンスに含まれる認証チケットB ID又は暗号化された認証チケットBと、文書チケット取得リクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいた、有効期限及び/又は利用回数と、文書チケット取得リクエストに含まれる少なくとも1つ以上の文書IDと、文書チケット取得リクエストに含まれる文書チケットの権限を指定する情報に基づいた、文書チケットが許可する操作内容に係る情報と、を含む後述する図12に示すような文書チケットを生成する(シーケンスSQ49)。
文書管理サービス10は、文書チケットを生成すると、文書チケットを識別する文書チケットID又は暗号化された文書チケットを含む文書チケット取得レスポンスを生成し(シーケンスSQ50)、要求元のクライアント(図10の例ではクライアントA)に送信する(シーケンスSQ51)。
なお、図10では簡略化のため、文書チケット取得レスポンスには、文書チケットIDが含まれているものとして図示してある。
図10に示したように、例えば文書管理サービス10は、文書チケット取得リクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に応じて、つまり、これから生成する、有効期限及び/又は利用回数が異なる文書チケットの種類に応じて、認証チケットAのユーザ情報のコピーと関連付けられた認証チケットBの生成を認証サービス20に要求することによって、有効期限及び/又は利用回数が、これから作成する文書チケットに対応し、且つ、ユーザ情報は認証チケットAのユーザ情報を引き継いだ認証チケットB(又は認証チケットBに係る情報)を認証サービス20より取得し、該認証チケットB(又は認証チケットBに係る情報)と関連付けた文書チケットを生成することができる。
したがって、例えば後述するように、有効期限も利用回数も無制限の文書チケットを作成した場合であっても、例えば、該文書チケットと関連付けた認証チケットに有効期限や利用回数の制限があり、結局は、該認証チケットの有効期限や利用回数の制限のため、文書チケットの有効期限や利用回数が制限されてしまうという問題等を解決することができる。
以下、文書チケット取得リクエストの一例を、図11に示す。図11は、文書チケット取得リクエストの一例を示す図である。
図11に示されるように、文書チケット取得リクエストには、文書取得メソッドであるgetDocTicketメソッドの引数(パラメータ)として、sessionIdのタグにセッションIDが、また、docIdsのタグ内の各itemのタグに操作対象となる対象文書の文書IDが、また、validDurationHintのタグ内に文書チケットの有効期限の基となる値が秒数を単位に、また、durationのタグ内に文書チケットの有効期限を指定する情報が、また、entryLimitのタグ内に文書チケットの有効期限を指定する情報が、また、usageのタグ内に、文書チケットの権限を指定する情報が、それぞれ格納されている。
文書管理サービス10は、例えば、図11に示されるような文書チケット取得リクエストに含まれるgetDocTicketメソッドのパラメータ等に応じて、文書チケットを生成する。
以下、文書チケットの一例を、図12に示す。図12は、文書チケットの一例を示す図である。
図12に示されるように、文書チケットには、該文書チケットを識別する文書チケットIDと、認証チケットB IDと、少なくとも1つ以上の、操作対象の文書IDと、当該文書チケットの有効利用回数と、当該文書チケットの有効期限と、当該文書チケットが許可する操作内容に係る情報(読み取りか、又は書き込みか)と、が含まれている。
なお、図12の例では、文書チケットの有効期限として、文書チケットを作成してからの有効期限が秒数を単位に格納されている。但し、後述するように、文書チケットの種類によっては(例えば、永続シングルチケット、永続マルチプルチケット等)、文書チケットに、有効期限及び/又は利用回数は含まれない。また、文書チケットの種類によっては(又は、認証チケットBの種類によっては)、認証チケットB IDの替わりに、暗号化された認証チケットBが文書チケットに含まれる。
以下、認証サービス20における認証チケットBの生成処理の一例を、図13に示す。図13は、認証サービスにおける認証チケットBの生成処理の一例のフローチャートである。
ステップS30において、認証サービス20は、認証チケットID Aと、有効期限を指定する情報(図11のdurationタグに格納される値(DURATIONプロパティ))と、利用回数を指定する情報(図11のentryLimitタグに格納される値(ENTRY_LIMITプロパティ))と、を含む認証チケットコピーリクエストを文書管理サービス10より受信する。
ステップS30に続いてステップS31に進み、認証サービス20は、認証チケットコピーリクエストに含まれる認証チケットID Aに基づいて、該認証チケットID Aに対応する有効な認証チケットAが存在するか否かを判定する。
認証サービス20は、認証チケットID Aに対応する有効な認証チケットAが存在すると判定すると(ステップS31においてYES)、ステップS33に進み、認証チケットID Aに対応する有効な認証チケットAが存在しないと判定すると(ステップS31においてNO)、ステップS32に進む。
認証サービス20は、認証チケットID Aに基づいて、認証チケットAを検索し、対応する認証チケットAが存在し、且つ、現在の日時が、該認証チケットAの有効期限内の場合、認証チケットID Aに対応する有効な認証チケットAが存在すると判定する。
ステップS32では、認証サービス20が、有効な認証チケットAが存在しない旨のエラーメッセージを含む認証チケットコピーレスポンスを作成し、要求元の文書管理サービス10に送信する等のエラー処理を実行し、処理を終了する。
一方、ステップS33では、認証サービス20が、認証チケットコピーリクエストに含まれるENTRY_LIMITプロパティがMULTIPLEか否かを判定する。
認証サービス20は、ENTRY_LIMITプロパティがMULTIPLEであると判定すると(ステップS33においてYES)、ステップS34に進み、ENTRY_LIMITプロパティがMULTIPLEでないと判定すると(ステップS33においてNO)、ステップS35に進む。なお、後述する図19に示すように、getDocTicketメソッドのENTRY_LIMITプロパティがMULTIPLEとは、文書チケットの利用回数として、無制限有効な文書チケットを指定することを意味し、ENTRY_LIMITプロパティがMULTIPLEでない(つまり、SINGLE)とは、文書チケットの利用回数として、一回限り有効な文書チケットを指定することを意味する。
ステップS34では、認証サービス20が、認証チケットコピーリクエストに含まれるDURATIONプロパティがPERMANENTか否かを判定する。
認証サービス20は、DURATIONプロパティがPERMANENTであると判定すると(ステップS34においてYES)、ステップS36に進み、DURATIONプロパティがPERMANENTでないと判定すると(ステップS34においてNO)、ステップS35に進む。なお、後述する図18に示すように、getDocTicketメソッドのDURATIONプロパティがPERMANENTとは、文書チケットの有効期限として、永続的に有効な文書チケットを指定することを意味し、DURATIONプロパティがPERMANENTでない(つまり、TEMPORARY)とは、文書チケットの有効期限として、一時的(指定期間)有効な文書チケットを指定することを意味する。
ステップS35では、認証サービス20が、認証チケットA(デフォルト認証チケット)のユーザ情報を含み、不揮発性で、キャンセル可能、及び有効期限を有するPersistent認証チケットを生成する。
なお、不揮発性とは、装置のメモリ(例えば、認証サービス提供装置2のRAM26や、文書管理サービス提供装置1のRMA16)上と共に、装置のハードディスク(例えば、認証サービス提供装置2のHDD29や、文書管理サービス提供装置1のHDD19)上に存在し、サービス(例えば、認証サービス20や、文書管理サービス10)の再開後もハードディスクからメモリにロードして、再利用可能なものをいう。一方、揮発性とは、不揮発性と比べて装置のメモリ(例えば、認証サービス提供装置2のRAM26や、文書管理サービス提供装置1のRMA16)上のみに存在し、サービス(例えば、認証サービス20や、文書管理サービス10)の再開後は再利用不可能なものをいう。
また、キャンセル可能とは、サービス側(例えば、認証サービス20や、文書管理サービス10側)において、キャンセルすることができることをいう。一方、キャンセル不可とは、サービス側(例えば、認証サービス20や、文書管理サービス10側)において、キャンセルすることができないことをいう。
一方、ステップS36では、認証サービス20が、認証チケットA(デフォルト認証チケット)のユーザ情報を含み、要求元依存で、キャンセル不可、及び有効期限を有しないSelfContained認証チケットを生成する。
なお、要求元依存とは、チケットを暗号化し、該暗号化したもの(データ)をチケットIDとして要求元に返すため、要求元がチケットIDを失わない限り再利用可能なことをいう。
ステップS37では、認証サービス20が、Persistent認証チケットを識別するPersistent認証チケットID又はSelfContained認証チケットを暗号化したSelfContained認証チケットIDを含む認証チケットコピーレスポンスを生成する。
ステップS37に続いてステップS38に進み、認証サービス20は、ステップS37において作成した認証チケットコピーレスポンスを、要求元の文書管理サービス10に送信し、処理を終了する。
以下、文書管理サービス10における、認証サービス20を利用した文書チケット生成処理の一例を、図14に示す。図14は、文書管理サービスにおける、認証サービスを利用した文書チケット生成処理の一例のフローチャートである。
ステップS40において、文書管理サービス10は、セッションIDや、少なくとも1つ以上の文書ID(フォルダチケット取得リクエストの場合はフォルダID)、有効期限を指定する情報、利用回数を指定する情報、文書チケットの権限を指定する情報、等を含む文書チケット取得リクエストをクライアント(例えば、クライアントA)より受信する。
ステップS40に続いてステップS41に進み、文書管理サービス10は、例えば、文書チケット取得リクエストに含まれるセッションIDに基づいて、該セッションIDに対応するセッションを検索及び参照し、セッションIDに対応する有効なセッションが存在するか否かを判定する。例えば、文書管理サービス10は、セッションIDに対応するセッションが存在し、且つ現在の日時が、該セッションの有効期限内の場合、有効なセッションが存在すると判定する。
文書管理サービス10は、有効なセッションが存在すると判定すると(ステップS41においてYES)、ステップS43に進み、有効なセッションが存在しないと判定すると(ステップS41においてNO)、ステップS42に進む。
ステップS42では、文書管理サービス10が、有効なセッションが存在しない旨のエラーメッセージを含む文書チケット取得レスポンスを作成し、要求元のクライアントに送信する等のエラー処理を実行し、処理を終了する。
一方ステップS43では、文書管理サービス10が、例えばセッションに含まれる認証チケットA IDを取得し、該認証チケットID Aと、文書チケット取得リクエストに含まれていた、有効期限を指定する情報と、利用回数を指定する情報と、を含む認証チケットコピーリクエストを生成する。
ステップS43に続いてステップS44に進み、文書管理サービス10は、ステップS43において生成した認証チケットコピーリクエストを認証サービス20に送信する。
ステップS44に続いてステップS45に進み、文書管理サービス10は、ステップS44において送信した認証チケットコピーリクエストに対応する認証チケットコピーレスポンスを、認証サービス20より受信する。
ステップS45に続いてステップS46に進み、文書管理サービス10は、ステップS45において受信した認証チケットコピーレスポンスに含まれる認証チケットB ID又は暗号化された認証チケットBと、ステップS40において受信した文書チケット取得リクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいた、有効期限及び/又は利用回数と、文書チケット取得リクエストに含まれる少なくとも1つ以上の文書IDと、文書チケット取得リクエストに含まれる文書チケットの権限を指定する情報に基づいた、文書チケットが許可する操作内容に係る情報と、を含む図12に示したような文書チケットを生成する。
ステップS46に続いてステップS47に進み、文書管理サービス10は、ステップS46において生成した文書チケットを識別する文書チケットID又は該文書チケットを暗号化したもの(データ)を含む文書チケット取得レスポンスを生成する。
ステップS47に続いてステップS48に進み、文書管理サービス10は、ステップS47において生成した文書チケット取得レスポンスを、要求元のクライアントに送信し、処理を終了する。
以下、認証サービス20を利用した文書操作処理の一例のシーケンスを、図15に示す。図15は、認証サービスを利用した文書操作処理の一例のシーケンス図である。
クライアントAは、文書チケットID又は暗号化された文書チケットを含む文書チケット委譲リクエストを生成し、例えばクライアントBに送信する(シーケンスSQ60)。なお、図15では簡略化のため、文書チケット委譲リクエストには、文書チケットIDが含まれているものとして図示してある。
クライアントBは、例えばクライアントAより、文書チケット委譲リクエストを受信すると、該文書チケット委譲リクエストを受信した旨の情報を含む文書チケット委譲レスポンスを、クライアントAに送信する(シーケンスSQ61)。
また、クライアントBは、文書チケット委譲リクエストに含まれる文書チケットID又は暗号化された文書チケットや、文書の操作内容に係る情報等を含む、文書チケットによる文書操作リクエストを生成し、文書管理サービス10に送信する(シーケンスSQ62)。なお、図15では簡略化のため、文書チケットによる文書操作リクエストには、文書チケットIDが含まれているものとして図示してある。なお、以下においては説明の簡略化のため、特に言及しない限り、文書チケットによる文書操作リクエストには、文書チケットIDが含まれているものとして説明を行う。
文書管理サービス10は、文書チケットによる文書操作リクエストを受信すると、該文書チケットによる文書操作リクエストに含まれる文書チケットIDに基づいて、例えば、対応する文書チケットを参照し、有効な利用回数内か、また、有効な期限内かをチェックし(シーケンスSQ63及びシーケンスSQ64)、有効な利用回数内及び有効な期限内であると判定すると、例えば、該文書チケットに含まれる認証チケットB ID又は暗号化された認証チケットBを含む、再認証リクエストを生成し(シーケンスSQ65)、対応する認証サービス20に送信する(シーケンスSQ66)。
なお、シーケンスSQ63で行った利用回数のチェックと、シーケンスSQ64で行った有効期限のチェックと、の処理順序はどちらが先であってもよい。以下においても同様である。
また、図15では簡略化のため、再認証リクエストには、認証チケットB IDが含まれているものとして図示してある。なお、以下においては説明の簡略化のため、特に言及しない限り、文書チケットによる再認証リクエストには、認証チケットB IDが含まれているものとして説明を行う。
認証サービス20は、再認証リクエストを受信すると、該再認証リクエストに含まれる認証チケットB IDに対応する認証チケットBを参照し、例えば、該認証チケットBに含まれるターゲット名と、再認証リクエストを送信してきた送信先のサービス名(本実施例では文書管理サービス10)と、が同一か否かを判定する(シーケンスSQ67)。
認証サービス20は、ターゲット名と、サービス名と、が同一であると判定すると、再認証リクエストに含まれる認証チケットB IDに対応する認証チケットBを参照し、現在の時刻が、例えば、該認証チケットBに含まれる有効期限内か否かを判定する(シーケンスSQ68)。
認証サービス20は、現在の時刻が該認証チケットBに含まれる有効期限内であると判定すると、例えば、再認証リクエストに含まれる認証チケットB IDに対応する認証チケットBよりユーザ情報を取得する(シーケンスSQ69)。なお、シーケンスSQ67で行ったターゲット名のチェックと、シーケンスSQ68で行った有効期限のチェックと、の処理順序はどちらが先であってもよい。以下においても同様である。
認証サービス20は、ユーザ情報を取得すると、該ユーザ情報を含む再認証レスポンスを生成し(シーケンスSQ70)、要求元の文書管理サービス10に送信する(シーケンスSQ71)。なお、上述した「再認証」とは、「再ユーザ情報取得」と読み替えてもよい。以下においても同様である。
文書管理サービス10は、再認証レスポンスを受信すると、該再認証レスポンスに含まれるユーザ情報に基づいて、該ユーザ(又はクライアントA)の権限で、データベースと接続する(シーケンスSQ72)。なお、認証サービス20が、再認証レスポンスに、ユーザ情報と共に、該ユーザのパスワード等の認証情報を含め、文書管理サービス10に送信し、文書管理サービス10は、ユーザ情報と共に、該認証情報を用いて、データベースに接続するようにしてもよい。
文書管理サービス10は、データベースと接続されると、シーケンスSQ62において受信した文書チケットによる文書操作リクエストに含まれる文書チケットIDに基づいて、例えば、対応する文書チケットを参照し、該文書チケットに含まれる文書チケットの権限に係る情報と、文書チケットによる文書操作リクエストに含まれる文書の操作内容に係る情報と、を比較し、有効な文書の操作内容か否かを判定する(シーケンスSQ73)。
文書管理サービス10は、有効な文書の操作内容であると判定すると、前記ユーザ(又はクライアントA)の権限で、例えばクライアントBによって指定された文書に対して、指定された操作を実行する(シーケンスSQ74)。なお、シーケンスSQ73の処理は、シーケンスSQ63からシーケンスSQ65までに実行するようにしてもよい。
文書管理サービス10は、文書操作が終了すると、例えば対応する文書チケットに含まれる利用回数を1つデクリメントし、文書操作の操作結果などを含む文書チケットによる文書操作レスポンスを生成し(シーケンスSQ75)、要求元のクライアントBに送信する(シーケンスSQ76)。
図15に示したように、文書管理サービス10が、認証サービス20を利用して再認証(又は再ユーザ情報取得)を行い、文書チケットに対応付けた認証チケット(認証チケットB)のユーザの権限でデータベースに接続し、該ユーザの権限で文書を操作することにより、例えば、文書チケットの発行後に、ユーザの所属するグループが更新(又は変更)になった場合や、例えばデータベース等において、該文書チケットに対応するユーザ又はグループに対する当該データベースへの接続権限や、該文書チケットに対応するユーザ又はグループに対する文書の操作権限を更新(又は変更)した場合も、該更新(又は変更)を処理(例えば、文書操作処理)に反映させることができる。
つまり、図15に示したような処理を行うことによって、文書管理サービス10における文書チケットの発行後、該文書チケットを発行されたユーザが、文書参照権限のあるグループから外された場合、当該自身が発行した文書チケットを用いた文書操作要求であっても、文書管理サービス10は、該ユーザに対して、文書の参照を許可しないように処理を実行することができる。
また、図15に示したような処理を行うことによって、セキュリティホールになりえるスーパーユーザ権限によるデータベースへの接続を廃止できる。
また、図15に示したような処理を行うことによって、文書管理サービス10におけるアクセス権制御等を簡略化することができる。
以下、文書管理サービス10における、認証サービス20を利用した文書操作処理の一例を、図16に示す。図16は、文書管理サービスにおける、認証サービスを利用した文書操作処理の一例のフローチャートである。
ステップS50において、文書管理サービス10は、文書チケットIDや、文書の操作内容に係る情報等を含む、文書チケットによる文書操作リクエストをクライアント(例えば、クライアントB等)より受信する。
ステップS50に続いてステップS51に進み、文書管理サービス10は、文書チケットによる文書操作リクエストに含まれる文書チケットIDに基づいて、例えば、対応する文書チケットを参照し、有効な利用回数内か否かを判定する。
文書管理サービス10は、有効な利用回数内であると判定すると(ステップS51においてYES)、ステップS52に進み、有効な利用回数内でないと判定すると(ステップS51においてNO)、ステップS61に進む。
ステップS52では、文書管理サービス10が、文書チケットによる文書操作リクエストに含まれる文書チケットIDに基づいて、例えば、対応する文書チケットを参照し、現在の日時が、該文書チケットの有効期限内か否かを判定する。
文書管理サービス10は、現在の日時が、文書チケットの有効期限内であると判定すると(ステップS52においてYES)、ステップS53に進み、現在の日時が、文書チケットの有効期限内でないと判定すると(ステップS52においてNO)、ステップS61に進む。
ステップS53では、文書管理サービス10が、文書チケットによる文書操作リクエストに含まれる文書チケットIDに基づいて、例えば、対応する文書チケットに含まれる認証チケットB IDを含む再認証リクエストを生成する。
ステップS53に続いてステップS54に進み、文書管理サービス10は、ステップS53において生成した再認証リクエストを、対応する認証サービス20に送信する。
ステップS54に続いてステップS55に進み、文書管理サービス10は、ステップS54において送信した認証リクエストに対応する認証レスポンスを、認証サービス20より受信する。
ステップS55に続いてステップS56に進み、文書管理サービス10は、再認証レスポンスに含まれるユーザ情報に基づいて、該ユーザ(又は該ユーザが操作するクライアントA)の権限で、データベースと接続する。
ステップS56に続いてステップS57に進み、文書管理サービス10は、データベースとの接続が成功したか否かを判定する。文書管理サービス10は、データベースとの接続が成功したと判定すると(ステップS57においてYES)、ステップS58に進み、データベースとの接続が成功しなかったと判定すると(ステップS57においてNO)、ステップS61に進む。
例えば、文書管理サービス10は、データベースからの接続応答に応じて、データベースとの接続が成功したか否かを判定する。
ステップS58では文書管理サービス10が、文書チケットによる文書操作リクエストに含まれる文書チケットIDに基づいて、例えば、対応する文書チケットを参照し、該文書チケットに含まれる文書チケットの権限に係る情報と、文書チケットによる文書操作リクエストに含まれる文書の操作内容に係る情報と、を比較し、有効な文書の操作内容か否かを判定する。
文書管理サービス10は、有効な文書の操作内容であると判定すると(ステップS58においてYES)、ステップS59に進み、有効な文書の操作内容でないと判定すると(ステップS58においてNO)、ステップS61に進む。
ステップS59では、文書管理サービス10が、前記ユーザ(又は該ユーザが操作するクライアントA)の権限で、クライアント(例えば、クライアントB)によって指定された文書に対して、指定された操作を実行する。
ステップS59に続いてステップS60に進み、文書管理サービス10は、ステップS59における文書操作が成功したか否かを判定する。文書管理サービス10は、ステップS59における文書操作が成功したと判定すると(ステップS60においてYES)、ステップS62に進み、ステップS59における文書操作が失敗したと判定すると(ステップS60においてNO)、ステップS61に進む。
ステップS61では、文書管理サービス10が、エラー原因に応じたエラーメッセージ等を含む文書チケットに文書操作レスポンスを生成し、要求元のクライアントに送信する等のエラー処理を実行し、処理を終了する。
一方ステップS62では、文書管理サービス10が、例えば、対応する文書チケットに含まれる利用回数を1つデクリメントする。なお、文書チケットの種類によって、ステップS62の処理は行われず、ステップS63に進む。
ステップS62に続いてステップS63に進み、文書管理サービス10は、文書操作の操作結果などを含む文書チケットによる文書操作レスポンスを生成する。
ステップS63に続いてステップS64に進み、文書管理サービス10は、ステップS63において生成した文書チケットによる文書操作レスポンスを、要求元のクライアント(例えば、クライアントB)に送信する。
以下、クライアントからの要求に基づいて、文書管理サービス10において作成される文書チケットの種類の一例を、図17を用いて説明する。図17は、文書チケットの種類の一例を説明するための図である。
図17に示されるように、文書チケットには、利用回数及び有効期限を有する一時シングル読み取り文書チケット及び一時シングル書き込み文書チケットと、利用回数を有し、有効期限は無期限な、永続シングル読み取り文書チケット及び永続シングル書き込み文書チケットと、利用回数は無制限で、有効期限を有する、一時マルチプル読み取り文書チケット及び一時マルチプル書き込み文書チケットと、利用回数は無期限で、有効期限も無期限な、永続マルチプル読み取り文書チケット及び永続マルチプル書き込み文書チケットと、を有する。
一時シングル読み取り文書チケットは、不揮発性で、キャンセル可能、有効期限を有し、1回だけ利用可能、且つ読み取り操作のみ可能な文書チケットである。一時シングル読み取り文書チケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
一時シングル書き込み文書チケットは、不揮発性で、キャンセル可能、有効期限を有し、1回だけ利用可能、且つ書き込み操作可能な文書チケットである。一時シングル書き込み文書チケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
一時マルチプル読み取り文書チケットは、不揮発性で、キャンセル可能、有効期限を有し、複数回利用可能、且つ読み取り操作のみ可能な文書チケットである。一時マルチプル読み取り文書チケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
一時マルチプル書き込み文書チケットは、不揮発性で、キャンセル可能、有効期限を有し、複数回利用可能、且つ書き込み操作可能な文書チケットである。一時マルチプル書き込み文書チケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
永続シングル読み取り文書チケットは、不揮発性で、キャンセル可能、有効期限を有さず、1回だけ利用可能、且つ読み取り操作のみ可能な文書チケットである。永続シングル読み取り文書チケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
永続シングル書き込み文書チケットは、不揮発性で、キャンセル可能、有効期限を有さず、1回だけ利用可能、且つ書き込み操作可能な文書チケットである。永続シングル書き込み文書チケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
永続マルチプル読み取り文書チケットは、要求元依存で、キャンセル不可能、有効期限を有さず、複数回利用可能、且つ読み取り操作のみ可能な文書チケットである。永続マルチプル読み取り文書チケットは、要求元依存、つまり、サーバリソースは消費しない。
永続マルチプル書き込み文書チケットは、要求元依存で、キャンセル不可能、有効期限を有さず、複数回利用可能、且つ書き込み操作のみ可能な文書チケットである。永続マルチプル書き込み文書チケットは、要求元依存、つまり、サーバリソースは消費しない。
以下、クライアントが文書チケットの利用期限を指定する一例を、図18に示す。図18は、文書チケットの利用期限を指定する一例を示す図である。
図18に示されるように、例えばクライアントは、図11に示したような文書チケット取得リクエストのgetDocTicketメソッドに、DURATIONプロパティを追加する。クライアントは、DURATIONプロパティをTEMPORARYとすることによって、一時的(又はクライアントAが指定した期間)有効な文書チケットの作成を文書管理サービス10に要求することができる。また、クライアントは、DURATIONプロパティをPERMANENTとすることによって、永続的に有効な文書チケットの作成を文書管理サービス10に要求することができる。
以下、クライアントが文書チケットの利用回数を指定する一例を、図19に示す。図19は、文書チケットの利用回数を指定する一例を示す図である。
図19に示されるように、例えばクライアントは、図11に示したような文書チケット取得リクエストのgetDocTicketメソッドに、ENTRY_LIMITプロパティを追加する。クライアントは、ENTRY_LIMITプロパティをSINGLEとすることによって、一回限り有効な文書チケットの作成を文書管理サービス10に要求することができる。また、クライアントAは、ENTRY_LIMITプロパティをMULTIPLEとすることによって、無制限有効な文書チケットの作成を文書管理サービス10に要求することができる。
文書管理サービス10は、getDocTicketメソッドのDURATIONプロパティの値及び/又はENTRY_LIMITプロパティの値等に応じて、図17に示したような文書チケットを生成する。また、上述したように、文書管理サービス10は、getDocTicketメソッドのDURATIONプロパティの値及び/又はENTRY_LIMITプロパティの値等に応じて、認証チケットコピーリクエストを生成し、認証サービス20に送信する。
以下、クライアントからの要求に基づいて、文書管理サービス10において作成されるフォルダチケットの種類の一例を、図20を用いて説明する。図20は、フォルダチケットの種類の一例を説明するための図である。
図20に示されるように、フォルダチケットには、利用回数及び有効期限を有する一時シングル読み取りフォルダチケット及び一時シングル書き込みフォルダチケットと、利用回数を有し、有効期限は無期限な、永続シングル読み取りフォルダチケット及び永続シングル書き込みフォルダチケットと、利用回数は無制限で、有効期限を有する、一時マルチプル読み取りフォルダチケット及び一時マルチプル書き込みフォルダチケットと、利用回数は無期限で、有効期限も無期限な、永続マルチプル読み取りフォルダチケット及び永続マルチプル書き込みフォルダチケットと、を有する。
一時シングル読み取りフォルダチケットは、不揮発性で、キャンセル可能、有効期限を有し、1回だけ利用可能、且つ読み取り操作のみ可能なフォルダチケットである。一時シングル読み取りフォルダチケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
一時シングル書き込みフォルダチケットは、不揮発性で、キャンセル可能、有効期限を有し、1回だけ利用可能、且つ書き込み操作可能なフォルダチケットである。一時シングル書き込みフォルダチケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
一時マルチプル読み取りフォルダチケットは、不揮発性で、キャンセル可能、有効期限を有し、複数回利用可能、且つ読み取り操作のみ可能なフォルダチケットである。一時マルチプル読み取りフォルダチケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
一時マルチプル書き込みフォルダチケットは、不揮発性で、キャンセル可能、有効期限を有し、複数回利用可能、且つ書き込み操作可能なフォルダチケットである。一時マルチプル書き込みフォルダチケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
永続シングル読み取りフォルダチケットは、不揮発性で、キャンセル可能、有効期限を有さず、1回だけ利用可能、且つ読み取り操作のみ可能なフォルダチケットである。永続シングル読み取りフォルダチケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
永続シングル書き込みフォルダチケットは、不揮発性で、キャンセル可能、有効期限を有さず、1回だけ利用可能、且つ書き込み操作可能なフォルダチケットである。永続シングル書き込みフォルダチケットは、不揮発性、つまり、文書管理サービス提供装置1のRMA16上と共に、文書管理サービス提供装置1のHDD19上に存在するため、サーバリソースを消費する。
永続マルチプル読み取りフォルダチケットは、要求元依存で、キャンセル不可能、有効期限を有さず、複数回利用可能、且つ読み取り操作のみ可能なフォルダチケットである。永続マルチプル読み取りフォルダチケットは、要求元依存、つまり、サーバリソースは消費しない。
永続マルチプル書き込みフォルダチケットは、要求元依存で、キャンセル不可能、有効期限を有さず、複数回利用可能、且つ書き込み操作のみ可能なフォルダチケットである。永続マルチプル書き込みフォルダチケットは、要求元依存、つまり、サーバリソースは消費しない。
以下、クライアントがフォルダチケットの利用期限を指定する一例を、図21に示す。図21は、フォルダチケットの利用期限を指定する一例を示す図である。
図21に示されるように、例えばクライアントは、フォルダチケット取得リクエストのgetFolderTicketメソッドに、DURATIONプロパティを追加する。クライアントは、DURATIONプロパティをTEMPORARYとすることによって、一時的(又はクライアントAが指定した期間)有効なフォルダチケットの作成を文書管理サービス10に要求することができる。また、クライアントは、DURATIONプロパティをPERMANENTとすることによって、永続的に有効なフォルダチケットの作成を文書管理サービス10に要求することができる。
以下、クライアントがフォルダチケットの利用回数を指定する一例を、図22に示す。図22は、フォルダチケットの利用回数を指定する一例を示す図である。
図22に示されるように、例えばクライアントは、図11に示したようなフォルダチケット取得リクエストのgetFolderTicketメソッドに、ENTRY_LIMITプロパティを追加する。クライアントは、ENTRY_LIMITプロパティをSINGLEとすることによって、一回限り有効なフォルダチケットの作成を文書管理サービス10に要求することができる。また、クライアントAは、ENTRY_LIMITプロパティをMULTIPLEとすることによって、無制限有効なフォルダチケットの作成を文書管理サービス10に要求することができる。
文書管理サービス10は、getFolderTicketメソッドのDURATIONプロパティの値及び/又はENTRY_LIMITプロパティの値等に応じて、図20に示したようなフォルダチケットを生成する。また、文書管理サービス10は、getFolderTicketメソッドのDURATIONプロパティの値及び/又はENTRY_LIMITプロパティの値等に応じて、認証チケットコピーリクエストを生成し、認証サービス20に送信する。
以下、上述した例では、説明の簡略化のため認証チケットAとして説明を行ったデフォルト認証チケットに係る処理及び構成の一例を、図23及び図24に示す。図23は、デフォルト認証チケットに係る処理の一例のシーケンス図である。
クライアントA又はクライアントBは、ユーザIDやパスワード等の認証情報や、クライアントA又はクライアントBが取得した認証チケットIDを使用して接続(セッションの開始)又は利用等を試みるターゲット名(又はターゲット識別子)、及び認証チケットの有効期限を指定する情報等を含む、認証チケットID取得リクエストを生成し、認証サービス20に送信する(シーケンスSQ80)。
認証サービス20は、認証チケットID取得リクエストを受信すると、該認証チケットID取得リクエストに含まれる認証情報に基づいて、ユーザの認証情報や、ユーザ情報等を保持、管理しているユーザ管理DBを参照し、例えばユーザIDで識別されるユーザの、ユーザ管理DBにおいて格納されているパスワードと、認証チケットID取得リクエストに含まれていたパスワードとを比較する(シーケンスSQ81)。
有効なパスワードであると判定すると、認証サービス20は、ユーザ管理DBより、ユーザIDに対応するユーザのユーザ情報を取得する(シーケンスSQ82)。
認証サービス20は、ユーザ情報を取得すると、例えば、該ユーザ情報と、認証チケットID取得リクエストに含まれていた認証チケット(デフォルト認証チケット)の有効期限を指定する情報等に基づいた有効期限と、認証チケットID取得リクエストに含まれていたターゲット名(又はターゲット識別子)と、デフォルト認証チケットを識別するデフォルト認証チケットIDと、を含む後述する図24に示すようなデフォルト認証チケットを生成し(シーケンスSQ83)、RAM26上のチケットプール等に保存し、管理する。
認証サービス20は、生成したデフォルト認証チケットを識別するデフォルト認証チケットIDを含む認証チケットID取得レスポンスを生成し(シーケンスSQ84)、要求元のクライアントに送信する(シーケンスSQ85)。
クライアントA又はクライアントBは、認証チケットID取得レスポンスを受信すると、該認証チケットID取得レスポンスに含まれるデフォルト認証チケットIDを用いて、該デフォルト認証チケットIDや、セッションの有効期限を指定する情報等を含むセッション開始リクエストを生成し、文書管理サービス10に送信する(シーケンスSQ86)。
文書管理サービス10は、セッション開始リクエストを受信すると、該セッション開始リクエストに含まれるデフォルト認証チケットIDを用いて、該デフォルト認証チケットIDを含むユーザ情報取得リクエストを生成し(シーケンスSQ87)、認証サービス20に送信する(シーケンスSQ88)。
認証サービス20は、ユーザ情報取得リクエストを受信すると、該ユーザ情報取得リクエストに含まれるデフォルト認証チケットIDに対応するデフォルト認証チケットを参照し、例えば、該デフォルト認証チケットに含まれるターゲット名と、ユーザ情報取得リクエストを送信してきた送信先のサービス名(本実施例では文書管理サービス10)と、が同一か否かを判定する(シーケンスSQ89)。
認証サービス20は、ターゲット名と、サービス名と、が同一であると判定すると、ユーザ情報取得リクエストに含まれるデフォルト認証チケットIDに対応するデフォルト認証チケットを参照し、現在の時刻が、例えば、該デフォルト認証チケットに含まれる有効期限内か否かを判定する(シーケンスSQ90)。
認証サービス20は、現在の時刻が該デフォルト認証チケットに含まれる有効期限内であると判定すると、例えば、ユーザ情報取得リクエストに含まれるデフォルト認証チケットIDに対応するデフォルト認証チケットよりユーザ情報を取得する(シーケンスSQ91)。
認証サービス20は、ユーザ情報を取得すると、該ユーザ情報を含むユーザ情報取得レスポンスを生成し(シーケンスSQ92)、要求元の文書管理サービス10に送信する(シーケンスSQ93)。
文書管理サービス10は、ユーザ情報取得レスポンスを受信すると、該ユーザ情報取得レスポンスに含まれるユーザ情報をチェックし、セッションを開始してもよいユーザ(又はクライアント)か否かを判定する(シーケンスSQ94)。
文書管理サービス10は、セッションを開始してもよいユーザ(又はクライアント)であると判定すると、例えばデフォルト認証チケットIDを含む、要求元のクライアントと、当該文書管理サービス10と、のセッションを生成し(シーケンスSQ95)、生成したセッションをRAM16上及び/又はHDD19上等に保存し、管理する。
また、文書管理サービス10は、例えば、生成したセッションを識別するセッションIDを含むセッション開始レスポンスを生成し(シーケンスSQ96)、要求元のクライアントに送信する(シーケンスSQ97)。
以下、デフォルト認証チケットをRAM26上のチケットプール等に保存し、管理する一例の概念を図24に示す。図24は、デフォルト認証チケットをチケットプール等に保存し、管理する一例の概念図である。
図24に示されるように、デフォルト認証チケットは、認証サービス20によって、認証サービス提供装置2のRAM26上のチケットプール等において、保持、管理される。
以下、上述した例では、説明の簡略化のため認証チケットBとして説明を行ったPersistent認証チケットに係る処理及び構成の一例を、図25から図27に示す。図25は、Persistent認証チケットに係る処理のシーケンス図(その1)である。
例えば、クライアントAは、図11に示したような、セッションIDや、少なくとも1つ以上の文書ID、有効期限を指定する情報、利用回数を指定する情報、文書チケットの権限を指定する情報、等を含む文書チケット取得リクエストを生成し、文書管理サービス10に送信する(シーケンスSQ100)。
文書管理サービス10は、文書チケット取得リクエストを受信すると、該文書チケット取得リクエストに含まれるセッションIDに基づいて、対応するセッションを検索及び参照し、対応する有効なセッションが存在するか否かを判定する(シーケンスSQ101)。
文書管理サービス10は、有効なセッションが存在すると判定すると、例えば該セッションに含まれるデフォルト認証チケットIDを取得し、該デフォルト認証チケットIDと、文書チケット取得リクエストに含まれていた、有効期限を指定する情報と、利用回数を指定する情報と、を含む認証チケットコピーリクエストを生成し(シーケンスSQ102)、認証サービス20に送信する(シーケンスSQ103)。
認証サービス20は、認証チケットコピーリクエストを受信すると、該認証チケットコピーリクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいて、生成する認証チケットの種類を判定する(シーケンスSQ104)。なお、図25では、認証サービス20は、シーケンスSQ104の判定の結果、Persistent認証チケットを生成するものとして説明を行う。
認証サービス20は、生成する認証チケットの種類を判定すると、認証チケットコピーリクエストに含まれるデフォルト認証チケットIDに基づいて、対応するデフォルト認証チケットを検索し、例えば該デフォルト認証チケットに含まれるユーザ情報をコピーし、取得する(シーケンスSQ105)。
認証サービス20は、シーケンスSQ104における判定結果に応じて、有効期限及び/又は利用回数や、シーケンスSQ105においてコピーし、取得したユーザ情報等を含むPersistent認証チケットを生成する(シーケンスSQ106)。
認証サービス20は、Persistent認証チケットを生成すると、該生成したPersistent認証チケットを、認証サービス提供装置2のRAM26上のチケットプール等において、保持、管理すると共に、後述する図26に示すように、該Persistent認証チケットをファイル(認証チケットファイル)等に記述し、認証サービス提供装置2のHDD29に格納し、管理する等の、永続化を行う(シーケンスSQ107)。
認証サービス20は、永続化を行うと、Persistent認証チケットを識別するPersistent認証チケットIDを含む認証チケットコピーレスポンスを生成し(シーケンスSQ108)、要求元の文書管理サービス10に送信する(シーケンスSQ109)。
文書管理サービス10は、認証チケットコピーレスポンスを受信すると、該認証チケットコピーレスポンスに含まれるPersistent認証チケットIDと、文書チケット取得リクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいた、有効期限及び/又は利用回数と、文書チケット取得リクエストに含まれる少なくとも1つ以上の文書IDと、文書チケット取得リクエストに含まれる文書チケットの権限を指定する情報に基づいた、文書チケットが許可する操作内容に係る情報と、を含む文書チケット、例えば一時シングル読み取り文書チケット又は一時シングル書き込み文書チケット又は一時マルチプル読み取り文書チケット又は一時マルチプル書き込み文書チケット又は永続シングル読み取り文書チケット又は永続シングル書き込み文書チケット、を生成する(シーケンスSQ110)。
文書管理サービス10は、文書チケットを生成すると、文書チケットを識別する文書チケットIDを含む文書チケット取得レスポンスを生成し(シーケンスSQ111)、要求元のクライアント(図25の例ではクライアントA)に送信する(シーケンスSQ112)。
図25に示したように、例えば文書管理サービス10は、文書チケット取得リクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に応じて、つまり、これから生成する、文書チケットの種類、図25の例では一時シングル読み取り文書チケット又は一時シングル書き込み文書チケット又は一時マルチプル読み取り文書チケット又は一時マルチプル書き込み文書チケット又は永続シングル読み取り文書チケット又は永続シングル書き込み文書チケット、に応じて、デフォルト認証チケットのユーザ情報のコピーと関連付けられた認証チケットの生成を認証サービス20に要求することによって、有効期限及び/又は利用回数が、これから作成する文書チケットに対応し、且つ、ユーザ情報はデフォルト認証チケットのユーザ情報を引き継いだPersistent認証チケットのIDを認証サービス20より取得し、該Persistent認証チケットと関連付けた文書チケットを生成することができる。
以下、認証サービス提供装置2のRAM26上のチケットプールと共に、認証サービス提供装置2のHDD29にファイルとしてPersistent認証チケットを保存し、管理する一例の概念を、図26に示す。図26は、RAM上のチケットプールと共に、HDDにファイルとしてPersistent認証チケットを保存し、管理する一例の概念図である。
図26に示されるように、Persistent認証チケットは、認証サービス20によって、認証サービス提供装置2のRAM26上のチケットプールと共に、認証サービス提供装置2のHDD29にファイルとして、保持、管理される。
以下、Persistent認証チケットに係る処理の他の例を、図27に示す。図27は、Persistent認証チケットに係る処理のシーケンス図(その2)である。
例えば、クライアントAは、文書チケットIDを含む文書チケット委譲リクエストを生成し、例えばクライアントBに送信する(シーケンスSQ120)。
クライアントBは、例えばクライアントAより、文書チケット委譲リクエストを受信すると、該文書チケット委譲リクエストを受信した旨の情報を含む文書チケット委譲レスポンスを、クライアントAに送信する(シーケンスSQ121)。
また、クライアントBは、文書チケット委譲リクエストに含まれる文書チケットIDや、文書の操作内容に係る情報等を含む、文書チケットによる文書操作リクエストを生成し、文書管理サービス10に送信する(シーケンスSQ122)。
文書管理サービス10は、文書チケットによる文書操作リクエストを受信すると、該文書チケットによる文書操作リクエストに含まれる文書チケットIDに基づいて、例えば、対応する文書チケットを参照し、有効な利用回数内か、また、有効な期限内かをチェックし(シーケンスSQ123及びシーケンスSQ124)、有効な利用回数内及び有効な期限内であると判定すると、例えば、該文書チケットに含まれるPersistent認証チケットIDを含む、再認証リクエストを生成し(シーケンスSQ125)、対応する認証サービス20に送信する(シーケンスSQ126)。
認証サービス20は、再認証リクエストを受信すると、該再認証リクエストに含まれるPersistent認証チケットIDに対応するPersistent認証チケットを参照し、例えば、該Persistent認証チケットに含まれるターゲット名と、再認証リクエストを送信してきた送信先のサービス名(本実施例では文書管理サービス10)と、が同一か否かを判定する(シーケンスSQ127)。
認証サービス20は、ターゲット名と、サービス名と、が同一であると判定すると、再認証リクエストに含まれるPersistent認証チケットIDに対応するPersistent認証チケットを参照し、現在の時刻が、例えば、該Persistent認証チケットに含まれる有効期限内か否かを判定する(シーケンスSQ128)。
認証サービス20は、現在の時刻が該Persistent認証チケットに含まれる有効期限内であると判定すると、例えば、再認証リクエストに含まれるPersistent認証チケットIDに対応するPersistent認証チケットよりユーザ情報を取得する(シーケンスSQ129)。
認証サービス20は、ユーザ情報を取得すると、該ユーザ情報を含む再認証レスポンスを生成し(シーケンスSQ130)、要求元の文書管理サービス10に送信する(シーケンスSQ131)。
文書管理サービス10は、再認証レスポンスを受信すると、該再認証レスポンスに含まれるユーザ情報に基づいて、該ユーザ(又はクライアントA)の権限で、データベースと接続する(シーケンスSQ132)。
文書管理サービス10は、データベースと接続されると、シーケンスSQ122において受信した文書チケットによる文書操作リクエストに含まれる文書チケットIDに基づいて、例えば、対応する文書チケットを参照し、該文書チケットに含まれる文書チケットの権限に係る情報と、文書チケットによる文書操作リクエストに含まれる文書の操作内容に係る情報と、を比較し、有効な文書の操作内容か否かを判定する(シーケンスSQ133)。
文書管理サービス10は、有効な文書の操作内容であると判定すると、前記ユーザ(又はクライアントA)の権限で、例えばクライアントBによって指定された文書に対して、指定された操作を実行する(シーケンスSQ134)。
文書管理サービス10は、文書操作が終了すると、対応する文書チケットに含まれる利用回数を1つデクリメントし、文書操作の操作結果などを含む文書チケットによる文書操作レスポンスを生成し(シーケンスSQ135)、要求元のクライアントBに送信する(シーケンスSQ136)。
以下、上述した例では、説明の簡略化のため認証チケットBとして説明を行ったSelfContained認証チケットに係る処理及び構成の一例を、図28から図31に示す。図28は、SelfContained認証チケットに係る処理のシーケンス図(その1)である。
例えば、クライアントAは、図11に示したような、セッションIDや、少なくとも1つ以上の文書ID、有効期限を指定する情報、利用回数を指定する情報、文書チケットの権限を指定する情報、等を含む文書チケット取得リクエストを生成し、文書管理サービス10に送信する(シーケンスSQ140)。
文書管理サービス10は、文書チケット取得リクエストを受信すると、該文書チケット取得リクエストに含まれるセッションIDに基づいて、対応するセッションを検索及び参照し、対応する有効なセッションが存在するか否かを判定する(シーケンスSQ141)。
文書管理サービス10は、有効なセッションが存在すると判定すると、例えば該セッションに含まれるデフォルト認証チケットIDを取得し、該デフォルト認証チケットIDと、文書チケット取得リクエストに含まれていた、有効期限を指定する情報と、利用回数を指定する情報と、を含む認証チケットコピーリクエストを生成し(シーケンスSQ142)、認証サービス20に送信する(シーケンスSQ143)。
認証サービス20は、認証チケットコピーリクエストを受信すると、該認証チケットコピーリクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいて、生成する認証チケットの種類を判定する(シーケンスSQ144)。なお、図28では、認証サービス20は、シーケンスSQ104の判定の結果、SelfContained認証チケットを生成するものとして説明を行う。
認証サービス20は、生成する認証チケットの種類を判定すると、認証チケットコピーリクエストに含まれるデフォルト認証チケットIDに基づいて、対応するデフォルト認証チケットを検索し、例えば該デフォルト認証チケットに含まれるユーザ情報をコピーし、取得する(シーケンスSQ145)。
認証サービス20は、シーケンスSQ144における判定結果に応じて、シーケンスSQ145においてコピーし、取得したユーザ情報等を含むSelfContained認証チケットを生成する(シーケンスSQ146)。
認証サービス20は、SelfContained認証チケットを生成すると、後述する図29に示すように該生成したSelfContained認証チケットを暗号化する(シーケンスSQ147)。
認証サービス20は、暗号化したSelfContained認証チケットを、SelfContained認証チケットIDとして、該SelfContained認証チケットIDを含む認証チケットコピーレスポンスを生成し(シーケンスSQ148)、要求元の文書管理サービス10に送信する(シーケンスSQ149)。
文書管理サービス10は、認証チケットコピーレスポンスを受信すると、該認証チケットコピーレスポンスに含まれるSelfContained認証チケットIDと、文書チケット取得リクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に基づいた、有効期限及び/又は利用回数と、文書チケット取得リクエストに含まれる少なくとも1つ以上の文書IDと、文書チケット取得リクエストに含まれる文書チケットの権限を指定する情報に基づいた、文書チケットが許可する操作内容に係る情報と、を含む文書チケット、例えば永続マルチプル読み取り文書チケット又は永続マルチプル書き込み文書チケット、を生成する(シーケンスSQ150)。なお、永続マルチプル読み取り文書チケット又は永続マルチプル書き込み文書チケットの場合、有効期限及び/又は利用回数を含まないようにしてもよい。
また、文書管理サービス10は、生成した文書チケットを暗号化し(シーケンスSQ151)、該暗号化した文書チケットを文書チケットIDとして、該文書チケットIDを含む文書チケット取得レスポンスを生成し(シーケンスSQ152)、要求元のクライアント(図28の例ではクライアントA)に送信する(シーケンスSQ153)。
図28に示したように、例えば文書管理サービス10は、文書チケット取得リクエストに含まれる有効期限を指定する情報及び/又は利用回数を指定する情報等に応じて、つまり、これから生成する、文書チケットの種類、図28の例では永続マルチプル読み取り文書チケット又は永続マルチプル書き込み文書チケット、に応じて、デフォルト認証チケットのユーザ情報のコピーと関連付けられた認証チケットの生成を認証サービス20に要求することによって、有効期限及び/又は利用回数が、これから作成する文書チケットに対応し、且つ、ユーザ情報はデフォルト認証チケットのユーザ情報を引き継いだSelfContained認証チケットのIDを認証サービス20より取得し、SelfContained認証チケットと関連付けた文書チケットを生成することができる。
以下、認証サービス20において、SelfContained認証チケットを暗号化し、SelfContained認証チケットIDとする概念を、図29に示す。図29は、SelfContained認証チケットを暗号化し、SelfContained認証チケットIDとする概念図である。
図29に示されるように、認証サービス20は、生成したSelfContained認証チケットを、認証チケットエンコーダ219を用いて暗号化し、該暗号化したものをSelfContained認証チケットIDとする。
以下、SelfContained認証チケットに係る処理の他の例を、図30に示す。図30は、SelfContained認証チケットに係る処理のシーケンス図(その2)である。
例えば、クライアントAは、文書チケットIDを含む文書チケット委譲リクエストを生成し、例えばクライアントBに送信する(シーケンスSQ160)。
クライアントBは、例えばクライアントAより、文書チケット委譲リクエストを受信すると、該文書チケット委譲リクエストを受信した旨の情報を含む文書チケット委譲レスポンスを、クライアントAに送信する(シーケンスSQ161)。
また、クライアントBは、文書チケット委譲リクエストに含まれる文書チケットIDや、文書の操作内容に係る情報等を含む、文書チケットによる文書操作リクエストを生成し、文書管理サービス10に送信する(シーケンスSQ162)。
文書管理サービス10は、文書チケットによる文書操作リクエストを受信すると、該文書チケットによる文書操作リクエストに含まれる文書チケットIDが、文書チケットを暗号化した文書チケットIDであった場合は、該文書チケットIDを復号化し(シーケンスSQ163)、該復号化した文書チケットを参照し、有効な利用回数内か、また、有効な期限内かをチェックし(シーケンスSQ164及びシーケンスSQ165)、有効な利用回数内及び有効な期限内であると判定すると、例えば、該文書チケットに含まれるSelfContained認証チケットIDを含む、再認証リクエストを生成し(シーケンスSQ166)、対応する認証サービス20に送信する(シーケンスSQ167)。なお、文書管理サービス10は、文書チケットによる文書操作リクエストに含まれる文書チケットIDが、文書チケットを暗号化した文書チケットIDであるとわかった時点で、該文書チケットは、永続マルチプル読み取り文書チケット又は永続マルチプル書き込み文書チケットであるとして、利用回数及び利用期限のチェックを省略するようにしてもよい。
認証サービス20は、再認証リクエストを受信すると、該再認証リクエストに含まれるSelfContained認証チケットIDを、後述する図31に示すようにデコード(復号化)し(シーケンスSQ168)、該復号化したSelfContained認証チケットを参照し、例えば、該SelfContained認証チケットに含まれるターゲット名と、再認証リクエストを送信してきた送信先のサービス名(本実施例では文書管理サービス10)と、が同一か否かを判定する(シーケンスSQ169)。
認証サービス20は、ターゲット名と、サービス名と、が同一であると判定すると、SelfContained認証チケットIDに対応するユーザ情報を、ユーザ情報を管理するユーザ管理データベース等より取得する(シーケンスSQ170)。
認証サービス20は、ユーザ情報を取得すると、該新たに取得したユーザ情報を含む再認証レスポンスを生成し(シーケンスSQ171)、要求元の文書管理サービス10に送信する(シーケンスSQ172)。
文書管理サービス10は、再認証レスポンスを受信すると、該再認証レスポンスに含まれるユーザ情報に基づいて、該ユーザ(又はクライアントA)の権限で、データベースと接続する(シーケンスSQ173)。
文書管理サービス10は、データベースと接続されると、シーケンスSQ163において復号化した文書チケットを参照し、該文書チケットに含まれる文書チケットの権限に係る情報と、文書チケットによる文書操作リクエストに含まれる文書の操作内容に係る情報と、を比較し、有効な文書の操作内容か否かを判定する(シーケンスSQ174)。
文書管理サービス10は、有効な文書の操作内容であると判定すると、前記ユーザ(又はクライアントA)の権限で、例えばクライアントBによって指定された文書に対して、指定された操作を実行する(シーケンスSQ175)。
文書管理サービス10は、文書操作が終了すると、文書操作の操作結果などを含む文書チケットによる文書操作レスポンスを生成し(シーケンスSQ176)、要求元のクライアントBに送信する(シーケンスSQ177)。
以下、認証サービス20において、SelfContained認証チケットIDを復号化する概念を、図31に示す。図31は、SelfContained認証チケットIDを復号化する概念図である。
図31に示されるように、認証サービス20は、SelfContained認証チケットIDを、認証チケットデコーダ223を用いて復号化し、SelfContained認証チケットに戻す。