以降、諸図面を参照しながら、本発明の実施態様を詳細に説明する。
図1は、本発明の一実施形態にかかるアクセス許可制御システムの概略構成を示す図である。アクセス許可制御システムは、利用者端末100と、利用者の属性情報を保持する複数の情報提供装置400と、情報提供装置400から属性情報を取得し、取得した属性情報を活用したサービス結果を利用者に提示する情報活用装置200と、情報活用装置200が情報提供装置400から属性情報を取得するための1つのアクセストークンを生成するアクセス許可装置300とから構成され、各端末及び各装置はネットワーク500を介して接続されている。利用者端末100は、例えば携帯電話やパソコンなど利用者が使用する端末であり、情報活用装置200、アクセス許可装置300、情報提供装置400は、例えばWebサーバ、アプリケーションサーバ、データベースサーバなどのサーバ装置として構成される。
利用者端末100は、入力部101と、出力部102と、サービス利用処理部103と、ログイン処理部104と、開示確認処理部105と、通信部106とを備える。
入力部101は、ユーザからサービス利用、ログイン、開示確認の入力を受け付け、サービス利用処理部103、ログイン処理部104、開示確認処理部105に入力データを引き渡す。
出力部102は、サービス利用処理部103、ログイン処理部104、開示確認処理部105からの画面データを受け付け、ユーザに画面を表示する。
サービス利用処理部103は、入力部101からのサービス利用の入力を受けて、サービス利用要求データを作成し、送信を通信部106に依頼する。また、サービス利用処理部103は、通信部106からのサービス結果のデータを受けて、サービス結果画面を生成し、画面データの表示を出力部102に依頼する。
ログイン処理部104は、入力部101からのログインの入力を受けて、ログイン情報の送信を通信部106に依頼する。また、ログイン処理部104は、通信部106からのログイン要求のデータを受けて、ログイン画面を生成し、画面データの表示を出力部102に依頼する。
開示確認処理部105は、入力部101からの開示確認の入力を受けて、開示確認結果データを作成し、送信を通信部106に依頼する。図2は、開示確認結果データの一例を示す図である。例えば、開示確認結果データには、「開示確認結果」、「情報活用装置」、「情報提供元」が含まれる。また、開示確認処理部105は、通信部106からの開示確認要求データを受けて、開示確認画面を生成し、画面データの表示を出力部102に依頼する。
通信部106は、サービス利用処理部103、ログイン処理部104、開示確認処理部105からの依頼を受けて、HTTPもしくはHTTPSプロトコルにより、データの種類に応じて情報活用装置200、アクセス許可装置300、情報提供装置400にデータを送信する。また、通信部106は、情報活用装置200、アクセス許可装置300、情報提供装置400からのデータを受信し、データの種類に応じてサービス利用処理部103、ログイン処理部104、開示確認処理部105に処理を引き渡す。また、通信部106は、情報活用装置200からの利用者の開示確認要求データをアクセス許可装置300へ、アクセス許可装置300からのアクセストークンを情報活用装置200へ転送する。
情報活用装置200は、サービス利用要求受信部201と、開示確認要求生成部202と、アクセス先管理DB203と、開示確認要求送信部204と、アクセストークン受信部205と、アクセストークン送信部206と、属性情報保存DB207と、サービス提供部208と、通信部209とを備える。
サービス利用要求受信部201は、通信部209からのサービス利用要求データを受けて、開示確認要求生成部202に処理を依頼する。
開示確認要求生成部202は、サービス利用要求受信部201からのサービス利用要求データを受けて、サービスを提供するために必要な属性情報項目、属性情報を提供する装置をアクセス先管理DB203から取得し、開示確認要求データを生成し、開示確認要求送信部204に開示確認要求データを渡す。図3は、開示確認要求データの一例を示す図である。例えば、開示確認要求データには、「情報活用装置」、「情報提供元」が含まれる。
アクセス先管理DB203は、属性を提供する装置名、装置のアクセス先情報、装置の提供する属性情報項目を保持する。図4は、アクセス先管理DBの一例を示す図である。
開示確認要求送信部204は、開示確認要求生成部202からの開示確認要求データを受けて、通信部209に利用者端末100を介したアクセス許可装置300への開示確認要求データの送信を依頼する。
アクセストークン受信部205は、通信部209からのアクセストークン、もしくは、アクセストークンと検証キーと属性情報データのセットを受けて、アクセストークンもしくは、アクセストークンと検証キーと属性情報データのセットをアクセストークン送信部206に渡す。
アクセストークン送信部206は、アクセストークン受信部205からのアクセストークンもしくは、アクセストークンと検証キーと属性情報データのセットを受けて、アクセストークンのみを受け取った場合は、アクセストークン値の内容から1番目にアクセスする情報提供装置名を取得し、アクセス先管理DB203から取得した情報提供装置名のアクセス先情報を取得し、通信部209にアクセス先情報に記載された情報提供装置400へのアクセストークンの送信を依頼する。また、アクセストークン送信部206は、アクセストークンと検証キーデータと属性情報データのセットを受け取った場合は、属性情報データ、アクセストークン内のアクセストークンIDを属性情報保存DB207に保存し、検証キーデータの個数とアクセストークン値の内容から次にアクセスする情報提供装置名を取得し、次にアクセスする情報提供装置400がある場合は、アクセス先管理DB203から情報提供装置名のアクセス先情報を取得し、通信部209にアクセス先情報に記載された情報提供装置400へのアクセストークン、検証キーデータの送信を依頼する。アクセストークン送信部206は、次にアクセスする情報提供装置400がない場合は、アクセストークン内のアクセストークンIDをサービス提供部208に処理を引き渡す。
属性情報保存DB207は、アクセストークンID、属性情報項目名、属性情報項目値を保持する。図5は、属性情報保存DBの一例を示す図である。
サービス提供部208は、アクセストークン送信部206からのアクセストークンIDを受けて、属性情報保存DB207から属性情報を取得し、サービス結果データを生成し、通信部209に利用者端末100へのサービス結果データの送信を依頼する。
通信部209は、開示確認要求送信部204、アクセストークン送信部206、サービス提供部208からの依頼を受けて、HTTPもしくはHTTPSプロトコルにより、データの種類に応じて利用者端末100、情報提供装置400にデータを送信する。また、通信部209は、利用者端末100、情報提供装置400からのデータを受信し、データの種類に応じてサービス利用要求受信部201、アクセストークン受信部205に処理を引き渡す。
アクセス許可装置300は、開示確認要求受信部301と、ログイン処理部302と、開示確認要求送信部303と、開示確認結果受信部304と、アクセストークン生成部305と、アクセス順番管理DB306と、検証キーデータ送信部307と、署名鍵情報308と、アクセストークン送信部309と、アクセストークン管理DB310と、認証連携部311と、アカウント管理DB312とを備える。
開示確認要求受信部301は、通信部313からの開示確認要求データを受けて、開示確認要求データを保持し、ログイン処理部302に処理を依頼する。
ログイン処理部302は、開示確認要求受信部301からの依頼を受けて、ログイン要求の送信を通信部313に依頼する。また、ログイン処理部302は、通信部313からのログイン情報のデータを受けて、利用者の認証処理を行い、認証成功の場合は、利用者のユーザIDを保持するとともに、開示確認要求送信部303に処理を依頼する。ログイン処理部302は、認証失敗の場合はエラーとして処理を終了する。
開示確認要求送信部303は、ログイン処理部302からの依頼を受けて、開示確認要求受信部301より開示確認要求データを取得し、通信部313に利用者端末100への開示確認要求データの送信を依頼する。
開示確認結果受信部304は、通信部313からの開示確認結果データを受けて、開示結果確認データ内にユーザの開示に同意する情報が含まれている場合には、開示確認結果データをアクセストークン生成部305に渡す。開示確認結果受信部304は、開示結果確認データ内にユーザの開示に同意する情報が含まれていない場合にはエラーとして処理を終了する。
アクセストークン生成部305は、開示確認結果受信部304からの開示確認結果データを受けて、アクセストークンIDを生成し、開示確認結果データに含まれる全ての情報提供装置名を取得し、情報提供装置名毎に各々の検証キーとしてランダムな値を生成して検証キーデータを作成し、アクセス順番管理DB306から情報提供装置名のアクセス先情報を取得し、検証キーデータ送信部307に各々のアクセス先情報、検証キーデータのセットを渡す。図6は、検証キーデータの一例を示す図である。例えば、検証キーデータには、「アクセストークンID」、「情報提供装置」、「検証キー」が含まれる。また、アクセストークン生成部305は、生成した全ての検証キーに各々ハッシュ変換を行い、アクセス順番管理DB306からアクセス順番を取得し、順番順にハッシュ変換した検証キーを並べたデータをアクセストークン値とし、アクセストークンIDとアクセストークン値に署名鍵情報308で署名を付与してアクセストークンを作成し、アクセストークン送信部309にアクセストークンを渡す。図7は、アクセストークンの一例を示す図である。例えば、アクセストークンには、「アクセストークンID」、「アクセストークン値」、「署名情報」が含まれる。なお、「署名情報」とは、「アクセストークンID」及び「アクセストークン値」に対する署名鍵情報308による電子署名データである。また、アクセストークン生成部305は、ログイン処理部302から利用者のユーザIDを取得し、ユーザID、アクセストークンIDをアクセストークン管理DB310に保存する。
アクセス順番管理DB306は、属性を提供する装置名、装置のアクセス先情報、及び、自属性提供装置が属性を提供する前に属性が提供されているべき情報提供装置名をアクセス順番として保持する。図8は、アクセス順番管理DBの一例を示す図である。
検証キーデータ送信部307は、アクセストークン生成部305からアクセス先情報、検証キーデータのセットを受けて、通信部313にアクセス先情報に記載された情報提供装置400への検証キーデータの送信を依頼する。検証キーデータ送信部307は、アクセストークン生成部305から複数のアクセス先情報、検証キーデータのセットを受けた場合には、各々のセットに毎に通信部313に送信を依頼する。
署名鍵情報308は、アクセストークンに電子署名を付与するためのアクセス許可装置300の秘密鍵である。
アクセストークン送信部309は、アクセストークン生成部305からアクセストークンを受けて、通信部313に情報活用装置200へのアクセストークンの送信を依頼する。
アクセストークン管理DB310は、アクセストークンID、開示に同意したユーザのアクセス許可装置300のユーザIDを保持する。図9は、アクセストークン管理DBの一例を示す図である。
認証連携部311は、通信部313からの検証キーデータを受けて、検証キーデータから情報提供装置名、アクセストークンIDを取得し、アクセストークン管理DB310からアクセストークンIDに応じたアクセス許可装置300のユーザIDを取得し、アカウント管理DB312からアクセス許可装置300のユーザIDにおうじた情報提供装置400のユーザIDを取得し、利用者データを作成し、利用者データの送信を通信部313に依頼する。図10は、利用者データの一例を示す図である。例えば、利用者データには、「利用者ID」が含まれる。
アカウント管理DB312は、アクセス許可装置300のユーザID、情報提供装置名、情報提供装置毎の利用者IDを保持する。図11は、アカウント管理DBの一例を示す図である。
通信部313は、ログイン処理部302、開示確認要求送信部303、検証キーデータ送信部307、アクセストークン送信部309、認証連携部311からの依頼を受けて、HTTPもしくはHTTPSプロトコルにより、データの種類に応じて利用者端末100、情報提供装置400にデータを送信する。また、通信部313は、利用者端末100、情報提供装置400からのデータを受信し、データの種類に応じて開示確認要求受信部301、ログイン処理部302、開示確認結果受信部304、認証連携部311に処理を引き渡す。
情報提供装置400は、検証キーデータ受信部401と、検証キーデータ管理DB402と、アクセストークン受信部403と、アクセストークン検証部404と、検証鍵情報405と、認証連携部406と、属性情報提供部407と、属性情報DB408と、通信部409とを備える。
検証キーデータ受信部401は、通信部409からの検証キーデータを受けて、検証キーデータ内のアクセストークンID、検証キーデータを検証キーデータ管理DB402に保存する。
検証キーデータ管理DB402は、アクセストークンID、検証キーデータを保持する。図12は、検証キーデータ管理DBの一例を示す図である。
アクセストークン受信部403は、通信部409からのアクセストークン、もしくは、アクセストークンと検証キーデータのセットを受けて、受け取ったデータをアクセストークン検証部404に渡す。
アクセストークン検証部404は、アクセストークン受信部403からのアクセストークン、もしくは、アクセストークンと検証キーデータのセットを受けて、検証鍵情報405を用いてアクセストークンの署名検証を行う。アクセストークン検証部404は、署名検証が失敗の場合はエラーとして処理を中断し、署名検証が成功の場合は次の処理を実施する。アクセストークンのみを受け取った場合は、アクセストークン内のアクセストークンIDを取得し、検証キーデータ管理DB402から検証キーを取得して検証キーのハッシュ変換を行い、アクセストークン内のアクセストークン値における自情報提供装置のハッシュ値と比較し一致する場合は、認証連携部406にアクセストークン、検証キーデータを渡す。アクセストークン検証部404は、一致しない場合はエラーとして処理を中断する。アクセストークン検証部404は、アクセストークンと検証キーデータのセットを受け取った場合は、アクセストークン内のアクセストークンIDから検証キーデータ管理DB402から検証キーを取得し、受け取った全ての検証キーのハッシュ変換を行い、アクセストークン内の自情報提供装置の順番以前のハッシュ値と一致するハッシュ値が全てそろっているかを比較し、全てそろっている場合は、認証連携部406にアクセストークン、全ての検証キーデータを渡す。アクセストークン検証部404は、全て揃っていない場合はエラーとして処理を中断する。
検証鍵情報405は、アクセストークンの電子署名を検証するためのアクセス許可装置300の署名鍵情報308と対になる公開鍵情報である。
認証連携部406は、アクセストークン検証部404からのアクセストークン、一つもしくは複数の検証キーデータを受けて、アクセストークン、全ての検証キーデータを保持し、自情報提供装置の検証キーデータのアクセス許可装置300への送信を通信部409に依頼する。また、認証連携部406は、通信部409からの利用者データを受けて、保持していたアクセストークン、全ての検証キーデータ、利用者データを属性情報提供部407に渡す。
属性情報提供部407は、認証連携部406からのアクセストークン、一つのもしくは複数の検証キーデータ、利用者データを受けて、利用者データ内の利用者IDを用いて、属性情報DB408から属性情報を取得し、属性情報データを作成し、属性情報データ、アクセストークン、全ての検証キーデータの情報活用装置200への送信を通信部409に依頼する。図13は、属性情報データの一例を示す図である。例えば、属性情報データには、各「属性情報項目名」に対応するデータが含まれる。
属性情報DB408は、ユーザID、属性情報項目名、属性情報項目値を保持する。図14は、属性情報DBの一例を示す図である。
通信部409は、認証連携部406、属性情報提供部407からの依頼を受けて、HTTPもしくはHTTPSプロトコルにより、データの種類に応じて情報活用装置200、アクセス許可装置300にデータを送信する。また、通信部409は、情報活用装置200、アクセス許可装置300からのデータを受信し、データの種類に応じて検証キーデータ受信部401、アクセストークン受信部403、認証連携部406に処理を引き渡す。
以降、アクセス許可制御システムの具体的な処理シーケンスを説明する。
(アクセストークン生成)
図15は、アクセス許可制御システムにおけるアクセストークン生成処理を示すシーケンス図である。本シーケンスは、情報活用装置200が、2つの情報提供装置(情報提供装置A、情報提供装置B。以降の説明において、適宜それぞれを情報提供装置400A、情報提供装置400Bと称する。)から属性情報データを取得する場合のシーケンスを示すものである。例えば、情報提供装置Aは、利用者の氏名、生年月日の情報を保持しており、情報提供装置Bは、利用者のメールアドレス、住所の情報を保持している。なお、情報活用装置200は、アクセス許可装置300のアクセス先(URL等)の情報をあらかじめ知っていることを前提とする。
(S1)情報活用装置200のサービスを利用したいユーザは、利用者端末100の入力部101に、サービス利用の入力を行う。
(S2)利用者端末100の入力部101は、ユーザからサービス利用の入力を受け付け、サービス利用処理部103に入力データを引き渡す。サービス利用処理部103はサービス利用要求データを作成し、送信を通信部106に依頼する。通信部106は、HTTPもしくはHTTPSプロトコルにより、サービス利用要求データを情報活用装置200に送信する。
(S3)情報活用装置200の通信部209は、利用者端末100からのサービス利用要求データを受信し、サービス利用要求受信部201にサービス利用要求データを渡す。サービス利用要求受信部201は、サービス利用要求データの処理を開示確認要求生成部202に依頼する。開示確認要求生成部202は、アクセス先管理DB203(例えば図4)からサービスを提供するために必要な属性情報を取得する。例えば、情報提供装置400Aから氏名、生年月日を取得し、情報提供装置Bからメールアドレス、住所を取得することにより、利用者の要求するサービスの提供が可能になることがわかる。開示確認要求生成部202は、開示確認要求データ(図3)を生成し、開示確認要求送信部204に開示確認要求データを渡す。開示確認要求送信部204は通信部209に開示確認要求データを渡し、通信部209は、開示確認要求データを利用者端末100を介してアクセス許可装置300へHTTPもしくはHTTPSプロトコルにより送信する。
(S4)アクセス許可装置300の通信部313は、情報活用装置200からの開示確認要求データを受信し、開示確認要求受信部301に開示確認要求データを渡す。開示確認要求受信部301は、開示確認要求データを保持し、ログイン処理部302にログイン処理を依頼する。ログイン処理部302は、ログイン要求の送信を通信部313に依頼し、通信部313はHTTPもしくはHTTPSプロトコルにより、利用者端末100にログイン要求を送信する。
(S5)利用者端末100の通信部106は、アクセス許可装置300からのログイン要求を受信し、ログイン処理部104に処理を引き渡す。ログイン処理部104は、ログイン画面を生成し、ログイン画面の表示を出力部102に依頼し、出力部102は、ログイン画面を表示する。例えば、ログイン画面には、ユーザID及びパスワードの入力フォームが含まれる。
(S6)ログイン画面が表示されたユーザは、利用者端末100の入力部101にログイン情報(例えば、ユーザID、パスワード)を入力する。
(S7)利用者端末100の入力部101は、ユーザからログイン情報の入力を受け付け、ログイン処理部104にログイン情報を引き渡し、ログイン処理部104はログイン情報の送信を通信部106に依頼し、通信部106はHTTPもしくはHTTPSプロトコルにより、アクセス許可装置300にログイン情報を送信する。
(S8)アクセス許可装置300の通信部313は、利用者端末100からのログイン情報を受信し、ログイン処理部302にログイン情報を渡す。ログイン処理部302は、利用者の認証処理を行い、利用者のユーザIDを保持するとともに、開示確認要求送信部303に処理を依頼する。開示確認要求送信部303は、開示確認要求受信部301より開示確認要求データを取得し、通信部313に利用者端末100への開示確認要求データの送信を依頼する。通信部313は、HTTPもしくはHTTPSプロトコルにより、利用者端末100に開示確認要求データを送信する。
(S9)利用者端末100の通信部106は、アクセス許可装置300からの開示確認要求データを受信し、開示確認処理部105に開示確認要求データを引き渡す。開示確認処理部105は、開示確認画面を生成し、開示確認画面の表示を出力部102に依頼し、出力部102は、開示確認画面を表示する。図16は、開示確認画面の一例を示す図である。
(S10)開示確認画面が表示されたユーザは、利用者端末100の入力部101に開示確認結果を入力する(例えば、「同意する」を押下)。
(S11)利用者端末100の入力部101はユーザから開示確認結果の入力を受け付け、開示確認処理部105に開示確認結果を渡す。開示確認処理部105は、開示確認結果データ(図2)を作成し、開示確認結果データの送信を通信部106に依頼し、通信部106はHTTPもしくはHTTPSプロトコルにより、アクセス許可装置300に開示確認結果データを送信する。
(S12)アクセス許可装置300の通信部313は、利用者端末100からの開示確認結果データを受信し、開示確認結果受信部304に開示確認結果データを渡す。開示確認結果受信部304は開示結果確認データ内にユーザの開示に同意する情報が含まれているかを確認し、開示確認結果データをアクセストークン生成部305に渡す。アクセストークン生成部305は、アクセストークンIDを生成し、開示確認結果データに含まれる全ての情報提供装置名(例えば、情報提供装置400A、情報提供装置400B)を取得し、情報提供装置名毎に各々の検証キーとしてランダムな値を生成して検証キーデータを作成する。
(S13)アクセストークン生成部305は、アクセス順番管理DB306(図8)から各情報提供装置のアクセス先情報を取得し、検証キーデータ送信部307に各々のアクセス先情報、検証キーデータのセットを渡す。検証キーデータ送信部307は、通信部313にアクセス先情報に記載された情報提供装置400(情報提供装置400A、情報提供装置400B)への検証キーデータの送信を依頼し、通信部313は、HTTPもしくはHTTPSプロトコルにより、情報提供装置400(情報提供装置400A、情報提供装置400B)に検証キーデータを送信する。
(S14)情報提供装置400A、情報提供装置400Bそれぞれの通信部409は検証キーデータを受信し、検証キーデータ受信部401に渡す。検証キーデータ受信部401は検証キーデータ内のアクセストークンID、検証キーデータを検証キーデータ管理DB(図12)に保存する。
(S15)アクセストークン生成部305は、生成した全ての検証キーに各々ハッシュ変換を行い、アクセス順番管理DB306からアクセス順番を取得する。この場合、情報提供装置Aのアクセス順番がNULLなので1番目とし、情報提供装置Bのアクセス順番に情報提供装置Aが記載されているため、情報提供装置Bは情報提供装置Aの後の2番目とする。アクセストークン生成部305は、順番に沿ってハッシュ変換した検証キーを並べたデータをアクセストークン値とし、アクセストークンIDとアクセストークン値に署名鍵情報308で署名を付与してアクセストークンを作成し、アクセストークン送信部309にアクセストークンを渡す。例えば、アクセストークン値には、情報提供装置名、順番、検証キーをハッシュ化したデータが情報提供装置A分、情報提供装置B分の順番で並んでいる(図7)。また、アクセストークン生成部305は、ログイン処理部302から利用者のユーザIDを取得し、ユーザID、アクセストークンIDをアクセストークン管理DB310に保存する。
(S16)アクセストークン送信部309は、通信部313に情報活用装置200へのアクセストークンの送信を依頼し、通信部313はHTTPもしくはHTTPSプロトコルにより、利用者端末100を介して情報活用装置200にアクセストークンを送信する。
(アクセストークンによる情報取得)
図17は、アクセス許可制御システムにおけるアクセストークンによる情報取得処理を示すシーケンス図である。
(S17)情報活用装置200の通信部209は、アクセス許可装置300からのアクセストークンを受信し、アクセストークン受信部205にアクセストークンを渡す。アクセストークン受信部205は、アクセストークンをアクセストークン送信部206に渡す。アクセストークン送信部206は、アクセストークン値の内容から1番目にアクセスする情報提供装置名(この場合は情報提供装置A)を取得し、アクセス先管理DB203から取得した情報提供装置名のアクセス先情報を取得し、通信部209にアクセス先情報に記載された情報提供装置400(この場合は情報提供装置400A)へのアクセストークンの送信を依頼する。通信部209はHTTPもしくはHTTPSプロトコルにより、情報提供装置400Aにアクセストークンを送信する。
(S18)情報提供装置400Aの通信部409は、情報活用装置200からのアクセストークンを受信し、アクセストークン受信部403にアクセストークンを渡す。アクセストークン受信部403は、アクセストークンをアクセストークン検証部404に渡す。アクセストークン検証部404は、アクセストークンを検証鍵情報405を用いて署名検証し、アクセストークン内のアクセストークンIDを取得し、検証キーデータ管理DB402から検証キーを取得して検証キーのハッシュ変換を行い、アクセストークン内のアクセストークン値における自情報提供装置(この場合情報提供装置A)のハッシュ値と比較し、認証連携部406にアクセストークン、検証キーデータ(この場合、情報提供装置Aの検証キーデータ)を渡す。
(S19)認証連携部406は、アクセストークン、一つの検証キーデータ(この場合、情報提供装置Aの検証キーデータ)を受けて、アクセストークン、検証キーデータを保持し、自情報提供装置の検証キーデータ(この場合、情報提供装置Aの検証キーデータ)のアクセス許可装置300への送信を通信部409に依頼する。通信部409はHTTPもしくはHTTPSプロトコルにより、アクセス許可装置300に検証キーデータを送信する。
(S20)アクセス許可装置300の通信部313は、情報提供装置400Aからの検証キーデータを受信し、認証連携部311に渡す。認証連携部311は、検証キーデータから情報提供装置名(この場合は、情報提供装置A)、アクセストークンID(この場合は0123456789)、を取得し、アクセストークン管理DB310からアクセストークンIDに応じたアクセス許可装置300のユーザID(この場合はYamada.tarou)を取得し、アカウント管理DB312(図11)からアクセス許可装置300のユーザIDに応じた情報提供装置AのユーザID(この場合は、012457854)を取得し、利用者データ(図10)を作成し、利用者データの送信を通信部313に依頼する。通信部313は、HTTPもしくはHTTPSプロトコルにより、情報提供装置400Aに利用者データを送信する。
(S21)情報提供装置400Aの通信部409は、アクセス許可装置300からの利用者データを受信し、認証連携部406に利用者データを渡す。認証連携部406は、保持していたアクセストークン、検証キーデータ、利用者データを属性情報提供部407に渡す。属性情報提供部407は、アクセストークン、検証キーデータ(この場合、情報提供装置Aの検証キーデータ)、利用者データを受けて、利用者データ内の利用者IDを用いて、属性情報DB408(図14)から属性情報を取得し、属性情報データ(図13)を作成し、属性情報データ、アクセストークン、検証キーデータ(この場合、情報提供装置Aの検証キーデータ)の情報活用装置200への送信を通信部409に依頼する。
(S22)通信部409は、HTTPもしくはHTTPSプロトコルにより、情報活用装置200に属性情報データ、アクセストークン、検証キーデータ(この場合、情報提供装置Aの検証キーデータ)を送信する。
(S23)情報活用装置200の通信部209は、属性情報データ、アクセストークン、検証キーデータ(この場合、情報提供装置Aの検証キーデータ)を受信し、アクセストークン受信部205に渡す。アクセストークン受信部205は、アクセストークンと検証キーデータと属性情報データのセットをアクセストークン送信部206に渡す。アクセストークン送信部206は、属性情報データ、アクセストークン内のアクセストークンIDを属性情報保存DB207(図5)に保存し、検証キーデータの個数(この場合は1)とアクセストークン値の内容から次にアクセスする情報提供装置名(この場合は情報提供装置B)を取得し、アクセス先管理DB203から取得した情報提供装置名のアクセス先情報を取得し、通信部209にアクセス先情報に記載された情報提供装置400(この場合は情報提供装置400B)へのアクセストークン、検証キーデータ(この場合、情報提供装置Aの検証キーデータ)の送信を依頼する。通信部209は、HTTPもしくはHTTPSプロトコルにより、情報提供装置400Bにアクセストークン、検証キーデータを送信する。
(S24)情報提供装置400Bの通信部409は、情報活用装置200からのアクセストークン、検証キーデータを受信し、アクセストークン受信部403に渡す。アクセストークン受信部403は、アクセストークンと検証キーのセットをアクセストークン検証部404に渡す。アクセストークン検証部404は、検証鍵情報405を用いてアクセストークンの署名検証を行う。アクセストークン内のアクセストークンIDから検証キーデータ管理DB402から検証キー(この場合は、情報提供装置Bの検証キー)を取得し、受け取った全ての検証キー(この場合は情報提供装置Aと情報提供装置Bの検証キー)のハッシュ変換を行い、アクセストークン内の自情報提供装置の順番(この場合は2番)以前のハッシュ値と一致するハッシュ値が全てそろっているかを比較し、認証連携部406にアクセストークン、全ての検証キーデータ(この場合、情報提供装置Aと情報提供装置Bの検証キーデータ)を渡す。
(S25)認証連携部406は、アクセストークン、複数の検証キーデータ(この場合、情報提供装置Aと情報提供装置Bの検証キーデータ)を受けて、アクセストークン、全ての検証キーデータを保持し、自情報提供装置の検証キーデータ(この場合、情報提供装置Bの検証キーデータ)のアクセス許可装置300への送信を通信部409に依頼する。通信部409はHTTPもしくはHTTPSプロトコルにより、アクセス許可装置300に検証キーデータを送信する。
(S26)アクセス許可装置300の通信部313は、情報提供装置400Bからの検証キーデータを受信し、認証連携部311に渡す。認証連携部311は、検証キーデータから情報提供装置名(この場合は、情報提供装置B)、アクセストークンID(この場合は0123456789)、を取得し、アクセストークン管理DB310からアクセストークンIDに応じたアクセス許可装置300のユーザID(この場合はYamada.tarou)を取得し、アカウント管理DB312からアクセス許可装置300のユーザIDにおうじた情報提供装置BのユーザID(この場合は、0011223344)を取得し、利用者データを作成し、利用者データの送信を通信部313に依頼する。通信部313は、HTTPもしくはHTTPSプロトコルにより、情報提供装置400Bに利用者データを送信する。
(S27)情報提供装置400Bの通信部409は、アクセス許可装置300からの利用者データを受信し、認証連携部406に利用者データを渡す。認証連携部406は、保持していたアクセストークン、全ての検証キーデータ(この場合、情報提供装置Aと情報提供装置Bの検証キーデータ)、利用者データを属性情報提供部407に渡す。属性情報提供部407は、アクセストークン、複数の検証キーデータ(この場合、情報提供装置A、情報提供装置Bの検証キーデータ)、利用者データを受けて、利用者データ内の利用者IDを用いて、属性情報DB408から属性情報を取得し、属性情報データを作成し、属性情報データ、アクセストークン、検証キーデータ(この場合、情報提供装置A、情報提供装置Bの検証キーデータ)の情報活用装置200への送信を通信部409に依頼する。
(S28)通信部409は、HTTPもしくはHTTPSプロトコルにより、情報活用装置200に属性情報データ、アクセストークン、検証キーデータ(この場合、情報提供装置A、情報提供装置Bの検証キーデータ)を送信する。
(S29)情報活用装置200の通信部209は、属性情報データ、アクセストークン、検証キーデータ(この場合、情報提供装置A、情報提供装置Bの検証キーデータ)を受信し、アクセストークン受信部205に渡す。アクセストークン受信部205は、アクセストークンと検証キーデータと属性情報データのセットをアクセストークン送信部206に渡す。アクセストークン送信部206は、属性情報データ、アクセストークン内のアクセストークンIDを属性情報保存DB207に保存し、検証キーデータの個数(この場合は2)とアクセストークン値の内容から次にアクセスする情報提供装置名(この場合はなし)を取得し、アクセストークンIDをサービス提供部208に処理を引き渡す。サービス提供部208は属性情報保存DB207から属性情報を取得し、サービス結果データを生成し、通信部209に利用者端末100へのサービス結果データの送信を依頼する。通信部209は、HTTPもしくはHTTPSプロトコルにより、利用者端末100にサービス結果データを送信する。
(S30)利用者端末100の通信部106は、情報活用装置200からのサービス結果データを受信し、サービス利用処理部103にサービス結果データを渡す。サービス利用処理部103はサービス結果画面を生成し、画面データの表示を出力部102に依頼し、出力部102は、サービス結果を画面に表示する。
このように、本実施形態によれば、アクセス許可装置300は、各情報提供装置400の検証キーを生成し、各情報提供装置400の検証キーを用いて1つのアクセストークンを生成し、アクセストークンを情報活用装置200に送信し、情報活用装置200は、アクセストークンを各情報提供装置400に送信し、各情報提供装置400は、アクセストークンに含まれる自分の検証キーをアクセス許可装置300に送信し、アクセス許可装置300は、受信した検証キーに基づき、送信元の情報提供装置400における利用者の利用者IDを返信し、各情報提供装置400は、利用者IDに基づく属性情報を情報活用装置200に送信する。これにより、複数の情報提供装置400へのアクセス許可を1つのアクセストークンとして情報活用装置200に提供し、情報活用装置200では1つのアクセストークンを取得するだけとなるため、ユーザへの操作負担やアクセストークンを安全に管理する負担なくサービスを提供することが可能となる。
また、アクセス許可装置300は、複数の情報提供装置400へのアクセス順番を保持しており、アクセス順番に基づきアクセストークンを生成し、情報活用装置200は、アクセストークンに含まれるアクセス順番に基づき、各情報提供装置400にアクセストークンを送信して属性情報の取得を行う。これにより、複数の情報提供装置400から属性情報を取得する場合、情報活用装置200が順番に応じて個人属性情報を取得していることを確認することが可能になる。
また、各情報提供装置400は、情報活用装置200からアクセストークンを受信する順番が、アクセストークンに含まれる自身のアクセス順番と一致する場合、アクセストークンに含まれる自分の検証キーをアクセス許可装置300に送信し、アクセス許可装置300から利用者IDを受信した場合、属性情報に加え自身の検証キーを情報活用装置200に送信する。これにより、複数の情報提供装置400から属性情報を取得する場合、情報提供装置400側で順番を検証し、さらに、情報活用装置200が各情報提供装置400から送信された検証キーに基づき順番を検証することにより、より確実に情報活用装置200が順番に応じて個人属性情報を取得していることを確認することが可能になる。
また、情報活用装置200は、各情報提供装置400にアクセストークンを送信する際、アクセストークンに含まれるアクセス順番において、送信先である情報提供装置400よりもアクセス順番の早い情報提供装置400に対する検証キーを合わせて送信し、各情報提供装置400は、自身よりもアクセス順番の早い情報提供装置400に対する検証キーにより、情報活用装置200からアクセストークンを受信する順番がアクセストークンに含まれる自身のアクセス順番と一致するかを判定する。これにより、複数の情報提供装置400から属性情報を取得する場合、検証キーによって情報提供装置400側で順番を検証することにより、より確実に情報活用装置200が順番に応じて個人属性情報を取得していることを確認することが可能になる。
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各構成部、各ステップなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数の構成部やステップなどを1つに組み合わせたり、或いは分割したりすることが可能である。