〔第1の実施形態〕
本発明の一実施形態について図1ないし図32に基づいて説明すると以下の通りである。すなわち、本実施形態に係るサービス管理システムは、サービスの提供可否を判断する際に、複数の認証方法のうち、要求されたサービスを提供するために必要な認証方法の組み合わせ(1つだけの場合も含む)を決定するものであって、例えば、端末装置や、その使用状況、あるいは、必要とされる認証のレベルに応じて利用認証方式を動的に変更することができる。また、サービス管理システムは、要求されたサービスを提供するために必要な認証方法の組み合わせを管理しているので、サービスそのものにも、必要な認証方法として、例えば、認証方式およびレベルの規定などを容易に追加できる。
以下では、認証方法を決定するための構成などについて説明する前に、システム全体の構成について簡単に説明する。すなわち、本実施形態に係るサービス管理システム1には、図2に示すように、ユーザによるサービス要求操作を受け付け、それに応じたサービスの提供を要求する端末装置3と、複数の認証方法でユーザまたはユーザの使用する機器を認証可能な認証装置(認証システム)5と、当該複数の認証方法のうち、端末装置3から要求されたサービスに応じた認証方法での認証を認証装置5へ要求すると共に、サービス要求によって要求されたサービスの提供の可否を、上記認証装置5による認証結果に応じて決定するサービス管理装置7とが設けられている。
上記認証方法は、認証時にセンシングされるもの(例えば、指紋かパスワードかなど)と、認証時にセンシングされる物理量と、センシングする装置と、当該装置の設置場所と、認証のアルゴリズムと、認証時のアルゴリズムで使用されるパラメータと、上記イニシャル情報と、それらの組み合わせとのうち、予め定められたものである。本実施形態に係るサービス管理システム1では、一例として、認証時にセンシングされるものが互いに異なれば、互いに異なる認証方法としており、上記認証装置5は、例えば、パスワードを用いた認証方法、PIN(Personal Identification Number)を用いた認証方法、および、指紋を用いた認証方法でユーザまたはユーザの使用する機器を認証できる。
なお、上記認証装置5は、それぞれ少なくとも1つの認証方法で認証可能な複数の単体認証装置を備え、全体として複数の認証方法でユーザまたはユーザの使用する機器を認証可能なように構成されていてもよいが、以下では、一例として、1つの認証装置5が複数の認証方法で認証可能な構成について説明する。また、サービス管理装置7がサービス提供の可否を決定できれば、例えば、サービス管理装置7と別体の装置が、端末装置3へサービスを提供し、サービス管理装置7が当該装置へ指示するなどしてサービス提供の可否を決定してもよいが、本実施形態では、一例として、サービス提供可と判断した場合、サービス管理装置7自体が端末装置3にサービスを提供し、提供不可と判断した場合、サービス管理装置7自体が端末装置3へそれを通知する構成について説明する。
また、本実施形態では、端末装置3は、所望のサービス提供を示すサービス要求を送信することによって、当該サービス提供を要求している。同様に、サービス管理装置7は、必要な認証方法での認証を示す認証要求を送信することによって、当該認証方法での認証を要求している。また、認証装置5は、認証結果を示す認証応答を送信することによって認証結果を通知し、サービス管理装置7は、サービス提供可と判断した場合、サービス結果を示すサービス応答を送信することによって、サービス結果を端末装置3へ伝えている。なお、サービス管理装置7は、要求されたサービスが新たな認証を必要としない場合、認証装置3へ認証要求を送信せずに、サービス提供可能と決定できる。この場合、認証装置3との通信は行われない。
本実施形態に係る端末装置3は、サービス要求に応じた認証手続きに関する情報のインタラクションをも担っている。具体的には、端末装置3は、サービス管理装置7と認証装置5との間における要求/応答のやり取りを中継できるように構成されており、上記サービス管理装置7は、端末装置3を介して、認証装置5に認証を要求し、認証装置5は、端末装置3を介してサービス管理装置7へ認証結果を伝えることができる。
より詳細には、上記端末装置3は、例えば、図3に示すように、ユーザからの指示・命令を含む入力操作を受け付ける入力手段としての入力装置31と、情報をユーザへ対し提示・出力するための出力手段としての出力装置32と、両装置31・32を制御する制御手段としての制御装置33とを備えている。
入力装置31としては、当該ユーザからの入力情報を上記制御装置33に通知できるものであれば、上記サービス要求操作入力専用の入力デバイスであるか、汎用の入力デバイスであるかを問わず、任意の入力デバイスを使用でき、例えば、キーボード、マウス、パッド、PINパッドなどの入力デバイスが好適に使用される。
同様に、上記出力装置32としては、制御装置33から送られた情報を、ユーザに対して出力・提示できるものであれば、汎用であるか否かを問わず、任意の出力デバイスを使用でき、例えば、ディスプレイ装置やプリンタなどの出力デバイスが好適に使用される。
なお、本実施形態に係る入力装置31は、サービス要求操作を受け付けるだけではなく、認証時の操作をも受け付けることもできる。同様に、本実施形態に係る出力装置32は、提供されたサービスの情報を出力するだけではなく、認証時には、認証のための情報をも出力できる。言い換えると、本実施形態に係る入力装置31および出力装置32は、後述する認証装置5の一部(後述する認証デバイス51の一部)としても使用されている。
一方、上記制御装置33は、例えば、CPU(Central Processing Unit )などのプロセッサ(演算手段)と、そのプログラム、および、データを記憶する記憶装置と、上記各装置31・32などとデータをやり取りするための入出力回路(いずれも図示せず)とを備えており、入力装置31を通じてユーザから与えられた指示・命令を解釈し、それに応じた処理を実行できる。
具体的には、制御装置33は、上記ユーザからの与えられた指示・命令がサービスの要求を示していると解釈した場合、その内容を示すサービス要求を、上記サービス管理装置7へ送信できる。また、制御装置33は、サービスの提供主体(本実施形態の場合は、サービス管理装置7)から、サービスの実行結果を示すサービス応答を受け取ると、出力装置32へ指示して、その内容を出力させることができる。
さらに、制御装置33は、ユーザがサービス機能を利用するために認証が必要な場合には、認証手続きに関する情報のインタラクション制御を行うことができる。より詳細に説明すると、上述したように、サービス管理装置7は、サービス提供に際し認証が必要な場合には、認証要求を端末装置3に送信しており、端末装置3の制御装置33は、一時的に通知された当該認証要求を、認証装置3へと送信できる。また、認証装置3から送信される認証応答を受信すると、制御装置33は、当該認証情報をサービス管理装置7に送信できる。なお、本実施形態に係る制御装置33は、上記認証要求または認証応答を受信した場合、出力装置32に、その情報を出力させて、ユーザに情報提示できる。加えて、制御装置33は、上記サービス要求操作に応じて、端末装置3とサービス管理装置7との間で行われるサービス要求セッション、並びに、端末装置3とサービス管理装置7との間および端末装置3と認証装置5との間で行われる認証要求セッションの管理を行うことができる。これらの結果、端末装置3は、ユーザからのサービス要求操作からサービスの結果出力までの一連のユーザ−システム間および各装置間でのインタラクション制御を行うことができる。なお、端末装置3は、例えば、サービス応答などの形で、サービスの実行結果を受け取り、得られたサービス実行結果を出力すると、図示しないセッション管理テーブルを開放する。
ここで、上記各装置3・5・7が相互に通信可能であれば、各装置3・5・7間の通信路は、有線であっても無線であってもよいが、例えば、端末装置3および認証装置5の配置に関する制限を緩和するために特に好適な構成として、端末装置3と認証装置5との間を、その一部に無線の通信路を含むネットワークで接続してもよい。この場合は、端末装置3と認証装置5との実質的な距離を考えることなく、サービス管理システム1を構築できる。一例として、認証装置5と、必要であれば端末装置3の入力装置31(後述)とのみをユーザの手元に配置し、ユーザと端末装置3との間のインタラクションを無線ネットワークで行うシステムを実現できる。なお、入力装置31が、例えば、光センサなど、離れた場所からユーザのサービス要求操作を認識できるものであれば、当該システムを構築する場合であっても、入力装置31をユーザの手元に配置する必要はない。
一方、本実施形態に係る認証装置5は、図4に示すように、ユーザまたはユーザの使用する機器を認証する認証デバイス(認証装置)51と、上記サービス管理装置7からの認証の要求を受け付けると共に当該認証の要求に応答するための通信を行う通信処理部52と、当該通信処理部52が認証要求を受け付けると、それに応じて認証デバイス51へ認証を指示すると共に、認証デバイス51による認証結果を認証応答として上記通信処理部52に送信させる認証制御部53とを備えている。なお、本実施形態に係るサービス管理システム1では、上述したように、端末装置3が認証要求および認証応答を中継しており、上記通信処理部52は、当該端末装置3と通信している。
上記通信処理部52には、例えば、認証装置5を外部の機器と接続するための機能モジュールとしての接続インタフェースと、外部機器(例えば、端末装置3など)からの認証要求を受信する機能モジュールしての認証要求受信部と、認証制御部53の指示に応じて外部機器への認証応答を送信するための機能モジュールとしての認証結果通知部(いずれも図示せず)となどが設けられている。当該接続インタフェースは、例えば、物理的インタフェースからフレーミング処理を行うことによって、上記外部機器からの認証要求を、論理データ構造に基づくデータグラムに変換するなどして、外部機器からの認証要求の内容を上記認証要求受信部へ通知したり、その逆に、例えば、上記認証結果通知部からの論理データ構造に基づくデータグラムを、物理的インタフェースに適合した信号に変換するなどして、上記認証通知部の指示に応じた、外部機器への認証応答を生成したりできる。また、上記認証要求受信部は、上記接続インタフェースにより生成された上記論理データ構造に基づく認証要求データグラムを受信して、その受信情報を、上記認証制御部53(後述する構成例では、認証機能管理部63)に伝えることができる。一方、上記認証結果通知部は、認証制御部53(認証機能管理部63)からの指示に応じて、上記論理データ構造に基づく認証応答データグラムを、上記接続インタフェース経由で、外部機器へ対し送信できる。なお、外部機器との直接的な接続形態としての物理的インタフェースとしては、例えば、イーサネット(登録商標)、シリアル、パラレル接続など、種々の種類の物理的インタフェースを採用できる。
さらに、本実施形態に係る上記認証装置5には、複数の認証デバイス51が設けられており、認証装置5は、これらの認証デバイス51の中から、サービス管理装置7からの要求に応じた、1または複数の認証デバイス51を選択し、選択された認証デバイス51に認証を指示すると共に、当該認証デバイス51の認証結果を示す認証応答を送信できる。
ここで、上記認証デバイス51の一例としては、例えば、指紋、声紋、静脈、血流、網膜、虹彩パターンといった、ユーザ個人を特定できる要素を測定すると共に、センシングにより取得した情報と予め登録されたユーザ特定情報と照合することによって、ユーザを識別できるセンサ装置が挙げられる。また、上記認証デバイス51としては、ユーザの入力するパスワード、あるいは、ユーザの使用する機器が与える署名情報を受け付け、予め登録されたパスワードあるいは署名情報と照合することによって、ユーザ、あるいは、ユーザの使用する機器を認証する認証デバイスも好適に使用できる。なお、当該認証デバイス51は、PIN認証を行う機能を持ったICカード装置であってもよい。さらに、認証デバイス51としては、例えば、以下の情報処理装置、すなわち、音声および/または画像などによって得られた情報に含まれる機器ID情報をサーチし、予め登録されたID情報と照合することによって、当該情報を与えた外部機器を認証可能な情報処理装置も好適に使用できる。
なお、これらの認証デバイス51は、ハードウェアのみによって構成されていてもよいし、ハードウェアを制御するコンピュータにプログラムを実行させることによって実現されていてもよい。一例としては、端末装置3の制御装置33の図示しないコンピュータ(プロセッサ)が、パスワード認証ソフトウェアを実行することによって、ユーザが入力装置31を操作して入力したパスワードと、予め登録されたパスワードと照合してもよい。
また、本実施形態に係る認証デバイス51は、例えば、オフラインの状態で、正規のユーザの上記要素を測定して、その情報を登録するなどして、上記予め登録された情報(上記パスワードなどのイニシャル情報)を内部の図示しない記憶装置に格納しているが、例えば、端末装置3やサービス管理装置7など、認証デバイス51(認証装置5)と通信可能な外部の機器から、オンラインで(通信によって)イニシャル情報を導入してもよい。さらに、認証デバイス51は、例えば、認証制御部53の指示(後述する構成例では、その認証機能実行部62を介する認証機能管理部63の指示)などに応じて、内部の記憶装置に代えて/加えて、認証デバイス51の外部の記憶装置と通信して当該イニシャル情報を取得してもよい。
なお、上記各認証デバイス51は、上記認証方法と同様に、認証時にセンシングされるもの(例えば、指紋かパスワードかなど)と、認証時にセンシングされる物理量と、センシングする装置と、当該装置の設置場所と、認証のアルゴリズムと、認証時のアルゴリズムで使用されるパラメータと、上記イニシャル情報と、それらの組み合わせとのうち、予め定められたものが、互いに異なっていればよく、各認証デバイス51を実現するためのハードウェアおよびソフトウェア、並びに、認証デバイス51により参照されるデータの一部が、互いに共通であってもよい。例えば、上記端末装置3のコンピュータがパスワード認証ソフトウェアと署名情報の照合用のソフトウェアとを実行すれば、端末装置3のハードウェアを、パスワード認証用の認証デバイス51と、署名情報照合用の認証デバイス51とで共用できる。
一例として、本実施形態に係る各認証デバイス51は、認証方法(この例では、認証時にセンシングされるもの)が互いに異なっており、認証装置5には、パスワードを用いて認証する認証デバイス51aと、PINを用いて認証する認証デバイス51bと、指紋を用いて認証する認証デバイス51cとが設けられている。
このように、本実施形態に係る各認証デバイス51は、例えば、それぞれの内部にて、独自の認証アルゴリズムを用いて、認証デバイス51内に格納される情報とセンシング情報とを比較し、その結果に基づいて判断するなどして、認証の成否を決定すると共に、認証の成否を示す情報を含む認証応答を認証制御部53に通知できる。
一方、本実施形態に係る認証装置5は、認証要求として、1または複数の認証方法を示す認証要求を受け付け可能であり、当該認証要求を受け付けた場合、認証要求の示す認証方法で認証可能な認証デバイス51を選択し、当該認証デバイス51に認証させると共に、認証応答として当該認証デバイス51による認証結果を返すことができる。
同様に、本実施形態に係る認証装置5は、認証要求として、1または複数の認証デバイス51を示す認証要求をも受け付け可能であり、当該認証要求を受け付け可能であり、当該認証要求を受け付けた場合、認証要求の示す認証デバイス51に認証させると共に、認証応答として当該認証デバイス51による認証結果を返すことができる。
さらに、本実施形態に係る認証装置5は、認証要求として、認証レベルまたは認証カウントを示す認証要求を受け付け可能であり、当該認証要求を受け付けた場合、上記各認証デバイス51のうち、当該認証要求の示す認証レベルまたは認証カウントで認証可能な認証デバイス51を選択し、これら選択的に組み合わされた認証デバイス51に認証させると共に、認証応答として当該認証デバイス51による認証結果を返すことができる。
ここで、上記認証レベルは、その認証方法の組み合わせを用いることによって提供されるセキュリティのレベルを示しており、本実施形態に係るサービス管理システム1では、レベルなしである”None”、”L1”、”L2”、…、”L5”とレベルが上がるに従って、随時セキュリティが高くなるように設定されている。また、認証カウントは、認証レベルを表現する整数値として定義され、本実施形態では、値が大きい程、高いセキュリティを示している。これら認証レベルの高さおよび認証カウントの値は、認証方式の強度や安全性、ロバスト性に深く依存しており、例えば、パスワード認証を用いる認証デバイス51aよりも、PIN認証を用いる認証デバイス51bの方が、より高い認証レベル、あるいは、より大きな値の認証カウントが与えられる。
なお、後述するように、サービス管理装置7は、認証要求において、認証方法、認証レベルまたは認証カウントあるいは認証デバイス51で認証条件を指定するだけではなく、それらに対する算術演算、あるいは、それらに対する論理演算の結果によっても認証条件を指定可能であり、認証装置5は、算術演算あるいは論理演算で認証条件を指定する認証要求を受け取った場合、その認証条件を満足する認証デバイス51を選択して、当該認証デバイス51に認証させることができる。
上記各認証要求から認証デバイス51の決定するための構成について、より詳細に説明すると、本実施形態に係る認証装置5は、認証制御部53によって参照される記憶部54を備えており、当該記憶部54には、例えば、図5に示すように、各認証デバイス51の組み合わせに関連付けて、各組み合わせによりサポートされる認証方法(複数ある場合は、認証方法の組み合わせ)が記憶されている。同様に、記憶部54には、各認証デバイス51の組み合わせに関連付けて、各組み合わせによって達成できる認証レベルおよび認証カウントが記憶されている。なお、当該記憶部54に記憶されているデータの詳細については、サービス管理システム1の概略動作および通信シーケンスの説明の後、認証制御部53の構成例の説明と共に記載する。
一方、認証制御部53は、例えば、認証要求によって、認証方法の組み合わせが指示された場合、上記記憶部54を参照して、当該指示された認証方法の組み合わせに関連付けられている認証デバイス51の組み合わせを選択できる。同様に、認証デバイス51で指示された場合、認証制御部53は、当該指示された認証デバイス51を選択できる。また、認証レベルまたは認証カウントが指示された場合、認証制御部53は、上記記憶部54を参照して、当該指示された認証レベルあるいは認証カウントに関連付けられている認証デバイス51の組み合わせを選択できる。
また、算術演算での認証要求(認証条件)として、例えば、ある認証レベルまたは認証カウント以上の認証が要求された場合は、上記記憶部54に格納されている認証レベルまたは認証カウントの中から、当該認証条件に該当する認証レベルまたは認証カウントを抽出し、それに関連付けられた認証デバイス51の組み合わせを選択できる。なお、複数の組み合わせが該当する場合は、順次選択すればよい。一方、論理演算で指定された場合、認証制御部53は、例えば、上記と同様にして、論理演算の対象となる各項での認証に必要な認証デバイス51の組み合わせを選択し、それらでの認証結果を論理演算して、その論理演算結果を認証結果とすることができる。
なお、認証制御部53が、例えば、予め定められた算出式で認証カウントから認証レベルを求めるなどして、認証レベルおよび認証カウントの一方から他方を算出可能であれば、双方を記憶せず、一方のみを記憶する構成であっても、認証レベルおよび認証カウントのいずれでの認証要求をも受け付けることができる。また、例えば、各認証デバイス51に関連付けられた認証カウントを加算して、それらの組み合わせに関連付けられる認証カウントを算出するなどして、ある認証デバイス51の組み合わせに関連付けられた上記情報(認証方法や認証カウント)から、他の組み合わせに関連付けられる情報を算出可能であれば、当該算出可能な情報の記憶を省略できる。
ここで、認証装置5は、各認証デバイス51での認証が行われる度に、その認証結果を示す認証応答を個別にサービス管理装置7へ送信してもよいが、以下では、一例として、認証要求の示す認証条件にマッチした認証デバイス51による認証結果を総合して、認証条件を満足したか否かを示す認証応答を返信する構成の動作について、図6に基づいて簡単に説明する。
すなわち、ステップ1(以下では、S1のように略称する)において、認証装置5の通信処理部52が認証要求を受信すると、認証装置5の認証制御部53は、S2において、認証要求を解釈して、認証要求の示す認証条件を抽出する。なお、本構成例に係る認証装置5は、認証要求が複数の条件からなる認証条件を示していたとしても、認証デバイス51による認証結果を総合して、認証条件を満足したか否かを判定している。したがって、認証制御部53は、当該S2において、認証条件を複数の条件に細分化できる場合は、細分化し、そのそれぞれについて、S3以降の処理を行っている。
認証条件として、認証デバイス51自体が指定されていた場合(S3にてYES の場合)、認証制御部53は、例えば、記憶部54を参照するなどして、認証装置5が上記指定された認証デバイス51を備えているか否かを判断し、備えていた場合(S4にて、YES の場合)、S5において、当該認証デバイス51に認証を指示する。
一方、認証条件として、認証方法が指定されていた場合(S3にてNO、S6にてYES の場合)、S7において、認証制御部53は、上述したように記憶部54を参照して、認証条件にマッチする認証デバイス51の組み合わせ、すなわち、指定された認証方法をサポートする認証デバイス51の組み合わせを検索し、組み合わせが存在している場合(S8にてYES の場合)、上記S5において、当該組み合わせに含まれる各認証デバイス51に認証を指示する。
また、認証条件として、認証レベルまたは認証カウントが指定されていた場合(S3およびS6にてNO、S9にてYES の場合)、S10において、認証制御部53は、上述したように記憶部54を参照して、条件にマッチする認証デバイス51の組み合わせ、すなわち、上記指定された認証レベルまたは認証カウントを充足する認証デバイス51の組み合わせを検索し、組み合わせが存在している場合(S11にてYES の場合)、上記S5において、当該組み合わせに含まれる各認証デバイス51に認証を指示する。
認証条件として上記のいずれが指定されていたとしても、上記S5において認証デバイス51へ認証が指示され、認証デバイス51がユーザまたはユーザの使用する機器を認証すると、認証制御部53は、認証デバイス51からの認証結果を受け取る(S12)。
当該認証結果が認証成功を示している場合(S13にてYES の場合)、認証制御部53は、上記認証要求に含まれている認証条件の中に、未だ評価されていない認証条件が残っているか否かを判断し、残っている場合(S14にてYES の場合)、上記S2以降の処理を繰り返す。
これとは逆に、未だ評価されていない認証条件が残っていない場合(上記S14にてNOの場合)、すなわち、認証要求の示す認証条件の認証全てに成功した場合、認証制御部53は、通信処理部52へ指示して、認証成功を示す認証応答を、サービス管理装置7へ送信させる(S15)。
一方、上記S4、S8およびS10において、認証条件にマッチする認証デバイス51を見つけることができなかった場合(NOの場合)、あるいは、上記S1にて受け付けた認証要求が、認証装置5の処理できない認証要求であった場合(S3、S6およびS9にてNOの場合)、認証制御部53は、S16において、通信処理部52へ指示して、認証失敗を示す認証応答を、サービス管理装置7へ送信させる。
これにより、当該構成例に係る認証装置5は、認証要求の示す認証条件にマッチした認証デバイス51による認証結果を総合して、認証条件を満足したか否かを示す認証応答を返信することができる。
なお、記憶部54には、ある一主体によって客観的判断を拠り所にして割り当てられた値またはレベルが予め格納されている方が望ましいが、認証装置5が別途外部機器との間で情報交換および折衝を行なうことによって、認証カウントまたはレベルの基準値を調停してもよい。この場合は、認証装置5は、折衝の結果に応じて、記憶部54に格納される認証レベルあるいは認証カウントの内容を変更する。
一方、本実施形態に係るサービス管理装置7は、図1に示すように、サービスを提供するためのサービス処理部71…と、上記端末装置3および認証装置5と要求/応答をやり取りするための通信処理部(受付手段)72と、記憶部73を読み書きしながら、上記各部材71…および72を制御するサービス制御部74とを備えている。なお、上記記憶部73が特許請求の範囲に記載の記憶装置、内部記憶手段およびポインタ記憶手段に対応し、サービス制御部74が認証指示手段、決定手段およびアクセス制御手段に対応する。
上記各サービス処理部71…は、例えば、必要な認証プロセスを経てサービス提供可と判断された場合など、上記サービス制御部74がサービス提供可と判断した場合に、ユーザに対してサービスを提供可能なサービス機能集合群である。なお、以下では、各サービス処理部71…によって提供される各サービスを、サービスSrv1〜Srv9のように表記して区別する。
上記各サービス処理部71は、例えば、入出力デバイスおよび通信デバイス(いずれも図示せず)などの周辺ハードウェアにて実現される機能モジュール群であってもよい。当該ハードウェアは、サービス管理装置7に設けられているものに限るものではなく、例えば、ユーザ端末である端末装置3における入出力デバイス(入力装置31、出力装置32)など、サービス管理装置7とは別体に設けられ、通信デバイス(上記通信処理部72など)を介して通信可能なデバイスを、その一部に含んでいてもよい。なお、サービス処理部71の全てがサービス管理装置7外にある構成については、後述の第2の実施形態にて説明し、本実施形態では、サービス処理部71の少なくとも一部がサービス管理装置7内に設けられている構成について説明する。
また、上記各サービス処理部71は、ハードウェアによって実現されるものだけではなく、ソフトウェアとハードウェアとが協働して動作することによって実現されるものであってもよい。この一例としては、例えば、上記機能モジュールを利用するためAPIを介して提供されるサービスプリミティブ機能集合群、および、より上位のソフトウェア即ちミドルウェア/アプリケーションによって提供されるアプリケーション機能集合群などが挙げられる。
一方、通信処理部72は、上記端末装置3からのサービス要求を受信したり、認証装置5からの認証応答を端末装置3を介して受信したりすると、その内容をサービス制御部74へ通知できる。また、通信処理部72は、サービス制御部74の指示に応じて、認証装置5への認証要求を端末装置3を介して送信したり、サービス制御部74の指示に応じて、端末装置3へのサービス応答を送信したりできる。
上記通信処理部72は、例えば、外部機器(例えば、端末装置3や認証装置5など)と接続するための機能モジュールとしての接続インタフェースと、外部機器からのサービス要求あるいは認証応答を受信する機能モジュールとしての受信処理部と、上記サービス制御部74の指示に応じて外部機器への認証要求あるいはサービス応答を送信するための機能としての送信処理部(いずれも図示せず)となどが設けられている。当該接続インタフェースは、例えば、物理的インタフェースからフレーミング処理を行うことによって、上記外部機器からのサービス要求および認証応答を、論理データ構造に基づくデータグラムに変換して上記受信処理部へと通知できる。一方、上記受信処理部は、当該データグラムを受信し、その受信情報(その内容)を、上記サービス制御部74へ通知できる。これとは逆に、上記送信処理部は、サービス制御部74からの指示に応じて、外部機器への認証要求あるいはサービス応答を示すデータグラムであって、予め定められた論理データ構造のデータグラムを、上記接続インタフェースに送信し、当該接続インタフェースは、例えば、上記送信処理部からの論理データ構造に基づくデータグラムを、物理的インタフェースに適合した信号に変換するなどして、当該送信処理部からの指示に応じた、上記外部機器への認証要求またはサービス応答データを生成して、外部機器へと送信できる。なお、外部機器との直接的な接続形態としての物理的インタフェースとしては、例えば、イーサネット(登録商標)、シリアル、パラレル接続など、種々の種類の物理的インタフェースを採用できる。
ここで、当該記憶部73に記憶されているデータ(図7〜図11参照)の詳細については、サービス管理システム1の概略動作およびシーケンスの説明の後、サービス制御部74の構成例の説明と共に記載するが、上記記憶部73には、例えば、図7に示すように、サービス管理装置7によって管理されている各サービスに関連付けて、そのサービスを提供するために必要な認証条件が記憶されている。
この認証条件は、例えば、認証方法で指定することもできるし、認証デバイス51自体を特定する情報(例えば、上述した認証IDとしてのFP1など)で指定することもできる。なお、この場合は、認証条件の情報が特許請求の範囲に記載の認証方法情報に対応する。
また、認証条件は、これらのように直接的な認証方法または認証デバイス51の記述ではなく、例えば、認証レベルあるいは認証カウントなど、その認証方法によって提供されるセキュリティのレベルの記述によって、間接的に指定することもできる。なお、この場合は、認証条件の情報が特許請求の範囲に記載の認証レベル情報に対応する。
さらに、認証条件は、値自体(その値であること)以外に、例えば、算術演算子を用いた指定(例えば、”認証カウント≧100”)など、数値条件を含む記述によって指定することもできる。加えて、複数の条件の論理演算(”and”や”or”など)で指定してもよい。
例えば、図7では、サービスSrv1の認証条件が認証方法(パスワード)で指定されており、サービスSrv3の認証条件が認証カウント(数値条件含む)で指定されている。また、サービスSrv4の認証条件は、2つの認証方法(ここでは、パスワード認証と指紋認証)のandで指定されている。なお、図7では、詳細は後述するように、各サービスSrv1〜Srv9が、サービスのフィールドが1〜9のレコードにそれぞれ対応している。
一方、サービス制御部74は、端末装置3からのサービス要求を受け付けた場合、記憶部73を参照して、当該サービス要求で指定されたサービスに関連付けられた認証条件を特定し、当該認証条件に応じた認証要求を認証装置5へ送信できる。また、サービス制御部74は、認証装置5からの認証応答に基づいて、上記認証条件を満足しているか否かを判定し、上記サービス提供の可否を決定できる。
より詳細には、サービス制御部74は、サービスの提供要求を受け付けたとき、当該サービスに関連付けて記憶された認証条件が認証方法で指定されていれば、当該認証方法を示す認証要求を認証装置5へ送信すると共に、当該認証装置5からの認証応答の示す認証結果に応じて、上記認証条件が成立しているか否かを決定できる。同様に、上記サービス制御部74は、サービスの提供要求を受け付けたとき、当該サービスに関連付けて記憶された認証条件が認証レベルまたは認証カウントで指定されていれば、当該認証レベルまたは認証カウントを示す認証要求を認証装置5へ送信すると共に、その認証応答の示す認証結果に応じて、上記認証条件が成立しているか否かを決定できる。また、上記サービス制御部74は、サービスの提供要求を受け付けたとき、当該サービスに関連付けて記憶された認証条件が認証デバイス51自体で指定されていれば、当該認証デバイス51を認証要求を認証装置5へ送信すると共に、その認証応答の示す認証結果に応じて、上記認証条件が成立しているか否かを決定できる。さらに、上記認証条件が複数の条件(例えば、複数の認証方法など)で指定されていた場合、サービス制御部74は、当該複数の条件を示す認証要求を認証装置5に送信し、その認証応答の示す結果に応じて、上記認証条件が成立しているか否かを決定できる。なお、上記認証装置5が、ユーザ名(ユーザID)や認証データ(認証情報)などのユーザ情報を必要とする場合、サービス制御部74は、認証要求と共に、サービスを要求したユーザの認証情報を送信してもよい。
また、上記記憶部73には、上記各サービスに関連付けて、そのサービスの提供を開始した後、当該サービスを提供し続けるために必要な認証条件(継続条件)も記憶されている。一方、サービス制御部74は、あるサービスの提供を開始した後、それに関連付けて記憶された継続条件に基づいて、当該継続条件の評価タイミングを特定し、評価タイミングになったか否かを監視すると共に、評価タイミングになったことを検出すると、当該継続条件に応じた認証要求を認証装置5へ送信し、その認証応答の示す認証結果に応じて、上記サービスを提供し続けてもよいか否かを決定できる。
一例として、継続条件の評価タイミングとして時間間隔が指定された場合、サービス制御部74は、例えば、前回の認証終了時から経過時間に応じたカウントダウンを行うことによって、前回の認証終了時からの経過時間を計時するなどして、評価タイミングになったか否か(指定された時点になったか否か)を監視し、評価タイミングになった場合、継続条件に応じた認証要求を認証装置5へ送信できる。
例えば、図7では、サービスSrv1の継続条件として、最初のサービス提供前の認証だけではなく、サービス提供が続く間、10分に一回、継続的に同一の認証操作を要求することが記憶されており、サービス制御部74は、10分毎に、例えば、同一の認証条件(この場合はパスワードでの認証)を示す認証要求を認証装置5へ送信するなどして、提供時と同一の認証処理を行うように、認証装置5へ指示している。
同様に、図7では、サービスSrv3の継続条件として、最初のサービス提供前に一度認証条件”認証カウント≧100”を満足する認証操作を行った後、60分毎に認証操作を繰り返す処理を行うことが指定されている。このように、時間指定条件が課せられたサービス機能については、サービス制御部74は、最初の認証終了後、以下の動作、すなわち、当該時間指定条件が成立するか否かを監視して、指定された時点になると、再度認証操作を指示するという動作を繰り返すことができる。
なお、図7では、提供前と同一の認証処理を設定する場合を例示したが、継続条件は、その評価タイミング(認証タイミング)と、その際に必要な認証条件との組み合わせであってもよい。また、図7では、継続条件がなく、サービス提供前の認証のみで充分な場合を、”Initially Once”と記載している。したがって、図7の例では、サービスSrv2は、最初のサービス提供前に一回だけ認証条件”Fingerprint”、すなわち、指紋認証を行うことを要求している。
また、これに伴なって、本実施形態に係る記憶部73には、例えば、図8に示すように、継続条件の評価タイミングとして時間間隔が指定された場合に継続条件の評価タイミングになったか否かを判定するための情報も記憶されており、サービス制御部74は、当該情報を参照して、次の評価タイミングになったか否かを決定している。
なお、図8では、上記情報として、次回の認証を開始する時点を示す情報(図の例では、次回認証の予定時刻)と、次回の認証結果を判定する時点を示す情報(図の例では、認証判断の満了時刻)とが記憶されているが、これらの情報は、例えば、前回認証時点と上記時間間隔との組み合わせ、あるいは、前回認証時点からの経過時間または次回認証時点までの時間などの情報として記憶されていてもよい。また、図9は、図8に示す認証フラグのデータ構造(後述)を示している。
ところで、例えば、認証に失敗した場合など、要求されたサービスを提供することができないと判定した場合、サービス制御部74は、例えば、通信処理部72を介して端末装置3へ指示するなどして、直ちにサービスを提供できない旨をユーザに通知させてもよいが、本実施形態に係るサービス制御部74は、その場合、オプション提示モードでの動作も可能なように構成されている。
当該オプション提示モードは、要求されたサービス(対象サービス)を提供することができないと判定した場合に、そのサービスの代替サービスとして予め定められたサービスを通知して、ユーザに利用を促すモードである。
本実施形態では、対象サービスと同じカテゴリのサービスが代替サービスとして定められており、上記記憶部73には、例えば、図10に示すように、各サービスがいずれのカテゴリに属しているかを示す情報(図の例では、サービスカテゴリ)が記憶されている。一方、サービス制御部74は、オプション提示モードが有効に設定されている場合、上記記憶部73を検索して、上記対象サービスと同一カテゴリのサービスの有無、すなわち、代替サービスの有無を確認できる。
さらに、サービス制御部74は、当該サービスが見つかった場合は、例えば、通信処理部72を介して端末装置3へ指示するなどして、そのサービスを代替サービスとしてユーザに提示させることができる。
ここで、対象サービスの代替サービス全てを通知してもよいが、本実施形態に係るサービス制御部74は、代替サービスを通知する際、提供の可能性を判断して、提供が不可能なサービスを除外し、提供の可能性があるサービス(選択可能なサービス)のみを通知している。当該提供が不可能なサービスとしては、例えば、既に指紋認証に失敗している状態における指紋認証を必須とするサービスなど、現在、そのユーザが認証に失敗している認証方法(あるいは認証デバイス51)での認証を必須とするサービスなどが挙げられる。この場合、サービス制御部74は、例えば、図11に示すように、記憶部73に、そのユーザが既に失敗した認証方法を示す履歴情報(図中では、”×”と図示)を記憶すると共に、記憶部73に格納された各サービスの認証条件と、当該履歴情報とを比較するなどして、提供の可能性があるか否かを判断できる。また、サービス制御部74は、提供が不可能なサービスとして、例えば、そのユーザに提供できないと予め設定されているサービスを除外してもよい。
さらに、本実施形態に係るサービス制御部74は、代替サービスを通知する際、提供の可能性(充足可能性)を判断して、認証条件が厳しく提供が難しいと判断したサービスも除外し、当該対象サービスよりも認証条件の緩やかなサービスを通知している。
なお、認証条件が緩やかなサービスとしては、例えば、対象サービスと比較して、認証レベルがより低いサービス、認証カウント値がより低いサービス、あるいは、課せられる条件の数がより少ないサービスなどが挙げられ、本実施形態に係るサービス制御部74は、例えば、各サービスついて、記憶部73に格納された認証条件、あるいは、その認証条件を認証カウントまたは認証レベルに変換した値に基づいて、対象サービスよりも認証条件の緩やかなサービスの有無を確認している。
また、提供可能な代替サービスが複数見出された場合、サービス制御部74は、それら全てを通知してもよいし、例えば、それらを予め定められた順番に従って並べた場合に、予め定められた順位まで(例えば、最初のサービスのみなど)通知するなど、その一部を選択して通知してもよい。また、複数の代替サービスを通知する場合は、一部を通知するか全部を通知するか否かに拘わらず、予め定められる順番で通知する方が望ましい。選択/通知に使用する順番としては、例えば、サービスの名称の順番、および、サービスを提供するために必要な認証カウントの順番などを好適に使用できる。
以下では、一例として、1つの代替サービスのみを通知する場合の動作について説明する。すなわち、本実施形態に係るサービス制御部74は、対象サービスを提供できず、しかも、オプション提示モードが有効な場合、図12に示すS21において、記憶部73を参照して、当該対象サービスと同一カテゴリに属する他のサービス(代替サービス)の抽出を試み、S22において、抽出された代替サービスの有無を判定する。
代替サービスが抽出された場合(上記S22にてYES の場合)、サービス制御部73は、S23において、記憶部73を参照し、代替サービスとして抽出された全サービスの認証条件を確認し、S24において、そのそれぞれについての充足可能性を判定する。なお、上述したように、サービス制御部74は、各サービスの認証条件の中に、先に失敗した認証手続きにおける認証条件が内部に含まれるか否かを確認し、そのような認証条件が含まれなかったものを充足可能なサービスとして抽出している。
さらに、充足可能なサービスが見つかると(上記S24にて「あり」の場合)、サービス制御部74は、S25において、当該充足可能な代替サービスとして残されたサービスの集合の中で、1つのサービスをオプションとして選択すると共に、当該サービスを示すサービス応答として端末装置3に通知して、オプション提示の処理を終了する。
これとは逆に、同一カテゴリのサービスが存在しなかった場合(上記S22にてNOの場合)、あるいは、認証条件の充足可能性に関する判定の結果、オプションとなり得るサービスが存在しなかった場合(上記S24にて「なし」の場合)、サービス制御部74は、S26において、オプション抽出が失敗したこと(代替サービスもないこと)を示すサービス応答を端末装置3に通知して、オプション提示の処理を終了する。
このように、本実施形態に係るサービス管理装置7は、要求されたサービスを提供することができないと判定した場合に、そのサービスの代替サービスを検索し、代替サービスがあれば、その代替サービスを通知している。これにより、ユーザは、要求したサービスの提供が受けられない場合に、サービス管理システム1からの提示によって、その代替サービスを速やかに把握でき、よりユーザの操作しやすいサービス管理システム1が実現されている。
さらに、本実施形態に係る記憶部73には、例えば、図11に示すように、ユーザが、それによる認証に成功している認証デバイス51、あるいは、ユーザが既に認証に成功している認証方法の情報(履歴情報)がサービス制御部74によって格納されており、当該サービス制御部74は、あるユーザから要求されたサービスに関して上記認証装置5に認証を要求する際、他のサービスにおいて、そのユーザが既に認証に成功している認証方法(認証デバイス51)が記憶部73に記憶されていれば、当該認証方法(認証デバイス51)による認証に成功していると見なして、その認証方法(認証デバイス51)での認証指示を省略できる。
例えば、図7に示すように、サービスSrv1には、パスワードでの認証が必要であり、サービスSrv4には、パスワードと指紋との双方での認証を必要とすると設定されている場合、通常であれば、サービス制御部74は、サービスSrv4の提供が要求された場合、認証装置5へパスワードおよび指紋での認証を要求する。ところが、例えば、あるユーザにサービスSrv1が既に提供されている状態のように、当該ユーザがパスワード認証に成功していることを示す情報(図11では”○”と図示)が記憶されている状態において、当該ユーザからサービスSrv4の提供が要求されると、サービス制御部74は、当該情報に基づいて、上記パスワードおよび指紋での認証のうち、パスワードでの認証を省略し、認証装置5へ指紋での認証を要求する。
これにより、他のサービスを提供する際に行われている認証処理に拘わらず、常に同じ認証処理を行う構成に比較して、不必要な認証処理を省略でき、ユーザの負担を軽減できる。ここで、省略された認証処理は、既に、ユーザまたはユーザの使用する機器が成功している認証処理なので、当該処理を省略しても、安全性を低下させずに、ユーザまたはユーザの使用する機器を認証できる。
なお、上記では、他のサービスでの認証処理の状態を示す情報として、他のサービスにおいて、そのユーザが既に認証に成功している認証方法または認証デバイス51を記憶する場合について説明したが、それとは逆に、他のサービスにおいて、そのユーザが既に認証に失敗している認証方法または認証デバイス51を記憶部73に記憶し、サービス制御部74は、その認証方法または認証デバイス51での認証に失敗したと判断して、サービス提供の可否を判断してもよい。この場合は、ある認証方法または認証デバイス51での認証の試行が不正なユーザによって繰り返されることを防止でき、安全性を向上できる。いずれであっても、他のサービスでの認証処理の状態を示す情報を記憶部73などの記憶装置に記憶すれば、サービス制御部74は、当該情報を参照することによって、当該サービスとは別のサービスに関わる認証手続きを引き続き行うシーケンスにおいて有効な情報を得ることができる。
さらに、本実施形態に係るサービス制御部74は、例えば、図13に示す対応表など、認証レベルと認証カウントとを相互に変換するための情報を記憶しており、一方を他方に変換できる。これにより、例えば、認証条件として認証レベルのみが指定されたサービス(例えば、図7に示すサービスSrv5など)を提供する際、認証装置5がセキュリティレベルの指定を認証レベルではなく認証カウントでのみ受け付ける場合であっても、当該認証レベルに対応する認証カウントを示す認証要求を認証装置5に送信して認証させることができる。この結果、認証レベルでセキュリティレベルを受け付ける認証装置5と、認証カウントでセキュリティレベルを受け付ける認証装置5とが混在しているサービス管理システム1において、サービス提供者が認証レベルと認証カウントとの双方を指定しなくても、何ら支障なく、各認証装置5に認証させることができる。したがって、サービス提供者の負担を軽減しつつ、大規模なサービス管理システム1を比較的容易に提供できる。
例えば、図13の例では、各認証レベル”None”〜”L5”に対応して、認証カウントの範囲が記憶されている。これにより、サービス制御部74は、これらの認証カウントの範囲のうち、変換対象となる認証カウントが属している範囲を抽出することによって、認証カウントを認証レベルに変換できる。これとは逆に、サービス制御部74は、例えば、認証レベルに対応して記憶されている認証カウントの範囲を上記対応表から読み出すと共に、その上限値を変換後の認証カウントとするなどして、認証レベルを認証カウントに変換できる。
本実施形態に係るサービス管理装置7および認証装置5は、例えば、双方に互いに同じ内容の情報を予め格納したり、一方が他方へ通知するなどして、上記認証レベルと認証カウントとを相互に変換するための情報と、各認証装置51の組み合わせが提供可能な認証レベルおよび認証カウントの情報とを共有している。なお、上記各装置5・7は、これらの情報を含む認証要求または認証応答を送信して、これらの情報をやり取りしてもよい。
なお、上記では、サービス制御部74が予め用意された上記対応表を参照して認証レベルと認証カウントとを相互に変換する場合について説明したが、これに限るものではない。例えば、認証要求を送信する認証装置5が決まっている場合など、認証に使用される認証デバイス51が明確になっており、認証装置5(認証デバイス51)側に変換後の値(例えば、認証レベルから認証カウントへ変換する場合は認証カウント)が記憶されている場合は、サービス制御部74が認証装置5(認証デバイス51)へ問い合わせて、変換後の値を取得してもよい。また、必要になる度に変換してもよいが、本実施形態に係るサービス制御部74は、各サービスに対応する認証レベルおよび認証カウントの一方が欠落している場合、予め一方を他方に変換して、その変換結果をサービスに関連付けて記憶している。
さらに、本実施形態に係るサービス制御部74は、上記のように、予め設定された認証条件の示す認証要求を送信する通常モードに加えて、カウント優先モードでの処理も可能なように構成されている。当該カウント優先モードが有効な場合、サービス制御部74は、認証条件が認証レベルおよび認証カウントのいずれでもない場合(例えば、認証方法の場合など)に、当該認証条件を認証レベルまたは認証カウントに変換し、変換後の認証レベルまたは認証カウントを示す認証要求を送信する。
具体的には、本実施形態に係るサービス制御部74は、上記認証レベルおよび認証カウントの相互変換と同様、予め記憶された対応表(図示せず)を参照したり、認証装置5に問い合わせたりして、認証レベルおよび認証カウント以外の認証条件(この場合は、認証方法)を認証カウントに変換できる。なお、当該認証カウントは、必要になる度に変換してもよいが、図7の例では、サービス制御部74が各サービスの認証条件を予め認証カウントに変換し、変換後の認証カウントを各サービスに関連付けて記憶部73に記憶している。
さらに、サービス制御部74は、カウント優先モードでの処理が指定された場合、例えば、記憶部73を参照するなどして、変換後の認証カウントを取得し、認証レベルおよび認証カウント以外の認証条件での認証に代えて、当該認証カウントでの認証を認証装置5へ指示できる。
当該カウント優先モードでは、認証カウント以外の認証条件が指定された場合でも認証カウントでの認証が指示されるので、サービス管理システム1における認証処理を簡略化できる。したがって、特に、認証装置5における認証デバイス51の特性が明らかになっている場合、あるいは、要求されるセキュリティ強度にブレがないと判断できるときに好適に使用できる。
また、カウント優先モードに設定されていれば、認証装置5が、あるサービスで必要な認証方法をサポートしていない場合であっても、それと同等のセキュリティのレベルを提供できると予め定められた認証方法をサポートしていれば、その認証方法で認証することができる。この結果、サービスの提供者は、例えば、上記記憶部73に認証条件を直接設定したり、サービス管理装置7が記憶部73に認証条件を設定する際に参照する情報に、認証条件を示す情報を設定したりして、提供するサービスに必要な認証条件を設定する際、ある認証方法と同程度の認証のように、より柔軟に、認証条件を設定できる。
さらに、本実施形態に係るサービス制御部74は、認証条件が複数の条件から構成されている場合に当該認証要求を各条件に細分化し各条件を示す認証要求を個別に送信する逐次処理モードでの処理が可能である。これにより、サービス制御部74が各認証要求の送信タイミングを制御することによって、認証処理のタイミングをサービス管理装置7から制御できる。したがって、認証装置5の構成に拘わらず、サービス管理装置7は、例えば、パスワード認証と指紋認証とがある場合は、常に指紋認証を先に実施させるなど、特定の順番で認証装置5に認証処理を行わせることができ、認証条件が複数の条件から構成されている場合の安全性を、さらに向上できる。
なお、上記オプション提示モード、カウント優先モードおよび逐次処理モードは、各サービスに共通して設定されていてもよいが、本実施形態に係るサービス管理装置7では、各サービス(より詳細には、後述するように、認証処理毎)に関連付けてモードの情報(図8および図9の例では認証フラグ)が記憶部73に格納されており、サービス制御部74は、これらの情報のうち、サービス提供要求に関連付けられた情報を参照して、当該サービス提供要求に応じた認証要求を生成する際のモードを決定している。これにより、サービス提供者は、例えば、ある認証方法が不可欠なサービスについては、カウント優先モード以外のモードに設定するなどして、より的確に認証条件を設定できる。
また、本実施形態に係るサービス制御部74は、上記各モードの有効/無効を切り替えるための制御用インタフェースを備えており、外部からの制御が可能である(デフォルト状態は、各モードオフ)。
上記構成において、サービス管理システム1がサービス要求時にサービス提供を許可する際の動作の概略について、図14〜図25に基づき説明すると、以下の通りである。すなわち、例えば、ユーザの入力操作などによって、サービス提供が要求されると、端末装置3は、当該サービスを示すサービス要求をサービス管理装置7へ送信する(図14に示すt1の時点)。なお、図14では、一例として、サービスSrv2の提供が要求された場合を示しており、上記t1の時点では、サービスSrv2を示すサービス要求が送信される。
一方、サービス管理装置7の通信処理部72が、図15に示すS31において、サービス要求を受け付けると、サービス管理装置7のサービス制御部74は、例えば、当該サービス要求をデコードするなどして、サービス要求の内容を解釈し、S32において、記憶部73を参照して、当該サービスに対応する認証条件を特定する。さらに、例えば、認証が必要であり、認証条件が設定されていると判断すれば(S33にてYES の場合)、サービス制御部74は、S34において、当該認証条件に応じた認証要求を認証装置5へ送信する(図14に示すt2の時点)。
ここで、図7に示す例では、記憶部73には、サービスSrv2に対応する認証条件として、指紋での認証が記憶されている。したがって、上記t2の時点では、指紋での認証を示す認証要求が、端末装置3を介して認証装置5へ伝えられる。
当該認証装置5は、認証要求を受け取ると、複数の認証デバイス51の中から、当該認証要求に応じた、1または複数の認証デバイス51を選択し、その認証デバイス51に、ユーザまたはユーザの使用する機器を認証させると共に、認証結果を示す認証応答をサービス管理装置7へ返信している(図14に示すt3の時点)。なお、端末装置3は、認証装置5からの認証応答をサービス管理装置7へ中継する際、例えば、出力装置32へ認証結果を出力するなどして、ユーザに認証応答の示す認証結果を通知してもよい。
ここで、図14では、一例として、認証に成功した場合を示しており、成功を示す認証応答が、端末装置3を介してサービス管理装置7へ伝えられる。なお、図16に示すように、端末装置3および認証装置5は、認証要求から認証応答までの間(Taの期間)に、認証操作に関するインタラクションを行ってもよいが、図14および後述の各シーケンス図では、説明の便宜上、端末装置3と認証装置5とのやり取りとして、認証要求および認証応答のみを代表して図示している。
上記インタラクションとしては、例えば、端末装置3が認証装置5へ認証要求を送信した後、認証装置5がステータス通知を端末装置3へ送信して、ユーザに操作を促すように端末装置3へ指示する処理が挙げられる。より詳細には、端末装置3は、指紋での認証要求を認証装置5へ送信した後、認証装置5から受信したステータス通知によって、認証装置5が認証デバイス51への操作実行命令を発行したことを把握し、ユーザに対して、指を認証デバイス51へ配置させるなどの操作を促す内容の情報を、出力装置32へ出力する。これにより、端末装置3は、適切なタイミングでユーザに認証操作を指示でき、ユーザは、適切なタイミングで認証デバイス51を操作できる。
一方、サービス管理装置7のサービス制御部74は、S35において、当該認証応答を受け付けると、当該認証応答に基づいて、上記S32にて抽出した認証条件を満たしているか否かを判定し、満たしていると判定した場合(S36にてYES の場合)、S37において、サービス処理部71へサービス提供を指示する。この場合、サービス処理部71は、サービス結果を端末装置3へ送信して、端末装置3にサービス結果を提示させる(図14に示すt4の時点)。
また、サービス管理装置7のサービス制御部74は、上記S35にて受信した認証応答に基づいて、記憶部73の履歴情報を更新している。さらに、サービス制御部74は、上記S37にて提供したサービスに関連付けられた継続条件に応じて、次に監視すべきイベントを設定している。
なお、図14では、サービスに応じた認証条件として、1つの認証方法が指定されている場合を例にして説明したが、例えば、認証カウントや複数の認証方法での指定での指定など、他の認証条件が設定されているサービスが要求された場合でも、サービス管理装置7は、上記と同様に動作して、当該認証条件に関連して設定された認証条件に応じた認証要求を送信する。
一例として、図17に示すように、ユーザがサービスSrv3を要求した場合、t1bの時点でサービスSrv3を示すサービス要求が送信される。ここで、図7に示す例では、サービスSrv3には、認証条件として、認証カウントによる認証が設定されている。したがって、サービス制御部74は、t2bの時点において、認証カウントを示す認証要求を送信し、図14の場合と同様に認証が成功すると、認証装置5は、t3bの時点において、認証成功を示す認証応答を送信する。これに応じて、サービス管理装置7は、t4bの時点において、例えば、端末装置3にサービス結果を示すサービス応答を送信して、端末装置3にサービスSrv3のサービス結果を提示させる。
また、図18に示すように、サービスSrv4が要求された場合、t1cの時点でサービスSrv4を示すサービス要求が送信される。ここで、図7に示す例では、サービスSrv4には、認証条件として、複数の認証方法での認証、より詳細には、パスワードおよび指紋での認証が設定されている。したがって、サービス制御部74は、t2cの時点において、パスワードおよび指紋を示す認証要求を送信し、図14の場合と同様に認証が成功すると、認証装置5は、t3cの時点において、認証成功を示す認証応答を送信する。これに応じて、サービス管理装置7は、t4cの時点において、例えば、端末装置3にサービス結果を示すサービス応答を送信して、端末装置3にサービスSrv4のサービス結果を提示させる。
一方、これらとは逆に、ユーザまたはユーザの使用する機器が認証に失敗すると、認証装置5は、認証失敗を示す認証応答を送信する(図19に示すt3dの時点)。なお、図19は、サービスSrv2が要求された場合を示しており、認証に失敗するまでの期間における各機器間のやり取りは、図14と同一である。
この場合、サービス管理装置7のサービス制御部74は、当該認証応答に基づいて、認証条件を満たしていないと判断し(上記図15のS36にてNO)、S38において、オプション提示モードが有効か否かを判断する。さらに、サービス制御部74は、オプション提示モードが無効に設定されている場合(NOの場合)、S39において、例えば、端末装置3へサービス提供不可を示すサービス応答を送信するなどして、要求されたサービスを提供できないことをユーザに通知する(t4dの時点)。
また、認証条件を満たさなかった場合でも、オプション提示モードが有効に設定されている場合(上記S38にてYES の場合)には、サービス制御部74は、S40において、上記S31にて要求されたサービス(対象サービス)の代替サービスとして提供可能なサービスを検索し、例えば、端末装置3へ見出された代替サービスを示すオプション情報が含まれたサービス応答を送信するなどして、見出された代替サービスをユーザに通知させる。
ここで、一例として、図18と同様、サービスSrv4が要求され、それに応じて、認証カウントでの認証を示す認証要求が出された場合に、ユーザまたはユーザの使用する機器が認証に失敗すると、図20に示すように、認証装置5は、t4fの時点において、認証失敗を示す認証応答を返信する。
ただし、図20は、図19の場合とは異なって、オプション提示モードが有効に設定されている場合を示している。したがって、サービス管理装置7のサービス制御部74は、t4fの時点において、サービス提供不可ではなく、代替サービスを示すサービス応答を端末装置3へ送信する。
ここで、図10および図7の例では、対象サービスとしてのサービスSrv4と同一カテゴリのサービスとしては、サービスSrv1が登録されている。また、当該サービスSrv1の認証方法の数は、サービスSrv4の認証方法の数よりも少なく、サービスSrv1は、サービスSrv4よりも認証条件が緩やかである。したがって、サービス管理装置7は、t4fにおいて、サービスSrv1を示すサービス応答を送信する。
ここで、通知された代替サービスをユーザが選択するなどして、端末装置3に新たなサービスの要求が指示されると、端末装置3は、当該サービスを示すサービス要求を送信し(t5fの時点)、それ以降は、上記S31以降の処理が繰り返される。なお、図20は、通知された代替サービス(Srv1)をユーザが選択した場合を例示しており、サービス制御部74は、サービスSrv1を示すサービス要求に応じて、指紋での認証を示す認証要求を端末装置3を介して認証装置5に送信する。
なお、図15において、要求されたサービスが認証不要であると判断した場合(上記S33においてNOの場合)、サービス制御部74は、認証装置5へ認証を指示することなく、上記S37において、サービス処理部71にサービス提供を指示する。
ところで、上記では、例えば、図6および図18に示すように、複数の条件からなる認証条件を示す認証要求を受け付けたとき、認証装置5が認証要求の示す認証条件にマッチした認証デバイス51による認証結果を総合して認証条件を満足したか否かを示す認証応答を返信する場合について説明したが、認証装置5は、各認証デバイス51による認証結果、あるいは、個々の条件による認証結果を個別に応答してもよい。
一例として、図18と同様に、サービスSrv4が要求された場合について説明すると、図21に示すように、サービス管理装置7は、t1cの時点におけるサービスSrv4を示す認証要求に応じ、t2cの時点において、パスワードおよび指紋を示す認証要求を送信する。
ただし、図21の例では、個々の条件による認証結果が個別に応答されており、認証装置5は、パスワード認証に成功したt11gの時点において、パスワード認証の成功を示す認証応答を端末装置3を介してサービス管理装置7に送信する。同様に、認証装置5は、指紋認証に成功したt12gの時点において、指紋認証の成功を示す認証応答を端末装置3を介してサービス管理装置7に送信する。
この場合、サービス管理装置7のサービス制御部74は、上記各認証応答に基づいて、認証条件を満たしているか否かを判断する。この場合、双方での認証に成功しているので、サービス管理装置7は、図18と同様、端末装置3にサービスSrv4のサービス結果を提示させる(t4cの時点)。なお、この場合、全ての認証応答を受け取るまではサービス提供の可否を判断できないので、サービス制御部74は、全ての認証応答を受け取るまではサービスを提供せずに待機し、全ての認証応答を受信した時点でサービス提供可と判断する。
また、上記では、通常モードが有効に設定されており、サービス管理装置7が予め設定された認証条件の示す認証要求を送信する場合について説明したが、カウント優先モードが有効な場合は、例えば、図22に示すように動作する。
ここで、図22は、図18と同様、サービスSrv4が要求された場合を示しており、t1cにおいて、端末装置3は、サービスSrv4を示すサービス要求をサービス管理装置7に送信する。ここで、図7の例では、サービスSrv4の認証条件としてパスワードおよび指紋での認証が設定されているので、通常モードであれば、パスワードおよび指紋での認証を示す認証要求が送信される筈である。
ところが、この場合、サービス管理装置7のサービス制御部74がカウント優先モードで動作しているので、サービス制御部74は、上記パスワードおよび指紋での認証を変換して生成された認証カウント(図7の例では、70)を示す認証要求を送信する(t2hの時点)。この場合、認証装置5は、図17において認証カウントでの認証要求が通知された場合と同様に、当該認証カウント以上の認証が可能な認証デバイス51の組み合わせを選択し、その認証デバイス51での認証結果を示す認証応答を送信する(t3hの時点)。なお、図22は、図18と同様に、認証に成功した場合を示しており、サービス管理装置7は、t4cの時点において、端末装置3にサービスSrv4のサービス結果を提示させる。
一方、逐次処理モードが有効な場合は、例えば、図23に示すように動作する。具体的には、図18と同様に、サービスSrv4を示すサービス要求を受け付けると、サービス管理装置7のサービス制御部74は、図18と同様に、指紋およびパスワードでの認証が必要であると判断する。
ただし、この場合、上記サービス制御部74が逐次処理モードに設定されているので、サービス制御部74は、例えば、その認証条件をパーズするなどして、その認証条件を1つずつ細分化すると共に、細分化された条件毎に、その条件での認証を示す認証要求を順次発呼する。この場合は、指紋およびパスワードでの認証が必要なので、サービス制御部74は、パスワードを示す認証要求と指紋を示す認証要求とを予め定められたタイミングで送信する。
ここで、図23は、タイミングの一例として、指紋認証に成功した場合にのみ、パスワード認証を要求するように設定されている場合を示しており、サービス制御部74は、まず、t11iの時点で、指紋認証を示す認証要求を送信する。一方、認証装置5は、当該認証要求に応じて、指紋での認証を行い、t12iの時点で認証結果(この例では、成功)を示す認証応答を返信する。当該認証応答を受け付けると、上記サービス制御部74は、その成否を解釈し、次の認証要求が必要であるか否かを判断する。
この場合、認証応答が成功を示している。したがって、サービス制御部74は、次の認証要求として、パスワード認証が必要と判断して、パスワード認証を示す認証要求を送信し(t13iの時点)、認証装置5は、当該認証要求にマッチした認証を行った後、その認証結果を示す認証応答を送信する(t14iの時点)。なお、上記認証応答の成否解釈、および、次の認証要求の要否判断は、例えば、これまでの認証応答によって認証条件の成否が判定でき、次の認証要求が不要であると判断されるか、あるいは、次の認証要求がなくなるまで繰り返される。
上記の例では、指紋およびパスワード認証の双方に成功しており、次の認証要求がなくなった時点で、サービス制御部74は、各認証応答に基づいて、サービスSrv4を提供可と判断する。したがって、サービス制御部74は、図18と同様に、t15iの時点において、端末装置3にサービスSrv4のサービス結果を提示させる。
なお、上記では、指紋およびパスワード認証の双方に成功した場合を例示しているが、指紋認証に失敗した場合、サービス制御部74は、その認証応答を受け付けた時点で、次の認証要求が不要であり、しかも、サービスSrv4の認証条件を満たしていないと判断する。したがって、この場合は、サービス制御部74は、パスワードでの認証要求を送信せず、図19または図20と同様に、サービス提供不可または代替サービスを端末装置3へ通知する。
ところで、上記では、他のサービスが提供されていない場合を例にして説明したが、上述したように、サービス制御部74は、他のサービスが提供されている場合は、そのサービスでの提供時に成功した認証が既に成功していると見なして、その認証方法(認証デバイス51)での認証指示を省略している。
以下では、一例として、あるユーザに対して、サービスSrv1が既に提供されている状態において、図18と同様に、サービスSrv4が要求された場合について、図24を参照しながら説明する。すなわち、サービスSrv4を示すサービス要求を受け付けると、サービス制御部74は、図18と同様に、記憶部73を参照して、パスワードおよび指紋での認証が必要であると判断する。
ただし、図24の場合には、上記ユーザに対してサービスSrv1が既に提供されており、サービス制御部74は、ユーザおよび認証方法(または認証デバイス51)に関連付けて、例えば、図11に示すように、当該サービスSrv1を提供する際に行われた認証(パスワード認証)に成功したことを示す履歴情報が記憶部73に記憶されている。
したがって、サービス制御部74は、上記パスワードおよび指紋での認証のうち、記憶部73において、既に認証に成功していると記憶されている認証方法(この場合は、パスワード認証)が不要であると判断し、t2jの時点において、指紋での認証を示す認証要求を送信する。一方、認証装置5は、これに応じてユーザを指紋で認証し、t3jの時点において、その認証結果(図の例では、成功)を示す認証応答を送信する。また、サービス管理装置7は、当該認証応答(指紋認証成功)と、上記記憶部73に格納されている認証結果(パスワード認証成功)とに基づいて、サービスSrv4の認証条件が満たされていると判断し、図18の場合と同様に、端末装置3にサービスSrv4のサービス結果を提示させる(t4jの時点)。
なお、図24では、通常モードの場合について説明したが、カウント優先モードの場合には、図25に示すやり取りが行われる。すなわち、サービスSrv4を示すサービス要求を受け付けると、サービス制御部74は、図24と同様に、記憶部73を参照して、パスワードおよび指紋での認証のうち、指紋での認証のみが必要であると判断する。
ただし、カウント優先モードなので、サービス制御部74は、図22と同様に、指紋での認証を変換して生成された認証カウント(この例では、60)を示す認証要求を送信する(t2kの時点)。この場合、認証装置5は、図22と同様に、当該認証カウント以上の認証が可能な認証デバイス51の組み合わせを選択し、その認証デバイス51での認証結果を示す認証応答を送信する(t3kの時点)。なお、図24も、図22と同様に、認証に成功した場合を示しており、サービス管理装置7は、t4cの時点において、端末装置3にサービスSrv4のサービス結果を提示させる。
ところで、上記では、サービス要求時の処理について説明したが、上述したように、サービス管理装置7には、継続条件を設定することができ、サービス管理装置7は、あるサービスの提供を開始した後、継続条件の示す評価タイミングになったか否かを監視し、当該評価タイミングになると、当該継続条件に基づいて、当該サービスを提供し続けてもよいか否かを再検討できる。以下では、その際の動作について、図26および図27を参照しながら説明する。
すなわち、本実施形態に係るサービス制御部74は、図26に示すS51において、あるサービスの提供を開始した後、当該サービスの継続条件に基づいて、評価タイミングになったか否かを監視している。
評価タイミングになったことを検出すると(上記S51にてYES の場合)、サービス制御部74は、S52において、図15のS32と同様に、記憶部73を参照して当該サービスの継続条件の示す認証条件を特定する。その後は、図15に示すS33以降の処理と同じ処理が行われ、サービス管理装置7は、当該継続条件に応じた認証要求を認証装置5へ送信して、認証装置5に認証要求にマッチする認証デバイス51で、ユーザまたはユーザの使用する機器を認証させると共に、その認証応答に基づいて、サービス提供の適否を判定する。
ここで、図27は、サービスSrv1が提供中である場合を例示しており、図7の例では、サービスSrv1の継続条件として、10分毎にパスワード認証することが記憶されている。したがって、サービス制御部74は、前回の認証時から10分が経過した後の時点(t21mの時点)において、パスワードでの認証を示す認証要求を、端末装置3を介して認証装置5へ送信する。
その後は、図15に示すS35〜S40と同様の処理が行われ、サービス管理装置7は、図14に示すt3およびt4の時点と同様に、t22mにおける認証装置5からの認証応答に基づいて、サービスを提供し続けるか否かを決定し、t23mにおいて、決定に応じたサービス応答(この場合は、サービスSrv1のサービス結果)を端末装置3に送信する。
以下では、図4および図5を参照しながら、認証制御部53の構成例および記憶部54に記憶されるデータの具体例について、さらに詳細に説明する。すなわち、本構成例に係る記憶部54には、図5に示す認証デバイス属性情報テーブルT1が設けられている。
当該認証デバイス属性情報テーブルT1には、上記認証デバイス51の組み合わせのそれぞれに対応するレコードR11〜R17が記憶されている。なお、本構成例では、3つの認証デバイス51が設けられているので、それらの全ての組み合わせに対応して7つのレコード(一般には、n個の認証デバイス51に対して2n −1個のレコード)が設けられているが、上述したように、組み合わせが不可能な場合、あるいは、他のレコードから算出できる場合は、全ての組み合わせに対応するレコードが記憶されていなくてもよい。
各レコードR11…には、上記対応する組み合わせがサポートする認証方法を格納すrフィールドF1aが設けられている。当該フィールドF1aには、サービス管理装置7からの認証要求によって通知される認証方法を示す情報であって、しかも、上記対応する組み合わせによってサポートされる認証方法が格納されており、認証制御部53は、認証方法を示す認証要求を受け付けた場合、当該フィールドF1aと認証要求とを比較することによって、認証要求に応じた認証方法に対応するレコードを抽出できる。本実施形態では、一例として、認証要求には、各認証方法を示す予め定義された文字列が含まれている。これに対応して、上記フィールドF1aには、上記対応する組み合わせによってサポートされる認証方法を示す上記定義済みの文字列の組み合わせが記憶されている。なお、図5の例では、パスワードで認証する認証デバイス51aに対応するレコードR11では、フィールドF1aに、”Password”が記憶されており、指紋で認証する認証デバイス51cに対応するレコードR13では、フィールドF1aに”Fingerprint”が記憶されている。また、図5の例では、各認証方法を示す文字列同士のセパレータが改行によって図示されている。なお、上記では、文字列が直接格納されている場合を例示したが、当然ながら、上記対応する組み合わせによってサポートされる認証方法を間接的に参照するための情報が含まれていてもよい。
また、上記各レコードR11…には、上記対応する各組み合わせによって達成できる認証レベルが格納されるフィールドF1bと、上記対応する各組み合わせによって達成できる認証カウントが格納されるフィールドF1cとが設けられている。本実施形態では、当該フィールドF1cには、認証レベルを示す数値が記憶されており、フィールドF1bには、認証レベルを示す定義済み情報(図の例では、”None”、”L1”、”L2”、…、”L5”)が記憶されている。
さらに、上記各レコードR11…には、認証装置5の管理下にある認証デバイス51の組み合わせを一意に示す情報が格納されるフィールドとして、フィールドF1d・F1eが設けられている。フィールドF1dには、組み合わせを一意に示す番号が格納されており、認証装置5は、認証デバイス属性情報テーブルT1にレコードR11…を登録する際に、当該レコードR11…に、一意な管理番号を割り当て、当該フィールドF1dに格納している。一方、フィールドF1eには、認証デバイス51の認証IDの組み合わせを示す情報が格納されている。認証IDは、認証装置5の管理下にある認証デバイス51を一意に示すIDであって、当該認証デバイス51がサポートする認証方法と、認証装置5の管理下にある認証デバイス51のうち、互いに同じ認証方法を持った認証デバイス51間で一意な番号とを示している。
図5の例では、パスワード認証、PIN認証および指紋認証が、それぞれ、”PW”、”PIN”および”FP”として記憶されている。また、認証デバイス51aは、パスワードによる1番目の認証デバイス51であり、認証デバイス51bおよび51cは、PIN認証または指紋認証を行う認証デバイス51の中で、それぞれ1番目の認証デバイス51である。したがって、当該認証デバイス51aに対応するレコードR11では、フィールドF1eに、”PW1”が記憶され、認証デバイス51bおよび51cに対応するレコードR12およびR12では、それぞれのフィールドF1eに、”PIN1”あるいは”FP1”が格納されている。また、図5の例では、フィールドF1eにおいて、複数の認証IDの組み合わせは、各認証IDを”+”でつなぐことによって表現されている。
また、上記各レコードR11…には、さらに、認証デバイス51の説明の組み合わせを格納するフィールドF1fが設けられている。図5の例では、当該認証デバイス51の説明として、認証デバイス51の機能および形態に関する簡単な説明が記憶されている。なお、当該説明としては、例えば、後述するデバイス記述情報のサブセットなどが好適に使用される。また、図5に例示するフィールドF1fでは、フィールドF1eと同様に、各認証デバイス51の説明を”+”でつなぐことによって表現されている。
さらに、当該構成例に係る認証デバイス属性情報テーブルT1では、各認証デバイス51にアクセスするための情報を格納するフィールドF1gが、各レコードR11…に設けられている。図5の例では、当該情報として、認証デバイス51へのアクセスに必要なポートアドレスの先頭が格納されている。なお、図5の例では、認証デバイス51の組み合わせに対応するレコードR14〜R17のフィールドF1gは、空欄になっており、認証制御部53は、当該フィールドF1が空欄であった場合、その組み合わせを構成する各認証デバイス51に対応するレコードを抽出し、そのフィールドF1gを参照することによって、その組み合わせを構成する各認証デバイス51にアクセスするために必要な情報を取得できる。一例として、認証デバイス51は、例えば、そのフィールドF1eに記述されている各認証IDの組み合わせから、その組み合わせを構成している各認証デバイス51の認証IDを特定し、各認証IDに対応するレコードを抽出するなどして、各認証デバイス51に対応するレコードを抽出できる。
また、当該構成例に係る認証デバイス属性情報テーブルT1には、各認証デバイス51に関連して、予め用意されているデバイス記述情報の参照先を格納したフィールドF1hが、各レコードR11…に設けられている。当該デバイス記述情報は、当該デバイスのアドレス、I/Oなどハードウェアリソースに関する情報の他、コンフィグレーションに必要な情報および機能概略を含む情報であって、例えば、認証デバイス51の製造者の作成したデバイスドライバのファイルなどとして記憶されている。なお、認証デバイス51が複数のデバイスにより構成されており、各デバイスにデバイス記述情報が用意されている場合、フィールドF1hには、複数のデバイス記述情報への参照先が格納される。
一方、本構成例に係る認証制御部53は、図4に示すように、通信処理部52の受信した認証要求を元にして、当該認証装置5の持つ認証デバイス51の中から当該認証要求に応答する際に使用する認証デバイス51を選択するための認証機能選択部61と、認証機能選択部61により選択された認証デバイス51に対する実行指示を行う認証機能実行部62と、認証装置5が具備する認証デバイス51それぞれの有する機能に関する情報管理、並びに、認証要求および認証応答に関する管理・制御を行う認証機能管理部63とを備えている。
ここで、認証機能実行部62は、認証機能選択部61からの指示に応じて動作してもよいが、本実施形態では、認証機能管理部63が一連の認証動作を行うための中核モジュールとして機能しており、認証機能管理部63は、上記認証機能選択部61および認証機能実行部62に対する指示を行っている。
上記認証機能選択部61は、認証機能管理部63からの指示に従い、記憶部54に格納された上記認証デバイス属性情報テーブルT1を参照して、与えられた認証要求を満足するために適切な認証デバイス51を選択できる。ここで、認証デバイス属性情報テーブルT1には、上述したように、認証装置5に具備されている認証デバイス51の機能等に関する情報が記憶されている。したがって、認証機能選択部61は、当該認証デバイス属性情報テーブルT1を参照して当該情報を取得することによって、条件付き認証要求が外部機器から与えられたとしても、何ら支障なく、適切な認証デバイス51を選択でき、選択結果を認証機能管理部63へ通知できる。なお、本構成例に係る認証機能選択部61は、例えば、上述した図6に示す認証デバイス選択アルゴリズムに基づいて、認証デバイス51を選択できる。
また、認証機能実行部62は、例えば、認証機能選択部61から選択結果を受けた認証機能管理部63からの指示などによって、認証機能選択部61により選択された認証デバイス51に対して、認証の実行を指示できる。さらに、ユーザまたはユーザの使用する機器が認証デバイス51に対して認証操作(例えば、指紋の入力あるいは署名情報の送信など)を行い、認証デバイス51が当該認証操作に基づいてユーザまたはユーザの使用する機器を認証すると、認証機能実行部62は、例えば、認証デバイス51からの通知などによって、認証デバイス51から認証の結果を取得し、当該認証結果を認証機能管理部63へ通知できる。また、認証機能実行部62は、例えば、認証機能管理部63からの指示などに応じて、各認証デバイス51のステータスを取得し、その結果を認証機能管理部63へ通知できる。
一方、上記認証機能管理部63は、上述したように、一連の認証動作、より詳細には、「通信処理部52を経由して通知される、外部機器からの認証要求に基づき、認証機能選択部61を用いて適切な認証手段を選択した上で、認証機能実行部62を通じて認証デバイス51に対する認証操作の実行指示を行い、操作に基づく認証結果を得た後に、その内容を通信処理部52を用い、外部機器に対して認証応答として送信する」という動作を行うための中核モジュールとして機能しており、例えば、認証機能実行部62を介して認証デバイス51へ指示するなどして、各認証デバイス51へ上述したイニシャル情報の登録、設定、選択および操作実行などを指示できる。
続いて、以下では、上記図1、並びに、図7〜図11を参照しながら、サービス制御部74の構成例および記憶部73に記憶されるデータの具体例について、さらに詳細に説明する。すなわち、本構成例に係る記憶部73には、図7に示すように、上記認証条件および継続条件などを含むサービス認証属性情報がサービスに関連付けて記憶されたサービス認証属性テーブルT2が設けられている。
具体的には、上記サービス認証属性テーブルT2には、各サービスSrv1〜Srv9のそれぞれに対応するレコードR21〜29が記憶されている。各レコードR21…には、サービス認証属性テーブルT2において、各サービスSrv1〜Srv9を一意に識別するため識別子が格納されたフィールドF2aが設けられている。本実施形態では、上記フィールドF2aには、上記各サービスSrv1〜Srv9を一意に示す番号が記憶されており、サービス制御部74は、各サービスを登録する際に、各レコードR21…に一意な管理番号を割り当て、当該フィールドF2aに格納できる。さらに、上記サービス認証属性テーブルT2には、認証条件および継続条件を、それぞれ格納するフィールドF2b・F2cが設けられている。
また、上記レコードR21…には、上記対応するサービスの提供に必要な認証レベルおよび認証カウントを、それぞれ格納するフィールドF2d・F2eが設けられている。サービス制御部74は、上記認証条件が認証レベルまたは認証カウントを示している場合、各フィールドF2d・F2eに、その認証レベルまたは認証カウントを格納できる。
ここで、サービス制御部74は、上述したように、認証レベルおよび認証カウント間の相互変換、並びに、それ以外の認証条件から認証カウントへの変換が可能であるため、必要になる度に変換してもよいが、本構成例に係るサービス制御部74は、変換後の値を当該フィールドF2d・F2eに格納している。これにより、変換回数を削減できると共に、サービス制御部74は、例えば、オプション提示モードにおいて、より認証条件が緩やかな代替サービスを検索する際、サービス認証属性テーブルT2を参照するだけで代替サービスを抽出できる。
具体的には、サービス制御部74は、認証条件が認証レベルおよび認証カウントのいずれでもない場合、上述したように、当該認証条件(例えば、認証方法)を認証レベルに変換し、その値をフィールドF2dに格納できる。
さらに、サービス制御部74は、両フィールドF2d・F2eの一方にのみ値が格納されている場合、例えば、図13に示す対応表を参照するなどして、それに対応する値を生成し、他方のフィールドに当該値を格納できる。なお、図7では、説明の便宜上、認証レベルおよび認証カウントのうち、後に生成された方を()で囲って示している。例えば、サービスSrv3に対応するレコードR23では、フィールドF2dの認証レベル(図8の例では、100)から、フィールドF2eの認証カウント(図8の例では、L3)が生成されている。
また、上記のように、上記サービス認証属性テーブルT2には、各サービスに関連付けて、サービス認証属性情報が記憶されているが、当該サービス認証属性テーブルT2の各レコードR21…には、それぞれに対応するサービスに関連した、サービス認証属性情報のオリジナルの格納場所を示すフィールドF2fが設けられており、サービス制御部74は、認証条件および継続条件を示すフィールドF2bおよびF2cが空欄の場合、当該フィールドF2fへアクセスして、当該サービスの認証条件および継続条件を取得し、各フィールドF2bおよびF2cに格納できる。また、サービス認証属性テーブルT2には、各サービスに関連して、サービス処理部71へのアクセス方法を含むサービス記述情報のオリジナルの格納場所を示すフィールドF2gも設けられている。
本構成例に係るサービス管理システム1では、これらの格納場所は、例えば、URI( Universal Resource Identifier)によって特定されており、サービス制御部74は、URIの示すスキームで、格納場所にアクセスできる。なお、図7の例では、サービスSrv1〜Srv5の格納場所として、サービス管理装置7内のファイルシステムが指定されているが、サービスSrv9の格納場所は、WEBサーバ上に指定されており、サービス制御部74は、例えば、通信処理部72へ指示して、httpsプロトコルで当該WEBサーバと通信させるなどして、サービスSrv9のサービス記述情報およびサービス認証属性情報にアクセスできる。
なお、例えば、図7および図10に示すように、サービスに関係する情報(サービス記述情報および後述するサービス認証属性情報)において、それぞれの格納場所は、例えば、URIのように、ネットワーク経由の資源およびローカルの資源を統一的に表現可能な形式で記憶されている。このように、サービスに関係する情報の在り処がサービス管理装置7内・外を問わずに記述できるフレームワークが実現されているので、これらの情報が、ネットワーク経由でアクセスされる資源に格納されている場合であっても、記憶部73は、何ら支障なく、これらの情報がサービス管理装置7内に格納されている場合と同じ形式で、これらの情報の格納場所を格納でき、サービス制御部74は、何ら支障なく、これらの格納場所にアクセスできる。
また、上記サービスに関係する情報(サービス記述情報および後述するサービス認証属性情報)の格納場所は、サービス実体(サービス処理部71)と別々に設定可能であり、これらの情報を、サービス実体を管理するフレームワークとは、別のフレームワークで独立して扱ってもよい。
一方、記憶部73には、サービス記述テーブルT3も設けられている。当該サービス記述テーブルT3は、図10に示すように、基本的には、認証というよりもサービスに関連する情報を記憶したテーブルであって、各サービスのそれぞれに対応するレコードR31〜R39が記憶されている。
各レコードR31…には、サービス認証属性テーブルT2と同様、各サービスSrv1〜Srv9を一意に識別するためのフィールドF3aが設けられており、サービス制御部74は、サービス認証属性テーブルT2の、あるレコード(例えば、レコードR21)のフィールドF2aと、当該レコードと同じサービスに対応する、サービス記述テーブルT3のレコード(例えば、R31)のフィールドF3aとが互いに同じ値を持つように制御している。
また、各レコードR31…には、そのサービスの名称のフィールドF3bと、そのサービスのカテゴリを示す情報(例えば、定義済みの文字列)が格納されるフィールドF3cとが設けられている。カテゴリは、類似したサービス(機能が同様のサービス)をまとめたものであって、サービスのカテゴリが同じ場合には、同じ値(例えば、同じ文字列)が格納されている。また、サービス制御部74は、オプション提示モードが有効の場合、当該フィールドF3cを参照して、対象サービスの代替サービスを抽出している。
図10の例では、例えば、サービスSrv1およびSrv4は、同じカテゴリのサービス機能を提供するものとして分類されており、サービスSrv1に対応するレコードR31のフィールドF3cと、サービスSrv4に対応するレコードR34のフィールドF3cとには、互いに同じサービスカテゴリSC1を示す情報が格納されている。
さらに、上記各レコードR31…には、上述した認証条件に関する情報の一部として、認証が必要か否かを示す情報が格納されるフィールドF3dが設けられている。また、上記各レコードR31…には、そのレコードに対応するサービスを提供するサービス処理部71へのアクセス方法を示す情報が格納されるフィールドF3e・F3fが設けられている。一方、サービス制御部74は、フィールドF3dの値に基づいて、認証不要と判断した場合、フィールドF3e・F3fを参照して、サービス処理部71にアクセスできる。
なお、図10の例では、フィールドF3dが”Required”の場合、当該サービスを受けるためには、必要な認証を行わなければならないことを意味しており、他方、”Not Required”の場合には、認証操作なしでサービスを受けることが可能であることを意味している。
また、図10の例では、上記アクセス方法は、フィールドF3eのサービス処理部71への接続形態と、フィールドF3fに格納される詳細情報とに分けて記憶されている。具体的には、フィールドF3eには、各サービス主体が提供するサービスアクセスインタフェースであるサービスアクセスエンドポイント(サービス処理部71)への接続形態が記述されており、当該接続形態として、例えば、直接ハードウェアアクセスを行なう形態である”i/o”を指定したり、例えば、様々なプロトコルを指定するために、URIのスキームなどを指定できる。なお、URIのスキームとしては、サービスアクセスインタフェースとして一般的である”http”などが挙げられる。一方、フィールドF3fには、上記サービスアクセスエンドポイントの詳細情報(アクセス先情報)を記述されており、サービス制御部74は、サービス処理部71へ実際にサービス実行命令を発行する際、上記フィールドF3eの情報と共に当該アクセス先情報を使用する。当該アクセス先情報としては、ハードウェアアクセスを行なうサービスの場合、アクセスに必要なリソースIDの他、ポートアドレスやIRQ番号などを含む情報が好適に使用される。また、アクセス先情報として、URIを指定してもよい。
加えて、上記アクセス方法に格納される情報には、サービス処理部71へサービス提供を指示する際に、サービス処理部71へ与える必要のある情報が含まれていてもよい。これらの情報としては、例えば、ユーザの情報としてのユーザIDおよび認証情報の要否を示す情報などが挙げられる。さらに、本構成例に係るサービス記述テーブルT3では、上記アクセス方法に格納される情報に、各サービスが定義するインタフェース(例えば、APIなど)の情報も含まれており、サービス制御部74は、当該情報を参照することによって、各サービスのインターフェースに合った形式のサービス実行指示を生成できる。なお、当該情報の中には、ユーザ情報を必要とする場合は、当該ユーザ情報を、どのような形式でサービス実行指示に含むかを示す情報も含まれており、サービス制御部74は、当該情報を参照して、例えば、引数にユーザ情報を適合させるなどして、ユーザ情報を含むサービス実行指示を生成できる。これにより、サービス制御部74は、例えば、ユーザIDや認証情報などのユーザ情報を引数に加えた形式のサービス実行指示など、ユーザ情報を含むサービス実行指示をサービス処理部71へ与えることができる。
このように、上記記憶部73では、上記サービスを提供する実体(サービス処理部71)へのアクセス方法も、ネットワーク経由の資源にアクセスする場合とローカルの資源にアクセスする場合との双方を記憶可能な形式で記憶されている。なお、サービスを提供する実体(サービス実体)がネットワーク上に設けられている構成については、第2の実施形態で説明する。また、図10では、説明の便宜上、サービスSrv9に対応するサービスアクセスエンドポイントとして、ネットワーク上のアドレスが図示されているが、これは、第2の実施形態のように、サービス実体がネットワーク上に設けられている場合の情報の例であり、実際には、第1の実施形態に係るサービス記述テーブルT3では、ローカルのリソースを示す情報が記憶されている。
また、上記各レコードR31…には、サービス認証属性テーブルT2と同様に、そのサービスに関連するサービス認証属性情報およびサービス記述情報のオリジナルの格納場所が記憶されるフィールドF3g・F3hが設けられている。したがって、あるサービスに関連するサービス認証属性情報が、サービス認証属性テーブルT2に登録されていない場合、サービス制御部74は、当該フィールドF3gの示すサービス認証属性情報を取得し、当該サービス認証属性情報を、サービス認証属性テーブルT2に登録できる。
一方、記憶部73には、図11に示すように、認証デバイス実行管理テーブルT4も設けられている。当該テーブルT4には、上述した履歴情報として、各ユーザ(または、そのユーザが使用する機器)に対して行われた認証処理の結果が格納されており、例えば、上述したように、サービス制御部74が、あるサービスを提供するための認証要求を生成する際に、他のサービスを提供するための認証処理において成功した認証方法(認証デバイス51)での認証指示を省略したり、オプション提示モードにおいて、提供不可能な代替サービスを除外したりする際に参照されている。また、サービス制御部74は、サービス管理装置7の受信した認証応答に基づいて、テーブルT4の内容(管理情報)を更新している。
本構成例では、上記テーブルT4は、ユーザ毎に設けられており、サービス制御部74は、各認証方法(または認証デバイス51)に対応するレコードを当該テーブルT4に登録できる。ここで、サービス制御部74は、認証処理が行われたか否かに拘わらず、認証装置5が実施可能な全認証方法(または認証デバイス51)に対応するレコードを登録してもよいが、本構成例に係るサービス制御部74は、認証処理が行われる時点で各レコードを登録している。また、上記認証処理の結果として、各認証デバイス51での認証の成否を記憶していてもよいが、図11の例では、各認証方法での認証の成否が記憶されている。
より詳細には、テーブルT4の各レコードR41…には、認証方法のフィールドF4aと、その認証方法での成否を示す情報が格納されるフィールドF4bとが設けられている。本構成例に係るサービス制御部73は、一例として、認証方法の成否を、成功、失敗、未成功の3つに分けて管理しており、図11のフィールドF4bにおいて、記号”○”は、認証手続きの成功、記号”×”は、認証手続きの失敗、それ以外は、認証手続きが失敗も成功もしていないこと(未成功)を示している。なお、本構成例では、認証処理が行われる時点でレコードが登録されるため、未成功は、認証中であることをも示している。
また、上記フィールドF4aは、認証方法を特定できれば、どのような値であってもよく、サービス制御部74は、例えば、認証要求あるいは認証応答に含まれる情報から認証方法を示す情報を抽出したり、例えば、認証装置5と通信して、認証デバイス属性情報テーブルT1から認証方法を示す情報を抽出したりして、当該情報を生成し、フィールドF4aに格納できる。
さらに、各レコードR41…には、テーブルT4において、各認証方法(各レコード)を識別するための情報が格納されるフィールドF4cも設けられている。図11の例では、当該情報として、テーブルT4において一意な番号が使用されており、サービス制御部74は、例えば、使用される認証方法の数が増加すると、新たにインクリメントされた番号を上記一意な番号として割り当てるなどして、上記一意な番号を生成し、フィールドF4cに格納できる。なお、本構成例において、上記番号は、内部管理目的で使用される番号であって、認証方法が互いに同じであったとしても、上記テーブルT4におけるフィールドF4cの値は、認証デバイス属性情報テーブルT1のフィールドF1dの値とは異なっている場合がある。
また、上記各レコードR41…には、認証レベルおよび認証カウントを示すフィールドF4d・F4eが設けられている。なお、本構成例では、代替サービスを検索する際の検索速度を向上させるために、テーブルT4の各レコードR41…に、認証レベルおよび認証カウントのフィールドF4d・F4eを設けているが、サービス制御部74は、認証方法または認証デバイス51の認証レベルまたは認証カウントが必要になる度に、上述した対応表を参照するなどして、認証方法または認証デバイス51を認証レベルまたは認証カウントに変換してもよい。
さらに、記憶部73には、図8および図9に示すように、サービス実行管理テーブルT5も設けられている。当該テーブルT5には、各ユーザ(または、そのユーザが使用する機器)に対するサービスの実行状況を示す情報が格納されている。当該実行状況には、認証に関するステータスとして、その時点でのサービス実行プロセスにおける認証操作実行、および、その結果に関するステータス情報が含まれており、さらに、次の認証処理(次の認証アクション)に関する情報も含まれている。一方、サービス制御部74は、例えば、上述したように、継続条件の次の評価タイミングになったか否かを決定する際に参照したり、サービス要求時あるいは継続条件の評価タイミングにおいて、必要な認証処理のうち、未だ成功していない認証処理、および、既に成功した認証処理を管理する際に参照/更新したりしている。また、サービス制御部74は、サービス管理装置7の受信したサービス要求および認証応答、並びに、自らのサービス提供の可否の判定結果に応じて、テーブルT5の内容(管理情報)を更新している。
本構成例では、上記認証デバイス実行管理テーブルT4と同様に、上記テーブルT5も、ユーザ毎に設けられており、サービス制御部74は、自らの管理下にある各サービスに対応して、すなわち、サービス管理装置7に設けられているサービス処理部71に対応して、当該テーブルT5にレコードを登録できる。なお、テーブルT5の各レコードR51…は、そのユーザに対する認証方法(認証デバイス51)毎に設けられる、上記テーブルT4の各レコードR41…とは異なって、そのユーザに対するサービス毎に設けられている。
より詳細には、上記レコードR51…には、自らの管理下にあるサービスを特定するための情報が格納されるフィールドF5aと、そのサービスの名称を示すフィールドF5bとが設けられている。本構成例では、上記情報として、アクセス可能なサービスを一意に示す番号が用いられており、上記サービス制御部74は、新たなサービスが管理下に入る度に、一意な番号を新たに割り当てている。また、上記サービスの名称(サービス名)は、各サービスを区別するため、サービス毎に異なる文字列が与えられており、上記フィールドF5bには、一例として、当該サービス名を示す文字列が記憶されている。
また、上記各レコードR51…には、対応するサービスの提供状態のフィールドF5cが設けられている。本構成例では、提供状態が”Active”、”Suspending”および”Inactive”のいずれであるかを示す情報が格納されている。上記ステート”Active”は、認証手続きが実行された上で、それが成功し、そのサービスを提供可能な状態であることを示しており、サービス制御部74は、例えば、認証応答が認証条件を満たしていると判断した場合など、サービス提供可と判断した場合、当該サービスに対応するレコードのフィールドF5cを、”Active”ステートに設定する。
一方、ステート”Suspending”は、現在かかるサービス要求を受け、認証処理(認証プロセス)がまだ実行中であることを示しており、サービス制御部74は、例えば、あるサービスの認証要求を受けた場合、あるいは、次の継続条件の評価タイミングになった場合など、認証処理のためにサービス提供のための手続きが一時的に処理中扱いになる場合に、当該サービスに対応するレコードのフィールドF5cを”Suspending”に設定し、当該フィールドF5cが”Suspending”であるレコードに対応するサービスを、認証処理がまだ実行中であるサービスとして管理する。
なお、ステート”Inactive”は、認証処理の有無に拘わらず、サービス提供がされない状態になっていることを示しており、サービス制御部74は、例えば、認証応答(複数の認証応答のうちの一部を含む)の結果、そのサービスを提供できないと判定した場合、当該サービスに対応するレコードのフィールドF5cを”Inactive”に設定する。なお、サービス制御部74は、あるサービスに関連する認証処理に失敗した場合、それと同じ認証方法での認証を必須とする他のサービスに対応するレコードのフィールドF5cを”Inactive”に設定してもよい。
また、上記各レコードR51…には、対応するサービスが現在提供されている場合(フィールドF5cが”Active”の場合)、アクティベートされた時点の情報が格納されたフィールドF5dも設けられており、サービス制御部74は、サービス要求時または継続条件の評価タイミングにおいて、サービス提供可と判定した場合、その時点を示す情報をフィールドF5dに格納している。なお、本構成例に係るサービス制御部74は、図8に示すように、上記アクティベートされた時点を示す情報として、アクティベートされた時刻をフィールドF5dに格納している。
さらに、上記サービス実行管理テーブルT5には、サービスに関連付けて、当該サービスを提供するために必要な認証処理に関する情報(認証処理情報)も記憶されている。ここで、1つの認証要求と、それに対する認証応答との組み合わせを1つの認証処理とするとき、本構成例に係るサービス実行管理テーブルT5では、サービスに関連付けて、そのサービスを提供するために必要な認証処理のそれぞれについて、その認証処理情報が記憶されており、サービス管理部82は、あるサービスが複数の認証処理を必要とする場合、当該サービスに関連付けて、複数の認証処理情報を記憶している。なお、上記テーブルT5は、一例として、上記各レコードR51…に、認証処理情報の配列を格納するフィールドを設けるなどして、これら各認証処理情報を格納している。
本構成例では、上記認証処理情報には、前回認証完了時点、次回認証予定時点、認証判断満了時点、認証フラグ、セッションIDおよびターゲット認証装置の情報が含まれている。なお、上記認証処理情報には、認証処理(認証条件、または、それを細分化したもの)を特定するための情報も含まれているが、本構成例では、当該情報は、ターゲット認証装置と認証条件との組み合わせにより実現されている。
上記前回認証完了時点の情報は、その認証処理に関連して、それぞれ、認証手続きが成功した最近の認証完了時点を示しており、サービス制御部74は、あるサービスを提供するための認証処理に成功した場合、その時点を示す情報(例えば、時刻など)を、当該サービスおよび認証処理に対応する前回認証完了時点の情報として格納できる。
また、上記次回認証予定時点は、その認証処理に関連して、次の認証手続き実行予定時点を示しており、本構成例に係るサービス制御部74は、各サービスの継続条件に基づいて、あるサービスが一定時間毎の認証手続きを要するサービスであると判断した場合、例えば、上記前回認証完了時点に上記一定時間を加算するなどして、そのサービスに関連する各認証処理の次回認証予定時点を特定し、その時点を示す情報(例えば、時刻など)をテーブルT5に格納できる。さらに、本構成例に係るサービス制御部74は、例えば、周期的に、上記テーブルT5の次回認証予定時点の情報を確認するなどして、次回認証予定時点になったことを検出すると、当該次回認証予定時点に対応するサービスの提供の可否を判定するために、例えば、認証処理を示す認証要求を送信するなどして、当該次回認証予定時点に対応する認証処理を開始できる。また、上記サービス制御部74は、当該認証処理に成功して上記前回認証完了時点を更新した場合には、次回認証予定時点も更新できる。
一方、上記認証判断満了時点は、サービス制御部74が認証手続きに関する判断を行う時点を示しており、例えば、認証手続きが失敗したかどうかをサービス制御部74が判断するためのタイミング情報などとして使用されている。具体的には、サービス制御部74は、例えば、周期的に、上記テーブルT5の認証判断満了時点の情報を確認するなどして、認証判断満了時点になったことを検出すると、認証応答を受信したか否かに拘わらず、その認証処理の成否を判定する。これにより、サービス制御部74は、認証要求を送信してから一定の時間が経過しても認証応答が返信されない場合、当該認証判断満了時点になった時点で認証失敗と判断できる。
また、上記認証フラグは、その認証処理の成否と、各種モード設定の情報とが含まれており、サービス制御部74は、認証手続きの完了など認証手続きの進行具合に伴い、あるいは、各種モード変更が行われる際に、認証フラグを適宜更新している。なお、認証フラグのコーディング規則は、図9に示す構成に限るものではないが、以下では、図9を参照しながら、本構成例に係る認証フラグ、および、それを参照するサービス制御部74の動作について、さらに詳細に説明する。
すなわち、本構成例に係る認証フラグは、例えば、図9に示すように、タイマフラグ、逐次処理モードフラグ、カウント優先モードフラグ、ワンタイムフラグおよび認証状況フラグを含んでいる。本構成例では、認証フラグが1バイトで表現されており、上記各フラグのビットアサインは、例えば、図9に示すように設定されている。なお、図9の例では、認証フラグの第7ビットは、将来の機能拡張のための予約領域として確保されている。
より詳細には、認証フラグの第0〜第7ビットのうち、第0〜第2ビットが、認証状況フラグに割り当てられており、認証状況フラグは、必要な認証手続きが完了している状況を示す”Succeeded”と、認証手続きが失敗した状況を示す”Failed”と、認証手続きが実行中である状況を意味する”Processing”と、上記3つに該当しない状況であることを示す”Unknown”とのいずれかに設定されている。なお、本構成例では、上記各状況を示す数値は、”000”、”010”、”001”および”100”に設定されている。
また、上記認証フラグの第3ビットは、ワンタイムフラグに割り当てられている。当該ワンタイムフラグは、当該サービスに関する認証手続きが、サービス起動試行時の一回のみ行われるものであるか否かを示しており、サービス制御部74は、例えば、継続条件を参照するなどして、1回のみの認証と判断した場合、当該フラグを有効を示す値(例えば1)に設定する。
さらに、上記認証フラグの第4および第5ビットは、それぞれ、逐次処理モードフラグおよびカウント優先モードフラグに割り当てられている。当該各フラグは、各モードが有効であるか否かを示しており、サービス制御部74は、各モードが有効な場合、そのフラグを有効を示す値(例えば1)に設定する。
また、上記認証フラグの第6ビットは、タイマフラグに割り当てられている。当該タイマフラグは、タイマの起動状況(タイマが起動中であるか停止しているか)を示すものであって、サービス制御部74は、例えば、サービスの提供を開始した後、継続条件において評価タイミングが時点(時間)で指定されている場合、あるいは、サービス要求を受けて認証要求を送信した後、その認証処理の成否を判定するタイミングが指定されている場合など、その認証処理に関して、タイマによるイベント(タイマイベント)の発生を待つ場合に、上記タイマフラグを有効(起動中)を示す値(例えば1)に設定する。これとは逆に、例えば、サービスの提供を開始した後、継続条件において評価タイミングが時点(時間)で指定されていないか継続条件自体が設定されていない場合、あるいは、サービス提供不可と判断した場合など、その認証処理に関しては、タイマイベントの発生を待つ必要がない場合、サービス制御部74は、当該タイマフラグを無効(停止中)を示す値(例えば0)に設定する。
ここで、サービス制御部74は、例えば、予め定められた時間間隔でサービス実行管理テーブルT5の内容(管理情報)を確認し、各認証処理について、次回認証予定時点になったか否か、および、認証判断満了時点になったか否かを判定しているが、タイマフラグが無効に設定されている認証処理については、時点の判定処理を省略できる。
なお、上記前回認証完了時点の情報および次回認証予定時点の情報は、認証処理ではなく、サービスに関連付けて記憶してもよいが、本構成例では、これらの情報を、上記認証判断満了時点の情報と同様に処理できるように、認証処理に関連付けて記憶している。同様に、認証フラグのうち、各モードのフラグもサービスに関連付けて記憶することも可能である。
また、各認証処理毎に記憶されている上記認証処理情報には、上述したように、上記認証フラグだけではなく、ターゲット認証装置の情報も記憶されている。当該ターゲット認証装置の情報は、その認証処理を行う際に通信相手となる認証装置5に関する情報であって、当該認証装置5へアクセスするための情報(アクセス先の情報)が含まれている。一方、サービス制御部74は、例えば、その認証処理に関連する認証装置5へ認証要求を発呼する場合、あるいは、認証応答受信後、さらに認証装置5と通信して、サービス管理装置7で把握している認証処理の詳細(認証レベルや認証カウントなど)と、認証装置5で把握している認証処理の詳細とのマッチングを取る場合(例えば、後述する認証セッションにおけるサービス機能との間のマッチングを取る場合)など、その認証処理に関連する認証装置5と通信する場合、上記ターゲット認証装置の情報を参照して、当該認証装置5にアクセスする。
なお、当該情報としては、例えば、認証装置5自体のアドレス(例えば、ネットワークアドレス)が挙げられる。また、ネットワークにおいて、認証装置5による認証機能がサービス(認証サービス)として公開されており、当該認証サービスのアクセス先へアクセスして当該認証サービスに認証処理を行わせる場合には、上記情報は、当該認証サービスのサービスアクセスポイントとなる認証サービスアクセス先であってもよい。
このように、ターゲット認証装置の情報も、上述したサービス記述情報およびサービス認証属性情報の格納場所やサービス実体へのアクセス方法と同様に、ネットワーク経由の資源にアクセスする場合とローカルの資源にアクセスする場合との双方を記憶可能な形式で記憶されており、サービス制御部74は、いずれの場合であっても、当該情報を参照することによって、何ら支障なく、ターゲット認証装置へアクセスできる。
さらに、記憶部73には、サービス制御部74がサービス提供可と判断してサービス処理部71へサービス提供を指示する際にサービス処理部71へ与える必要のある情報として、ユーザIDおよび認証情報を示すユーザ情報がユーザに関連付けて記憶されている。本構成例では、各ユーザのユーザ情報は、当該ユーザのサービス実行管理テーブルT5に格納される認証処理情報の一部として記憶されており、サービス制御部74は、サービス実行管理テーブルT5に認証処理情報を格納する際、例えば、サービス要求に基づいて、サービス要求を送信したユーザを特定し、予め記憶された各ユーザのユーザ情報から当該ユーザのユーザ情報を抽出したり、通信処理部72が受信したサービス要求に含まれるユーザ情報を抽出したりして、上記格納するユーザ情報を特定している。また、認証装置5が、認証応答中に、認証デバイス51がセンシングにより取得した情報、あるいは、予め登録されたユーザ特定情報を含むように構成されていれば、サービス制御部74は、その情報を上記認証情報として格納してもよい。さらに、この場合、サービス制御部74は、例えば、サービス実体へのアクセス方法を参照して、そのサービスに必要な認証情報の種類を特定し、認証応答に含まれる上記認証情報のうち、そのサービスに不要な認証情報の格納を省略してもよい。なお、認証応答中に認証情報を含める場合、認証装置5またはそれを中継する端末装置3は、認証情報を暗号化して送信し、サービス管理装置7は、暗号化されたデータ列を復号して認証情報を抽出する方が望ましい。
また、本構成例に係るサービス管理装置7は、各サービスにおいて実施される各認証処理のための通信を、互いに独立したセッションとして管理しており、上記認証処理情報には、セッションIDも含まれている。当該セッションIDは、各サービスにおいて実施される各認証処理毎に認証装置5とサービス管理装置7との間で確立される認証セッションを一意に示すものであって、サービス制御部74は、認証処理が開始されたときに、新たにユニークなIDを発行して、当該ID(セッションID)を、上記各認証処理に関連付けて記憶できる。また、サービス制御部74は、各セッションにより送受される情報(例えば、認証要求や認証応答)を、そのセッションのセッションIDに対応する認証処理のための情報として管理できる。なお、本構成例では、上記セッションIDとして、認証手続きが開始されたときに上記サービス制御部74が発行する内部管理用のユニークなIDを用いている。
一方、本構成例に係るサービス制御部74には、図1に示すように、サービス処理部71によるサービスの実行を制御するサービス実行部81と、上記記憶部73を参照して、サービス実行部81および通信処理部72を制御するサービス管理部82とを備えている。
上記サービス管理部82は、サービス制御部74における一連のデータの流れを制御している中核モジュールであって、上述したように、サービス要求に応じたサービス処理部71を選択/抽出すると共に、それに応じた認証処理を行ってサービスの可否を判断して、上記サービス実行部81へサービスの実行を指示できる。また、上記サービス管理部82は、上記認証処理の際、記憶部73を参照して、サービスに応じた認証処理を選択/抽出し、その認証のための認証要求を認証装置5へ送信すると共に、認証装置5からの認証応答に基づいて、サービス提供の可否を決定できる。
ここで、本構成例に係るサービス管理装置7は、各認証処理のための通信(認証要求および認証応答など)をそれぞれ別個のセッションとして管理しており、上記サービス管理部82は、サービスに応じて送信される認証要求および認証応答に関するセッション管理も行っている。また、本構成例に係るサービス管理装置7は、各サービス提供のための通信(サービス要求およびサービス応答など)についても、それぞれを別個のセッションとして管理しており、上記サービス管理部82は、サービス要求およびサービス応答(サービス結果/失敗など)に関するセッション管理も行っている。
一方、本構成例に係るサービス実行部81は、サービス管理部82からの指示により選択されたサービス処理部71に対して実行命令を発行できる。また、サービス実行部81は、各サービス処理部71に対するステータス取得および実行結果を、サービス管理部82へ通知できる。より詳細には、サービス実行部81は、例えば、接続されているサービス処理部71へ命令する際、サービス処理部71に個別に予め用意されたAPI(Application Programming Interface )をコールするなどして、接続されているサービス処理部71へ命令できる。また、各サービス処理部71は、例えば、当該APIコールの返り値などとして、サービス処理部71の出力情報をサービス実行部81へ返すことができる。なお、サービス処理部71が、ユーザ名(ユーザID)や認証データ(認証情報)などのユーザ情報を必要とする場合、サービス実行部81は、サービス管理部82からの指示に応じて、これら認証情報を含む実行命令を発行するなどして、サービス処理部71に認証情報を通知できる。
さらに、本構成例に係るサービス制御部74には、サービス管理部82からの指示に応じて、サービス処理部71に関する検索処理を行うサービス検索部83も設けられている。当該サービス検索部83は、例えば、サービス管理装置7にサービス処理部71が接続された時点、あるいは、サービス要求を受け付けたときに、それに応じた認証条件が記憶部73に格納されていなかった場合など、サービス提供時に参照されるサービス処理部71の情報(認証条件などを含む)の全てが、サービス管理装置7の記憶部73に格納されていない場合には、例えば、サービス管理システム1に設けられたディレクトリサービス(図示せず)へ問い合わせたり、サービス処理部71、または、その情報が存在し得る可能性のあるリソースとして予め定められたリソースへアクセスして、サービス処理部71の情報を取得したり、各サービス処理部71の情報のオリジナルの格納場所が、予め格納されていれば、その格納場所を参照したりして、欠落している情報を補うことができる。
なお、記憶部73にサービス処理部71の情報を格納する代わりに、サービス処理部71の情報が必要になる度に、サービス検索部83がサービス処理部71の情報を検索してもよいが、本構成例に係るサービス管理部82は、当該情報の検索速度を向上させるために、基本的には、記憶部73へアクセスして、当該情報を抽出・取得しており、必要になった場合にサービス検索部83に検索させて、その検索結果を記憶部73に格納している。また、本構成例に係るサービス検索部83は、サービス処理部71の情報を検索しても見つけることができなかった場合、当該サービス処理部71の情報の検索不成功を示す情報(ステータス情報)を記憶部73に格納しており、サービス検索部83は、あるサービス処理部71の情報の検索が指示された場合、その情報の検索不成功を示すステータス情報が記憶部73に格納されていれば、検索処理を省略して、検索不成功とすることができる。これにより、成功しない検索を繰り返すことによる応答時間の延長、並びに、サービス管理システム1に流れるデータ量の増大を防止できる。なお、例えば、予め定められた時間が経過した場合、あるいは、新たなサービス処理部71が加入したことを検出した場合には、サービス検索部83は、当該不成功の記憶を消去して、サービス処理部71の情報を再検索できる。
以下では、上記構成例の動作について、図7〜図11、および、図28〜図30に基づいて説明する。すなわち、外部機器からの通信を受け付けた場合、サービス管理装置7のサービス制御部74に設けられたサービス管理部82は、図28に示すS61において、当該通信が外部機器からのサービス要求か否かを判定する。サービス要求の場合、サービス管理部82は、S62において、サービス要求の内容を解釈し、対象サービスを選択する。
ここで、上記S62での処理の一例として、サービス要求時に、そのサービスを提供するサービス処理部71の情報が記憶部73に格納されていなかった場合に、サービス検索部83が記憶部73内の予め定められたディレクトリを検索して、対象サービスを選択しようとする構成の動作について、図29を参照しながら説明すると、以下の通りである。
すなわち、サービス管理装置7がサービス要求を受け付けると、サービス管理部82は、S91において、記憶部73を検索して、要求されているサービスを提供可能なサービス処理部71の情報を検索し、S92において、当該情報が記憶部73に格納されているか否かを判定する。
例えば、上述した図7および図10に示すように、サービス認証属性テーブルT2およびサービス記述テーブルT3が記憶部73に記憶されており、サービス要求においてサービスがサービス名で指定される場合、サービス管理部82は、サービス名をキーとして、サービス記述テーブルT3を検索して、当該サービス名で特定されるサービスを提供可能なサービス処理部71の情報(この場合は、サービス記述情報)の有無を確認する。
検索に成功した場合(上記S92にてYES の場合)、サービス管理部82は、S93において、見出した情報を参照して、サービス提供時に参照されるサービス処理部71の情報(認証条件を含む)を取得・抽出できる。
一例として、図7および図10に示すように、当該情報がサービス認証属性情報およびサービス記述情報に分けて記憶されている場合、サービス管理部82は、上記抽出したサービス記述情報のフィールドF3dを参照して、認証の要否を判定できる。また、サービス管理部82は、認証が必要な場合、例えば、サービス認証属性テーブルT2から、当該サービス記述情報のフィールドF3aとフィールドF2aの値が同じレコードを抽出するなどして、上記サービス記述情報に対応するサービス認証属性情報を取得し、そのサービス認証属性情報から、認証条件等を抽出できる。さらに、認証の要否に拘わらず、サービス管理部82は、上記サービス記述情報を参照して、上記サービスを提供するサービス処理部71へのアクセス方法を特定し、当該サービス処理部71へアクセスできる。
一方、記憶部73の検索に失敗した場合、サービス管理部82は、S94において、サービス検索部83へ指示して、要求されているサービスを提供可能なサービス処理部71の情報を検索させる。この例では、サービス検索部83は、例えば、記憶部73内の予め定められたディレクトリ内を検索するなどして、上記情報(例えば、サービス記述情報)を探索する。
さらに、サービス検索部83は、S95において、検索結果を判定し、検索がヒットした場合(上記S95にてYES の場合)、S96において、当該情報を取得して、記憶部73(この場合は、サービス記述テーブルT3)に格納する。さらに、上記S93と同様に、見出した情報を参照して、サービス提供時に参照されるサービス処理部71の情報(認証条件を含む)を取得・抽出できる。なお、これとは逆に、検索しても上記情報を見出せなかった場合(上記S95にてNOの場合)、サービス検索部83は、S97において、検索不成功を示すステータス情報を記憶部73に格納する。
このように、図28に示すS62の処理が行われ、サービス要求の内容解釈と対象サービスの選択とが行われると、サービス管理部82は、S63において、上記S62での処理結果に基づいて、要求されたサービスのハンドルが可能か否か(当該サービスを処理できるか否か)を判定する。なお、本構成例に係るサービス管理部82は、一例として、上記S62において、要求されているサービスを提供可能なサービス処理部71の情報(例えば、サービス記述情報)が見出された場合、当該サービスのハンドルが可能と判断し、見出すことができなかった場合、当該サービスのハンドルが不可能と判断している。なお、サービスのハンドルが不可能と判断された場合、サービス管理部82は、S79において、バッファクリアなどの例外処理手続きを行う。
ハンドル可能と判断した場合(上記S63にてYES の場合)、サービス管理部82は、S64において、サービス要求に対応する認証条件を抽出・解釈し、S65において、当該抽出された認証条件に基づいて、上記要求されたサービスを提供するために新たな認証処理が必要か否かを判定する。さらに、認証処理を必要とする場合(上記S65にてYES の場合)、サービス管理部82は、S66において、記憶部73を更新して、サービスおよび認証に関連する管理情報を更新し、S67において、上記抽出された認証条件に応じた認証要求を生成して、外部機器(より詳細には、上記認証処理情報として設定される認証装置)に対して発呼した後、処理を停止する。
ここで、本構成例では、上述したように、サービスおよび認証に関連する管理情報として、各ユーザ(または、そのユーザが使用する機器)に対して行われた認証処理の結果、および、各ユーザ(または、そのユーザが使用する機器)に対するサービスの実行状況が、認証デバイス実行管理テーブルT4およびサービス実行管理テーブルT5によって管理されている。
この構成では、上記S66において、サービス管理部82は、そのユーザ(または、そのユーザが使用する機器)に対応するサービス実行管理テーブルT5のうち、上記要求されたサービスに関連するレコードを更新して、サービス提供状態(ステート)のフィールドF5cを、”Suspending”に変更する。なお、上記要求されたサービスに対応するレコードが当該サービス実行管理テーブルT5に存在しなかった場合、サービス管理部82は、当該サービス実行管理テーブルT5に当該レコードを追加する。
また、上記S66において、サービス管理部82は、例えば、後述する認証処理情報を参照するなどして、上記抽出した認証条件によって、認証方法を指定した認証要求を発行しようとしているか否かを判定する。さらに、サービス管理部82は、例えば、認証方法による認証が指定され、しかも、カウント優先モードが無効な場合など、上記S67において、認証方法を指定した認証要求を発行しようとする場合は、そのユーザ(または、そのユーザが使用する機器)に対応する認証デバイス実行管理テーブルT4において、認証処理を行う認証デバイス51のレコードを追加する。また、サービス管理部82は、当該レコードにおいて、認証方法の成否のフィールドF4bを未成功を示す値(例えば、”−”)に設定する。なお、サービス管理部82は、当該レコードの残余のフィールドの値を、例えば、サービス認証属性テーブルT2を参照したり、認証デバイス51(認証装置5)と通信したりして取得し、当該値を各フィールドに設定する。
さらに、上記S66において、サービス管理部82は、当該レコードに、上記認証条件に応じた認証処理のための認証処理情報を追加する。具体的には、当該認証処理のための認証処理情報として、サービス管理部82は、認証要求を送信する認証装置の情報、当該認証処理のために新たに確立されたセッションのセッションID、および、認証状況フラグが”Processing”を示す認証フラグを追加する。なお、サービス管理部82は、上記認証要求を送信する認証装置の情報を、例えば、サービス認証属性テーブルT2を参照するなどして設定する。また、認証判断満了時点を設定する場合、サービス管理部82は、認証処理情報として、認証判断満了時点の情報を含む情報を追加し、さらに、上記認証フラグのタイマフラグを有効に設定する。なお、認証条件と認証処理との関係は、逐次処理モードか否かなどによって異なるため、認証条件に応じた認証処理を決定する際の動作の詳細は後述する。
これとは逆に、上記S65において、認証処理が不要と判断した場合(NOの場合)、サービス管理部82は、S68において、例えば、サービス実行部81へ実行指示を送信するなどして、サービス処理部71のサービスを起動させると共に、例えば、サービス実行部81を介して受け取るなどして、その処理結果(サービス実行結果)を受け取る。さらに、サービス管理部82は、S69において、当該サービス結果を、サービス応答の形式で、外部機器に対して送信する。また、サービス管理部82は、S70において、記憶部73を更新して、上記サービスおよび認証に関連する管理情報を更新する。また、サービス管理部82は、当該S70において、例えば、提供したサービスに継続条件が設定されている場合など、次に監視すべきイベントがあれば、例えば、そのイベントを監視するためのハンドラを生成するなどして、新規イベント監視のイネーブル化処理を行る。さらにサービス管理部82は、それらの処理が行われた後に、処理を停止する。
より詳細には、上記S70において、サービス管理部82は、そのユーザ(または、そのユーザが使用する機器)に対応するサービス実行管理テーブルT5のうち、上記要求されたサービスに関連するレコードを更新して、サービス提供状態(ステート)のフィールドF5cを、”Active”に変更する。なお、S66と同様に、上記要求されたサービスに対応するレコードが当該サービス実行管理テーブルT5に存在しなかった場合は、当該レコードが追加される。なお、上記S69の後、S70が行われるのは、認証処理が不要な場合なので、サービス管理部82は、特に、認証デバイス実行管理テーブルT4を更新していない。同様に、この場合は、認証処理が不要なので、上記S66とは異なって、サービス管理部82は、基本的には、当該レコードへの認証処理情報の追加を行わない。ただし、サービス管理部82は、記憶部73の継続条件を確認しており、初回の認証が不要である旨、記憶部73に設定されていたとしても、継続条件において、認証が必要と設定されていれば、後述するS74と同様に、継続条件に応じた管理情報の設定およびイベント制御を行う。
ここで、上記S61〜S70では、サービス要求を受け付けた場合の処理について説明したが、認証応答を受け付けたことを検出した場合(S61にてNO、S71にてYES の場合)、サービス管理部82は、S72において、当該認証応答がいずれのサービス要求に関連する認証応答であるかを判定すると共に、当該認証処理が、サービス要求に応じてサービス提供の可否を判定するために行われる認証処理であれば、そのサービスの認証条件、サービスを提供している状態で継続してサービスを提供し続けるために必要な認証処理であれば、そのサービスの継続条件を抽出する。さらに、サービス管理部82は、S73において、認証条件および継続条件のうち抽出された方(判定条件)が、上記認証応答によって満たされたか否か、あるいは、上記認証応答では判定できないかを判定する。
本構成例では、上述したように、ある認証処理に関連する通信(認証要求および認証応答)と、他の認証処理に関連する通信とは別のセッションで行われており、各ユーザ(または、そのユーザが使用する機器)に対するサービス実行管理テーブルT5には、各サービスに関連付けて、各認証処理のためのセッションを示すセッションIDが記憶されている。
この場合、上記S72では、サービス管理部82は、上記サービス実行管理テーブルT5を参照して、認証応答が通知されたセッションのセッションIDに対応する認証処理およびサービス(その認証応答によって提供の可否を決定しようとしている対象サービス)を抽出する。さらに、サービス管理部82は、例えば、当該対象サービスのサービス名をキーとして、サービス記述テーブルT3を検索し、見出したサービスの識別子をキーにして、サービス認証属性テーブルT2を検索するなどして、当該対象サービスの認証条件および継続条件を特定すると共に、例えば、上記サービスに対応付けて、前回認証完了時点が記憶されているか否かなどによって、初回の認証か否かを判定し、上記認証条件および継続条件のいずれを判定の条件とするかを特定する。その後、サービス管理部82は、上記S73において、特定した判定条件と、上記受け付けた認証応答の内容(認証の成否を示す情報)とを照合して、判定条件が成立しているか否かを判定する。
ここで、上記S73での判定において、判定条件を満足すると判定された場合(YES の場合)、サービス管理部82は、S74において、記憶部73を更新して、サービスおよび認証に関連する管理情報を更新し、サービス提供処理、すなわち、上記S68以降の処理を行う。
上記S74での処理を、さらに詳細に説明すると、サービス管理部82は、上記サービス実行管理テーブルT5を参照して、認証応答が通知されたセッションのセッションIDが格納されたレコードを更新する。具体的には、サービス管理部82は、当該レコードのサービス提供状態(ステート)のフィールドF5cを、”Active”に変更する。また、サービス管理部82は、当該レコードに格納されている認証処理情報のうち、上記セッションIDを含む認証処理情報を更新して、前回認証完了時点情報を、現時点を示すように変更すると共に、認証フラグのうち、認証状況フラグを”Succeeded”に変更する。また、サービス管理部82は、上記特定された継続条件を解釈して、例えば、一定の時間毎などの形式で、次の認証処理時点が指定されていた場合、例えば、上記認証処理情報のうち、次回認証予定時点情報を当該指定された時点に設定すると共に、認証フラグのタイマフラグを有効に設定するなどして、次の認証処理時点になったか否かを監視するためのインターバルタイマを起動する。一方、次の認証処理時点が指定されていない場合、サービス管理部82は、次回認証予定時点情報を無効を示す値に設定すると共に、タイマフラグを無効に設定する。
また、上記S74において、サービス管理部82は、認証応答に応じて、上記認証デバイス実行管理テーブルT4も更新している。具体的には、認証応答に、認証の成否を示す情報が含まれており、認証装置5にて行われた認証処理の方法を示す情報が含まれていない場合、サービス管理部82は、例えば、上記判定条件を参照して判定したり、各認証処理に関連して認証要求の履歴を記憶しておき、その履歴を参照したりして、認証要求において、認証方法が指定されているか否かを判定し、認証方法が指定されている場合は、上記認証デバイス実行管理テーブルT4のうち、当該認証方法に対応するレコードを更新して、認証の成否のフィールドF4bを認証成功を示す値(例えば、”○”)に設定する。一方、認証応答に、認証の成否を示す情報だけではなく、認証装置5にて行われた各認証処理について、その認証方法を示す情報と、その成否を示す情報とが付されている場合、サービス管理部82は、上記認証デバイス実行管理テーブルT4のレコードのうち、上記受信した認証方法の情報に対応するレコードを更新して、当該レコードの成否のフィールドF4bを、上記受信した成否の情報に応じた値に設定する。なお、認証要求または認証応答において、認証方法に代えて、認証デバイス51の情報が含まれている場合、サービス管理部82は、予め記憶されている認証デバイス51と認証方法との対応表に基づいて、認証デバイス51を認証方法に変換した後で、認証デバイス実行管理テーブルT4を更新する。
上記では、上記S73での判定において判定条件を満足すると判定された場合について説明したが、例えば、逐次処理モードにおいて、一部の認証処理しか行われていない場合など、上記受信した認証応答では、上記判定条件を満たしているか否かを判定できないと判断した場合(上記S73にて未確定の場合)、サービス管理部82は、S75において、当該認証応答に応じて管理情報を更新する。さらに、この場合は、細分化された判定条件のうち、未だ行われていない認証処理が残っており、当該他の認証処理が必要なので、サービス管理部82は、上述したS64以降の処理を行って、次の認証処理を行う。なお、判定条件として継続条件が選択されている場合もあるが、この場合は、S64以降の処理では、認証条件からの抽出・解釈処理に代えて、継続条件から抽出・解釈処理が行われる。
ここで、上記S75での処理は、上記S74での処理と略同様であるが、サービス提供状態(ステート)を、”Active”に変更する処理と、継続条件の解釈、並びに、それに伴なう次回認証予定時点並びにタイマフラグの設定処理とが省略されており、サービス提供状態は、”Suspending”、次回認証予定時点並びにタイマフラグは、それぞれ無効のまま維持されている。
一方、例えば、受信した認証応答が失敗を示しており、認証条件の他の条件が、それとandで結合されている場合など、他の認証処理があるか否かに拘わらず、その時点で判定条件を満たしていないと判断された場合(上記S73にて、NOの場合)、サービス管理部82は、S76において、例えば、サービス実行管理テーブルT5を確認するなどして、オプション提示モードが有効であるか否かを判定する。
無効であると判断した場合(NOの場合)、サービス管理部82は、S77において、例えば、失敗(サービス提供不可)を示すサービス応答を端末装置3へ送信するなどして、ユーザにサービス提供の失敗を通知する。
これとは逆に、有効であると判断した場合(上記S76にてYES 場合)、S78において、サービス管理部82は、上述したように、代替サービスを検索し、代替サービスがあれば、例えば、当該代替サービスを示すオプション情報をサービス応答の形で外部機器に対し通知するなどして、代替サービスをユーザに提示する。一方、代替サービスが見つからなかった場合は、上記S77と同様に、ユーザにサービス提供不可であることを通知する。なお、この場合は、代替サービスもないことも示すサービス応答などによって、代替サービスもないことを通知してもよい。
オプション提示モードの有効/無効に拘わらず、サービス管理部82は、サービス応答を送信すると、上記S70の処理を行って、管理情報を更新すると共に新規イベントのイネーブル化処理を行ない、その後に処理を停止する。
なお、この場合は、判定条件(認証条件または継続条件)が満足されていないので、上記S70では、判定条件が満足できなかったことを管理情報に反映させる。具体的には、サービス管理部82は、上記サービス実行管理テーブルT5のレコードのうち、上記受信した認証応答に対応するレコードを更新して、サービス提供状態(ステート)のフィールドF5cを、”Inactive”に変更し、アクティベート時点を無効に設定する。また、当該レコードの各認証処理情報のうち、認証フラグの認証状況フラグを”Failed”に設定すると共に、次回認証予定時点並びにタイマフラグを、無効に設定する。さらに、上記S74およびS75と同様に、認証応答に応じて、認証デバイス実行管理テーブルT4を更新する。
次に、図30を参照しながら、図28に示すS64〜S66の処理の詳細について説明する。なお、図30では、説明の便宜上、図28に示すS66を、S109、S112およびS117として記載している。
すなわち、図28に示すS64としてのS101において、サービス管理部82は、記憶部73を検索して、サービス要求に応じた認証条件を抽出し、図28に示すS65としてのS102において、認証条件の有無を判定する。さらに、認証条件ありと判定した場合(YES の場合)、サービス管理部82は、S64としてのS103において、記憶部73から認証条件の内容を読み出してパージングする。一方、認証条件なしと判定された場合(上記S102にてNOの場合)、図28のS68以降の処理が行われる。なお、本構成例では、認証条件が、認証の要否のみの情報(サービス記述テーブルT3のフィールドF3d)と、詳細な認証条件(サービス認証属性テーブルT2のフィールドF2b)とに分けて記憶されているので、サービス管理部82は、上記S101において、サービスに対応するフィールドF3dを取得し、上記S103において、サービスに対応するフィールドF2bを取得する。
上記S103において、認証条件がパージングされ、認証条件が個々の条件に細分化されると、サービス管理部82は、S104において、細分化された条件と、認証デバイス実行管理テーブルT4に格納されている、各ユーザ(または、そのユーザが使用する機器)に対して行われた認証処理の結果とのマッチングを行い、S105において、各細分化された各条件の中に、既に成功しているものが存在するか否かを判定する。より詳細には、サービス管理部82は、上記細分化された条件が認証方法での認証を示している場合、認証デバイス実行管理テーブルT4のレコードのうち、当該認証方法に対応するレコードにおいて、成否を示すフィールドF4bを参照し、当該フィールドF4に認証成功を示す情報(例えば”○”)が格納されていれば、当該条件での認証には既に成功していると判断する。さらに、存在していると判定した場合(上記S105においてYES の場合)、S106において、認証条件を更新して、当該条件を削除する。上記S104〜S106の処理は、判定対象となる条件(細分化された条件)が残っている間(S107にてYES の間)繰り返される。
判定対象となる条件がなくなると(上記S107にてNOの場合)、サービス管理部82は、S108において、認証条件が残っているか否か、並びに、残っている場合は、それが複数の条件から構成されているか否かを判定する。なお、上記S102の時点では、認証条件があったとしても、上記S106での認証条件更新処理によって認証条件が無くなった場合は、全て認証済み扱いとして処理可能なので、上記S102にて認証条件なしと判断した場合と同様に、図28のS68以降の処理が行われる。
上記S108での判定において、認証条件において、1つの細分化された条件が残っていると判断した場合(”1つ”の場合)、サービス管理部82は、当該細分化された条件での認証処理が上記認証条件に対応する認証処理であると決定し、図28に示すS66としてのS109において、サービスおよび認証に関連する管理情報を更新し、その後は、図28に示すS67以降の処理が行われる。
一方、上記S108での判定において、残っている認証条件が複数の条件から構成されていると判断した場合(”複数”の場合)、S110において、サービス管理部82は、例えば、サービス実行管理テーブルT5のレコードのうち、上記要求されたサービスに対応するレコードの逐次処理モードフラグを参照するなどして、逐次処理モードが有効か否かを判定する。ここで、逐次処理モードは、上述したように、複数認証条件が課せられているときに、その認証条件を一つずつ細分化して認証要求を発呼するモードであって、サービス管理部82は、有効と判断した場合(上記S110にてYES の場合)、S111において、各条件のうち、最初の1つを抽出し、当該条件での認証が、上記認証条件に対応する認証処理であると決定する。さらに、サービス管理部82は、図28に示すS66としてのS112において、サービスおよび認証に関連する管理情報を更新し、その後は、図28に示すS67以降の処理が行われる。
これとは逆に、逐次処理モードが無効と判断した場合(上記S110にてNOの場合)、S113において、サービス管理部82は、例えば、サービス実行管理テーブルT5のレコードのうち、上記要求されたサービスに対応するレコードのカウント優先モードフラグを参照するなどして、カウント優先モードが有効か否かを判定する。有効と判定した場合(YES の場合)、サービス管理部82は、S114において、上記S108の時点の認証条件を認証カウントに変換し、当該認証カウントでの認証が、上記認証条件に対応する認証処理であると決定する。さらに、サービス管理部82は、図28に示すS66としてのS115において、サービスおよび認証に関連する管理情報を更新し、その後は、図28に示すS67以降の処理が行われる。なお、この場合、当該S67において、サービス管理部82は、認証カウント情報のみを用いた認証要求の形へアセンブルされた認証要求を送信する。
一方、カウント優先モードが無効と判定された場合(上記S113にてNOの場合)、サービス管理部82は、S116において、上記S108の時点の認証条件を、上記認証条件に対応する認証処理であると決定する。さらに、サービス管理部82は、図28に示すS66としてのS117において、サービスおよび認証に関連する管理情報を更新し、その後は、図28に示すS67以降の処理が行われる。なお、この場合、当該S67において、サービス管理部82は、上記S108の時点の認証条件での認証を示す認証要求を送信する。
なお、「認証条件として認証カウントが明示的に与えられている場合」、「認証条件が複数の条件から構成されており、しかも、認証カウントが、その一条件として既に含まれている場合」、あるいは、「認証カウントへの変換のための情報が欠落している場合」には、サービス管理部82は、カウント優先モードが有効か否かに拘わらず、認証条件への変換を行なわず、上記S116以降の処理を行う。
続いて、図28に示すS70にて設定されたイベントが発生したときの動作と、当該イベントの一例として、タイマイベントを監視する際の動作と、それらを処理するハンドラの構成とについて説明する。本構成例に係るサービス管理部82は、各イベントを処理するイベントハンドラを階層化して管理しており、それによって実現される多階層イベントハンドル機構にて各イベントを処理している。
具体的には、本構成例に係るサービス管理部82は、上記S70において各サービスの認証処理毎に設定されるイベントのハンドラを、サービス管理部82が実際に監視しているイベント(例えば、タイマイベントなど)のハンドラ(下位ハンドラ)の上位ハンドラとして管理している。サービス管理部82は、各上位ハンドラに、それを検出するための下位ハンドラを関連付けており、サービス管理部82に設けられる下位ハンドラは、自らが監視しているイベントの発生を検出すると、それに関連付けられた上位ハンドラにイベントの発生を通知して、当該上位ハンドラを起動することができる。なお、上記下位ハンドラは、イベント発生を検出した場合、上位ハンドラへの通知の要否を判定し、必要と判定した場合にのみ通知してもよい。
一方、サービス管理部82に設けられる上位ハンドラのうち、次回の認証処理に関連するハンドラは、下位ハンドラからの通知に応じて、認証要求を送信して、認証処理を開始することができる。なお、それに伴なって、本構成例に係る上位ハンドラは、記憶部73の管理情報も更新している。また、上位ハンドラは、下位ハンドラからの通知を受けた場合、自らに対応する認証処理実行の要否を判定し、必要と判断した場合にのみ、認証処理を開始してもよい。
なお、上位ハンドラのうち、次回の認証処理に関連するハンドラは、認証条件または継続条件を細分化した条件だけではなく、継続条件全体を再評価しているため、当該ハンドラを、認証処理毎ではなく、サービス毎に設けてもよいが、本構成例では、認証処理毎に設けている。
本構成例では、上記下位ハンドラの一例として、基準時間毎に発生するタイマイベントを監視することによって、インターバル時間指定に基づく認証処理の起動を可能にするためのタイマイベントハンドラ(タイマハンドラ)が設けられている。
当該タイマハンドラは、各上位ハンドラに共通に設けられており、基準時間毎に発生するタイマイベントを監視している。また、サービス管理部82は、図8および図9に示すように、サービス実行管理テーブルT5において、認証フラグのタイマフラグを有効に、しかも、次回認証予定時点情報を有効な値に設定することにより、当該次回認証予定時点情報に対応する上位ハンドラとタイマハンドラとを関連付けている。さらに、タイマハンドラは、タイマイベントの発生を検出した場合に、当該サービス実行管理テーブルT5を検索して、当該タイマイベントの発生を伝えるべき上位ハンドラを探索し、見出した場合は、その上位ハンドラに、イベントの発生を通知している。より詳細には、タイマハンドラは、サービス実行管理テーブルT5の中から、対応する認証フラグのタイマフラグが有効で、しかも、現時点を超過している次回認証予定時点情報を抽出し、当該次回認証予定時点情報に対応する上位ハンドラに、上記タイマイベントの発生を伝えるべきと判断している。
このように、本構成例に係るタイマハンドラは、タイマイベントが発生する度に、サービス毎に設定されている条件(例えば、次回認証予定時点情報など)との間でマッチング処理を行い、条件がヒットした場合には、そのタイミングをもって上位ハンドラに通知している。
したがって、タイマハンドラが共通であるにも拘わらず、仮想的には、各上位ハンドラ(認証処理)に個別のタイマが実現されており、それぞれ個別にタイマが満了したか否かを検出できる。
また、上記上位ハンドラは、下位ハンドラとしてのタイマハンドラからの通知を受けた場合、自らに対応する認証処理の認証条件または継続条件を特定すると共に、それに基づいて、認証処理実行の要否を判定している。
上記構成において、タイマが起動している状態では、予め定められた基準時間毎にタイマイベントが発生しており、サービス管理部82は、タイマイベントが発生すると、例えば、割り込み指示などによって、タイマハンドラの処理を開始させる。
処理が開始されると、タイマハンドラは、S121において、サービス実行管理テーブルT5を検索して、当該タイマイベントの発生を伝えるべき上位ハンドラに対応する認証処理があるか否か、すなわち、各上位ハンドラ毎の仮想的なタイマの中に満了したタイマがあるか否かを判定する。
タイマイベントの発生を伝えるべき上位ハンドラに対応する認証処理がない場合(満了したタイマがない場合;NOの場合)、タイマハンドラは、例えば、割り込み要因をクリアして、割り込みからの復帰処理を行うなどして、処理を終了する。
これとは逆に、タイマイベントの発生を伝えるべき上位ハンドラに対応する認証処理が見出された場合(いずれかのタイマが満了した場合;YES の場合)、タイマハンドラは、S122において、見出された認証処理のそれぞれについて、対応する上位ハンドラを呼び出し、処理を終了する。
一例として、本構成例に係るタイマハンドラは、上記S122において各認証処理に対応する上位ハンドラを呼び出す際、サービス管理部82に保持されている各イベント要因ステータスのうち、呼び出し対象となる上位ハンドラのイベント要因ステータスを有効に設定すると共に、自らに対する割り込み要因をクリアして、割り込みからの復帰処理を行っている。
一方、タイマハンドラなどの下位ハンドラからイベント発生が通知されると、図32に示すS131において、上位ハンドラは、例えば、サービス認証属性テーブルT2から、自らに対応する認証処理を含むサービスのレコードを参照するなどして、認証条件および継続条件を特定する。さらに、上位ハンドラは、当該サービスの前回の認証時において使用された認証方法を推定または特定すると共に、例えば、認証デバイス実行管理テーブルT4に格納されている情報のうち、それらの認証方法の成否の情報を、失敗も成功もしていないことを示す値に変更したり、その認証方法のレコード自体を削除したりして、認証デバイス実行管理テーブルT4から、その認証方法が失敗したことを示す情報、および、その認証方法が成功したことを示す情報を削除する。
より詳細には、上記S131において、上位ハンドラは、例えば、サービス実行管理テーブルT5のレコードのうち、自らに対応するサービスのレコードにおいて、前回認証完了時点とアクティベートとを比較するなどして、前回の判定条件が認証条件であるか継続条件であるかを特定できる。また、上位ハンドラは、例えば、判定条件を細分化して、前回行われた認証方法を推定してもよいし、例えば、サービス実行管理テーブルT5に格納された認証処理情報から認証条件(または、それを細分化したもの)を特定してもよい。
なお、上記では、当該サービスの前回の認証時において使用された認証方法が失敗または成功したことを示す情報を、認証デバイス実行管理テーブルT4から削除する構成について説明したが、上位ハンドラは、例えば、ある認証方法の上記情報を削除する前に、サービス実行管理テーブルT5に記憶されている各サービスの認証処理情報に基づいて、上記サービスの前回の認証時よりも後に、削除対象となる認証方法で認証した他のサービスがあるか否かを探索し、見出された場合は、情報の削除を中止してもよい。
また、上位ハンドラは、例えば、前回の判断条件が認証カウントまたは認証レベルであり、しかも、認証応答によっても認証に使用した認証方法または認証デバイス51を特定できなかった場合など、当該サービスの前回の認証時において使用された認証方法を推定も特定もできなかった場合、例えば、認証デバイス実行管理テーブルT4から、その認証方法が失敗したことを示す情報、および、その認証方法が成功したことを示す情報を削除する。
いずれの場合であっても、上記S131にて認証条件および継続条件が特定され、管理情報が更新されると、S132において、上位ハンドラは、図28に示すS64と同様に継続条件を解釈し、S133において、S65と同様に認証処理の要否を判定する。なお、S132およびS133では、図28に示すS64およびS65、あるいは、図29の各ステップと同様に、他のサービスのための認証において既に成功している認証方法は除外した上で、新たな認証処理の要否が判定される。
新たな認証処理が必要と判断した場合(上記S133にてYES の場合)、上位ハンドラは、S134において、例えば、サービス実行部81へ指示するなどして、一時的にサービスの提供を中止させると共に、S135およびS136において、S66およびS67と同様に認証要求を送信すると共に管理情報を更新して処理を終了する。
これとは逆に、新たな認証処理が不要と判断した場合(上記133にてNOの場合)、上位ハンドラは、S137において、例えば、「認証条件に関するステータスが一度更新されたがサービスは、継続的に利用可能な状態である」ことを示すサービス応答を端末装置3へ送信するなどして、ユーザへ、サービス提供のステータス、すなわち、当該サービスを継続的に利用可能であることを通知する。さらに、上位ハンドラは、S138において、上記S70においてサービス要求を受け付けた際に認証処理が不要だった場合と同様に、記憶部73の管理情報を更新する。
ところで、上記では、上位ハンドラのうち、次回の認証処理に関連するハンドラについて説明したが、本構成例に係るサービス管理部82には、認証判断満了時の処理のための上位ハンドラも設けられる。当該上位ハンドラも、次回の認証処理に関連するハンドラと上記タイマハンドラを共有しており、サービス管理部82は、サービス実行管理テーブルT5において、認証フラグのタイマフラグを有効に、しかも、認証判断満了時点情報を有効な値に設定することにより、当該認証判断満了時点に対応する上位ハンドラとタイマハンドラとを関連付けている。
さらに、タイマハンドラは、タイマイベントの発生を検出した場合に、次回認証予定時点情報だけではなく、認証判断満了時点情報に対するマッチング処理を行っており、サービス実行管理テーブルT5の中から、対応する認証フラグのタイマフラグが有効で、しかも、現時点を超過している認証判断満了時点情報が見つかれば、当該認証判断満了時点情報に対応する上位ハンドラに、タイマイベントの発生を伝えるべきと判断している。なお、認証判断満了時点情報は、認証処理毎に記憶されているので、当該上位ハンドラは、認証処理毎に設けられる。
一方、当該上位ハンドラは、タイマハンドラからタイマイベントの発生が伝えられると、上述した認証失敗を示す認証応答を受け取った場合と同様に、記憶部73のうち、自らに対応する認証処理の管理情報を更新する。
なお、上記では、サービス管理部82が、サービス制御部74における一連のデータの流れを制御している中核モジュールとして機能し、サービスと認証のために必要な情報(認証条件あるいは履歴情報など)とのマッチングも行う構成について説明したが、これに限るものではない。例えば、サービス実行部81または各サービス処理部71など、サービス管理部82とは別の部材が、サービスと必要な認証方法または認証デバイス51に関するマッチングを取る構成になっていてもよい。この場合は、単に判断を行う箇所が異なるだけではなく、以下のメリットがある。すなわち、サービス管理部82が、サービス提供に関する一次ロック機構を提供するだけではなく、上記サービス管理部82とは別の上記部材が、当該一次ロック機構とは独立した二次ロック機構を提供できる。したがって、より安全かつ厳格なサービス提供装置を実現できる。
このように、本実施形態に係るサービス管理装置7は、サービス機能を利用するための利用者認証を必要とするサービス管理装置であって、外部認証用機器と接続するための接続インタフェースと、外部機器からのサービス要求および認証応答を受信するサービス要求受信手段と、当該装置がもつサービス機能集合あるいは当該装置からアクセス可能なサービス機能に関する情報を管理・蓄積するためのサービス情報蓄積手段と、サービス要求受信手段を介した要求に対し、前記サービス情報蓄積手段から対象となるサービス機能の選択および抽出を行うとともにサービス機能に呼応する認証要求およびサービス結果応答に関する管理を行いサービス機能提供の可否を決定するサービス管理手段と、前記サービス管理手段からの指示に基づき当該サービス機能を実行するサービス実行手段と、前記サービス管理手段からの指示に基づきサービス機能に関する検索を行うサービス検索手段と、認証要求またはサービス結果応答を外部機器に送信するサービス応答送信手段を有することを特徴としている。
また、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段は、当該装置がもつサービス機能集合あるいは当該装置からアクセス可能なサービスを利用するためにサービス機能毎に必要な認証条件を含むサービス認証属性情報を格納するとともに、前記サービス管理手段は、サービス認証属性情報をもとに必要な認証操作に関する管理、制御を行っている。
さらに、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段に蓄積されるサービス認証属性情報には、当該サービスの提供に際し要求される認証条件に関する情報が含まれ、前記サービス管理手段は、サービス機能提供の可否を決定するために、サービス認証属性情報を参照し、当該認証条件を付加した認証要求を前記サービス応答送信手段を介し外部装置に対し送信するとともに外部機器から前記サービス要求受信手段を介して通知される認証応答を解釈し、サービス機能提供の可否を決定している。
また、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段に蓄積されるサービス認証属性情報には、当該サービスの提供に際し要求される認証手段あるいは方式そのものを明示的に指定する情報が含まれ、前記サービス管理手段は、サービス機能提供の可否を決定するために、サービス認証属性情報を参照し、認証手段あるいは方式を指定した認証要求を前記サービス応答送信手段を介し外部装置に対し送信するとともに外部機器から前記サービス要求受信手段を介して通知される認証応答を解釈し、サービス機能提供の可否を決定している。
さらに、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段に蓄積されるサービス認証属性情報には、当該サービスの提供に際し要求される認証レベル情報が含まれ、前記サービス管理手段は、サービス認証属性情報を参照し、認証レベル指定を与えた認証要求をサービス提供の可否を決定するために前記サービス応答送信手段を介し外部装置に対し送信するとともに前記サービス要求受信手段を介して外部機器から通知される認証応答を解釈し、サービス機能提供の可否を決定している。
また、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス認証属性情報には、当該サービスの提供に際し満足すべき下限として定義される数値情報である認証カウント情報が含まれ、前記サービス管理手段は、サービス認証属性情報を参照し、前記認証カウント情報を与えた認証要求をサービス提供の可否を決定するために前記サービス応答送信手段を介し外部装置に対し送信するとともに前記サービス要求受信手段を介して外部機器から通知される認証応答を解釈し、サービス機能提供の可否を決定している。
また、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス認証属性情報に含まれる前記認証レベル情報は、ある規定範囲内における前記認証カウント情報へ変換可能であり、前記サービス管理手段は、サービス提供の可否を決定するために、サービス認証属性情報を参照し、前記認証レベル指定条件を前記認証カウント情報へ変換した数値情報を与えた認証要求を前記サービス応答送信手段を介し外部装置に対し送信するとともに前記サービス要求受信手段を介して外部機器から通知される認証応答を解釈し、サービス機能提供の可否を決定している。
さらに、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス管理手段は、前記サービス要求受信手段を介して通知される認証応答を解釈し、その結果得られた認証情報を履歴情報として格納・蓄積し、前記サービス認証属性情報とともに前記履歴情報を用いて必要な認証操作に関する管理、制御を行っている。
また、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス管理手段は、前記サービス要求受信手段を介して通知される認証応答を解釈した結果それが不成功だった場合に同一サービスカテゴリ分類されているサービスを抽出し、該サービス情報を利用者に対し提示するサービスオプション提示制御を行っている。
さらに、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段に蓄積される認証条件には、サービス提供を継続的に利用するための継続条件としての時間条件を別途設定でき、前記サービス管理手段は、サービスを継続的に利用可能にするために課せられた継続条件に基づき、課せられている認証条件を含む認証要求を前記サービス応答送信手段を介し外部装置に対し送信するとともに前記サービス要求受信手段を介して外部装置から通知される認証応答を解釈し、サービス機能提供の可否を決定している。
また、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段に蓄積されるサービス認証属性情報には、当該サービスの提供に際し要求される複数の認証条件設定が含まれ、前記サービス管理手段は、サービス機能提供の可否を決定するために、サービス認証属性情報を参照して複数の認証条件を設定した一認証要求として前記サービス応答送信手段を介し外部装置に対し送信するとともに前記サービス要求受信手段を介して外部機器より通知される認証応答を解釈し、サービス機能提供の可否を決定している。
さらに、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段に蓄積されるサービス認証属性情報には、当該サービスの提供に際し要求される複数の認証条件設定が含まれ、前記サービス管理手段は、サービス機能提供の可否を決定するために、サービス認証属性情報を参照して複数の認証条件を設定した単一の認証要求として前記サービス応答送信手段を介し外部装置に対し送信するとともに前記サービス要求受信手段を介して外部機器より通知される複数の認証応答を全て解釈した上で、サービス機能提供の可否を決定している。
また、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段に蓄積されるサービス認証属性情報には、当該サービスの提供に際し要求される複数の認証条件設定が含まれ、前記サービス管理手段は、サービス機能提供の可否を決定するために、サービス認証属性情報を参照し単一の認証条件を設定した認証要求を前記サービス応答送信手段を介し順次外部装置に対し送信するとともに前記サービス要求受信手段を介して外部機器より順次通知される認証応答を順次解釈し、全ての認証応答を取得した上でサービス機能提供の可否を決定している。
さらに、本実施形態に係るサービス管理装置7は、上記構成に加えて、前記サービス情報蓄積手段には、当該装置がもつサービス機能集合に関するサービス記述情報のみが蓄積され、サービス機能毎に要求される認証情報を含むサービス認証属性情報が格納されてない場合、前記サービス管理手段は、サービス記述情報に含まれるサービス認証属性情報へのポインタ情報を元に前記サービス検索手段を介し該当するサービス機能に従属する認証属性情報を探索し、取得した結果情報を前期サービス情報蓄積手段へ格納している。
また、本実施形態に係るサービス管理システム1は、サービス機能を利用するための利用者認証を必要とするサービス管理システムであって、少なくとも利用者認証に基づくサービス提供を行うためのサービス管理装置と利用者を特定するための認証装置と利用者に対し情報の入出力を行うための実行装置から構成され、前記認証装置は、少なくとも1つ以上の認証手段と、外部機器と接続するための接続インタフェースと、外部機器からの認証要求を受信する認証要求受信手段と、当該装置のもつ認証手段および当該手段がもつ機能を管理する認証機能管理手段と、前記受信した認証要求を元に当該装置のもつ認証手段を選択する認証機能選択手段と、前記選択された認証手段を実行する認証機能実行手段と、認証結果を外部機器に送信する認証結果送信手段を有し、前記実行装置は、利用者からの情報、指示入力を行うための入力手段と、利用者への情報提示を行うための出力手段と、利用者からの入力と利用者への出力を制御するとともに前記サービス管理装置と前記認証装置の間をインタフェースする機能を持っている。
したがって、本実施形態に係るサービス管理システム1では、サービスに応じて必要な認証方式、あるいは、レベルを与えることが可能であり、サービス提供時において高度なセキュリティを満足するサービス提供フレームワークを実現することができる。また、サービスがサービス管理装置7の有する機能であっても、ネットワークサービスであってもよく、特に、ネットワークを介してサービスをオープンに提供できる拡張性の高いシステムを実現可能である。
また、サービスに必要な認証方式を直接指定できるだけでなく、認証レベル、あるいは、それに準じる数値にて定義を行うことで、ユーザの利用する機器(認証装置5)にて認証方式の決定を許容できる。したがって、モバイル機器や家電機器のような限られた認証手段しかもたない機器でも、サービスを安全に利用可能で、しかも、柔軟性の高いサービス提供フレームワークを実現可能である。これにより、場所・時間・環境・機器を問わず安全なサービスアクセスを提供できることができ、ユーザの便宜を図ることができる。
〔第2の実施形態〕
ところで、第1の実施形態では、サービス管理装置7がサービス処理部71を備えている構成について説明した。これに対して、以下では、サービス管理装置がネットワークを経由してサービス実体(サービス処理部)にアクセスする構成について説明する。なお、サービス処理部が端末装置にサービス結果を通知できると共に、サービス管理装置のサービス制御部によって、サービス処理部が端末装置へサービスを提供できるか否かを制御できれば、例えば、サービス処理部がサービス管理装置を介さずに端末装置と通信すると共に、サービス制御部がサービス処理部へ指示して提供の可否を制御する構成であってもよいが、本実施形態に係るサービス管理システム1aでは、一例として、サービス処理部によるサービス結果がサービス管理装置を介して端末装置3に通知されている。
具体的には、本実施形態に係るサービス管理システム1aでは、図33に示すように、サービス処理部71a…がネットワーク上に設けられており、サービス管理装置7aは、当該サービス管理装置7aに設けられたサービス処理部71aとネットワーク経由で通信している。これに伴なって、本実施形態に係るサービス管理装置7aでは、図34に示すように、サービス処理部71に代えて、サービス処理部とアクセスするためのサービス接続インタフェース75aが設けられており、サービス制御部74aは、当該サービス接続インタフェース75およびネットワークを経由して、サービス管理装置7aの外に設けられたサービス処理部71aと情報をやり取りしている。
また、サービス管理システム1aには、上記各サービス処理部71aが登録されたディレクトリサービス9aが設けられており、サービス制御部74aは、記憶部73内のディレクトリを検索して、サービス処理部71の情報を取得する処理に加えて、当該ディレクトリサービス9aにアクセスして、サービスの検索を依頼し、上記サービス処理部71aの情報を取得できる。
なお、上記サービス制御部74aおよびサービス処理部71aは、ネットワークおよびサービス接続インターフェース75aを介して、相互にデータをやり取るする点を除いて、上述したサービス制御部74およびサービス処理部71と基本的に同様の構成であり、これらと同じ構成および動作については、説明を省略する。また、図33では、全てのサービス実体が、ネットワーク経由で接続されたサービス処理部71aである場合を例示しているが、本実施形態に係るサービス管理装置7aは、サービス管理装置7と同様に、サービス処理部71を設けることもでき、この場合、サービス制御部74aは、サービス制御部74と同様に、サービス処理部71と直接通信する。
ここで、本実施形態に係るサービス処理部71aの中には、サービス管理装置7aからのサービス提供の指示(依頼)を受け付けた場合に、ユーザの情報としてのユーザIDおよび認証情報に基づいて、サービス提供を受け付けるか否かを判定するものも含まれている。これに伴なって、上記サービス制御部74aは、このようなサービス処理部71aと通信して、サービス提供を指示(依頼)する際、ユーザの情報を送信することもできる。
具体的には、本実施形態に係るサービス制御部74aは、サービス処理部71aへサービス提供を指示する場合、図35に示すように動作している。すなわち、S141において、サービス制御部74aは、例えば、図10に示すサービス記述テーブルT3に格納されているサービス記述情報のうち、サービス処理部71aへのアクセス方法が格納されたフィールドF3e・F3fを参照するなどして、サービス処理部71aへサービス実行を指示する際に、ユーザ情報が必要であるか否かを判定する。
さらに、ユーザ情報が必要な場合(上記S141にてYES の場合)、サービス制御部74aは、S142において、例えば、サービス実行管理テーブルT5の認証処理情報からユーザ情報を抽出するなどして、ユーザ情報を抽出し、S143において、例えば、上記アクセス方法のフィールドF3e・F3fを参照するなどして、ユーザ情報を含むサービス実行指示を生成する。より詳細には、本構成例に係るサービス制御部74aは、サービス実体としてのサービス処理部71aに対してサービス実行指示を行なうための命令アセンブルを行う際、上記抽出されたサービス記述情報に基づいて、当該サービスが定義するインタフェースに合わせる形で、引数に抽出したユーザ情報を適合させていき、それによってサービス実行指示を生成している。
なお、本構成例では、当該ユーザ情報には、ユーザIDが含まれており、さらに認証情報が必要な場合には、認証情報も含まれている。これに伴なって、本構成例に係るサービス制御部74aは、上記S141およびS142において、ユーザIDの要否判定およびユーザIDの抽出と、認証情報の要否判定および認証情報の抽出とを行っている。具体的には、サービス制御部74aは、最初にユーザIDの要否を判定し、ユーザIDが必要な場合は、ユーザ情報の抽出処理の一部として、上記認証処理情報からユーザIDを抽出している。また、ユーザIDが必要な場合、サービス制御部74aは、認証情報の要否を判定し、認証情報が必要な場合は、上記認証処理情報から認証情報を抽出している。
これとは逆にユーザ情報が不要な場合(上記S141にてNOの場合)、サービス制御部74aは、S143において、ユーザ情報を含まず、予め定められた形式のサービス実行指示を生成する。
上記S142またはS143において、サービス実行指示が生成されると、サービス制御部74aは、S144において、例えば、例えば、上記アクセス方法のフィールドF3e・F3fを参照するなどして、サービス実行指示の対象となるサービス実体がネットワークサービスか否かを判定する。一例として、本構成例に係るサービス制御部74aは、サービス実体がネットワークサービスか否かを判定する際、例えば、上記アクセス方法のフィールドF3e・F3fを参照するなどして、当該サービス実体がローカルドメイン内の資源か否かを判定し、ローカルにて解決できない処理の場合(ローカルドメイン内の資源ではない場合)には、ネットワークサービスと判定している。
ネットワークサービスの場合(サービス処理部71aの場合)、S145において、サービス接続インターフェース75aおよびネットワークを介して、上記生成されたサービス実行指示をサービス処理部71aへ送信する。なお、サービス制御部74aは、送信先も上記アクセス方法のフィールドF3e・F3fを参照して決定している。
これとは逆に、サービス実体がネットワークサービスではない場合(サービス処理部71の場合;図34では図示せず)、サービス制御部74aは、S146において、サービス実行指示の対象となるサービス処理部71へ、上記生成されたサービス実行指示を与える。
上記構成では、図36に示すように、第1の実施形態と略同様、例えば、ユーザの入力操作などによって、サービス提供が要求されると、端末装置3は、当該サービスを示すサービス要求をサービス管理装置7へ送信し(t1の時点)、サービス管理装置7aは、認証装置5が提供可能な複数の認証方法のうち、端末装置3から要求されたサービスに応じた認証方法での認証を認証装置5へ要求する(t2の時点)。さらに、認証装置5にて、認証要求に応じた認証処理が行われ、認証装置5が認証応答を送信すると(t3の時点)、サービス管理装置7aは、認証応答に基づいて上記サービスの認証条件を満たしているか否かを判定して、当該サービスの提供可否を決定する。なお、一例として、図34では、図14と同様に、認証方法を直接指定した認証要求を、サービス管理装置7aが送信しているが、第1の実施形態と同様に、認証レベル、認証カウントをはじめとして種々の方法で認証方法を指定できる。
ただし、本実施形態では、サービス処理部71aがサービス管理装置7a外に設けられている。したがって、サービス管理装置7aは、サービス提供可と判断した場合、サービス処理部71aへサービスの実行を指示し(t31nの時点)、サービス処理部71aからの応答によって、サービスの実行結果を取得する(t32nの時点)。なお、図34では、サービス処理部71aがユーザの情報としてユーザIDおよび認証情報を要求する場合を例示しており、サービス管理装置7aは、サービスの実行を指示する際、これらの情報も送信している。その後は、サービス管理装置7aは、図14と同様に、端末装置3へサービスの実行結果を示すサービス応答を送信する(t4の時点)。
ここで、図36では、点線で示しているが、サービス管理装置7aは、上記t1の時点でサービス要求を受け付けた際に、そのサービスを提供するためのサービス処理部71aの情報が自らの記憶部73に記憶されていなければ、認証装置5へ認証要求を送信する時点t2よりも前に、ネットワーク上のディレクトリサービス9aにアクセスして、サービスの検索を依頼し(t51nの時点)、時点t52nにおける検索結果に基づいて、上記サービス処理部71aの情報を取得している。
具体的には、本実施形態に係るサービス制御部74aは、上述した図29と略同様の処理を行っている。ただし、本実施形態では、S95とS97との間にS98およびS99が設けられており、サービス制御部74aは、上記S95において、要求されているサービスを提供可能なサービス処理部71の情報が記憶部73に記憶されていないと判定すると(NOの場合)、S98において、例えば、予め定められたディレクトリサービス9aへ問い合わせて、サービス管理システム1内のディレクトリを対象にした検索を指示するなどして、ネットワーク検索を行う。さらに、サービス制御部74aは、検索でヒットすれば(S99にてYES の場合)、S96以降の処理を行い、ヒットしなければ(NOの場合)、S97以降の処理を行う。
以下では、第2の実施形態を構成する各部材について、さらに詳細に説明する。すなわち、上記サービス接続インタフェース75aは、サービス管理装置7aを外部のネットワークサービス(例えば、サービス処理部71a)と接続するための機能モジュールであり、ネットワークアクセス用ハードウェアを備えている。当該サービス接続インタフェース75aは、上述した通信処理部72の接続インタフェースと同様に、ネットワーク経由で伝えられた信号の内容をサービス制御部74aへ通知し、サービス制御部74aからの指示に応じて、ネットワークを経由してサービス処理部71aへデータを送信できる。また、本実施形態に係るサービス接続インターフェース75aは、上記接続インタフェースと略同様に、ネットワークを介したサービス関連問い合わせに関するデータグラム変換機能も有している。
なお、サービス接続インタフェース75aを実現するためのハードウェアおよびソフトウェアの一部あるいは全部は、上記接続インタフェースと共用されていてもよいが、当該接続インタフェースの通信相手が、端末装置3や認証装置5などの外部機器であるのに対して、サービス接続インタフェース75aの通信相手は、サービス処理部71aなどのネットワークサービスである。したがって、図33では、説明の便宜上、サービス接続インタフェース75aと通信処理部72とを分けて図示している。なお、通信相手が相違しているので、サービス管理装置7aでは、接続インタフェースとサービス接続インタフェース75aとが互いに同じものであったとしても、両者を論理的に別のデバイスとして定義してもよい。
一方、上記サービス処理部71aは、上述したサービス処理部71と略同様の構成であるが、ネットワーク上に存在するサービスであって、サービス制御部74aは、基本的には、遠隔手続き呼び出しの形で、当該サービスへアクセスしている。
図1に示す構成を例にして、より詳細に説明すると、サービス管理部82がサービス実行部81およびサービス検索部83に対して、ネットワークプロトコルを前提とした情報を与えてアクセスを指示できる。
また、本実施形態に係るサービス管理システム1aでは、第1の実施形態のサービス記述情報と同様に、実際のサービスを提供するためのサービス実体(サービス処理部71a)とは別の資源として、当該サービスを利用するための情報を記述するサービス記述情報が用意されており、各サービス記述情報を、上記サービス実体と切り離して保存・蓄積できる。さらに、サービス制御部74aは、ネットワークサービスに特に好適な方法として、サービス記述情報を参照して、当該サービス記述情報とサービス実体とを実行時に結びつける(バインディングする)ことができる。なお、本実施形態に係るサービス制御部74aは、サービス記述情報とサービス実体とを常に結び付けることもできるが、ネットワークサービスの場合、通常は、実行時にバインディングしている。
なお、上述したように、例えば、図7および図10に示すサービスに関係する情報(サービス記述情報および後述するサービス認証属性情報)において、それぞれの格納場所と、図8に示す認証処理情報におけるターゲット認証装置の情報と、サービス実体へのアクセス方法とは、ネットワーク経由の資源にアクセスする場合とローカルの資源にアクセスする場合との双方を記憶可能な形式で記憶されているので、サービス制御部74aは、これらの情報の格納場所、認証装置5、あるいはサービス実体がネットワーク上の資源である場合であっても、何ら支障なく、これらの格納場所、認証装置5およびサービス実体(サービス処理部71a)にアクセスできる。
このように、本実施形態に係るサービス管理装置7aは、ネットワークサービス機能を利用するために利用者認証を必要とするサービス管理装置であって、当該サービス機能の提供において、外部認証用機器と接続するための接続インタフェースと、外部機器からのサービス要求および認証応答を受信するサービス要求受信手段と、当該装置がもつサービス機能集合あるいは当該装置からアクセス可能なサービス機能に関する情報を管理・蓄積するためのサービス情報蓄積手段と、サービス要求受信手段を介した要求に対し、前記サービス情報蓄積手段から対象となるサービス機能の選択および抽出を行い、サービス機能に呼応する認証要求およびサービス結果応答に関する管理を行うとともにサービス機能提供の可否を決定するサービス管理手段と、前記サービス管理手段からの指示に基づき当該サービス機能を実行するサービス実行手段と、前記サービス管理手段からの指示に基づきサービス機能に関する検索を行うサービス検索手段と、認証要求またはサービス結果応答を外部機器に送信するサービス応答送信手段と、外部ネットサービス機能と接続するためのサービス接続インタフェースを有している。
また、本実施形態に係るサービス管理装置7aは、上記構成に加えて、前記サービス管理手段は、前記サービス要求受信手段を介して通知される認証応答を解釈し、その結果得られた認証情報を履歴情報として格納・蓄積するとともに利用者情報を含めた管理を行い、前記サービス実行手段への実行指示タイミングにおいては、前記サービス実行手段に対し、利用者情報と認証情報を含めた形式にて、前記サービス接続インタフェースを介してサービス主体に対し実行指示を行なうことでサービスを駆動している。
さらに、本実施形態に係るサービス管理装置7aは、上記構成に加えて、前記サービス検索手段は、前記サービス接続インタフェースを介してサービス機能に関する情報を取得する際にサービス認証属性情報を選択条件として与えることでサービスアクセスに必要な情報を探索するとともに、取得したサービス情報を前記サービス情報蓄積手段を用いて格納、管理している。
さらに、本実施形態に係るサービス管理システム1aは、ネットワークサービス機能を利用するために利用者認証を必要とするサービス管理システムであって、少なくとも利用者認証に基づくネットワークサービス提供を行うためのサービス管理装置と利用者を特定するための認証装置と利用者に対し情報の入出力を行うための実行装置から構成され、前記認証装置は、少なくとも1つ以上の認証手段と、外部機器と接続するための接続インタフェースと、外部機器からの認証要求を受信する認証要求受信手段と、当該装置のもつ認証手段および当該手段がもつ機能を管理する認証機能管理手段と、前記受信した認証要求を元に当該装置のもつ認証手段を選択する認証機能選択手段と、前記選択された認証手段を実行する認証機能実行手段と、認証結果を外部機器に送信する認証結果送信手段を有し、前記実行装置は、利用者からの情報、指示入力を行うための入力手段と、利用者への情報提示を行うための出力手段と、利用者からの入力と利用者への出力を制御するとともに前記サービス管理装置と前記認証装置の間をインタフェースする機能を持っている。
したがって、本実施形態に係るサービス管理システム1aでは、サービスに応じて必要な認証方式、あるいは、レベルを与えることが可能であり、サービス提供時において高度なセキュリティを満足するサービス提供フレームワークを実現することができる。また、サービスがサービス管理装置7aの有する機能であっても、ネットワークサービスであってもよく、特に、ネットワークを介してサービスをオープンに提供できる拡張性の高いシステムを実現可能である。
また、サービスに必要な認証方式を直接指定できるだけでなく、認証レベル、あるいは、それに準じる数値にて定義を行うことで、ユーザの利用する機器(認証装置5)にて認証方式の決定を許容できる。したがって、モバイル機器や家電機器のような限られた認証手段しかもたない機器でも、サービスを安全に利用可能で、しかも、柔軟性の高いサービス提供フレームワークを実現可能である。これにより、場所・時間・環境・機器を問わず安全なサービスアクセスを提供できることができ、ユーザの便宜を図ることができる。
なお、上記各実施形態では、各装置を構成する各部材が、「CPUなどの演算手段がROMやRAMなどの記録媒体に格納されたプログラムコードを実行することで実現される機能ブロックである」場合を例にして説明したが、同様の処理を行うハードウェアで実現してもよい。また、処理の一部を行うハードウェアと、当該ハードウェアの制御や残余の処理を行うプログラムコードを実行する上記演算手段とを組み合わせても実現することもできる。さらに、上記各部材のうち、ハードウェアとして説明した部材であっても、処理の一部を行うハードウェアと、当該ハードウェアの制御や残余の処理を行うプログラムコードを実行する上記演算手段とを組み合わせても実現することもできる。なお、上記演算手段は、単体であってもよいし、装置内部のバスや種々の通信路を介して接続された複数の演算手段が共同してプログラムコードを実行してもよい。また、上記各部材のうちの記憶部54・73は、メモリなどの記憶装置自体であってもよい。
上記演算手段によって直接実行可能なプログラムコード自体、または、後述する解凍などの処理によってプログラムコードを生成可能なデータとしてのプログラムは、当該プログラム(プログラムコードまたは上記データ)を記録媒体に格納し、当該記録媒体を配付したり、あるいは、上記プログラムを、有線または無線の通信路を介して伝送するための通信手段で送信したりして配付され、上記演算手段で実行される。
なお、通信路を介して伝送する場合、通信路を構成する各伝送媒体が、プログラムを示す信号列を伝搬し合うことによって、当該通信路を介して、上記プログラムが伝送される。また、信号列を伝送する際、送信装置が、プログラムを示す信号列により搬送波を変調することによって、上記信号列を搬送波に重畳してもよい。この場合、受信装置が搬送波を復調することによって信号列が復元される。一方、上記信号列を伝送する際、送信装置が、デジタルデータ列としての信号列をパケット分割して伝送してもよい。この場合、受信装置は、受信したパケット群を連結して、上記信号列を復元する。また、送信装置が、信号列を送信する際、時分割/周波数分割/符号分割などの方法で、信号列を他の信号列と多重化して伝送してもよい。この場合、受信装置は、多重化された信号列から、個々の信号列を抽出して復元する。いずれの場合であっても、通信路を介してプログラムを伝送できれば、同様の効果が得られる。
ここで、プログラムを配付する際の記録媒体は、取外し可能である方が好ましいが、プログラムを配付した後の記録媒体は、取外し可能か否かを問わない。また、上記記録媒体は、プログラムが記憶されていれば、書換え(書き込み)可能か否か、揮発性か否か、記録方法および形状を問わない。記録媒体の一例として、磁気テープやカセットテープなどのテープ、あるいは、フロッピー(登録商標)ディスクやハードディスクなどの磁気ディスク、または、CD−ROMや光磁気ディスク(MO)、ミニディスク(MD)やデジタルビデオディスク(DVD)などのディスクが挙げられる。また、記録媒体は、ICカードや光カードのようなカード、あるいは、マスクROMやEPROM、EEPROMまたはフラッシュROMなどのような半導体メモリであってもよい。あるいは、CPUなどの演算手段内に形成されたメモリであってもよい。
なお、上記プログラムコードは、上記各処理の全手順を上記演算手段へ指示するコードであってもよいし、所定の手順で呼び出すことで、上記各処理の一部または全部を実行可能な基本プログラム(例えば、オペレーティングシステムやライブラリなど)が既に存在していれば、当該基本プログラムの呼び出しを上記演算手段へ指示するコードやポインタなどで、上記全手順の一部または全部を置き換えてもよい。
また、上記記録媒体にプログラムを格納する際の形式は、例えば、実メモリに配置した状態のように、演算手段がアクセスして実行可能な格納形式であってもよいし、実メモリに配置する前で、演算手段が常時アクセス可能なローカルな記録媒体(例えば、実メモリやハードディスクなど)にインストールした後の格納形式、あるいは、ネットワークや搬送可能な記録媒体などから上記ローカルな記録媒体にインストールする前の格納形式などであってもよい。また、プログラムは、コンパイル後のオブジェクトコードに限るものではなく、ソースコードや、インタプリトまたはコンパイルの途中で生成される中間コードとして格納されていてもよい。いずれの場合であっても、圧縮された情報の解凍、符号化された情報の復号、インタプリト、コンパイル、リンク、または、実メモリへの配置などの処理、あるいは、各処理の組み合わせによって、上記演算手段が実行可能な形式に変換可能であれば、プログラムを記録媒体に格納する際の形式に拘わらず、同様の効果を得ることができる。