以下、図面を参照してこの発明に係わる実施形態を説明する。
図1は、この発明の実施形態に係るアクセス制御システムの構成例を概略的に示す図である。
図1に示すように、アクセス制御システムは、システムアクセスサーバ(アクセス制御サーバ)1、認可サーバ2、アクセス先サーバ3、アクセス元サーバ4、利用者端末5、およびネットワーク6を有する。図1に示す例では、システムアクセスサーバ(アクセス制御サーバ)1、認可サーバ2、アクセス先サーバ3、アクセス元サーバ4、および利用者端末5がネットワーク6を介して接続されることにより、アクセス制御システムが構成されている。
システムアクセスサーバ1は、当該アクセス制御システムにおける情報へのアクセスを制御するアクセス制御サーバである。認可サーバ2は、情報へのアクセスの可否を判定する認可システムのサーバコンピュータである。アクセス先サーバ3およびアクセス元サーバ4は、異なる情報管理システムにおけるサーバコンピュータである。本実施形態においては、アクセス元サーバ4を有する情報管理システム(アクセス元システム)内の利用者端末5から、アクセスしたい情報を管理している情報管理システム(アクセス先システム)のサーバがアクセス先サーバ3であるものとする。
各サーバ1、2、3、4は、プロセッサ、メモリ、通信インターフェースおよび記憶装置などを有する。各サーバ1、2、3,4は、プロセッサがメモリに記憶したプログラムを実行することにより各種の処理機能を実現し、通信インターフェースによりネットワークを介して通信可能である。また、各サーバ1、2、3、4は、各種の処理のログを記憶する記憶装置を有する。
図1に示す構成例において、システムアクセスサーバ1は、プロセッサ11、メモリ12、通信インターフェース(I/F)13、および、記憶装置14などを有する。
プロセッサ11は、CPUなどの演算処理部である。メモリ12は、作業用のデータを一時的に記憶するワークメモリ(例えば、RAMなど)、プログラムを記憶する不揮発性のメモリ(例えば、ROM、EEPROM、フラッシュROMなど)などを有するものとする。プロセッサ11は、メモリ12内のワークメモリを使用して、メモリ12あるいは記憶装置14に記憶したプログラムを実行することにより、種々の処理機能を実現している。
通信インターフェース13は、ネットワーク6を介して各装置と通信するためのインターフェースである。通信インターフェース13は、ネットワーク6を介して通信できるものであれば良く、特定の通信方式のインターフェースに限定されるものではない。また、通信インターフェース13としては、複数種類の通信方式に対応する複数のインターフェースを有していても良い。
記憶装置14は、書き換え可能な不揮発性の記憶装置である。記憶装置14は、各種のデータベースを有する。図1に示す例では、記憶装置14は、認証ID対応情報データベース14a、使用状態情報データベース14b、待ち行列情報データベース14c、認証ID情報データベース14d、および、ログデータベース14eを有する。認証ID対応情報データベース14aは、アクセスする者の情報(アカウント)と情報を開示する者の情報(アクセス先システムにおける認証ID)とを対応づける情報を記憶する。使用状態情報データベース14bは、認証ID(情報を開示する者)ごとに使用状態(アクセス状態)を記憶する。待ち行列情報データベース14cは、認証IDごとにアクセス待ちの状態を順番に管理するための情報を記憶する。認証ID情報データベース14dは、各認証ID(情報を開示する者)に対する認証情報を記憶する。
次に、システムアクセスサーバ1における各データベース14a、14b、14c、14dの構成例について説明する。
図2は、認証ID対応情報データベース14aの構成例を示す図である。
図2に示す例では、認証ID対応情報データベース14aは、アクセス先システムの情報へのアクセスを依頼するユーザのアカウントとアクセス先システムの情報を開示するユーザの認証IDとを対応づけて記憶する。たとえば、アクセス制御システムをケアサービスに適用する場合であれば、アクセス先システムの情報を開示するユーザは、ケアサービスを受ける被支援者であり、アクセス先システムの情報へのアクセスを要求するユーザは、被支援者に対してケアサービスなどを提供する支援者である。この場合、各被支援者が自身の情報の開示を許可する予め支援者を設定しておき、各被支援者(アカウント)と支援者(認証ID)とを対応づけた情報を認証ID対応情報データベース14aに記憶する。
なお、アクセス元サーバが複数ある場合には、認証ID対応情報は、個々のアカウントについてアクセス元サーバごとに設定しても良い。
また、アクセス先サーバが複数ある場合には、認証ID対応情報は、個々の認証IDについてアクセス先サーバごとに設定しても良い。
図3は、使用状態情報データベース14bの構成例を示す図である。
図3に示す例では、使用状態情報データベース14bは、情報を開示するユーザを示す認証IDに対する使用状態(アクセス状態)を示す情報を記憶する。たとえば、認証IDごとに使用状態を示す情報を記憶する。また、使用状態情報データベース14bは、認証IDごとに認められるアクセス数(アクセス上限数)の各アクセス枠に対する使用状態を記憶する。例えば、使用状態情報データベース14bには、各認証IDのアクセス上限数のアクセス枠ごとに使用状態を記憶する。図3に示す例では、認証IDが「被支援者A」、および「被支援者C」はアクセス上限数を「1」としてそれぞれに1つのアクセス枠を設定し、認証IDが「被支援者B」はアクセス上限数を「2」として2つのアクセス枠を設定している例を示している。
なお、アクセス先サーバが複数ある場合には、使用状態情報は、個々の認証IDについてアクセス先サーバごとに設定しても良い。
図4は、待ち行列情報データベース14cの構成例を示す図である。
図4に示す例では、待ち行列情報データベース14cは、情報を開示するユーザを示す認証IDごとに、待ち状態となったユーザが順番に記憶(追加)される。図4に示す例では、認証ID「被支援者c」に対して、アクセス待ち状態となったアカウント「支援者e」が存在し、「支援者e」の待ち順番が1番目であることを示している。仮に、図4に示す状態で、認証ID「被支援者c」に対してさらにアクセス依頼があれば、当該アクセス依頼のアカウントは、「支援者e」の次の順番(2番目)として待ち行列情報データベース14cに追記される。
なお、アクセス先サーバが複数ある場合には、待ち行列情報は、個々の認証IDについてアクセス先サーバごとに設定しても良い。
図5は、認証ID情報データベース14dの構成例を示す図である。
図5に示す例では、認証ID情報データベース14bは、情報を開示する各ユーザ(認証ID)に対する認証情報(パスワード)を記憶する。すなわち、認証ID情報データベース14dは、アクセス先システムにおける認証IDと認証情報とを対応づけて記憶する。図5に示す例では、認証情報は、パスワードであるが、認証情報は、アクセス先サーバ3での認証処理が可能となる情報であればよく、パスワードに限定されるものではない。なお、アクセス先サーバが複数ある場合には、認証情報は、個々の認証IDについてアクセス先サーバごとに設定しても良い。
次に、本実施形態に係るシステムアクセスサーバ1が有する機能について説明する。
図6は、システムアクセスサーバ1が有する機能の構成例を示すブロック図である。
図6に示す例において、システムアクセスサーバ1は、第1通信部21、認可情報確認部22、第2通信部23、認証ID特定部24、認証ID対応情報管理部25、待ち行列管理部26、待ち行列情報管理部27、認証ID利用管理部28、認証ID情報管理部29、第3通信部30、および、ログ生成部31などの処理機能を有する。これらの処理機能は、例えば、システムアクセスサーバ1において、プロセッサ11がメモリ12あるいは記憶装置14に記憶したプログラムを実行することにより実現する。
第1通信部21は、アクセス元サーバ4と通信するための通信処理部である。第2通信部23は、認可サーバ2と通信するための通信処理部である。第3通信部30は、アクセス先サーバ3と通信するための通信処理部である。第1、第2、第3通信部21、23、30は、通信インターフェース13によるアクセス元サーバ4、認可サーバ2、アクセス先サーバ3とのデータの送受信をプロセッサ11が制御することにより実現する。
第1通信部21は、アクセス元サーバ4からアクセス先サーバ3へのアクセス依頼を受信する受信部として機能する。認可情報確認部22は、アクセス依頼を受けた情報に対するアクセスの認可を確認する処理部である。例えば、利用者端末5で指示されたアクセス先システムの情報へのアクセスの要求は、アクセス者を示すアカウントとアクセス対象を示す情報とが含むアクセス依頼として、アクセス元サーバ4からシステムアクセスサーバ1へ送信される。システムアクセスサーバ1では、第1通信部21によりアクセス依頼を受信し、第1通信部により受信したアクセス依頼が認可情報確認部22へ通知される。
認可情報確認部22は、第1通信部21で受信したアクセス依頼が認可されるか否かを第2通信部23により認可サーバ2に問い合わせる。認可サーバ2による認可の結果は、第2通信部23を介して認可情報確認部22に供給される。認可情報確認部22は、アクセス依頼が認可された場合、認証ID特定部24へアクセス依頼が認可された旨を通知する。また、アクセス依頼が認可されなかった場合、認可情報確認部22は、第1通信部21によりアクセス元サーバ4へアクセス依頼が認可されなかった旨を通知する。
認証ID特定部24は、アカウントに対する認証IDを特定する。認証ID対応情報管理部25は、認証ID対応情報データベース14aに保存したアカウントと認証IDとの対応情報を管理する。認証ID特定部24は、アクセス依頼が認可された旨の通知を受信した場合、認可されたアクセス依頼のアカウントに対応する認証IDを認証ID対応情報管理部25へ問い合わせることにより、アクセス依頼に対応する認証IDを特定する。認証ID対応情報管理部25は、認証ID特定部24により指定されるアカウントに対応する認証IDを認証ID対応情報データベース14aから読み出して認証ID特定部24へ返す。アクセス依頼に対応する認証IDを特定すると、認証ID特定部24は、特定した当該アクセス依頼に対応する認証ID、アクセス対象、および、アクセスが認可された旨の情報(例えば、アクセストークン)などを待ち行列管理部26へ通知する。
待ち行列管理部(状態管理部)26は、特定された認証IDに対する使用状態を確認する。待ち行列情報(状態情報)管理部27は、使用状態情報データベース14bに記憶する各認証IDのアクセス枠ごとの使用状態、および、待ち行列情報データベース14cに記憶する認証IDごとの待ち行列を管理する。待ち行列管理部26は、待ち行列情報管理部27への問合せによって使用状態の確認および待ち行列の追加などの処理を行う。
たとえば、アクセス依頼に対応する認証IDが全て使用中である場合、待ち行列管理部26は、当該認証IDに対する待ち行列に当該アクセス依頼を追加することにより、当該アクセス依頼を待ち状態とする。当該アクセス依頼を待ち行列に追加した場合、待ち行列管理部26は、第1通信部21によりアクセス依頼元のアクセス元サーバ4へ依頼されたアクセスが待ち状態である旨(待ち行列に追加した事)を通知するようにしても良い。
待ち行列管理部26は、当該認証IDに使用状態が「未」のアクセス枠がある場合、待ち行列情報管理部27により使用状態情報データベース14bにおける当該認証IDに対応する1つのアクセス枠の使用状態を「使用中」に更新することにより、当該アクセス依頼に対応する認証IDに対する1つのアクセス枠を確保(アクセス依頼に対するアクセス状態を確保)する。
当該アクセス依頼に対応する認証IDに対するアクセス枠を確保すると、待ち行列管理部26は、認証ID利用管理部28に当該アクセス依頼に対するアクセス枠を確保した旨を通知する。また、待ち行列管理部26は、当該アクセス依頼に対応する認証IDに対するアクセス枠(アクセス依頼に対するアクセス状態)を確保するごとに、当該アクセス状態を示すプロセスIDを発行するようにしても良い。この場合、待ち行列管理部26は、アクセス依頼とともにプロセスIDを認証ID利用管理部28へ通知する。
認証ID利用管理部28は、認証IDに対応する認証情報の特定、アクセス先サーバへのアクセス依頼の送信、アクセス元サーバへのアクセス結果の転送などの処理を行う。また、認証ID利用管理部28は、一旦確保したアクセス状態が継続中において、アクセス元サーバとアクセス先サーバとの間のアクセス依頼およびアクセス結果の転送も行う。
まず、認証ID利用管理部28は、アクセス依頼に対するアクセス枠が確保されると、アクセス依頼に対応する認証IDに対応する認証情報(パスワード)を特定する。認証ID情報管理部29は、認証ID情報データベース14dが記憶する認証IDに対応する認証情報(例えば、パスワード)を管理する。認証ID利用管理部28は、待ち行列管理部26によりアクセス状態が確保されると、認証ID情報管理部29により認証ID情報データベース14dに記憶している当該認証IDに対応する認証情報を取得する。
認証IDに対応する認証情報を取得すると、認証ID利用管理部28は、第3通信部30により認証ID、認証情報(パスワード)、アクセス対象、アクセス許可情報などを含むアクセス依頼をアクセス先サーバ3へ送信する。アクセス依頼を送信した後、認証ID利用管理部28は、第3通信部30によりアクセス先サーバ3からのアクセス結果を受信し、受信したアクセス結果を第1通信部21によりアクセス元サーバ4へ転送する。
また、ログ生成部31は、ログデータベース14eに保存するログ情報を生成する。ログ生成部31は、各種の処理のタイミングでログ情報を生成してログデータベース14eに保存する。たとえば、ログ生成部31は、第1通信部21がアクセス元サーバ4からのアクセス依頼を受信した場合、アクセス依頼のログを示すログ情報を生成してログデータベース14eに保存する。また、ログ生成部31は、待ち行列管理部26がアクセス依頼の認証IDに対する1つのアクセス枠の使用状態を「使用中」に更新した場合、ログ情報を生成してログデータベース14eに保存する。
また、ログ生成部31は、認証ID利用管理部28が認証IDとパスワードとを含む情報によりアクセス先サーバ3にアクセスした場合、アクセス先サーバ3へのアクセス依頼のログ情報を生成してログデータベース14eに保存する。また、ログ生成部31は、アクセス依頼に基づくアクセスを終了した場合、アクセス終了のログを示すログ情報を生成してログデータベース14eに保存する。
次に、システムアクセスサーバ1におけるアクセス制御の概要について説明する。
図7は、システムアクセスサーバ1がアクセス元サーバ4からのアクセス依頼をアクセス先サーバ3へ送信するまでの処理の概要を説明するための図である。
システムアクセスサーバ1は、認証ID特定部24、待ち行列管理部26および認証ID利用管理部28により異なるシステム(サーバ)間におけるデータへのアクセスを制御する。すなわち、第1通信部21によりアクセス元サーバ4からアクセス先サーバ3へのアクセス依頼を受信すると、システムアクセスサーバ1のプロセッサ11は、認可情報確認部22により当該アクセス依頼が認可サーバ2により認可されるか否かを確認する。当該アクセス依頼が認可サーバ2により認可された場合、プロセッサ11は、認証ID特定部24によりアクセスするデータの認証ID(当該データのオーナーの認証ID)を特定する。
アクセス依頼の認証IDを特定すると、プロセッサ11は、当該認証IDに割り当てられたアクセス枠の使用状態を確認する。当該認証IDに割り当てられたアクセス枠が全て使用中である場合、プロセッサ11は、待ち行列管理部26により当該アクセス依頼を当該認証IDの待ち行列に追加する。また、当該認証IDに割り当てられたアクセス枠に未使用のものがある場合、プロセッサ11は、待ち行列管理部26により当該認証IDに対応するアクセス枠を使用中に更新し、当該アクセス依頼のアクセス枠を確保する。
アクセス依頼のアクセス枠を確保すると、プロセッサ11は、認証ID利用管理部28により当該認証IDに対する認証情報(パスワード)を特定する。アクセス枠を確保した認証IDの認証情報を特定すると、プロセッサ11は、第3通信部により当該認証IDおよびパスワードを含むアクセス依頼をアクセス先サーバ3へ送信する。
たとえば、図7に示す例において、ID「01」に対するアクセス依頼を受けた場合、プロセッサ11は、ID「01」に対するアクセス枠が全て使用中であるため、ID「01」の待ち行列に当該アクセス依頼を追加する。この場合、アクセス依頼は、ID「01」に対するアクセス枠が空き、かつ、当該アクセス依頼の順番になるまで、待機状態となる。また、ID「03」に対するアクセス依頼を受けた場合、プロセッサ11は、ID「03」に対するアクセス枠に未使用のものがあるため、ID「03」の1つを使用中に更新する。この場合、プロセッサ11は、ID「03」に対応する認証情報(パスワード)を特定し、ID「03」と認証情報とを含むアクセス依頼をアクセス先サーバ3へ送信する。
次に、システムアクセスサーバ1における処理の流れについて説明する。
図8は、システムアクセスサーバ1における処理の流れを説明するためのフローチャートである。
システムアクセスサーバ1では、第1通信部21によりアクセス元サーバ4からのアクセス先サーバ3へのアクセス依頼を受け付けている(S10)。第1通信部21によりアクセス元サーバ4からのアクセス依頼を受信すると、システムアクセスサーバ1のプロセッサ11は、受信したアクセス依頼を示すログ情報をログ生成部31により生成してログデータベース14eに保存する(S11)。たとえば、システムアクセスサーバ1のプロセッサ11は、アクセス依頼受信のイベントIDを発行し、アクセス依頼受信のイベントID、アクセス元のアカウント、アクセス依頼ID、および処理時刻などの情報を含むログ情報を生成する。
また、アクセス依頼を受信した場合、プロセッサ11は、認可情報確認部22によりアクセス依頼に対する認可を確認する(S12)。例えば、プロセッサ11は、認可情報確認部22により受信したアクセス依頼が認可されるか否かを第2通信部23を介して認可サーバ2に問い合わせる。これにより、プロセッサ11は、認可サーバ2から当該アクセス依頼に対する認可の結果を受信する。ここで、認可サーバ2が当該アクセス依頼を認可しなかった場合、プロセッサ11は、第1通信部21によりアクセス元サーバ4へアクセス依頼が認可されなかった旨を通知し、処理を終了する。
認可サーバ2がアクセス依頼を認可した場合、プロセッサ11は、認証ID特定部24により認可されたアクセス依頼に対する認証IDを特定する(S13)。プロセッサ11は、認証ID特定部24により、認証ID対応情報データベース14aを参照して、認可されたアクセス依頼のアカウントに対応する認証IDを特定する。アクセス依頼に対応する認証IDを特定すると、プロセッサ11は、待ち行列管理部26により当該アクセス依頼に対応する認証IDに対して未使用状態のアクセス枠があるか否かを判断する(S14)。
当該認証IDに対する未使用状態のアクセス枠がないと判断した場合、つまり、当該認証IDが全て使用中であると判断した場合(S14、NO)、プロセッサ11は、当該アクセス依頼を当該認証IDの待ち行列に追加し(S15)、当該アクセス依頼に対する処理を待機状態とする。
また、当該認証IDに対する未使用状態のアクセス枠があると判断した場合(S14、YES)、プロセッサ11は、当該アクセス依頼の認証IDに対応する未使用状態のアクセス枠の1つを使用中に更新することにより、当該認証IDに対応するアクセス枠を確保する(S16)。アクセス依頼に対するアクセス枠を確保した場合、つまり、アクセス依頼に対するアクセス状態を確保した場合、プロセッサ11は、当該アクセス状態に対応するプロセスIDを発行する。プロセスIDを発行した場合、システムアクセスサーバ1は、当該アクセス状態が継続中において、プロセスIDによってアクセス状態を管理する。
また、当該アクセス依頼の認証IDに対応するアクセス枠を確保すると、プロセッサ11は、アクセス枠を確保した旨のログ情報を生成してログデータベース14eに保存する(S17)。たとえば、システムアクセスサーバ1のプロセッサ11は、アクセス開始のイベントIDを発行し、アクセス開始のイベントID、アクセス元のアカウント、アクセス依頼ID、アクセス依頼から特定した認証ID、および処理時刻などの情報を含むログ情報を生成する。
当該アクセス依頼の認証IDに対応するアクセス枠を確保した場合、プロセッサ11は、認証ID利用管理部28により当該認証IDに対応する認証情報を特定し、認証ID及び認証情報を用いてアクセス先サーバ3へアクセス依頼を送信する(S18)。この際、プロセッサ11は、認証IDおよび認証情報を当該アクセス状態を示すプロセスIDに対応づけてメモリ12に記憶しておく。これにより、当該アクセス状態を継続中においては、プロセスIDで認証IDおよび認証情報を特定することができる。
また、当該認証ID及び認証情報を含むアクセス依頼をアクセス先サーバ3へ送信すると、プロセッサ11は、アクセス先サーバ3へのアクセス依頼を示すログ情報を生成してログデータベース14eに保存する(S19)。たとえば、システムアクセスサーバ1のプロセッサ11は、アクセス取得のイベントIDを発行し、アクセス取得のイベントID、アクセス元のアカウント、アクセス依頼ID、認証ID、取得データ、および処理時刻などの情報を含むログ情報を生成する。
アクセス先サーバ3へアクセス依頼を送信した後、プロセッサ11は、当該アクセス依頼に対する応答(アクセス結果)の受信待ちとなる。この状態でアクセス結果をアクセス先サーバ3から受信すると、プロセッサ11は、受信したアクセス結果をアクセス元サーバ4へ転送する(S20)。
アクセス元サーバ4へアクセス結果を転送した後、プロセッサ11は、当該アクセス状態を終了する条件が満たされていなければ(S21、NO)、当該アクセス状態を継続させる。当該アクセス状態の継続中においてアクセス元サーバ4からの次のアクセス依頼を受け付けると、プロセッサ11は、上記S18〜S20の処理を実行することにより、次のアクセス依頼をアクセス先サーバ3へ送信し、アクセス先サーバ3からのアクセス結果をアクセス先サーバ3からアクセス元サーバ4へ転送する処理を繰り返し行う。
また、アクセス元サーバから当該アクセス状態を終了する指示があった場合、あるいは、当該アクセス状態を終了する所定の条件(例えば、タイムアウト)が満たされた場合(S21、YES)、プロセッサ11は、受信したアクセス依頼に基づくアクセス状態を終了し、使用していたアクセス枠の状態を使用中から未使用に更新する(S22)。
アクセス状態を終了した場合、プロセッサ11は、アクセス状態を終了したことを示すログ情報を生成してログデータベース14eに保存する(S23)。たとえば、システムアクセスサーバ1のプロセッサ11は、S23の処理として、アクセス終了のイベントIDを発行し、アクセス終了のイベントID、アクセス元のアカウント、アクセス依頼ID、認証ID、および処理時刻などの情報を含むログ情報を生成する。
また、アクセス状態を終了した場合、つまり、認証IDに対するアクセス枠の1つを未使用に更新した場合、プロセッサ11は、当該認証IDに待ち行列があるか否かを判断する(S24)。当該認証IDに待ち行列が無いと判断した場合(S21、NO)、プロセッサ11は、当該認証IDに対する一連の処理を終了する。
また、当該認証IDに待ち行列があると判断した場合(S21、YES)、プロセッサ11は、S16へ進み、当該認証IDの待ち行列の先頭(1番目)にあるアクセス依頼に対してS16〜24のアクセス制御を実行する。なお、待ち行列のアクセス依頼に対してアクセス状態を確保した場合、プロセッサ11は、待ち行列情報データベース14cが記憶する待ち行列情報も更新する。
次に、アクセス元サーバ4における処理の流れについて説明する。
図9は、システムアクセスサーバ1に対するアクセス元サーバ4における処理の流れを説明するためのフローチャートである。
アクセス元サーバ4は、通信インターフェースにより利用者端末5からアクセス先サーバ3が管理する情報へのアクセスの要求を受信する(S31)。このアクセス依頼には、利用者端末5を利用しているユーザを示すアカウントおよびアクセス対象を示す情報などが含まれる。利用者端末5からアクセス先サーバ3が管理する情報へのアクセスの要求を受信すると、アクセス元サーバ4のプロセッサは、ユーザのアカウントおよびアクセス対象を示す情報にアクセス依頼IDを付加したアクセス依頼をシステムアクセスサーバ1へ送信する(S32)。
利用者端末5からのアクセス先サーバ3へのアクセス依頼をシステムアクセスサーバ1へ送信する場合、アクセス元サーバ4のプロセッサは、アクセス依頼によるアクセス開始を示すログ情報を生成して記憶装置に保存する(S33)。たとえば、アクセス元サーバ4のプロセッサは、アクセス開始のイベントIDを発行し、アクセス開始のイベントID、アクセス元のアカウント、アクセス依頼ID、および処理時刻などの情報を含むログ情報を生成する。
システムアクセスサーバ1へアクセス依頼を送信した後、アクセス元サーバ4は、システムアクセスサーバ1からのアクセス結果を示すデータの受信待ちとなる。この状態において、アクセス元サーバ4のプロセッサは、システムアクセスサーバ1からアクセス依頼に対応するアクセス結果を示すデータを受信(取得)する(S34)。
システムアクセスサーバ1からアクセス先サーバ3からのアクセス結果を受信すると、アクセス元サーバ4のプロセッサは、システムアクセスサーバ1から取得したアクセス結果を示すログ情報を生成して記憶装置に保存する(S35)。たとえば、アクセス元サーバ4のプロセッサは、アクセス結果受信のイベントIDを発行し、アクセス結果受信のイベントID、アクセス元のアカウント、アクセス依頼ID、取得したアクセス結果を含むデータ、および、処理時刻などの情報を含むログ情報を生成する。
システムアクセスサーバ1を介したアクセス先サーバ3とのアクセス状態を継続する場合、アクセス元サーバ4のプロセッサは、S32へ戻り、利用者端末5からの要求に応じて次のアクセス依頼(データを要求)をシステムアクセスサーバ1へ送信する。
システムアクセスサーバ1を介したアクセス先サーバ3とのアクセス状態を終了する場合、アクセス元サーバ4のプロセッサは、アクセス状態の終了をシステムアクセスサーバ1へ通知する(S37)。例えば、利用者端末5からのアクセス終了の指示を受けた場合、あるいは、アクセス状態を終了する所定の条件(例えば、タイムアウト)が満たされた場合、アクセス元サーバ4のプロセッサは、アクセス状態の終了すると判断し、アクセス状態の終了をシステムアクセスサーバ1へ通知する。
アクセス状態の終了をシステムアクセスサーバ1へ通知する場合、アクセス元サーバ4のプロセッサは、アクセス状態が終了したことを示すログ情報を生成して記憶装置に保存する(S38)。たとえば、アクセス元サーバ4のプロセッサは、アクセス状態終了のイベントIDを発行し、アクセス状態終了のイベントID、アクセス元のアカウント、アクセス依頼ID、および、処理時刻などの情報を含むログ情報を生成する。アクセス状態が終了したことを示すログ情報を記憶装置に保存すると、アクセス元サーバ4のプロセッサは、一連の処理を終了する。
次に、アクセス先サーバ3における処理の流れについて説明する。
図10は、システムアクセスサーバ1に対するアクセス先サーバ3における処理の流れを説明するためのフローチャートである。
アクセス先サーバ3は、通信インターフェースによりシステムアクセスサーバ1からのアクセス依頼を受信する(S41)。このアクセス依頼には、アクセス元のアカウントから特定された認証ID(当該アクセス先システムにおける情報のオーナーであるユーザの認証ID)、認証IDに対応する認証情報(パスワード)、アクセス対象を示す情報、および、認可サーバ2によってアクセス依頼が認可されていることを示すアクセストークンなどが含まれる。なお、アクセス依頼を受信した場合、アクセス先サーバ3のプロセッサは、アクセス依頼の受信を示すログ情報を生成して記憶装置に保存するようにしても良い。
システムアクセスサーバ1からアクセス依頼を受信した場合、アクセス先サーバ3のプロセッサは、受信したアクセス依頼に含まれる認証IDと認証情報とによりログイン処理を実行する(S42)。ログインが完了すると、アクセス先サーバ3のプロセッサは、ログインを示すログ情報を示すログ情報を生成して記憶装置に保存する(S43)。たとえば、アクセス先サーバ3のプロセッサは、S43の処理として、ログインのイベントIDを発行し、ログインのイベントID、および処理時刻などの情報を含むログ情報を生成する。
ログインが完了した後、アクセス先サーバ3のプロセッサは、受信したアクセス依頼に基づいてデータを取得するデータ取得処理を行う(S44)。たとえば、アクセス先サーバ3のプロセッサは、アクセス依頼に基づいてログインした認証IDのデータのアクセス対象となるデータを取得する。アクセス依頼に基づくデータ取得処理を行うと、アクセス先サーバ3のプロセッサは、データの所得結果(アクセス結果)を含む情報をシステムアクセスサーバ1へ送信する(S45)。
アクセス依頼に対応するアクセス結果を含む情報をシステムアクセスサーバ1へ送信すると、アクセス先サーバ3のプロセッサは、システムアクセスサーバ1へのアクセス結果の送信を示すログ情報を生成して記憶装置に保存する(S46)。たとえば、アクセス先サーバ3のプロセッサは、S46の処理として、アクセス結果送信のイベントIDを発行し、アクセス結果送信のイベントID、取得したアクセス結果を含むデータ、および、処理時刻などの情報を含むログ情報を生成する。
アクセス元サーバ4からアクセス依頼に基づくシステムアクセスサーバ1とのアクセス状態を継続する場合(S47、YES)、アクセス先サーバ3のプロセッサは、S41へ戻り、システムアクセスサーバ1からのアクセス依頼に応じた処理を行う。たとえば、システムアクセスサーバ1から管理するアクセス状態を継続中である場合、アクセス先サーバ3のプロセッサは、ログイン状態を保持するようにしても良い。この場合、アクセス先サーバ3のプロセッサは、ログイン状態を保持したままでS42の処理を省略し、次に受信するアクセス依頼に応じてデータ取得処理、アクセス結果送信およびログ保存などの処理を行うようにすれば良い。
なお、アクセス先サーバ3のプロセッサは、システムアクセスサーバ1へアクセス依頼に対するアクセス結果を送信するごとにログオフし、システムアクセスサーバ1からアクセス依頼を受信するごとにログインするようにしても良い。この場合、アクセス先サーバ3のプロセッサは、アクセス依頼に応じたアクセス結果を送信するごとにS48及びS49のログオフの処理を実行し、システムアクセスサーバ1からアクセス依頼を受信するごとにS42及びS43のログインの処理を行うようにすれば良い。
アクセス元サーバ4からのアクセス依頼に基づくシステムアクセスサーバ1とのアクセス状態を終了する場合(S47、NO)、アクセス先サーバ3のプロセッサは、アクセス依頼に基づくログイン状態をオフ(ログオフ)する(S48)。アクセス依頼に基づくログイン状態をオフする場合、アクセス先サーバ3のプロセッサは、ログオフしたことを示すログ情報を生成して記憶装置に保存する(S49)。たとえば、アクセス先サーバ3のプロセッサは、S49の処理として、ログオフのイベントIDを発行し、ログオフのイベントID、ログインID、および、処理時刻などの情報を含むログ情報を生成する。
次に、アクセス元サーバ4、システムアクセスサーバ1およびアクセス先サーバ3が保存するログ情報について説明する。
図11は、アクセス元サーバ4、システムアクセスサーバ1、アクセス先サーバ3が保存するログ情報の例を示す図である。
図11に示すように、各サーバが保存するログ情報は、幾つかの情報をキーに関連付けることができる。図11に示す例において、アクセス元サーバ4が保存する各ログ情報とシステムアクセスサーバ1が保存する各ログ情報とは、アクセス元のアカウント、アクセス依頼IDあるいは時刻などにより対応付けることができる。例えば、アクセス元のアカウントをキーにアクセス元サーバ4及びシステムアクセスサーバ1が保存したログ情報を検索すれば、特定のアカウントのログ情報を抽出できる。特定のアカウントのログ情報を抽出すれば、特定のアカウント(ユーザ)がアクセスした情報を後で確認することができる。また、アクセス依頼IDをキーにアクセス元サーバ4およびシステムアクセスサーバ1が保存したログ情報を検索すれば、特定のアクセス依頼に対するログ情報を抽出でき、アクセス依頼に対する処理状況を後で確認することができる。
また、図11に示す例では、システムアクセスサーバ1が保存する各ログ情報とアクセス先サーバ3が保存する各ログ情報とは、認証IDと認証IDに対応するログインIDとにより対応付けることができる。例えば、認証IDをキーにシステムアクセスサーバ1が保存したログ情報を検索し、認証IDに対応するログインIDをキーにアクセス先サーバ3が保存したログ情報を検索すれば、特定の認証IDのログ情報を抽出できる。特定の認証IDのログ情報を抽出すれば、特定の認証ID(情報のオーナー)ごとにアクセス履歴を確認することができる。さらに、システムアクセスサーバ1が保存したログ情報のうち認証IDを含むログ情報には、アクセス元のアカウントが含まれる。従って、認証ID(ログインID)で抽出したログ情報によれば、アクセス元のアカウントも直接又は間接的に特定することができる。
次に、システム全体における動作の流れについて説明する。
図12及び図13は、システム全体におけるシステムアクセスサーバ1を中心した動作の流れを説明するための動作シーケンスである。
まず、利用者は、利用者端末5によりアクセス先サーバが管理する情報へのアクセスを指示する。利用者端末5のプロセッサは、アクセス開始の要求とともに、アクセス対象を示す情報と利用者のアカウント情報とをアクセス元サーバ4へ送信する(S101)。
利用者端末5からアクセス先サーバ3が管理する情報へのアクセスの要求を受信すると、アクセス元サーバ4のプロセッサは、アクセス対象を示す情報とアクセスを要求するユーザのアカウント(アクセス元のアカウント)とを含むアクセス依頼を作成し、作成したアクセス依頼をシステムアクセスサーバ1へ送信する(S102)。ここで、アクセス元サーバ4のプロセッサは、アクセス開始を示すログ情報を記憶装置に保存する。
システムアクセスサーバ1は、第1通信部21によりアクセス元サーバ4からのアクセス依頼を受信する。アクセス元サーバ4からアクセス依頼を受信すると、第1通信部21は、受信したアクセス依頼を認可情報確認部22へ供給する(S103)。システムアクセスサーバ1の認可情報確認部22は、受信したアクセス依頼に対する認可情報を確認するため、受信したアクセス依頼に対する認可情報を第2通信部23を介して認可サーバ2へ問い合わせる(S104、S105)。
認可サーバ2のプロセッサは、システムアクセスサーバ1からの問合せに応じて認可情報を確認し、認可情報の認可結果を含む情報をアクセス依頼に対する応答としてシステムアクセスサーバ1へ送信する(S106)。たとえば、当該アクセス依頼を認可した場合、認可サーバ2のプロセッサは、アクセストークンを発行し、アクセストークンを含む応答をシステムアクセスサーバ1へ送信する。
アクセス依頼に対する問合せを認可サーバ2へ送信した後、システムアクセスサーバ1の第2通信部23は、認可サーバ2からのアクセス依頼に対する認可結果の受信待ちとなる。この状態において、システムアクセスサーバ1の第2通信部23は、認可サーバ2からの応答を受信する。ここでは、認可サーバ2がアクセス依頼によるアクセスを認可し、アクセス許可を示すアクセストークンを含む応答を送信するものとする。すると、システムアクセスサーバ1の第2通信部23は、アクセス依頼に対するアクセストークンを含む応答を認可サーバ2から受信する(S106)。認可サーバ2からアクセストークンを受信すると、第2通信部23は、受信したアクセストークンを認可情報確認部22へ供給する(S107)。これにより、認可情報確認部22は、アクセス依頼に対するアクセスの認可を示すアクセストークンを認可サーバ2から取得する。
認可サーバ2からアクセストークンを取得すると、システムアクセスサーバ1の認可情報確認部22は、アクセス元のアカウント、アクセス対象およびアクセストークンを認証ID特定部24へ供給する(S108)。システムアクセスサーバ1の認証ID特定部24は、認証ID対応情報データベース14aを参照して当該アカウントに対応する認証IDを特定する(S109)。認証IDを特定すると、認証ID特定部24は、認証ID、アクセス対応、および、アクセストークンを待ち行列管理部26へ供給する(S110)。アクセス依頼に対応する認証IDを取得すると、待ち行列管理部26は、使用状態情報データベース14bを参照してアクセス依頼に対応する認証IDで未使用状態のアクセス枠があるか否かを判断する(S111)。
当該アクセス依頼に対応する認証IDに対して未使用状態のアクセス枠がないと判断した場合、つまり、当該認証IDが全て使用中であると判断した場合、待ち行列管理部26は、待ち行列情報データベース14cにおける当該認証IDの待ち行列に当該アクセス依頼を追加し(S112)、当該アクセス依頼に対する処理を待機状態(終了)とする。
また、当該認証IDで未使用状態のアクセス枠があると判断した場合、待ち行列管理部26は、使用状態情報データベース14bにおいて当該アクセス依頼の認証IDに対応する未使用状態のアクセス枠の1つを使用中に更新することにより、当該認証IDに対応するアクセス枠を確保する。ここで、システムアクセスサーバ1のログ生成部31は、アクセス枠を確保した旨のログ情報を生成してログデータベース14eに保存する。
当該アクセス依頼の認証IDに対するアクセス枠を確保すると、待ち行列管理部26は、プロセスIDを発行し、認証ID、アクセス対象、アクセストークンおよびプロセスIDを認証ID利用管理部28へ供給する。認証ID利用管理部28は、認証ID情報データベース14dを参照して当該認証IDに対応する認証情報(パスワード)を特定する(S114)。認証情報を特定すると、認証ID利用管理部28は、認証ID、認証情報、アクセス対象およびアクセストークンを含むアクセス依頼を作成し、作成したアクセス依頼を第3通信部30によりアクセス先サーバ3へ送信する(S115、S116)。ここで、認証ID利用管理部28は、認証IDと認証IDに対する認証情報とをプロセスIDに対応づけて保持する。また、ログ生成部31は、アクセス先サーバ3へのアクセス依頼を示すログ情報をログデータベース14eに保存する。
アクセス先サーバ3は、システムアクセスサーバ1からのアクセス依頼を受信した場合、受信したアクセス依頼に含まれる認証IDと認証情報とによりログインし、受信したアクセス依頼に基づいてデータを取得する。アクセス依頼に応じたデータを取得すると、アクセス先サーバ3は、データの所得結果(アクセス結果)をシステムアクセスサーバ1へ送信する(S117)。
アクセス先サーバ3へアクセス依頼を送信した後、システムアクセスサーバ1の第3通信部30は、当該アクセス依頼に対する応答(アクセス結果)の受信待ちとなる。この状態でアクセス結果をアクセス先サーバ3から受信すると、第3通信部30は、受信したアクセス結果を認証ID利用管理部28へ供給する(S118)。認証ID利用管理部28は、アクセス先サーバ3から受信したアクセス結果と当該アクセス依頼に対して発行したプロセスIDとを第1通信部21によりアクセス元サーバ4へ送信する(S119、S120)。
アクセス元サーバ4は、システムアクセスサーバ1からアクセス依頼に対応するアクセス結果とプロセスIDとを受信すると、受信したアクセス結果をアクセス元の利用者端末5へ転送する(S121)。ここで、アクセス元サーバ4は、アクセス結果の受信を示すログ情報を記憶装置に保存するようにしても良い。
アクセス結果を受信した場合、利用者端末5は、アクセスを継続するかアクセスを終了するかを入力する。アクセスを継続する場合、利用者端末5は、アクセス状態を継続した状態での次のアクセス対象をアクセス元サーバ4へ送信する(S122)。アクセス状態を継続中に次のアクセス対象が利用者端末5で指定された場合、アクセス元サーバ4は、アクセス状態となっているプロセッサIDととともにアクセス対象をシステムアクセスサーバ1へ送信する(S123)。
アクセス元サーバ4が送信したプロセスIDとアクセス対象とは、システムアクセスサーバ1の第1通信部21により受信される。システムアクセスサーバ1の第1通信部21は、アクセス元サーバ4から受信したプロセスIDとアクセス対象とを認証ID利用管理部28へ供給する(S124)。プロセスIDとアクセス対象とを受信すると、認証ID利用管理部28は、プロセスIDに基づいて認証ID、認証情報(パスワード)及びアクセストークンを特定する。認証ID利用管理部28は、プロセスIDに基づいて特定した認証ID、認証情報、アクセス対象及びアクセストークンを含むアクセス依頼を作成し、作成したアクセス依頼を第3通信部30によりアクセス先サーバ3へ送信する(S125、S126)。
アクセス先サーバ3は、システムアクセスサーバ1からアクセス依頼を受信すると、受信したアクセス依頼に含まれる認証IDと認証情報とによりログイン(又はログイン除隊を継続)し、受信したアクセス依頼に基づいてアクセス対象のデータを取得する。アクセス対象のデータを取得すると、アクセス先サーバ3は、データの所得結果(アクセス結果)をシステムアクセスサーバ1へ送信する(S127)。
アクセス先サーバ3へアクセス依頼を送信した後、システムアクセスサーバ1の第3通信部30は、当該アクセス依頼に対する応答(アクセス結果)の受信待ちとなる。この状態でアクセス結果をアクセス先サーバ3から受信すると、第3通信部30は、受信したアクセス結果を認証ID利用管理部28へ供給する(S128)。認証ID利用管理部28は、アクセス先サーバ3から受信したアクセス結果と当該アクセス依頼に対して発行したプロセスIDとを第1通信部21によりアクセス元サーバ4へ送信する(S129、S130)。
システムアクセスサーバ1からのアクセス結果とプロセスIDとを受信すると、アクセス元サーバ4は、受信したアクセス結果をアクセス元の利用者端末5へ転送する(S131)。ここで、アクセス元サーバ4は、アクセス結果の受信を示すログ情報を記憶装置に保存するようにしても良い。
アクセス結果を受信すると、利用者端末5は、アクセス状態を継続するかアクセス状態を終了するかを入力する。なお、利用者端末5は、任意のタイミングでアクセス終了を指示しても良い。アクセス状態を終了する場合、利用者端末5は、アクセス終了をアクセス元サーバ4へ送信する(S132)。利用者端末5からアクセス状態の終了が指示された場合、アクセス元サーバ4は、アクセス状態となっているプロセッサIDととともにアクセス終了をシステムアクセスサーバ1へ通知する(S133)。
アクセス元サーバ4が送信したプロセスIDとアクセス終了の通知とは、システムアクセスサーバ1の第1通信部21により受信される。システムアクセスサーバ1の第1通信部21は、アクセス元サーバ4から受信したプロセスIDとアクセス終了の通知とを認証ID利用管理部28へ供給する(S134)。プロセスIDとアクセス終了の通知とを受信すると、認証ID利用管理部28は、プロセスIDとアクセス終了の通知とを待ち行列管理部26へ通知する(S135)。アクセス終了の通知とプロセスIDとを受信すると、待ち行列管理部26は、使用状態情報データベース14bにおける当該プロセスIDに対応する認証IDのアクセス枠に対する使用状態を「使用中」から「未使用」に更新する(S136)。これにより、当該プロセスで使用していた当該認証IDのアクセス枠の1つが開放される。
使用中であった認証IDの使用状態の1つを未使用に更新した場合、待ち行列管理部26は、待ち行列情報データベース14cにおいて、当該認証IDに待ち行列が有るか否かを判断する(S137)。アクセス状態を終了(開放)した認証IDに対して待ち行列がある場合、待ち行列管理部26は、待ち行列情報を更新するとともに、待ち行列の先頭にあるアクセス依頼に対して、上記S113からの処理を実行する(S138)。
上記のように、本実施形態に係るシステムアクセスサーバは、アクセス元サーバから受信したアクセス依頼の認可情報を確認した後、当該アクセス依頼に対応する認証ID(アクセス情報のオーナー情報)を特定し、特定した認証IDに対応する認証情報を特定し、当該アクセス依頼を特定した認証IDと認証情報とともにアクセス先サーバへ送信し、アクセス先サーバからのアクセス結果をアクセス元サーバへ転送するようにしたものである。
これにより、本実施形態によれば、システムアクセスサーバは、情報へのアクセスするユーザのアカウントと情報の開示を許可するユーザの認証IDとを対応づけて管理し、さらに、認証IDに対応する認証情報を管理できる。従って、システムアクセスサーバは、あるアカウントからのアクセス依頼に対して当該アカウントに対して開示が許可されているユーザの認証IDを特定でき、さらには特定した認証IDに対応する認証情報も特定できることから、当該認証IDで別のサーバが管理している情報をアクセス依頼のアカウントに提供できる。
すなわち、本実施形態に係るシステムアクセスサーバおよび当該システムアクセスサーバを有するシステムによれば、他のシステムからユーザ認証が必要な別のシステムへアクセスする場合であっても、ユーザ認証要求による中断を発生させずにアクセスすることができ、人間によるログイン操作を不要とするアクセス制御を実現できる。
また、本実施形態に係るシステムアクセスサーバは、受信したアクセス依頼に対応する認証IDに割り当て可能なアクセス枠に未使用のものがあるか否かを判断し、未使用のアクセス枠があれば使用中の状態に更新して当該認証IDに対するアクセス状態を確保し、当該認証IDに対する全てのアクセス枠が使用中であれば当該アクセス依頼を当該認証IDの待ち行列に追加する。
これにより、本実施形態によれば、システムアクセスサーバは、1つの認証IDに複数のアクセスがあった場合であっても直にエラーとすることなく、認証IDごとにアクセス数の上限を設定しておき、認証IDごとに割り当てたアクセス数で各認証IDへのアクセスを管理するとともに、アクセス数を超えるアクセス依頼については待ち行列として待機状態として管理することができる。
すなわち、本実施形態に係るシステムアクセスサーバおよび当該システムアクセスサーバを有するシステムによれば、ユーザ認証が必要なシステムへアクセスする場合に、対応する適切なアカウントを選択し、それぞれのアカウントごとに同時にアクセスできるアクセス数の制限を実現でき、システムのアカウント準備ポリシーおよびアカウントの多重ログインポリシーに対応することができる。
また、本実施形態に係るシステムアクセスサーバ、アクセス元サーバおよびアクセス先サーバは、それぞれアクセス依頼に関する各種のイベント(処理)ごとにログ情報を生成して記憶装置に保存する。
これにより、本実施形態によれば、アクセス制御システムにおいては、各サーバでの各種の処理においてアクセス者などを後で確認することができ、セキュリティ性を向上させることができる。たとえば、本アクセス制御システムでは、あるシステムから他のシステムの情報にアクセスする場合であっても、各システムでの処理についてどのようなアクセスがあったかを特定可能とすることにより、プライバシー情報の公開範囲を把握したり、制限したりすることも容易に実現できる。
すなわち、本実施形態に係るアクセス制御システムによれば、アクセス元システム、システムアクセスシステム、および、アクセス先システム、それぞれでのログ情報を組み合わせて、誰がどの権限でどのデータにアクセスしたのか特定可能とすることができ、プライバシー情報の公開範囲を把握したり制限したりできる。
なお、上述したような本実施形態に係るアクセス制御システムは、例えば、電子行政等における代理人アクセスサービスに適用できる。代理人アクセスシステムに本実施形態に係るアクセス制御システムを適用すれば、本人と同等の権限を持つ代理人に、電子システム上でのアクセスサービスを提供できる。これにより、本人向けのアクセスサービスに付加する形で、代理人向けのアクセスサービスを実現させることが可能となる。
また、本実施形態に係るアクセス制御システムは、地域において医療や介護などを包括的にケアする地域包括ケアシステムにおける支援者アクセスサービスにも適用可能である。支援者アクセスサービスに本実施形態に係るアクセス制御システムを適用すれば、患者が自分の病状に関する支援データ(例えば、食事を塩分控えめにすべき等)を、自分の判断で支援者に一時的に提示することができ、支援者はシステムから提供される支援データを参照できる。
また、本実施形態に係るアクセス制御システムは、救急対応における救急医療アクセスサービスにも適用できる。救急医療アクセスサービスに本実施形態に係るアクセス制御システムを適用すれば、医療従事者が自分の患者等の情報を、救急医療従事者に対して一時的に開示することができる。この結果として、救急医療従事者は一時的に開示された患者等の情報を参照することにより、救急医療を効率よく実施できる。
また、本実施形態に係るアクセス制御システムは、SNS(ソーシャルネットワーキングサービス:Social Networking Service)における他サービスからのアクセスサービスにも適用できる。このようなSNSの他サービスからのアクセスサービスに本実施形態に係るアクセス制御システムを適用すれば、SNSにおいて、本人が許可した別サービスからのアクセスについて記録を残すことが可能となる。
この発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。