以下、本発明の実施形態を、図面を参照して説明する。
<第1実施形態の構成>
図1は、本発明の第1実施形態に係るプログラマブルデバイス適用認証システムの構成を示すブロック図である。
図1に示すプログラマブルデバイス適用認証システム(認証システムともいう)10Aは、パーソナルコンピュータ等のクライアント端末機(端末機ともいう)11と、端末機11にインターネット12及び社内NW(ネットワーク)13を介して接続されたAP(Application Server)サーバ14と、キャッシュ用DB(データベース)15aを有する認証サーバ15Aと、FPGA装置16Aとを備えて構成されている。認証サーバ15Aは、APサーバ14にNW接続されると共に、プライベートNW17を介してFPGA装置16Aに接続されている。なお、APサーバ14の台数や社内NW13の構成は適宜変更可能となっている。キャッシュ用DB15aは、DB15aとも称す。
端末機11は、ユーザがIDやPW等の認証データの認証や、認証データの追加、削除又は変更を行う際に、そのリクエストを認証データと共にインターネット12へ送信する。この送信されたリクエスト及び認証データは、更に、社内NW13を介してAPサーバ14の中継の基に認証サーバ15Aへ送信される。
認証サーバ15Aは、キャッシュ用DB15aやFPGA装置16Aと連携して認証データの認証や、認証データの追加、削除又は変更を行い、これらの結果をAPサーバ14を経由し、更に社内NW13及びインターネット12を介して端末機11へ応答(返信)する。また、APサーバ14及び認証サーバ15Aは、端末機11との間で、上記通信経路にて所定の通信サービスを提供する。
ここで、第1実施形態の特徴について説明する。図2に示すように、ユーザが認証データの追加、削除又は変更を行う際に、端末機11から矢印Y1で示すように、ID=「user1」,PW=「aaa」の認証データを認証サーバ15Aへ送信し、認証サーバ15Aがその認証データをDB15aに一時的にキャッシュする。このキャッシュ後、ユーザが端末機11から認証データの変更等をリクエストしてきた場合、認証サーバ15Aは、ユーザからの認証データと、DB15aにキャッシュされた認証データと比較し、一致すればOK、不一致でNGとする認証を行う。この認証結果のOK/NG(OK又はNG)を矢印Y2で示すように、端末機11へ応答する。
つまり、ユーザの認証データの変更等のリクエスト時に、認証サーバ15Aに送信されてきた認証データを、DB15aに認証用のものとして一時的にキャッシュし、このキャッシュされた認証データで、FPGA装置16Aの代わりに認証を行う。通常は、認証データ変更等のリクエストの都度、FPGA装置16Aの認証データに対応する全ての電子回路(回路ともいう)を書き換える必要がある。しかし、本実施形態では、一時的にキャッシュされた認証データで認証を行い、この一時的なキャッシュ時にはFPGA装置16Aの回路の書き換えは行わないので、FPGA装置16Aのリクエストに応じた回路の頻繁な書き換えを防止可能となっている。
次に、認証サーバ15Aは、上記キャッシュされた全ての認証データを、ユーザからのアクセスが少ない夜間等の所定時刻に、矢印Y3に示すように、バッチ処理でFPGA装置16Aへ送信する。バッチ処理は、予め定められた時刻時や、キャッシュされたデータが例えば100件を超える等のイベント発生時に行われるようになっている。FPGA装置16Aは、その送信された認証データに対応するように回路を書き換える。この書き換えられた回路の認証データは、DB15aから削除される。FPGA装置16Aへの書き換え後は、FPGA装置16Aで認証データの認証を行い、この結果のOK/NGを矢印Y4,Y2で示すように、認証サーバ15Aを介して端末機11へ返信する。
このようにバッチ処理で、DB15aにキャッシュされた全ての認証データを纏めてFPGA装置16Aへ転送して反映することで、ユーザ当たりの更新オーバーヘッドの時間を削ることが可能となっている。また、認証データを纏めて更新できるので、認証データが1ユーザでも実行される更新時の通信一時中断の回数が少なくて済む。つまり、ユーザへの提供サービスの中断を抑制することが可能となっている。
次に、認証サーバ15A及びFPGA装置16Aの構成を説明する。図3に示すように、認証サーバ15Aは、AP認証部21及び認証制御部22を備えて構成されている。AP認証部21は、上述したキャッシュ用DB15aの他に、認証連携部21aと、ユーザ管理部21bと、ユーザリスト用DB21cとを備えて構成されている。
認証制御部22は、認証サーバ15Aの外部のHDL(Hardware Description Language:ハードウェア記述言語)用DB22bが接続されたHDL生成部22aと、コンフィグデータ生成部22cと、FPGA再起動部22dとを備えて構成されている。
FPGA装置16Aは、FPGA25と、このFPGA25と一対で設けられるハード制御部26とを備えて構成されている。FPGA25は、受付回路27a及び認証回路27bを有する認証部27を備えている。ハード制御部26は、FPGA書換部26aと、コンフィグデータ用DB26bと、FPGA電源部26cとを備えて構成されている。
ユーザリスト用DB21cは、図4に示すユーザリストテーブルT1(ユーザリストT1ともいう)を保持している。このユーザリストT1には、例えば、ユーザ1のIDとして「user1」、IDの登録の状態として「登録済み」の情報が書き込まれている。更に、ユーザ2のID=「user2」、状態=「登録済み」の情報が書き込まれ、ユーザ3のID=「user3」、状態=「削除済み」の情報が書き込まれている。
キャッシュ用DB15aは、図5に示すキャッシュテーブルT2(キャッシュT2ともいう)をキャッシュしている。このキャッシュT2には、例えば、ユーザ1のIDとして「user1」、PWとして「aaa」の情報が書き込まれている。更に、ユーザ2のID=「user2」、PW=「bbb」の情報が書き込まれ、ユーザ3のID=「user3」、PW=「ccc」の情報が書き込まれている。
なお、上述したユーザリスト用DB21c、HDL用DB22b、コンフィグデータ用DB26bを、単に、DB21c、DB22b、DB26bとも称す。
<第1実施形態の認証構成>
図3に示す認証連携部21aは、APサーバ14を経由した端末機11(図1)からの認証リクエストを認証データと共に受信する。ユーザ管理部21bは、その受信された認証データを、DB21cに保存されたユーザリストT1から検索する。この結果、例えば、ユーザ3の認証データが受信された場合、ユーザリストT1には、ユーザ3のID=「user3」(図4)が「削除済み」となってユーザ3のIDが無いので、ユーザ管理部21bはユーザ3の登録が無いと判定する。この判定結果、認証連携部21aは、ユーザ3の端末機11への応答を行わない、又は、未登録案内をAPサーバ14を介してその端末機11へ応答(返信)する。
一方、ユーザリストT1にユーザ3の認証データが登録済みであれば、ユーザ管理部21bがDB15aのキャッシュT2を検索する。この検索結果、例えば、キャッシュテーブルT2(図5)に示すように、ユーザ3のID=「user3」及びPW=「ccc」の認証データがキャッシュされていれば、ユーザ管理部21bは、そのキャッシュされた認証データと、認証連携部21aで受信された認証データとを比較し、一致すればOK、不一致でNGとする認証を行う。その認証結果のOK/NG(OK又はNG)を、認証連携部21aが、APサーバ14を介してユーザ3の端末機11へ返信する。
一方、キャッシュT2に、ユーザ3の認証データがキャッシュされていなければ、認証連携部21aが、ユーザ3の認証データを、FPGA装置16Aの受付回路27aへ送信する。受付回路27aがユーザ3の認証データを受け付けると、認証回路27bが、その受け付けられたユーザ3の認証データと、FPGA25に電子回路として形成されているユーザ3の認証データとを、アンドを取って認証する。この認証結果(OK/NG)は、受付回路27aを介して認証連携部21aへ返信され、更に、認証連携部21aからAPサーバ14を介してユーザ3の端末機11へ返信(応答)される。
<第1実施形態のユーザ追加構成>
図3に示す認証連携部21aは、端末機11からのユーザ追加リクエストと共に認証データを受信する。ユーザ管理部21bは、その受信された認証データのIDを、DB21cに保存されたユーザリストT1から検索する。この結果、例えば、追加対象ユーザ4のIDが登録済みであれば、ユーザ管理部21bは、ユーザ4が登録済みであることを認証連携部21aへ通知し、認証連携部21aが、ユーザ4のIDが登録済みであることを、その端末機11へ返信(応答)する。
一方、ユーザリストT1にユーザ4のID登録が無ければ、ユーザ管理部21bは、DB15aのキャッシュT2に、追加対象ユーザ4のID及びPWの認証データをキャッシュする。更に、ユーザ管理部21bは、DB21cのユーザリストT1に、追加対象ユーザ4のIDを追加して更新する。上記キャッシュされた認証データは、認証制御部22の制御によって、例えば夜間等の所定の時刻に、バッチ処理でFPGA装置16Aに転送される。なお、バッチ処理を行うタイミングを、バッチタイミングと称す。
認証連携部21aは、上記ユーザリストT1への認証データのIDの追加後、バッチタイミングとなった時点で、通信サービスを一時中断してユーザからのリクエストを受け付けないようにする。この後、認証連携部21aは、追加対象ユーザ4の認証データをHDL生成部22aに出力する。HDL生成部22aは、HDL用DB22bから現在保持されているHDL(ハードウェア記述言語)によるユーザの認証データを取得する。このHDLによるユーザの認証データをHDLデータと称す。
HDL生成部22aは、その取得したHDLデータに、追加対象ユーザ4の認証データを追加して更新を行い、この更新されたHDLデータを生成すると共に、生成HDLデータをDB22bに上書きする。HDL用DB22bは、不正なアクセスを防止のため認証サーバ15Aの外部に配置されており、FPGA25に回路で実現される全ユーザの認証データのHDLデータを保持している。なお、DB22bを、認証サーバ15A内に配備することも可能である。
コンフィグデータ生成部22cは、HDL生成部22aで生成されたHDLデータに基づきコンフィグデータを生成し、このコンフィグデータをFPGA装置16AのFPGA書換部26aへ送信する。FPGA書換部26aは、その送信されてきたコンフィグデータに応じて、DB26bに保持されたコンフィグデータを書き換える。これによって、追加対象ユーザ4の認証データが反映されたコンフィグデータがDB26bに上書きされて保持される。
上記コンフィグデータの書き換え後、FPGA電源部26cがFPGA25を再起動又は自動再起動することにより、FPGA25の回路が、その書き換え後のコンフィグデータに対応する回路に書き換わる。この回路の書換情報は、FPGA書換部26aから認証サーバ15Aのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ管理部21bへ通知される。通知を受けたユーザ管理部21bは、その回路の書換情報に対応するDB15aにキャッシュされた認証データを削除する。この削除後、認証連携部21aは、ユーザ4の端末機11へ認証データが追加されたことを返信する。
<第1実施形態のユーザ削除構成>
図3に示す認証連携部21aは、端末機11からのユーザ削除リクエストと共に認証データを受信する。ユーザ管理部21bは、その受信された認証データのIDをユーザリストT1から検索する。この結果、例えば、削除対象ユーザ3のIDの登録が無ければ削除の必要が無いので、ユーザ管理部21bは、ユーザ3のIDが未登録ユーザであることを認証連携部21aへ通知する。この通知に応じて認証連携部21aは、ユーザ3の端末機11への応答を行わない、又は、削除対象ユーザ3のIDが未登録であることを、その端末機11へ応答(返信)する。
一方、ユーザ3のIDの登録が有れば、PW認証を行う。この認証がOKであれば、ユーザ管理部21bは、DB21cのユーザリストT1に登録された削除対象のユーザ3のIDを削除し、この削除されたユーザ3のIDが存在しないユーザリストT1に更新する。更に、ユーザ管理部21bは、DB15aのキャッシュT2にキャッシュされた削除対象ユーザ3のID及びPWの認証データが有れば削除して更新する。
認証連携部21aは、上記ユーザリストT1からのユーザ3のIDの削除後に、或いは、削除対象ユーザ3の認証データがキャッシュされていない場合に、バッチタイミングとなった時点で、通信サービスを一時中断する。この後、認証連携部21aは、上記ユーザ3の認証データ削除が反映されたキャッシュ中の他のユーザの認証データを、HDL生成部22aに出力する。HDL生成部22aは、DB22bから現在保持中のHDLデータを取得する。HDL生成部22aは、その取得したHDLデータを、上記削除が反映された他のユーザの認証データに基づき更新し、この更新されたHDLデータをコンフィグデータ生成部22cへ出力すると共に、DB22bに上書きする。
コンフィグデータ生成部22cは、上記更新されたHDLデータに基づきコンフィグデータを生成して送信する。FPGA書換部26aは、その送信されてきたコンフィグデータに応じてDB26bに保持されたコンフィグデータを書き換える(上書きする)。これによって、削除対象ユーザ3の認証データの削除が反映されたコンフィグデータがDB26bに上書きされて保持される。
上記コンフィグデータの書き換え後(上書き後)、FPGA電源部26cがFPGA25を再起動又は自動再起動することにより、FPGA25の回路が、その書き換え後のコンフィグデータに対応する回路に書き換えられる。この回路の書換情報が、FPGA書換部26aから認証サーバ15Aのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ管理部21bへ通知されると、ユーザ管理部21bが、その回路の書換情報に対応するDB15aにキャッシュされた認証データを削除する。この削除後、認証連携部21aは、ユーザ3の端末機11へ認証データが削除されたことを返信する。
<第1実施形態のユーザ認証データ変更構成>
図3に示す認証連携部21aは、端末機11からのユーザ認証データ変更リクエストと共に認証データを受信する。ユーザ管理部21bは、その受信された認証データのIDをユーザリストT1から検索する。この結果、例えば、変更対象ユーザ3のIDの登録が無ければ、ユーザ管理部21bは、未登録ユーザであることを認証連携部21aへ通知する。この通知に応じて認証連携部21aは、ユーザ3の端末機11への応答を行わない、又は、ユーザ3のIDが未登録であることを、その端末機11へ返信する。
一方、変更対象ユーザ3のIDの登録が有れば、PW認証を行う。この認証がOKであれば、ユーザ管理部21bは、DB15aのキャッシュT2に変更対象ユーザ3のID及びPWの認証データがキャッシュされているか否かを判定する。この結果、キャッシュされていれば、ユーザ管理部21bは、キャッシュされた変更対象ユーザ3の認証データを変更する。一方、キャッシュされていなければ、DB15aに、端末機11から受信した変更対象ユーザ3のID及びPWの認証データを追加キャッシュする。
認証連携部21aは、上記キャッシュされた認証データの変更後、又は上記認証データの追加キャッシュ後、バッチタイミングとなった時点で、通信サービスを一時中断する。この後、認証連携部21aは、変更対象ユーザ3のキャッシュ中の認証データをHDL生成部22aに出力する。HDL生成部22aは、DB22bから現在保持中のHDLデータを取得する。この取得したHDLデータを、上記キャッシュ中の認証データに基づき更新し、この更新されたHDLデータを生成すると共に、生成HDLデータをDB22bに上書きする。
コンフィグデータ生成部22cは、上記生成されたHDLデータに基づきコンフィグデータを生成してFPGA書換部26aへ送信する。FPGA書換部26aは、その送信されてきたコンフィグデータに応じてDB26bに保持されたコンフィグデータを上書きして書き換える。これによって、更新対象ユーザ3の認証データの更新が反映されたコンフィグデータがDB26bに保持される。
上記コンフィグデータの書き換え後(上書き後)、FPGA電源部26cがFPGA25を再起動又は自動再起動することにより、FPGA25の回路が、その書き換え後のコンフィグデータに対応する回路に書き換えられる。この回路の書換情報が、FPGA書換部26aから認証サーバ15Aのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ管理部21bへ通知されると、ユーザ管理部21bが、その回路の書換情報に対応するDB15aにキャッシュされた認証データを削除する。
このキャッシュ削除後、認証データの変更がPWのみの変更であれば、認証連携部21aが、ユーザ3の端末機11へPWが変更されたことを返信する。一方、認証データの変更がIDの変更であれば、ユーザ管理部21bが、上記キャッシュ削除後、DB21cのユーザリストT1において、未だ変更されていない変更対象ユーザ3のIDを変更して更新する。このIDの更新も、ユーザ3の端末機11へ返信される。
<第1実施形態の認証動作>
次に、認証システム10Aによるユーザの認証データの認証動作を、図6に示すフローチャートを参照して説明する。
前提条件として、図1に示す例えばユーザ1の端末機11からインターネット12及び社内NW13を介してAPサーバ14を経由し認証サーバ15Aへ、ユーザ1の認証リクエストが、認証データとしてのID=「user1」及びPW=「aaa」と共に送信されたとする。
図6に示すステップS1において、認証サーバ15A(図3)の認証連携部21aが、端末機11からのユーザ1の認証リクエストをID及びPWと共に受信する。ステップS2において、ユーザ管理部21bは、受信されたユーザ1のIDが、DB21cに保存されたユーザリストT1に登録済みか否かを判定する。この結果、登録無し(No)の場合、ステップS3において、ユーザ管理部21bは未登録ユーザ対応の処理を行う。即ち、ユーザ1のIDの未登録案内を作成する。ステップS4において、認証連携部21aが、対応結果としての未登録案内をAPサーバ14を介してユーザ1の端末機11へ応答(返信)する。
一方、上記ステップS2において、ユーザリストT1にユーザ1の認証データが登録済み(Yes)であれば、ステップS5において、ユーザ管理部21bが、DB15a(DB15aのキャッシュT2)にユーザ1のID及びPWがキャッシュされているか否かを判定する。この結果、キャッシュされ、且つ追加フラグが付与されていれば(Yes)、ステップS6において、ユーザ管理部21bがキャッシュされたID及びPWと、上記受信されたID及びPWとを比較し、一致すればOK、不一致でNGとする認証を行う。このOK/NGの認証結果が、ステップS8において、認証連携部21aからユーザ1の端末機11へ応答される。
一方、上記ステップS5において、ユーザ1のID及びPWがキャッシュされていなければ(No)、ステップS7において、認証連携部21aが、ユーザ1のID及びPWを、FPGA装置16Aの受付回路27aへ送信し、受付回路27aが次のように認証を行う。即ち、認証回路27bが、受け付けたユーザ1のID及びPWと、FPGA25に電子回路として形成されているユーザ1のID及びPWとを、アンドを取って認証する。このOK/NGの認証結果は、ステップS8において、ユーザ1の端末機11へ応答される。
<第1実施形態のユーザ追加動作>
次に、認証システム10Aによるユーザの認証データの追加動作を、図7に示すフローチャートを参照して説明する。
前提条件として、図1に示す例えばユーザ4の端末機11から認証サーバ15Aへ、ユーザ4の追加リクエストが、認証データとしてのID=「user4」及びPW=「ddd」と共に送信されたとする。
図7に示すステップS11において、認証サーバ15Aの認証連携部21aが、端末機11からのユーザ4の追加リクエストをID及びPWと共に受信する。ステップS12において、ユーザ管理部21bは、受信されたユーザ4のIDが、ユーザリストT1に登録済みか否かを判定する。この結果、登録有り(Yes)の場合、ステップS13において、ユーザ管理部21bは登録済みユーザ対応の処理を行う。即ち、ユーザ4のIDが登録済みであることを案内する登録有りの案内を作成する。ステップS14において、認証連携部21aが、対応結果としての登録有りの案内をユーザ4の端末機11へ応答する。
一方、上記ステップS12において、ユーザリストT1にユーザ4のID登録が無ければ(No)、ステップS15において、ユーザ管理部21bは、DB15aに、上記受信したユーザ4のID及びPWをキャッシュする。更に、ステップS16において、ユーザ管理部21bは、ユーザリストT1に、ユーザ4のIDを追加して更新する。
ステップS17において、認証連携部21aは、上記ステップS16のID追加後、バッチタイミングとなったか否かを判定し、バッチタイミングとなった時(Yes)に、ステップS18において、通信サービスを中断する。この中断によって、他のユーザからのリクエストを受け付けないようになる。この後、認証連携部21aは、ユーザ4のID及びPWをHDL生成部22aに出力する。
ステップS19において、HDL生成部22aは、認証連携部21aからユーザ4のID及びPWを受信すると、DB22bに現在保持されている更新前のHDLデータ(HDLによるユーザのID及びPWのデータ)を取得する。この取得されたHDLデータには、追加対象のユーザ4のID及びPWは含まれていない。ステップS20において、HDL生成部22aは、その取得したHDLデータに、ユーザ4のID及びPWのデータを追加して更新を行う。この更新されたHDLデータをDB22bに上書きする。
次に、ステップS21において、コンフィグデータ生成部22cは、上記生成されたHDLデータに基づきコンフィグデータを生成し、このコンフィグデータをFPGA装置16AのFPGA書換部26aへ送信する。
ステップS22において、FPGA書換部26aは、その送信されてきたコンフィグデータに応じて、DB26bに保持されたコンフィグデータを上書きして書き換える。これによって、追加対象ユーザ4のID及びPWが反映されたコンフィグデータがDB26bに保持される。
上記コンフィグデータの書き換え後、ステップS23において、FPGA電源部26cがFPGA25を再起動又は自動再起動する。これにより、FPGA25の回路が、その書き換え後のコンフィグデータに対応する回路に書き換わる。この回路の書換情報は、FPGA書換部26aから認証サーバ15Aのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ管理部21bへ通知される。
その通知を受けたユーザ管理部21bは、その回路の書換情報に対応するDB15aにキャッシュされたID及びPWを削除する。この削除後、ステップS25において、認証連携部21aは端末機11へ提供する通信サービスを再開する。この再開後、ステップS26において、認証連携部21aは、端末機11へユーザ4のID及びPWが追加されたことを応答する。
<第1実施形態のユーザ削除動作>
次に、認証システム10Aによるユーザの認証データの削除動作を、図8に示すフローチャートを参照して説明する。但し、図8において、図6及び図7と同一ステップには()内に同一ステップの符号を付し、その説明を適宜省略する。
前提条件として、図1に示す例えばユーザ1の端末機11から認証サーバ15Aへ、ユーザ1の削除リクエストが、認証データとしてのID=「user1」及びPW=「aaa」と共に送信されたとする。
図8に示すステップS31において、認証サーバ15Aの認証連携部21aが、端末機11からのユーザ1の削除リクエストをID及びPWと共に受信する。この後、上述したように、ステップS32(図6のS2)において、受信ユーザ1のIDがユーザリストT1に登録済みか否かが判定され、登録が無ければ(No)ステップS33(S3)において、未登録ユーザ対応の処理としてユーザ1のIDの未登録案内が作成される。ステップS34(S4)において、対応結果としての未登録案内がユーザ1の端末機11へ応答される。
一方、上記ステップS32において、ユーザ1のID登録が有れば(Yes)、ステップS32aにおいて、図6の認証処理でPW認証を行う。この認証がOKであれば、ステップS35において、ユーザ管理部21bは、ユーザリストT1に登録された削除対象のユーザ1のIDを削除し、この削除されたユーザ1のIDが存在しないユーザリストT1に更新する。この後、ステップS36(S5)において、DB15aにユーザ1のID及びPWがキャッシュされているか否かが判定される。この結果、キャッシュされていれば(Yes)、ステップS37において、ユーザ管理部21bが、DB15aにキャッシュされた削除対象ユーザ1の状態フラグを削除に変更する。一方、キャッシュされていなければ(No)、ステップS36aにおいて、削除対象ユーザ1のID及びPWを追加キャッシュすると共に、この状態フラグを削除とする。
上記ステップS37又はS36aの処理後、認証連携部21aは、ステップS38(図7のS17)において、バッチタイミングとなった(Yes)時点で、ステップS39(S18)において、通信サービスを一時中断する。この後、認証連携部21aが、削除フラグが設定された上記ユーザ1のID及びPWの削除が反映されたキャッシュ中のID及びPWを、HDL生成部22aに出力する。
ステップS40(S19)において、HDL生成部22aが、DB22bから現在保持中のHDLデータを取得する。この取得したHDLデータを、ステップS41において、HDL生成部22aが、上記削除が反映された他のユーザのID及びPWに基づき更新し、この更新されたHDLデータを、コンフィグデータ生成部22cへ出力すると共にDB22bに上書きする。その更新されたHDLデータはユーザ1のID及びPWが存在しないデータとなる。
ステップS42において、コンフィグデータ生成部22cは、上記更新されたHDLデータに基づきコンフィグデータを生成してFPGA書換部26aへ送信する。ステップS43において、FPGA書換部26aは、その送信されてきたコンフィグデータに応じてDB26bに保持されたコンフィグデータを上書きして書き換える。この書き換えられたデータは、上記ユーザ1の削除が反映されたコンフィグデータとなる。
その書き換え後、ステップS44(S23)において、FPGA25が再起動又は自動再起動される。これにより、FPGA25の回路が、上記ユーザ1の削除が反映されたコンフィグデータに対応する回路に書き換えられる。この書き換え後、ステップS44aにおいて、キャッシュ中の削除フラグが付いたユーザ1のID及びPWを削除した後、ステップS45(S25)において、認証連携部21aが端末機11へ提供する通信サービスを再開する。この再開後、ステップS46において、認証連携部21aが、端末機11へユーザ1のID及びPWが削除されたことを応答する。
<第1実施形態のユーザ認証データ変更動作>
次に、認証システム10Aによるユーザの認証データの変更動作を、図9に示すフローチャートを参照して説明する。但し、図9において、図6及び図7と同一ステップには()内に同一ステップの符号を付し、その説明を適宜省略する。
前提条件として、図1に示す例えばユーザ1の端末機11から認証サーバ15Aへ、ユーザ1のPWの変更リクエストが、認証データとしてのID=「user1」、変更前のPW(変更前PW)=「aaa」及び変更後のPW(変更PW)=「aaa1」と共に送信されたとする。
図9に示すステップS51において、認証サーバ15Aの認証連携部21aが、端末機11からのユーザ1のPWの変更リクエストをID及びPWと共に受信する。この後、上述したように、ステップS52(図6のS2)において、受信ユーザ1のIDがユーザリストT1に登録済みか否かが判定され、この結果がNoの場合のステップS53(S3)において、未登録ユーザ対応の処理としてユーザ1のIDの未登録案内が作成される。ステップS54(S4)において、対応結果としての未登録案内がユーザ1の端末機11へ応答される。
一方、上記ステップS52において、ユーザ1のID登録が有れば(Yes)、ステップS52aにおいて、図6の認証処理でPW認証を行う。この認証がOKであれば、ステップS55において、DB15aにユーザ1のID及びPWがキャッシュされているか否かが判定される。この結果、キャッシュされていれば(Yes)、ステップS56において、ユーザ管理部21bが、キャッシュされたユーザ1のPWを「aaa1」に変更する。一方、キャッシュされていなければ(No)、ステップS57において、ユーザ管理部21bが、DB15aに、上記受信したユーザ1の変更PW=「aaa1」をIDと共に追加フラグをつけてキャッシュし、変更前PW=「aaa」をIDと共に削除フラグをつけてキャッシュする。
上記PW変更後、又は上記PW追加キャッシュ後に、認証連携部21aは、ステップS58(図7のS17)において、バッチタイミングとなった(Yes)時点で、ステップS59(S18)において、通信サービスを一時中断する。この後、認証連携部21aが、上記ユーザ1のPW変更が反映されたキャッシュ中のID及びPWを、HDL生成部22aに出力する。
ステップS60(S19)において、HDL生成部22aが、DB22bから現在保持中のHDLデータを取得する。この取得したHDLデータを、ステップS61において、HDL生成部22aが、上記PW変更=「aaa1」が反映されたID及びPWに基づきHDLデータを更新し、この更新されたHDLデータを、コンフィグデータ生成部22cへ出力すると共にDB22bに上書きする。
ステップS62において、コンフィグデータ生成部22cは、上記更新されたHDLデータに基づきコンフィグデータを生成してFPGA書換部26aへ送信する。ステップS63において、FPGA書換部26aは、その送信されてきたコンフィグデータに応じてDB26bに保持されたコンフィグデータを上書きして書き換える。この書き換えられたデータは、上記ユーザ1のPW変更が反映されたコンフィグデータとなる。
その書き換え後、ステップS64(S23)において、FPGA25が再起動又は自動再起動される。これにより、FPGA25の回路が、上記ユーザ1のPW変更=「aaa1」が反映されたコンフィグデータに対応する回路に書き換えられる。ステップS65において、その回路の書換情報が、FPGA書換部26aから認証サーバ15Aのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ管理部21bへ通知され、このユーザ管理部21bが、その回路の書換情報に対応するDB15aにキャッシュされたユーザ1のPWを削除する。
この削除後、ステップS66(S25)において、認証連携部21aが端末機11へ提供する通信サービスを再開する。この再開後、ステップS67において、認証連携部21aが、端末機11へユーザ1のPWが変更されたことを応答する。
以上はユーザ1のPW変更の処理であるが、IDを変更する場合、例えば、ID=「user11」に変更する場合は、上記ステップS51〜S65において、IDについてPWと同様の処理を行う。この後、ステップS65aにおいて、ユーザ管理部21bが、ユーザリストT1において、未だ変更されていない変更対象ユーザ1のIDを、ID=「user11」に変更する。このIDの変更結果も、ステップS66,S67の処理において、ユーザ1の端末機11へ応答される。
<第1実施形態の効果>
以上説明したように、第1実施形態の認証システム10Aは、固有の認証データを電子回路に書き換え自在に置換して保持するプログラマブルデバイス装置としてのFPGA装置16Aによって、端末機11から送信されてきたユーザ固有の認証データを、電子回路として保持された認証データと比較し、一致又は不一致の認証を行うものであり、次のような特徴構成とした。
(1)ユーザ固有の認証データをキャッシュするキャッシュ用DB15aを有し、当該DB15aにキャッシュされた認証データを、バッチ処理でFPGA装置16Aに電子回路への置換を行わせるための転送を行い、この転送後にキャッシュされた認証データを削除する認証サーバ15Aを備える。認証サーバ15Aは、端末機11からのユーザの認証データを受信した際に、DB15aに同ユーザの認証データがキャッシュされていれば、当該受信した認証データを、当該キャッシュされた認証データと比較して認証を行い、キャッシュされていなければFPGA装置16Aに電子回路として保持された認証データと比較して認証を行わせる構成とした。
この構成によれば、認証サーバ15Aが、端末機11からのユーザ固有の認証データを受信した際に、受信した認証データの認証を、キャッシュ用DB15aに該当ユーザの認証データがキャッシュされていれば、このキャッシュ中の認証データとの比較で認証を行う。キャッシュ中の認証データは、バッチ処理で転送されるため、このバッチ処理を行わなければ、FPGA装置16Aへは転送されず、電子回路の書き換えも行われない。このため、従来のような端末機11からの認証データの追加、削除又は変更の都度行われる電子回路の頻繁な書き換えを防止することができる。電子回路の書き換え時には、ユーザへ提供される通信サービスが書き換え完了まで中断されるので、従来であれば頻繁に通信サービスが中断されていたが、本実施形態では、バッチタイミングのみに通信サービスが中断されるので、通信サービスの中断を抑制することができる。
つまり、バッチ処理でキャッシュされた全ての認証データを纏めてFPGA装置16Aへ転送して反映することで、ユーザ当たりの更新オーバーヘッドの時間を削ることが可能となっている。また、認証データを纏めて更新できるので、認証データが1ユーザでも実行される更新時の通信一時中断の回数が少なくて済む。つまり、ユーザへの提供サービスの中断を抑制することができる。
(2)認証サーバ15Aは、端末機11からのユーザ追加のリクエスト時に、当該追加対象である追加ユーザの認証データが未登録の場合に、キャッシュ用DB15aに当該追加ユーザの認証データを追加してキャッシュし、このキャッシュされた認証データを含む全ユーザの認証データを、バッチ処理でFPGA装置16Aへ転送して書き換えさせる。FPGA装置16Aは、転送されてきた追加ユーザの認証データを含む全ユーザの認証データを、電子回路に置換して保持する構成とした。
この構成によれば、端末機11からのユーザ追加のリクエスト時に、認証サーバ15Aのキャッシュ用DB15aに当該追加ユーザの認証データを追加してキャッシュする。その後、認証サーバ15Aは、バッチ処理によって、上記キャッシュされた認証データを含む全ユーザの認証データをFPGA装置16Aへ転送して書き換えさせる。このため、ユーザ追加の都度行われるFPGA装置16Aへの頻繁な回路書き換えを防止し、頻繁な通信サービスの中断を抑制することができる。
(3)認証サーバ15Aは、端末機11からのユーザ削除のリクエスト時に、当該削除対象である削除ユーザの認証データが登録有りの場合に、キャッシュ用DB15aに削除ユーザの認証データがキャッシュされていれば、このキャッシュされた認証データの状態フラグを削除に変更し、この削除が反映された全ユーザの認証データを、バッチ処理でFPGA装置16Aへ転送する。FPGA装置16Aは、転送されてきた削除が反映された全ユーザの認証データを、電子回路に置換して保持する構成とした。
この構成によれば、端末機11からのユーザ削除のリクエスト時に、認証サーバ15Aのキャッシュ用DB15aに当該削除ユーザの認証データのキャッシュがあればこの認証データの状態フラグを削除に変更する。その後、認証サーバ15Aは、バッチ処理によって、上記削除が反映された全ユーザの認証データをFPGA装置16Aへ転送して書き換えさせる。このため、ユーザ削除の都度行われるFPGA装置16Aへの頻繁な回路書き換えを防止し、頻繁な通信サービスの中断を抑制することができる。
(4)認証サーバ15Aは、端末機11からのユーザ認証データ変更のリクエスト時に、当該変更対象の変更ユーザの認証データが登録有りの場合に、キャッシュ用DB15aに当該変更ユーザの認証データがキャッシュされていれば、当該キャッシュされた認証データを変更し、この変更が反映された全ユーザの認証データを、バッチ処理でFPGA装置16Aへ転送する。FPGA装置16Aは、転送されてきた変更が反映された全ユーザの認証データを、電子回路に置換して保持する構成とした。
この構成によれば、端末機11からのユーザ認証データ変更のリクエスト時に、認証サーバ15Aのキャッシュ用DB15aに当該変更ユーザの認証データのキャッシュがあればこの認証データを変更する。その後、認証サーバ15Aは、バッチ処理によって、上記変更が反映された全ユーザの認証データをFPGA装置16Aへ転送して書き換えさせる。このため、ユーザ認証データ変更の都度行われるFPGA装置16Aへの頻繁な回路書き換えを防止し、頻繁な通信サービスの中断を抑制することができる。
<第2実施形態の構成>
図10は、本発明の第2実施形態に係るプログラマブルデバイス適用認証システムの構成を示すブロック図である。この図10に示す認証システム10Bにおいて、図1に示した認証システム10Aと同一部分には同一符号を付し、その説明を省略する。
図10に示す第2実施形態の認証システム10Bは、端末機11と、端末機11にインターネット12及び社内NW13を介して接続されたAPサーバ14と、振分用DB15bを有する認証サーバ15Bと、複数(ここでは3つ)のFPGA装置16B1,16B2,16B3を備えて構成されている。FPGA装置16B1は、ハード制御部26(図11)と1対に設けられるFPGA25a(#1)を備え、FPGA装置16B2は、ハード制御部26と1対に設けられるFPGA25b(#2)を備え、FPGA装置16B3は、ハード制御部26と1対に設けられるFPGA25c(#3)を備える。FPGA25a(#1)はFPGA#1とも称し、FPGA25b(#2)はFPGA#2、FPGA25c(#3)はFPGA#3とも称す。
次に、図11に示すように、認証サーバ15Bが第1実施形態の認証サーバ15A(図3)と異なる点は、AP認証部21が、キャッシュ用DB15a(図3)に代え、振分用DB15bを備えることにある。
振分用DB15bには、図12に示す振分テーブルT3を保持している。この振分テーブルT3には、例えば、ユーザ1のIDとして「user1」と、このIDに対応付けられたFPGA#1,#2の情報が書き込まれている。更に、ユーザ2のID=「user2」と、このIDに対応付けられたFPGA#2,#3の情報が書き込まれ、ユーザ3のID=「user3」と、このIDに対応付けられたFPGA#1,#3の情報が書き込まれている。各FPGA#1〜#3には、対応するユーザの認証データが電子回路として書き込まれている。
各ユーザ1〜3のIDと複数のFPGA#1〜#3との対応関係は、各ユーザ1〜3のID毎に、少なくとも異なる2つのFPGAが対応付けられ、ユーザ1〜3毎のFPGAの組合せが異なって対応付けられている。この対応付けにより、例えば、ID=「user1」のユーザ1がPW変更リクエストによって、FPGA#1のPWを書き換え中でも、他のFPGA#2を選択して、通信サービスを中断することなく他のリクエストの処理を行うことが可能となっている。
ここで、第2実施形態の特徴について説明する。図13に示すように、ユーザが認証データの認証を行う際に、端末機11から矢印Y11で示すように、ID=「user1」,PW=「aaa」の認証データを認証サーバ15Bへ送信する。認証サーバ15Bは、その認証データのID=「user1」を、振分用DB15bの振分テーブルT3に保存された各ユーザのIDと比較する。この結果の一致するIDが未登録であれば、矢印Y12で示すOK/NGの内のNGの結果を、ユーザ1の端末機11へ応答する。又は応答しない。
認証サーバ15Bは、上記一致するIDが登録されている場合に、振分用DB15bに保持された該当IDに対応付けられた振分先のFPGA(例えばFPGA#1)を特定(選択)する。この特定されたFPGA#1に、矢印Y13に示すように、上記受信したユーザ1の認証データを送信する。FPGA#1は、その送信されてきた認証データを回路で認証し、この結果のOK/NGを矢印Y14,Y12で示すように、端末機11へ送信する。
この他、特定されたFPGA#1にPWの書き換えを行う場合、FPGA#1は一旦電源断とされるが、この際、ユーザ1のIDにFPGA#1と共に対応付けられた他方の特定FPGA#2で、ユーザ1の端末機11への通信サービスを提供すると共に、他のユーザ2,3に対してもFPGA#2,#3で、端末機11への通信サービスを提供する。FPGA#1の書き換え完了後は、FPGA#2の書き換えを行い、この際に、上記同様に、ユーザ1や他のユーザ2,3の端末機11への通信サービスを提供可能となっている。つまり、各ユーザとの通信サービスを中断せずに、各ユーザのIDに対応付けられた複数のFPGA#1〜#3を1つずつ書き換えることが可能となっている。
<第2実施形態の認証構成>
図11に示す認証連携部21aは、端末機11からの認証リクエストを認証データと共に受信する。ユーザ管理部21bは、その受信された例えばユーザ1の認証データのIDが、DB21cのユーザリストT1に登録されてなければ、端末機11への応答を行わない、又は、未登録案内をユーザ1の端末機11へ応答する。
一方、ユーザリストT1に認証データの登録が有れば、ユーザ管理部21bは、振分用DB15bから、上記受信されたユーザ1の認証データのIDに対応付けられた振分先のFPGA(例えばFPGA#1)を特定する。
認証連携部21aは、その特定されたFPGA#1の受付回路27aへ、受信ユーザ1の認証データを送信する。受付回路27aは、ユーザ1の認証データを受け付けると、認証回路27bが、そのユーザ1の認証データと、FPGA#1に電子回路として形成されているユーザ1の認証データとを、アンドを取って認証する。この認証結果(OK/NG)が、FPGA書換部26aから認証サーバ15Bのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ1の端末機11へ返信される。
<第2実施形態のユーザ追加構成>
図11に示す認証連携部21aは、端末機11からのユーザ追加リクエストと共に認証データを受信する。ユーザ管理部21bは、その受信された認証データのIDを、DB21cに保存されたユーザリストT1から検索する。この結果、例えば、追加対象ユーザ4のIDが登録済みであれば、認証連携部21aが、ユーザ4が登録済みであることを端末機11へ応答する。
一方、ユーザリストT1にユーザ4のID登録が無ければ、ユーザ管理部21bは、振分用DB15bの振分テーブルT3から、追加対象ユーザ4の認証データを追加して書き換えるためのFPGA(例えば#1)を決定する。この決定後、ユーザ管理部21bは、決定されたFPGA#1への認証や認証データ書き換えのための特定がその後行われないように、FPGA#1を特定対象から除外する。
この除外後、認証連携部21aは、追加対象ユーザ4の認証データをHDL生成部22aに出力する。HDL生成部22aは、HDL用DB22bから現在保持されているHDLデータを取得する。
HDL生成部22aは、その取得したHDLデータに、追加対象ユーザ4の認証データを追加して更新を行い、この更新されたHDLデータを生成すると共に、生成HDLデータをDB22bに上書きする。
コンフィグデータ生成部22cは、HDL生成部22aで生成されたHDLデータに基づきコンフィグデータを生成し、このコンフィグデータをハード制御部26#1のFPGA書換部26aへ送信する。FPGA書換部26aは、その送信されてきたコンフィグデータに応じて、DB26bに保持されたコンフィグデータを書き換える。これによって、追加対象ユーザ4の認証データが反映されたコンフィグデータがDB26bに上書きされて保持される。
上記コンフィグデータの書き換え後、FPGA電源部26cがFPGA#1を再起動又は自動再起動することにより、FPGA#1の回路が、その書き換え後のコンフィグデータに対応する回路に書き換わる。この完了後、残りのFPGA(例えばFPGA#2)についても同様に追加対象ユーザ4の認証データを追加する回路書き換えを行う。この回路の書換情報は、FPGA書換部26aから認証サーバ15Bのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ4の端末機11へ認証データが追加されたことを返信する。
<第2実施形態のユーザ削除構成>
図11に示す認証連携部21aは、端末機11からのユーザ削除リクエストと共に認証データを受信する。ユーザ管理部21bが、その受信された認証データのIDをユーザリストT1から検索する。この結果、例えば、ユーザリストT1に、削除対象ユーザ1のIDの登録が無ければ削除の必要が無いので、認証連携部21aが、ユーザ1のIDが未登録ユーザであることを端末機11へ応答する。又は、端末機11への応答を行わない。
一方、ユーザ1のIDの登録が有れば、上記認証処理でPW認証を行う。この認証がOKであれば、ユーザ管理部21bは、DB21cのユーザリストT1に登録された削除対象のユーザ1のIDを削除し、この削除されたユーザ1のIDが存在しないユーザリストT1に更新する。更に、ユーザ管理部21bは、振分用DB15bの振分テーブルT3から、削除対象ユーザ1の認証データを削除して書き換えるためのFPGA(例えば#1)を特定する。この特定後、ユーザ管理部21bは、特定されたFPGA#1を特定対象から除外する。
この除外後、認証連携部21aは、削除対象ユーザ1の認証データをHDL生成部22aに出力し、HDL生成部22aは、HDL用DB22bから現在保持されているHDLデータを取得する。
HDL生成部22aは、その取得したHDLデータに、削除対象ユーザ1の認証データを削除して更新を行い、更新されたHDLデータを生成すると共に、生成HDLデータをDB22bに上書きする。
コンフィグデータ生成部22cは、HDL生成部22aで生成されたHDLデータに基づきコンフィグデータを生成し、このコンフィグデータをハード制御部26#1のFPGA書換部26aへ送信する。FPGA書換部26aは、その送信されてきたコンフィグデータに応じて、DB26bに保持されたコンフィグデータを書き換える。これによって、削除対象ユーザ1の認証データが反映されたコンフィグデータがDB26bに上書きされて保持される。
上記コンフィグデータの書き換え後、FPGA電源部26cがFPGA#1を再起動又は自動再起動することにより、FPGA#1の回路が、その書き換え後のコンフィグデータに対応する回路に書き換わる。この完了後、対応FPGA#2,#3についても同様に削除対象ユーザ1の認証データを削除する回路書き換えを行う。この回路の書換情報は、FPGA書換部26aから認証サーバ15Bのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ1の端末機11へ認証データが削除されたことを返信する。
<第2実施形態のユーザ認証データ変更構成>
図11に示す認証連携部21aは、端末機11からのユーザ認証データ変更リクエストと共に認証データを受信する。ユーザ管理部21bは、その受信された認証データのIDをユーザリストT1から検索する。この結果、例えば、変更対象ユーザ1のIDの登録が無ければ、認証連携部21aが、ユーザ1が未登録ユーザであることを端末機11へ応答する。又は、端末機11への応答を行わない。
一方、変更対象ユーザ1のIDの登録が有れば、上記認証処理でPW認証を行う。この認証がOKであれば、ユーザ管理部21bは、振分用DB15bの振分テーブルT3から、変更対象ユーザ1のIDに対応付けられたFPGA(例えば#1)を特定する。この特定後、ユーザ管理部21bは、特定されたFPGA#1を特定対象から除外する。
この除外後、認証連携部21aは、変更対象ユーザ1の認証データをHDL生成部22aに出力し、HDL生成部22aは、HDL用DB22bから現在保持されているHDLデータを取得する。
HDL生成部22aは、その取得したHDLデータに、変更対象ユーザ1の認証データを変更して更新を行い、更新されたHDLデータを生成すると共に、生成HDLデータをDB22bに上書きする。
コンフィグデータ生成部22cは、HDL生成部22aで生成されたHDLデータに基づきコンフィグデータを生成し、このコンフィグデータをハード制御部26#1のFPGA書換部26aへ送信する。FPGA書換部26aは、その送信されてきたコンフィグデータに応じて、DB26bに保持されたコンフィグデータを書き換える。これによって、変更対象ユーザ3の認証データが反映されたコンフィグデータがDB26bに上書きされて保持される。
上記コンフィグデータの書き換え後、FPGA電源部26cがFPGA#1を再起動又は自動再起動することにより、FPGA#1の回路が、認証データを変更する書き換え後のコンフィグデータに対応する回路に書き換わる。この完了後、対応FPGA#2,#3についても同様に変更対象ユーザ1の認証データを変更する回路書き換えを行う。この回路の書換情報は、FPGA書換部26aから認証サーバ15Bのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ1の端末機11へ認証データが変更されたことを返信する。
<第2実施形態の認証動作>
次に、認証システム10Bによるユーザの認証データの認証動作を、図14に示すフローチャートを参照して説明する。但し、図14において、第1実施形態の図6と同一ステップには同一符号を付し、その説明を適宜省略する。
前提条件として、図11に示す例えばユーザ1の端末機11から認証サーバ15Bへ、ユーザ1の認証リクエストが、認証データとしてのID=「user1」及びPW=「aaa」と共に送信されたとする。
この際の図14に示すステップS1〜S4の処理は、第1実施形態の図6の説明と同様である。図14に示すステップS2の判定において、ユーザリストT1にユーザ1のIDが登録済み(Yes)であれば、ステップS71において、ユーザ管理部21bが、振分用DB15bから、上記ステップS1で受信されたユーザ1のIDに対応付けられた振分先のFPGA(例えばFPGA#1)を特定する。
次に、ステップS72において、認証連携部21aが、ユーザ1のID及びPWを、特定されたFPGA#1へ送信し、受付回路27aが、そのユーザ1のID及びPWと、FPGA#1に電子回路として形成されているユーザ1のID及びPWとを、アンドを取って認証する。このOK/NGの認証結果が、ステップS8において、ユーザ1の端末機11へ応答される。
<第2実施形態のユーザ追加動作>
次に、認証システム10Bによるユーザの認証データの追加動作を、図15に示すフローチャートを参照して説明する。但し、図15において、第1実施形態の図7と同一ステップには同一符号を付し、その説明を適宜省略する。
前提条件として、図11に示す例えばユーザ4の端末機11から認証サーバ15Bへ、ユーザ1の追加リクエストが、認証データとしての図示せぬID=「user4」及びPW=「ddd」と共に送信されたとする。
図15に示すステップS11〜S14の処理は、第1実施形態の図7の説明と同様である。図15に示すステップS12の判定において、ユーザリストT1にユーザ4のID登録が無ければ(No)、ステップS74において、ユーザ管理部21bは、振分用DB15bから、追加対象ユーザ4の認証データであるID及びPWを追加して書き換えるためのFPGA(例えば#1)を決定する。この決定後、ステップS75において、ユーザ管理部21bは、決定されたFPGA#1への認証やID及びPWの書き換えのための特定がその後行われないように、FPGA#1を特定対象から除外する。この除外後、認証連携部21aは、ユーザ4の認証データをHDL生成部22aに出力する。
ステップS19において、HDL生成部22aは、認証連携部21aからユーザ4のID及びPWを受信すると、DB22bに現在保持されている更新前のユーザ4の認証データが含まれていないHDLデータを取得する。ステップS20において、HDL生成部22aは、その取得したHDLデータに、ユーザ4のID及びPWのデータを追加して更新を行う。この更新されたHDLデータをDB22bに上書きする。
次に、ステップS21において、コンフィグデータ生成部22cは、上記生成されたHDLデータに基づきコンフィグデータを生成し、このコンフィグデータをハード制御部26#1のFPGA書換部26aへ送信する。
ステップS22において、FPGA書換部26aは、その送信されてきたコンフィグデータに応じて、DB26bに保持されたコンフィグデータを上書きして書き換える。これによって、追加対象ユーザ4のID及びPWが反映されたコンフィグデータがDB26bに保持される。
上記コンフィグデータの書き換え後、ステップS23において、FPGA電源部26cがFPGA#1を再起動又は自動再起動する。これにより、FPGA#1の回路が、その書き換え後のユーザ4のID及びPWを含む回路に書き換わる。この回路の書換情報は、FPGA書換部26aから認証サーバ15Bのコンフィグデータ生成部22c及びHDL生成部22aを経由し、更に認証連携部21aを介してユーザ管理部21bへ通知される。
その通知を受けたユーザ管理部21bは、ステップS76において、上記ステップS75で除外されたFPGA#1の特定の除外を復旧する。これによりFPGA#1を認証や書き換え対象として特定可能となる。
次に、ステップS77において、ユーザ管理部21bは、ユーザ4のID及びPWを含む認証データへの書き換えが、対応FPGA#1〜#3において完了したか否かを判定する。この結果、全ての書き換えが完了していない(No)と判定された場合、上記ステップS75に戻って、対応FPGA#2,#3へのユーザ4のID及びPWを含む認証データの書き換えを行う。
一方、全ての書き換えが完了した(Yes)と判定された場合、ステップS77aにおいて、振分用DB15bにユーザ4を追加して更新し、ステップS78において、ユーザ管理部21bは、DB21cのユーザリストT1へユーザ4のIDの登録を行って更新する。この更新後、ステップS26において、認証連携部21aは、端末機11へユーザ4のID及びPWが追加されたことを応答する。
<第2実施形態のユーザ削除動作>
次に、認証システム10Bによるユーザの認証データの削除動作を、図16に示すフローチャートを参照して説明する。但し、図16において、図8と同一ステップには同一符号を付し、その説明を適宜省略する。
前提条件として、図1に示す例えばユーザ1の端末機11から認証サーバ15Bへ、ユーザ1の削除リクエストが、認証データとしてのID=「user1」及びPW=「aaa」と共に送信されたとする。
図16に示すステップS31〜S35の処理は、第1実施形態の図8の説明と同様である。図16に示すステップS35のユーザリストT1に登録されたユーザ1のIDの削除による更新後、ステップS35aにおいて、振分用DB15bにユーザ1を削除して更新し、ステップS80において、ユーザ管理部21bは、振分用DB15bから、削除対象ユーザ1のID及びPWを削除して書き換えるためのFPGA(例えば#1)を特定する。この特定後、ステップS81において、ユーザ管理部21bは、決定されたFPGA#1への認証やID及びPWの書き換えのための特定がその後行われないように、FPGA#1を特定対象から除外する。この除外後、認証連携部21aは、ユーザ1のID及びPWをHDL生成部22aに出力する。
ステップS40において、HDL生成部22aは、認証連携部21aからユーザ1のID及びPWを受信すると、DB22bに現在保持されている更新前のユーザ1の認証データが含まれたHDLデータを取得する。ステップS41において、HDL生成部22aは、その取得したHDLデータから、ユーザ1のID及びPWを削除して更新を行う。この更新されたHDLデータをDB22bに上書きする。
次に、ステップS42において、コンフィグデータ生成部22cは、上記生成されたHDLデータに基づきコンフィグデータを生成し、このコンフィグデータをハード制御部26#1のFPGA書換部26aへ送信する。
ステップS43において、FPGA書換部26aは、その送信されてきたコンフィグデータに応じて、DB26bに保持されたコンフィグデータを上書きして書き換える。これによって、ユーザ1のID及びPWの削除が反映されたコンフィグデータがDB26bに保持される。
上記コンフィグデータの書き換え後、ステップS44において、FPGA#1の再起動又は自動再起動により、FPGA#1の回路が、書き換え後のユーザ1のID及びPWを含まない回路に書き換わる。この回路の書換情報の通知を受けたユーザ管理部21bは、ステップS82において、上記ステップS81で除外されたFPGA#1の特定の除外を復旧する。これによりFPGA#1を認証や書き換え対象として特定可能となる。
次に、ステップS83において、ユーザ管理部21bは、ユーザ1のID及びPWの削除が反映された認証データへの書き換えが、対応FPGA#1〜#3において完了したか否かを判定する。この結果、全ての書き換えが完了していない(No)と判定された場合、上記ステップS81に戻って、対応FPGA#2,#3へのユーザ1のID及びPWを含む認証データの書き換えを行う。
一方、全ての書き換えが完了した(Yes)と判定された場合、ステップS46において、認証連携部21aは、端末機11へユーザ1のID及びPWが削除されたことを応答する。
<第2実施形態のユーザ認証データ変更動作>
次に、認証システム10Bによるユーザの認証データの変更動作を、図17に示すフローチャートを参照して説明する。但し、図17において、図9と同一ステップには同一符号を付し、その説明を適宜省略する。
前提条件として、図17に示す例えばユーザ1の端末機11から認証サーバ15Bへ、ユーザ1のPWの変更リクエストが、認証データとしてのID=「user1」、変更前のPW(変更前PW)=「aaa」及び変更後のPW(変更PW)=「aaa1」(図示せず)と共に送信されたとする。
図17に示すステップS51〜S54の処理は、第1実施形態の図9の説明と同様である。図17に示すステップS52の判定において、ユーザリストT1にユーザ1のID登録が有れば(Yes)、ステップS52aにおいて、図14の認証処理でPW認証を行う。この認証がOKであれば、ステップS85において、ユーザ管理部21bは、振分用DB15bから、変更対象ユーザ1のPWを変更して書き換えるためのFPGA(例えば#1)を特定する。この特定後、ステップS86において、ユーザ管理部21bは、特定されたFPGA#1を特定対象から除外する。この除外後、認証連携部21aは、ユーザ1のID及び変更PW=「aaa1」をHDL生成部22aに出力する。
ステップS60において、HDL生成部22aは、認証連携部21aからユーザ1のID及び変更PWを受信すると、DB22bに現在保持されている変更前のユーザ1のID及びPWが含まれたHDLデータを取得する。ステップS61において、HDL生成部22aは、その取得したHDLデータから、ユーザ1のPWを「aaa1」に変更して更新を行う。この更新されたHDLデータをDB22bに上書きする。
次に、ステップS62において、コンフィグデータ生成部22cは、上記生成されたHDLデータに基づきコンフィグデータを生成し、このコンフィグデータをハード制御部26#1のFPGA書換部26aへ送信する。
ステップS63において、FPGA書換部26aは、その送信されてきたコンフィグデータに応じて、DB26bに保持されたコンフィグデータを上書きして書き換える。これによって、ユーザ1の変更後のPW=「aaa1」が反映されたコンフィグデータがDB26bに保持される。
上記コンフィグデータの書き換え後、ステップS64において、FPGA#1の再起動又は自動再起動により、FPGA#1の回路が、変更後のPW=「aaa1」が反映された回路に書き換わる。この回路の書換情報の通知を受けたユーザ管理部21bは、ステップS87において、上記ステップS86で除外されたFPGA#1の特定の除外を復旧する。これによりFPGA#1を認証や書き換え対象として特定可能となる。
次に、ステップS88において、ユーザ管理部21bは、ユーザ1の変更後のPW=「aaa1」含む認証データへの書き換えが、対応FPGA#1〜#3において完了したか否かを判定する。この結果、全ての書き換えが完了していない(No)と判定された場合、上記ステップS86に戻って、対応FPGA#2,#3へのユーザ1のID及びPWを含む認証データの書き換えを行う。
一方、全ての書き換えが完了した(Yes)と判定された場合、ステップS67において、認証連携部21aは、端末機11へユーザ1のPWが変更されたことを応答する。
以上はユーザ1のPW変更の処理であるが、IDを変更する場合、例えば、ID=「user11」に変更する場合は、上記ステップS51〜S88において、IDについてPWと同様の処理を行う。この後、ステップS65aにおいて、ユーザ管理部21bが、ユーザリストT1において、未だ変更されていない変更対象ユーザ1のIDを、ID=「user11」に更新する。また、ステップS65bにおいて、振分用DB15bを更新する。このIDの変更結果も、ステップS67の処理において、ユーザ1の端末機11へ応答される。
<第2実施形態の効果>
以上説明したように、第2実施形態の認証システム10Bは、次のような特徴構成とした。
(1)FPGA#1〜#3を有するFPGA装置16B1〜16B3を複数備え、認証データ毎に、少なくとも異なる2つのFPGA装置(例えばFPGA装置16B1,16B3)が対応付けられた振分用DB15bを有する認証サーバ15Bを備える。認証サーバ15Bは、端末機11からのユーザの認証データを受信した際に、振分用DB15bを参照して、その受信した認証データを認証するための1つのFPGA装置16B1を選択し、この選択したFPGA装置16B1に電子回路として保持された認証データと、受信した認証データとを比較して認証を行う構成とした。
この構成によれば、端末機11から受信したユーザの認証データを、複数のFPGA装置16B1〜16B3の内の1つを選択したFPGA装置16B1に保持された認証データで認証する。このため、認証処理を分散(負荷を分散)させることができるので、多くの認証を短時間で行うことができる。また、あるFPGA装置16B1に障害又は書き換えが発生した場合に、他のFPGA装置16B2で認証を行うことができる。これによって、認証機能の強化を図ることができる。
(2)認証サーバ15Bは、端末機11からのユーザ追加のリクエスト時に、当該追加対象である追加ユーザの認証データが未登録の場合に、振分用DB15bを参照して、追加ユーザの認証データを追加するためのFPGA装置16B1を選択する。この選択したFPGA装置16B1がその後のリクエストに応じて選択されないように設定した後、追加ユーザの認証データを含む全ユーザの認証データが選択したFPGA装置16B1に電子回路として保持された後に、設定を解除する構成とした。
この構成によれば、選択したFPGA装置16B1に追加ユーザの認証データが反映される書き換え中でも、他のリクエストに応じたサービスを、未選択のFPGA装置16B2,16B3で実行することができる。このため、ユーザの端末機11へのサービスを中断しないように、追加ユーザの認証データをFPGA装置16B1に反映させて書き込むことができる。
(3)認証サーバ15Bは、端末機11からのユーザ削除のリクエスト時に、当該削除対象である削除ユーザの認証データが登録有りの場合に、当該登録された削除ユーザの認証データを削除した後、振分用DB15bを参照して、削除を反映するためのFPGA装置16B1を選択する。この選択したFPGA装置16B1がその後のリクエストに応じて選択されないように設定した後、削除が反映された全ユーザの認証データが選択したFPGA装置16B1に電子回路として保持された後に、上記設定を解除する構成とした。
この構成によれば、選択したFPGA装置16B1に削除ユーザの認証データが反映される書き換え中でも、他のリクエストに応じたサービスを、未選択のFPGA装置16B2,16B3で実行することができる。このため、ユーザの端末機11へのサービスを中断しないように、削除ユーザの認証データをFPGA装置16B1に反映させて書き込むことができる。
(4)認証サーバ15Bは、端末機11からのユーザ認証データ変更のリクエスト時に、当該変更対象の認証データが登録有りの場合に、当該登録された認証データを変更した後、振分用DB15bを参照して、変更を反映するためのFPGA装置16B1を選択し、この選択したFPGA装置16B1がその後のリクエストに応じて選択されないように設定した後、変更が反映された全ユーザの認証データが選択したFPGA装置16B1に電子回路として保持された後に、上記設定を解除する構成とした。
この構成によれば、選択したFPGA装置16B1に変更の認証データが反映される書き換え中でも、他のリクエストに応じたサービスを、未選択のFPGA装置16B2,16B3で実行することができる。このため、ユーザの端末機11へのサービスを中断しないように、変更した認証データをFPGA装置16B1に反映させて書き込むことができる。
<第3実施形態の構成>
図18は、本発明の第3実施形態に係るプログラマブルデバイス適用認証システムの構成を示すブロック図である。図18に示す認証システム10Cにおいて、図1に示した認証システム10Aと同一部分には同一符号を付し、その説明を省略する。
図18に示す第3実施形態の認証システム10Cは、端末機11と、端末機11にインターネット12及び社内NW13を介して接続されたAPサーバ14と、第1認証用DB15cを有する認証サーバ15Cと、FPGA装置16Aとを備えて構成されている。
第1認証用DB15cは、図19に示す第1認証テーブルT4を保持している。この第1認証用DB15cには、認証データとして、例えば、ユーザ1の第1固有データであるID1=「user1」に、第1パスワードであるPW1=「aaa」が対応付けられている。更に、ユーザ1の第2固有データであるID2=「1」に、ID2の使用状況(使用中か否か)を表す「used」又は「unused」が対応付けられている。つまり、ユーザ1のID2と、使用状況と、ID1と、PW1とが相互に対応付けられている。
同様に、ユーザ2のID1=「user2」に、PW1=「bbb」が対応付けられ、更に、ID2=「2」に「unused」が対応付けられている。ユーザ3のID1=「user3」に、PW1=「ccc」が対応付けられ、更に、ID2=「3」に「used」が対応付けられている。また、ユーザ2のID2には、第2パスワードであるPW2の「xxx」、「yyy」、「zzz」が対応付けられる。図19の第1認証テーブルT4の例では、ユーザ1が使用状況「used」のため、PW2の欄には何も対応付けられていない。ユーザ2は「unused」のため、PW2の欄には「yyy」が対応付けられ、ユーザ3は「used」のため、PW2の欄には何も対応付けられていない。何も対応付けられていないのは、後述のように、ユーザ追加時に、ユーザへのPW2の端末機11への通知後、削除する例示を行っているためである。
図20の右隅部分に破線枠で示すように、ID2は、第2パスワードであるPW2と対応付けられて、矢印Y30で示すようにFPGA装置16AのFPGA25(図21)に電子回路として書き込まれている。ID2及びPW2は、FPGA装置16Aに予めID2に対応付けられて固定的に記憶されており、システム管理者以外のユーザ等が変更不可能となっている。
PW2は、ユーザがID1及びPW1を認証サーバ15Cに新規に登録してID2が使用中「used」となった際に、認証サーバ15Cからユーザの端末機11へ通知されるようになっている。FPGA装置16Aには、ID2=「1」にPW2=「xxx」が対応付けられ、ID2=「2」にPW2=「yyy」が、ID2=「3」にPW2=「zzz」が対応付けられて保持されている。
次に、図20を参照して、第3実施形態の特徴について説明する。ユーザ(例えば、ユーザ1)が認証データの認証を行う際に、端末機11から矢印Y21で示すように、ID1=「user1」,PW1=「aaa」,PW2=「xxx」の認証データを認証サーバ15Cへ送信する。
認証サーバ15Cの第1認証用DB15cには、上述した認証データを保持する第1認証テーブルT4が保存されており、端末機11から送信されてきたユーザ1の認証データであるID1及びPW1と、第1認証テーブルT4のID1及びPW1とを比較して一致又は不一致の第1認証を行う。この認証結果が不一致の場合は、NGを矢印Y22で示すように、端末機11へ応答する。
一方、第1認証がOKであれば、第2認証を行う。この第2認証は、第1認証用DB15cに保持されたユーザ1のID2=「1」をPW2=「aaa」と共に、矢印Y23で示すように、FPGA装置16Aへ送信する。FPGA装置16Aは、その送信されてきたユーザ1のID2=「1」及びPW2=「aaa」と、FPGA装置16Aに保持されたID2=「1」及びPW2=「aaa」を含む認証データとを比較し、一致又は不一致の第2認証を行う。この第2認証の結果は、矢印Y24,Y22で示すように認証サーバ15を介してユーザ1の端末機11へ応答される。
このように2段階で認証を行う構成は、ユーザが変更可能なPW1及びID1の追加、削除又は変更は認証サーバ15Cで行い、PW2はFPGA装置16Aに変更不可能に固定的に保存された構成となっている。このため、ユーザが変更可能なPW1の追加、削除又は変更は認証サーバ15Cのみで行うので、FPGA装置16Aでの認証データの書き換え処理が発生しないため、ユーザへの通信サービスの中断を抑制することが可能となっている。
<第3実施形態の認証構成>
図21に示す認証連携部21aは、端末機11からの認証リクエストを、ID1,PW1,PW2の認証データと共に受信する。ユーザ管理部21bは、その受信されたID1が、ユーザリスト用DB21cのユーザリストT1に登録されていなければ、端末機11への応答を行わない、又は、未登録案内をユーザ1の端末機11へ応答する。但し、ユーザリストT1は、図4に示したように「ID」を登録しているが、認証システム10Cの構成では、「ID」に代え、「ID1」を登録しているとする。
一方、ID1の登録が有れば、図21に示すユーザ管理部21bは、上記受信されたユーザ1のID1,PW1を、第1認証用DB15cに保持されたID1,PW1と比較して、一致又は不一致の第1認証を行う。この第1認証の結果がNGであれば、認証連携部21aは、NG結果を端末機11へ応答する。
第1認証の結果がOKであれば、認証連携部21aは、第1認証用DB15cに保持されたユーザ1のID2をPW2と共に、FPGA装置16Aへ送信する。FPGA装置16Aは、その送信されてきたユーザ1のID2,PW2と、FPGA25に回路として保持された認証データとを比較し、一致又は不一致の第2認証を行う。この第2認証の結果は、ユーザ1の端末機11へ応答される。
<第3実施形態のユーザ追加構成>
図21に示す認証連携部21aは、端末機11からのユーザ追加リクエストと共にID1,PW1の認証データを受信する。ユーザ管理部21bは、その受信された認証データのID1をユーザリストT1から検索する。この結果、例えば、追加対象ユーザ2のID1が登録済みであれば、認証連携部21aが、ユーザ2が登録済みであることを端末機11へ応答する。
一方、ユーザリストT1にユーザ2のID1の登録が無ければ、ユーザ管理部21bは、第1認証用DB15cに、第1認証データとしてのユーザ2のID1,PW1を、ユーザが未使用(unused)のID2に対応付けて追加保持する。この追加により、ID2は使用中(used)となる。ユーザ管理部21bは、その使用中となったID2に対応付けられた第1認証テーブルT4(図19)のPW2を、追加ユーザの端末機11へ通知する。この通知後、PW2は第1認証テーブルT4から削除されるようになっている。また、ユーザ管理部21bは、ユーザリストT1にユーザ2のID1を追加する。
<第3実施形態のユーザ削除構成>
図21に示す認証連携部21aは、端末機11からのユーザ削除リクエストと共にID1,PW1,PW2の認証データを受信する。ユーザ管理部21bは、その受信された認証データのID1をユーザリストT1から検索する。この結果、例えば、ユーザリストT1に、削除対象ユーザ1のID1の登録が無ければ削除の必要が無いので、認証連携部21aが、ユーザ1のID1が未登録ユーザであることを端末機11へ応答する。又は、端末機11への応答を行わない。
一方、ユーザ1のID1の登録が有れば、ID1とPW1の組合せでPW認証を行う。この認証がOKであれば、ユーザ管理部21bは、DB21cのユーザリストT1に登録された削除対象のユーザ1のID1を削除し、この削除されたユーザ1のID1が存在しないユーザリストT1に更新する。更に、ユーザ管理部21bは、第1認証用DB15cから、削除対象ユーザ1の認証データを削除する。この削除結果は、認証連携部21aからユーザ1の端末機11へ応答される。
<第3実施形態のユーザ認証データ変更構成>
図21に示す認証連携部21aは、端末機11からのユーザ認証データ変更リクエストと共にID1,PW1,PW2の認証データを受信する。ユーザ管理部21bは、その受信された認証データのID1をユーザリストT1から検索する。この結果、例えば、変更対象ユーザ1のID1の登録が無ければ、認証連携部21aが、ユーザ1が未登録ユーザであることを端末機11へ応答する。又は、端末機11への応答を行わない。
一方、変更対象ユーザ1のID1の登録が有れば、ID1とPW1の組合せでPW認証を行う。この認証がOKであれば、ユーザ管理部21bは、第1認証用DB15cに保存されたユーザ1のID1,PW1を変更して更新する。
<第3実施形態の認証動作>
次に、認証システム10Cによるユーザの認証データの認証動作を、図22に示すフローチャートを参照して説明する。但し、図22において、第1実施形態の図6と同一ステップには同一符号を付し、その説明を適宜省略する。
前提条件として、例えばユーザ1の端末機11から認証サーバ15Cへ、ユーザ1の認証リクエストが、認証データとしての図19に示すユーザ1のID1=「user1」,PW1=「aaa」と、PW2=「xxx」と共に送信されたとする。
この際の図22に示すステップS1〜S4の処理は、第1実施形態の図6の説明と同様である。図22に示すステップS2の判定において、ユーザリストT1にユーザ1のID1が登録済み(Yes)であれば、ステップS90において、ユーザ管理部21bが、振分用DB15bから、上記受信されたユーザ1のID1,PW1を、第1認証用DB15cに保持されたID1,PW1と比較し、一致又は不一致の第1認証を行う。つまり、ステップS91において、第1認証がOKか否か(一致又は不一致か)を判定する。
第1認証の結果がOKでないNGであれば(No)、ステップS8において、NG結果が端末機11へ応答される。一方、第1認証の結果がOKであれば(Yes)、ステップS92において、第2認証が行われる。即ち、認証連携部21aが、第1認証用DB15cに保持されたユーザ1のID2をPW2と共に、FPGA装置16Aへ送信し、FPGA装置16Aが、その送信されてきたユーザ1のID2,PW2と、FPGA25に電子回路(認証回路)として保持された認証データとを比較し、一致又は不一致の第2認証を行う。この第2認証の結果は、ステップS8において、ユーザ1の端末機11へ応答される。
<第3実施形態のユーザ追加動作>
次に、認証システム10Cによるユーザの認証データの追加動作を、図23に示すフローチャートを参照して説明する。但し、図23において、第1実施形態の図7と同一ステップには同一符号を付し、その説明を適宜省略する。
前提条件として、例えばユーザ2の端末機11から認証サーバ15へ、ユーザ2の追加リクエストが、認証データとしての図19に示すユーザ2のID1=「user2」,PW1=「bbb」と共に送信されたとする。
図23に示すステップS11〜S14の処理は、第1実施形態の図7の説明と同様である。図23に示すステップS12の判定において、ユーザリストT1にユーザ2のID1の登録が無ければ(No)、ステップS94において、ユーザ管理部21bは、第1認証用DB15cに、第1認証データとしてのユーザ2のID1,PW1を、ユーザが未使用(unused)のID2に対応付けて追加保持する。この追加により、ID2は使用中(used)となる。
この際、ステップS94aにおいて、ユーザ管理部21bは、第1認証用DB15cにおいて、その使用中となったID2に対応付けられたPW2を、認証連携部21aから追加ユーザの端末機11へ通知する。この通知後にPW2を第1認証用DB15cから削除する。また、上記ステップS94の処理後、ステップS16において、ユーザ管理部21bは、ユーザリストT1にユーザ2のID1を追加する。この追加結果は、ステップS26において、ユーザ2の端末機11へ応答される。
<第3実施形態のユーザ削除動作>
次に、認証システム10Cによるユーザの認証データの削除動作を、図24に示すフローチャートを参照して説明する。但し、図24において、図8と同一ステップには同一符号を付し、その説明を適宜省略する。
前提条件として、例えばユーザ1の端末機11から認証サーバ15へ、ユーザ1の削除リクエストが、認証データとしての図19に示すユーザ1のID1=「user1」,PW1=「aaa」と共に送信されたとする。
図24に示すステップS31〜S35の処理は、第1実施形態の図8の説明と同様である。図24に示すステップS35のユーザリストT1に登録されたユーザ1のID1の削除による更新後、ステップS96において、ユーザ管理部21bは、第1認証用DB15cから、削除対象ユーザ1の状態フラグを「unused」に変更する。この削除結果は、ステップS46において、ユーザ1の端末機11へ応答される。
<第3実施形態のユーザ認証データ変更動作>
次に、認証システム10Cによるユーザの認証データの変更動作を、図25に示すフローチャートを参照して説明する。但し、図25において、図9と同一ステップには同一符号を付し、その説明を適宜省略する。
前提条件として、例えばユーザ1の端末機11から認証サーバ15へ、ユーザ1のPWの変更リクエストが、認証データとしての図19に示すユーザ1のID1=「user1」,変更前のPW1(変更前PW)=「aaa」,変更後のPW1(変更PW1)=「aaa1」(図示せず)と共に送信されたとする。
図25に示すステップS51〜S54の処理は、第1実施形態の図9の説明と同様である。図25に示すステップS52の判定において、ユーザリストT1にユーザ1のID1の登録が有れば(Yes)、ステップS52aにおいて、図22の認証処理でPW認証を行う。この認証がOKであれば、ステップS98において、ユーザ管理部21bは、第1認証用DB15cに保存されたユーザ1のPW1を「aaa1」に変更して更新する。この後、ステップS67において、その変更結果がユーザ1の端末機11へ送信される。
上記はユーザ1のPW1の変更の処理であるが、ID1も変更、例えば、ID1=「user11」(図示せず)に変更する場合は、上記ステップS51〜54,S98において、ID1についてPW1と同様の処理を行う。この後、ステップS98aにおいて、ユーザ管理部21bが、ユーザリストT1において、未だ変更されていない変更対象ユーザ1のID1を、ID1=「user11」に変更する。このID1の変更結果も、ステップS67において、ユーザ1の端末機11へ応答される。
<第3実施形態の効果>
以上説明したように、第3実施形態の認証システム10Cは、次のような特徴構成とした。
(1)認証データとして、ユーザが変更可能なID1及びPW1と、変更不可能なPW2に対応付けられるID2と、を保持する第1認証用DB15cを有する認証サーバ15Cを備える。FPGA装置16Aは、ID2及びPW2の対を複数、電子回路で置換して保持している。認証サーバ15Cは、端末機11から受信したID1及びPW1を、第1認証用DB15cに保持されたID1及びPW1と比較して一致又は不一致で認証する第1認証を行う。認証サーバ15Cは、その第1認証が一致の場合に、この一致したPW1に第1認証用DB15cに対応付けられたID2と、端末機11からID1と共に受信したPW2とを対にしてFPGA装置16Aへ送信する。FPGA装置16Aは、送信されてきた対のID2及びPW2を、FPGA装置16Aに保持されたID2及びPW2と比較して認証する第2認証を行う構成とした。
この構成によれば、ユーザが変更可能なID1及びPW1の認証データは認証サーバ15Cの第1認証用DB15cに保持され、変更不可能なID2及びPW2の認証データはFPGA装置16Aに電子回路で置換されて保持されている。このため、ユーザが変更可能な認証データの追加、削除又は変更等は、認証サーバ15Cのみで行うことができるので、FPGA装置16Aでは認証データの書き換え処理が発生しない。これにより、ユーザへの通信サービスの中断を抑制することができる。
(2)認証サーバ15Cは、端末機11からのユーザ追加のリクエスト時に、当該追加対象である追加ユーザのID1及びPW1が未登録の場合に、当該追加ユーザのID1及びPW1を第1認証用DB15cに、未使用中のID2に対応付けて保存し、この保持により使用中となったID2に対応付けられたPW2を、追加ユーザの端末機11へ通知する構成とした。
この構成によれば、認証サーバ15Cにユーザの認証データの追加を行った際に、その後、ユーザが認証データの認証等を行う際に必要なPW2を安全に得ることができる。
その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。