(57)【特許請求の範囲】
【請求項１】
サービス活用装置と、トークンサーバと、少なくとも１つのサービス提供装置とを備えるアクセストークン検証システムであって、
前記サービス活用装置は、前記トークンサーバにワークフローシナリオ中の所定のプロセスを実行するためのアクセストークンを要求し、
前記トークンサーバは、前記アクセストークンの要求に応じて前記サービス活用装置に前記アクセストークンを送信し、
前記サービス活用装置は、前記アクセストークンを受信した場合、前記ワークフローシナリオ中の次プロセスを特定するシナリオ進捗情報を前記トークンサーバに送信し、かつ前記少なくとも１つのサービス提供装置に前記アクセストークンを送信し、
前記少なくとも１つのサービス提供装置は、前記アクセストークンを前記サービス活用装置から受信した場合、前記トークンサーバに前記アクセストークンの検証依頼を送信し、
前記トークンサーバは、前記検証依頼を前記サービス提供装置から受信した場合、前記アクセストークンに係る前記所定のプロセスが、前記シナリオ進捗情報で特定される前記次プロセスであるか否かを検証し、検証結果を前記サービス提供装置に送信し、
前記少なくとも１つのサービス提供装置は、前記検証結果に基づき、前記アクセストークンに係る前記所定のプロセスが、前記次プロセスである場合、サービスを前記サービス活用装置に提供することを特徴とするアクセストークン検証システム。
【請求項２】
前記サービス活用装置はさらに、前記アクセストークンを受信した場合、前記ワークフローシナリオを前記トークンサーバに送信し、
前記シナリオ進捗情報はさらに、前記次プロセスの前に実行した前プロセスの情報を含み、
前記トークンサーバは、前記検証依頼を前記サービス提供装置から受信した場合、前記前プロセスと前記次プロセスとの組合せが、前記ワークフローシナリオに含まれるか否かを検証し、
前記サービス提供装置は、前記検証結果に基づき、前記アクセストークンに係る前記所定のプロセスが、前記次プロセスであり、かつ、前記前プロセスと前記次プロセスとの組合せが、前記ワークフローシナリオに含まれる場合、前記サービスを前記サービス活用装置に提供することを特徴とする、請求項１に記載のアクセストークン検証システム。
【請求項３】
サービス活用装置と、トークンサーバと、少なくとも１つのサービス提供装置とを備えるアクセストークン検証方法であって、
前記サービス活用装置が、前記トークンサーバにワークフローシナリオ中の所定のプロセスを実行するためのアクセストークンを要求するステップと、
前記トークンサーバが、前記アクセストークンの要求に応じて前記サービス活用装置に前記アクセストークンを送信するステップと、
前記サービス活用装置が、前記アクセストークンを受信した場合、前記ワークフローシナリオ中の次プロセスを特定するシナリオ進捗情報を前記トークンサーバに送信し、かつ前記少なくとも１つのサービス提供装置に前記アクセストークンを送信するステップと、
前記少なくとも１つのサービス提供装置が、前記アクセストークンを前記サービス活用装置から受信した場合、前記トークンサーバに前記アクセストークンの検証依頼を送信するステップと、
前記トークンサーバが、前記検証依頼を前記サービス提供装置から受信した場合、前記アクセストークンに係る前記所定のプロセスが、前記シナリオ進捗情報で特定される前記次プロセスであるか否かを検証するステップと、
前記トークンサーバが、検証結果を前記サービス提供装置に送信するステップと、
前記少なくとも１つのサービス提供装置が、前記検証結果に基づき、前記アクセストークンに係る前記所定のプロセスが、前記次プロセスである場合、サービスを前記サービス活用装置に提供するステップと、
を含むアクセストークン検証方法。
【請求項４】
前記サービス活用装置がさらに、前記アクセストークンを受信した場合、前記ワークフローシナリオを前記トークンサーバに送信するステップと、
前記シナリオ進捗情報はさらに、前記次プロセスの前に実行した前プロセスの情報を含み、
前記検証するステップはさらに、前記トークンサーバが、前記検証依頼を前記サービス提供装置から受信した場合、前記前プロセスと前記次プロセスとの組合せが、前記ワークフローシナリオに含まれるか否かを検証し、
前記提供するステップは、前記サービス提供装置が、前記検証結果に基づき、前記アクセストークンに係る前記所定のプロセスが、前記次プロセスであり、かつ、前記前プロセスと前記次プロセスとの組合せが、前記ワークフローシナリオに含まれる場合、前記サービスを前記サービス活用装置に提供することを特徴とする、請求項３に記載のアクセストークン検証方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークフローシステムにおけるアクセストークン検証システム及びアクセストークン検証方法に関する。
【背景技術】
【０００２】
複数のサービス提供装置にアクセスするワークフローにおいて従来のOAuthに準拠したアクセストークン方式では、各サービス提供サーバへのアクセスごとに都度アクセストークンを取得する都度合意方式と、シナリオ開始直後に、複数のサービス提供装置へのアクセストークンを一括取得する一括合意方式とが考えられる（例えば非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】E. Hammer, et al.,“The OAuth 2.0 Authorization Protocol draft-ietf-oauth-v2-23”, 2012-1-21, [online][retrieved on 2012-05-11], internet, <URL: http://tools.ietf.org/html/draft-ietf-oauth-v2-23>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術の都度合意方式では、繰り返しユーザに合意を求めるため、利便性に問題があり、一方で一括合意方式では、シナリオ上不必要になったリソースへのアクセスも許可してしまうという、セキュリティ上の問題があった。
【０００５】
従って、上記のような問題点に鑑みてなされた本発明の目的は、利便性を確保し、かつシナリオ上不必要になったリソースへのアクセスを防ぐことができるアクセストークン検証システム及びアクセストークン検証方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明に係るアクセストークン検証システムは、
サービス活用装置と、トークンサーバと、少なくとも１つのサービス提供装置とを備えるアクセストークン検証システムであって、
前記サービス活用装置は、前記トークンサーバにワークフローシナリオ中の所定のプロセスを実行するためのアクセストークンを要求し、
前記トークンサーバは、前記アクセストークンの要求に応じて前記サービス活用装置に前記アクセストークンを送信し、
前記サービス活用装置は、前記アクセストークンを受信した場合、前記ワークフローシナリオ中の次プロセスを特定するシナリオ進捗情報を前記トークンサーバに送信し、かつ前記少なくとも１つのサービス提供装置に前記アクセストークンを送信し、
前記少なくとも１つのサービス提供装置は、前記アクセストークンを前記サービス活用装置から受信した場合、前記トークンサーバに前記アクセストークンの検証依頼を送信し、
前記トークンサーバは、前記検証依頼を前記サービス提供装置から受信した場合、前記アクセストークンに係る前記所定のプロセスが、前記シナリオ進捗情報で特定される前記次プロセスであるか否かを検証し、検証結果を前記サービス提供装置に送信し、
前記少なくとも１つのサービス提供装置は、前記検証結果に基づき、前記アクセストークンに係る前記所定のプロセスが、前記次プロセスである場合、サービスを前記サービス活用装置に提供することを特徴とする。
【０００７】
また、本発明に係るアクセストークン検証方法は、
サービス活用装置と、トークンサーバと、少なくとも１つのサービス提供装置とを備えるアクセストークン検証方法であって、
前記サービス活用装置が、前記トークンサーバにワークフローシナリオ中の所定のプロセスを実行するためのアクセストークンを要求するステップと、
前記トークンサーバが、前記アクセストークンの要求に応じて前記サービス活用装置に前記アクセストークンを送信するステップと、
前記サービス活用装置が、前記アクセストークンを受信した場合、前記ワークフローシナリオ中の次プロセスを特定するシナリオ進捗情報を前記トークンサーバに送信し、かつ前記少なくとも１つのサービス提供装置に前記アクセストークンを送信するステップと、
前記少なくとも１つのサービス提供装置が、前記アクセストークンを前記サービス活用装置から受信した場合、前記トークンサーバに前記アクセストークンの検証依頼を送信するステップと、
前記トークンサーバが、前記検証依頼を前記サービス提供装置から受信した場合、前記アクセストークンに係る前記所定のプロセスが、前記シナリオ進捗情報で特定される前記次プロセスであるか否かを検証するステップと、
前記トークンサーバが、検証結果を前記サービス提供装置に送信するステップと、
前記少なくとも１つのサービス提供装置が、前記検証結果に基づき、前記アクセストークンに係る前記所定のプロセスが、前記次プロセスである場合、サービスを前記サービス活用装置に提供するステップと、
を含むことを特徴とする。
【発明の効果】
【０００８】
本発明におけるアクセストークン検証システム及びアクセストークン検証方法によれば、利便性を確保し、かつシナリオ上不必要になったリソースへのアクセスを防ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るアクセストークン検証システムのブロック図である。
【図２】本発明の一実施形態に係るワークフローシナリオの例である。
【図３】本発明の一実施形態に係るシナリオ進捗情報の例である。
【図４】本発明の一実施形態に係るアクセストークン検証システムの動作を示すフローチャートである。
【図５】本発明の一実施形態に係るシナリオ進捗情報の変形例である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について説明する。
【００１１】
（実施の形態）
図１は本発明の一実施形態に係るアクセストークン検証システムのブロック図である。本発明の一実施形態に係るアクセストークン検証システムは、サービス活用装置１００と、トークンサーバ２００と、少なくとも１つのサービス提供装置（３００ａ〜３００ｃ）とを備える。これらはネットワーク４００を介して相互に無線又は有線により接続されている。なお図１においては、サービス提供装置を３つ備える構成を示しているがこれに限られず、サービス提供装置は少なくとも１つあればよく、したがって２つ以下でもよく、または４つ以上であってもよい。
【００１２】
サービス活用装置１００は、サービス要求受信部１０１と、制御シナリオ取得部１０２と、シナリオデータベース１０３と、トークン取得部１０４と、トークン要求送信部１０５と、トークン受信部１０６と、ワークフロー実行制御部１０７と、シナリオ進捗情報送信部１０８と、トークン送信部１０９と、通信部１１０とを備える。サービス活用装置１００は、利用者端末５００からサービス要求情報を受ける。
【００１３】
サービス要求受信部１０１は、通信部１１０よりサービス要求情報を受けた場合、制御シナリオ取得部１０２にサービス要求情報を渡す。なおこの際サービス活用装置１００は当該サービスに必要な全ての同意を利用者端末５００から取得する。
【００１４】
制御シナリオ取得部１０２は、サービス要求受信部１０１よりサービス要求情報を受けて、シナリオデータベース（ＤＢ）１０３から、該当するワークフローのシナリオに係る情報（以下、ワークフローシナリオという。）を取得し、トークン取得部１０４とワークフロー実行制御部１０７に渡す。シナリオＤＢ１０３は、ワークフローシナリオを保持する。
【００１５】
図２にシナリオＤＢ１０３に格納されるワークフローシナリオの例を示す。ワークフローシナリオは、図２に示すように、シナリオＩＤと該シナリオに係る各プロセスが時系列順に並べられた情報である。ここでシナリオＩＤとは、本システムにおいてワークフローシナリオを一意に特定するための識別子である。ワークフローシナリオは例えば、シナリオＩＤが“００１”、各プロセスが“プロセス１”、“プロセス２”、“プロセス３”等である。
【００１６】
トークン取得部１０４は、制御シナリオ取得部１０２よりワークフローシナリオを受け取り、ワークフローシナリオ中のプロセスに係るサービス提供装置３００ａ〜３００ｃへのアクセストークン要求情報をトークン要求送信部１０５に依頼する。
【００１７】
トークン要求送信部１０５は、トークン取得部１０４よりアクセストークン要求情報を受け取り、通信部１１０に送信を依頼する。
【００１８】
トークン受信部１０６は、通信部１１０よりアクセストークンを受けて、ワークフロー実行制御部１０７に渡す。
【００１９】
ワークフロー実行制御部１０７は、制御シナリオ取得部１０２とトークン受信部１０６よりそれぞれワークフローシナリオ及びアクセストークンを受けてワークフローを実行する。ワークフロー開始直後と、各プロセス終了時にシナリオ進捗情報を生成し、該シナリオ進捗情報をシナリオ進捗情報送信部１０８に渡す。またワークフロー実行制御部１０７は、ワークフローシナリオにより特定される所定のプロセスに必要なアクセストークン（以下、所定のプロセスに係るアクセストークンという。）をトークン送信部１０９に渡す。
【００２０】
図３にシナリオ進捗情報の例を示す。シナリオ進捗情報は、シナリオＩＤと次に実行する予定のプロセス（以下、次プロセスという。）の情報を含む。例えばシナリオ進捗情報は、“００３”、“プロセス３ｏｒプロセス４”である。“プロセス３ｏｒプロセス４”とは、次プロセスがプロセス３又はプロセス４のいずれか一方であることを意味する。
【００２１】
シナリオ進捗情報送信部１０８は、ワークフロー実行制御部１０７よりシナリオ進捗情報を受けて、通信部１１０に送信を依頼する。
【００２２】
トークン送信部１０９は、ワークフロー実行制御部１０７よりアクセストークンを受けて通信部１１０に送信を依頼する。
【００２３】
通信部１１０は、トークン要求送信部１０５、シナリオ進捗情報送信部１０８、又はトークン送信部１０９より依頼を受けて、データの種類に応じて、トークンサーバ２００又はサービス提供装置３００ａ〜３００ｃに情報を送信する。また通信部１１０は、利用者端末５００、トークンサーバ２００、又はサービス提供装置３００ａ〜３００ｃから情報を受信し、データ種類に応じて、サービス要求受信部１０１又はトークン受信部１０６に処理を引き渡す。
【００２４】
トークンサーバ２００は、トークン要求受信部２０１と、トークン発行部２０２と、トークン送信部２０３と、シナリオ進捗情報受信部２０４と、シナリオ管理部２０５と、シナリオ進捗データベース（ＤＢ）２０６と、トークン検証依頼受信部２０７と、トークン検証部２０８と、トークン検証結果送信部２０９と、通信部２１０とを備える。
【００２５】
トークン要求受信部２０１は、通信部２１０よりアクセストークン要求情報を受けて、トークン発行部２０２に渡す。
【００２６】
トークン発行部２０２は、トークン要求受信部２０１よりトークン要求情報を受けて、検証し、アクセストークンを発行する。発行したアクセストークンをトークン送信部２０３に渡す。
【００２７】
トークン送信部２０３は、トークン発行部２０２よりアクセストークンを受け取り、通信部２１０に送信を依頼する。
【００２８】
シナリオ進捗情報受信部２０４は、通信部２１０よりシナリオ進捗情報を受け取り、シナリオ管理部２０５に渡す。
【００２９】
シナリオ管理部２０５は、シナリオ進捗情報受信部２０４よりシナリオ進捗情報を受け取り、シナリオ進捗情報をシナリオ進捗データベース（ＤＢ）２０６に格納又は上書きする。またシナリオ管理部２０５は、トークン検証部２０８より要求を受け、シナリオ進捗情報をトークン検証部２０８に渡す。シナリオ進捗データベース２０６は、シナリオ進捗情報を保持する。
【００３０】
トークン検証依頼受信部２０７は、通信部２１０よりアクセストークンを受け取り、トークン検証部２０８に渡す。
【００３１】
トークン検証部２０８は、トークン検証依頼受信部２０７よりアクセストークンを受け取り、同時にシナリオ管理部２０５にシナリオ進捗情報を要求する。シナリオ進捗情報からアクセストークンのシナリオ上の有効性を検証し、検証結果をトークン検証結果送信部２０９に渡す。具体的にはトークン検証部２０８は、アクセストークンに係る所定のプロセスが、シナリオ進捗情報で特定される次プロセスであるか否かの検証をする。トークン検証部２０８は、アクセストークンに係る所定のプロセスが、次プロセスである場合、アクセストークン検証結果をサービス提供可として出力する。一方、アクセストークンに係る所定のプロセスが、次プロセスでない場合、トークン検証部２０８は、アクセストークン検証結果をサービス提供不可として出力する。
【００３２】
トークン検証結果送信部２０９は、トークン検証部２０８より、アクセストークンの検証結果を受け取り、通信部２１０に検証結果の送信を依頼する。
【００３３】
通信部２１０は、トークン送信部２０３、又はトークン検証結果送信部２０９より依頼を受けて、データの種類に応じてサービス活用装置１００又はサービス提供装置３００ａ〜３００ｃに情報を送信する。また通信部２１０は、サービス活用装置１００、サービス提供装置３００ａ〜３００ｃから情報を受信し、データ種類に応じて、トークン要求受信部２０１、シナリオ進捗情報受信部２０４、トークン検証依頼受信部２０７に処理を引き渡す。
【００３４】
サービス提供装置３００ａは、トークン受信部３０１と、トークン検証依頼部３０２と、トークン検証依頼送信部３０３と、トークン検証結果受信部３０４と、サービス提供部３０５と、サービス送信部３０６と、通信部３０７とを備える。
【００３５】
トークン受信部３０１は、通信部３０７よりアクセストークンを受けて、トークン検証依頼部３０２に渡す。
【００３６】
トークン検証依頼部３０２は、トークン受信部３０１よりアクセストークンを受けて、トークン検証依頼送信部３０３に渡す。
【００３７】
トークン検証依頼送信部３０３は、トークン検証依頼部３０２よりアクセストークンを受けて、アクセストークンの送信を通信部３０７に依頼する。
【００３８】
トークン検証結果受信部３０４は、通信部３０７よりアクセストークンの検証結果を受け取り、サービス提供部３０５に渡す。
【００３９】
サービス提供部３０５は、トークン検証結果受信部３０４よりトークンの検証結果を受け取り、アクセストークン検証結果がサービス提供可であるか否かを判定する。サービス提供可でない場合（すなわちサービス提供不可である場合）、サービスを提供せずに処理が終了する。一方サービス提供可であれば、サービス提供部３０５は要求されたサービス結果をサービス送信部３０６に渡す。
【００４０】
サービス送信部３０６は、サービス提供部３０５よりサービス結果を受け取り通信部３０７に送信を依頼する。
【００４１】
通信部３０７は、トークン検証依頼送信部３０３、又はサービス送信部３０６より依頼を受けて、データの種類に応じてサービス活用装置１００、又はトークンサーバ２００に情報を送信する。また通信部３０７は、サービス活用装置１００、又はトークンサーバ２００から情報を受信し、データの種類に応じてトークン受信部３０１、又はトークン検証結果受信部３０４に処理を引き渡す。
【００４２】
サービス提供装置３００ｂ〜３００ｃの構成は、それぞれサービス提供装置３００ａと同一であるため、説明は省略する。
【００４３】
次に、本発明の一実施形態に係るアクセストークン検証システムについて、図４に示すフローチャートによりその動作を説明する。なお図４においては、サービス提供装置３００ａ〜３００ｃのうち、サービス提供装置３００ａのみ動作する例を示すがこれに限られず、ワークフローシナリオに必要であれば、他のサービス提供装置３００ｂ、３００ｃも動作する。
【００４４】
はじめにサービス活用装置１００の通信部１１０は、利用者端末５００よりサービス要求情報を受ける（ステップＳ１）。そして通信部１１０は、制御シナリオ取得部１０２に引き渡す。制御シナリオ取得部１０２は、サービス要求受信部１０１よりサービス要求情報を受けて、シナリオＤＢ１０３から該当するワークフローシナリオを取得し、トークン取得部１０４とワークフロー実行制御部１０７に渡す。なお、利用者端末５００からサービス要求情報を受けたとき、サービス活用装置１００は当該サービスに必要な全ての同意を利用者端末５００から取得する。
【００４５】
次に、サービス活用装置１００のトークン取得部１０４は、制御シナリオ取得部１０２よりワークフローシナリオを受け取り、ワークフローシナリオにより特定されるプロセスに必要な全てのサービス提供装置（この例ではサービス提供装置３００ａのみ）へのアクセストークン要求情報をトークン要求送信部１０５に依頼する。トークン要求送信部１０５は、トークン取得部１０４よりアクセストークン要求情報を受け取り、通信部１１０に送信を依頼する。通信部１１０はトークンサーバ２００にアクセストークン要求情報を送信する（ステップＳ２）。
【００４６】
続いて、トークンサーバ２００の通信部２１０は、サービス活用装置１００よりアクセストークン要求情報を受けて、トークン要求受信部２０１に渡す。トークン要求受信部２０１は、通信部２１０よりアクセストークン要求情報を受けて、トークン発行部２０２に引き渡す。トークン発行部２０２は、トークン要求受信部２０１よりトークン要求情報を受けて、検証し、要求されたアクセストークンを一括発行して発行したアクセストークンをトークン送信部２０３に渡す。トークン送信部２０３は、トークン発行部２０２よりアクセストークンを受け取り、通信部２１０に送信を依頼する。通信部２１０は、アクセストークンを受け取り、該アクセストークンをサービス活用装置１００に送信する（ステップＳ３）。
【００４７】
続いて、サービス活用装置１００の通信部１１０は、トークンサーバ２００よりアクセストークンを受けて、トークン受信部１０６に渡す。トークン受信部１０６は、通信部１１０よりアクセストークンを受けて、ワークフロー実行制御部１０７に渡す。ワークフロー実行制御部１０７は、制御シナリオ取得部１０２とトークン受信部１０６よりそれぞれワークフローシナリオ及びアクセストークンを受けてワークフローを実行する。ワークフロー実行制御部１０７は、ワークフロー開始直後と、各プロセス終了時にシナリオ進捗情報を生成し、シナリオ進捗情報送信部１０８に渡す。シナリオ進捗情報送信部１０８はワークフロー実行制御部１０７よりシナリオ進捗情報を受けて、通信部１１０に送信を依頼する。通信部１１０は、シナリオ進捗情報送信部１０８よりシナリオ進捗情報を受けて、トークンサーバ２００に送信する（ステップＳ４）。
【００４８】
続いて、トークンサーバ２００の通信部２１０は、サービス活用装置１００よりシナリオ進捗情報を受け取り、シナリオ進捗情報受信部２０４に渡す。シナリオ進捗情報受信部２０４は通信部２１０よりシナリオ進捗情報を受け取り、シナリオ管理部２０５に渡す。シナリオ管理部２０５はシナリオ進捗情報受信部２０４よりシナリオ進捗情報を受け取り、シナリオ進捗情報をシナリオ進捗ＤＢ２０６に格納又は上書きする（ステップＳ５）。
【００４９】
続いて、サービス活用装置１００のワークフロー実行制御部１０７は、ワークフローシナリオにより特定される所定のプロセスに必要なアクセストークン、すなわち所定のプロセスに係るアクセストークンをトークン送信部１０９に渡す。トークン送信部１０９は、ワークフロー実行制御部１０７より当該アクセストークンを受け取り、通信部１１０に送信を依頼する。通信部１１０は、トークン送信部１０９よりアクセストークンを受け取り、サービス提供装置３００ａに送信する（ステップＳ６）。
【００５０】
続いて、サービス提供装置３００ａの通信部３０７は、サービス活用装置１００よりアクセストークンを受け取り、トークン受信部３０１に渡す（ステップＳ７）。トークン受信部３０１は、通信部３０７よりアクセストークンを受けてトークン検証依頼部３０２に渡す。トークン検証依頼部３０２はトークン受信部３０１よりアクセストークンを受けて、トークン検証依頼送信部３０３に渡す。トークン検証依頼送信部３０３は、トークン検証依頼部３０２よりアクセストークンを受けて、アクセストークンの送信を通信部３０７に依頼する。通信部３０７は、トークン検証依頼送信部３０３よりアクセストークンを受けて、トークンサーバ２００にアクセストークンの検証を依頼する（ステップＳ８）。
【００５１】
続いて、トークンサーバ２００の通信部２１０は、サービス提供装置３００ａよりアクセストークンを受け取り、トークン検証依頼受信部２０７に渡す。トークン検証依頼受信部２０７は、通信部２１０よりアクセストークンを受け取り、トークン検証部２０８に渡す。トークン検証部２０８は、トークン検証依頼受信部２０７よりアクセストークンを受け取ると同時にシナリオ管理部２０５にシナリオ進捗情報を要求する。トークン検証部２０８はシナリオ進捗情報からアクセストークンのその時点でのシナリオ上の必要性を検証する（ステップＳ９）。つまりトークン検証部２０８は、アクセストークンに係る所定のプロセスが、シナリオ進捗情報で特定される次プロセスであるか否かの検証をする。トークン検証部２０８は、アクセストークンに係る所定のプロセスが、次プロセスである場合、アクセストークン検証結果をサービス提供可として出力する。一方、アクセストークンに係る所定のプロセスが、次プロセスでない場合、トークン検証部２０８は、アクセストークン検証結果をサービス提供不可として出力する。
【００５２】
続いて、トークンサーバ２００のトークン検証部２０８は、検証結果をトークン検証結果送信部２０９に渡す。トークン検証結果送信部２０９は、トークン検証部２０８より、アクセストークンの判定結果を受け取り、通信部２１０に送信を依頼する。通信部２１０は、トークン検証結果送信部２０９よりアクセストークン検証結果を受け取り、サービス提供装置３００ａに検証結果を提示する（ステップＳ１０）。
【００５３】
続いて、サービス提供装置３００ａの通信部３０７は、アクセストークン検証結果の提示を受けると、トークン検証結果をトークン検証結果受信部３０４に渡す。トークン検証結果受信部３０４は、通信部３０７よりアクセストークンの検証結果を受け取り、サービス提供部３０５に渡す。サービス提供部３０５は、トークン検証結果受信部３０４よりトークンの検証結果を受け取り、アクセストークン検証結果がサービス提供可であるか否かを判定する（ステップＳ１１）。サービス提供部３０５は、サービス提供可であれば、要求されたサービス結果をそれぞれサービス送信部３０６に渡す。そしてサービス送信部３０６はサービス提供部３０５より、サービス結果を受け取り通信部３０７に送信を依頼する。通信部３０７はサービス結果を受け取り、サービス活用装置１００にサービスを提供する（ステップＳ１２）。一方ステップＳ１１の判定の結果、サービス提供可でない場合（すなわちサービス提供不可である場合）、サービス提供部３０５は、サービスを提供しない。
【００５４】
続いて、サービス活用装置１００がサービス提供装置３００ａからサービスの提供を受けると、サービス活用装置１００は、シナリオＤＢ１０３に格納されたワークフローシナリオに基づき、シナリオが終了したか否かを判定する（ステップＳ１３）。シナリオが終了していない場合、ステップＳ４に進み、ステップＳ４〜ステップＳ１２の処理を繰り返す。シナリオが終了している場合、処理が終了する。
【００５５】
このように本発明によれば、ユーザはシナリオ実行時に一度合意するだけでよいため利便性を確保でき、かつ実行時には必要なリソースへのアクセスをトークンサーバ２００がシナリオの進捗状況を考慮して許可し、シナリオ上不必要になったリソースへのアクセスを防ぐことができる。
【００５６】
（変形例）
以下に、上記実施形態の変形例について説明をする。変形例に係るアクセストークン検証システムでは、サービス活用装置１００が、トークンサーバ２００にワークフローシナリオを送信する点が上記実施形態と異なる。具体的には図４のステップＳ４において、ワークフロー実行制御部１０７は、ワークフロー開始直後と、各プロセス終了時にシナリオ進捗情報を生成し、該シナリオ進捗情報を、ワークフローシナリオとともに、シナリオ進捗情報送信部１０８に渡す。そしてシナリオ進捗情報送信部１０８は、ワークフロー実行制御部１０７よりシナリオ進捗情報とワークフローシナリオとを受けて、通信部１１０に送信を依頼する。通信部１１０は、シナリオ進捗情報送信部１０８よりシナリオ進捗情報とワークフローシナリオとを受けて、トークンサーバ２００に送信する。また、図４のステップＳ５において、トークンサーバ２００の通信部２１０は、サービス活用装置１００よりシナリオ進捗情報とワークフローシナリオとを受け取り、シナリオ進捗情報受信部２０４に渡す。そしてシナリオ進捗情報受信部２０４は通信部２１０よりシナリオ進捗情報とワークフローシナリオとを受け取り、シナリオ管理部２０５に渡す。シナリオ管理部２０５は、シナリオ進捗情報受信部２０４よりシナリオ進捗情報とワークフローシナリオとを受け取り、シナリオ進捗情報とワークフローシナリオとをシナリオ進捗ＤＢ２０６に格納又は上書きする。
【００５７】
また、変形例に係るアクセストークン検証システムでは、シナリオ進捗情報に、次プロセスの前に実行したプロセス（以下、前プロセスという）を含む点が異なる。
【００５８】
図５に、変形例に係るシナリオ進捗情報の例を示す。例えば変形例に係るシナリオ進捗情報は、図５に示すように“シナリオＩＤ”、“前プロセス”、及び“次プロセス”として、“００３”、“プロセス２”、及び“プロセス３ｏｒプロセス４”を含む。
【００５９】
そして変形例に係るアクセストークン検証システムは、トークンサーバ２００が、シナリオ進捗情報とワークフローシナリオとに基づき、検証依頼をサービス提供装置３００ａ〜３００ｃから受信した場合、前プロセスと次プロセスとの組合せが、ワークフローシナリオに含まれるか否かを検証する。具体的には、図４のステップＳ９において、トークン検証部２０８は、トークン検証依頼受信部２０７よりアクセストークンを受け取ると同時にシナリオ管理部２０５にシナリオ進捗情報とワークフローシナリオとを要求する。そしてトークン検証部２０８は、シナリオ進捗情報からアクセストークンのその時点でのシナリオ上の必要性を検証する。このときトークン検証部２０８は、アクセストークンに係る所定のプロセスが、シナリオ進捗情報で特定される次プロセスであるか否かを検証し、かつ、前プロセス及び次プロセスの組合せが、ワークフローシナリオに含まれるか否かを検証する。トークン検証部２０８は、アクセストークンに係る所定のプロセスが、次プロセスであり、かつ、前プロセスと次プロセスとの組合せが、ワークフローシナリオに含まれる場合、アクセストークン検証結果をサービス提供可として出力する。それ以外の場合、トークン検証部２０８は、アクセストークン検証結果をサービス提供不可として出力する。
【００６０】
例えば図５に示すシナリオ進捗情報は、前プロセスが“プロセス２”、次プロセスが“プロセス３ｏｒプロセス４”であり、当該情報のシナリオＩＤに係るワークフローシナリオは、“プロセス２”及び“プロセス３ｏｒプロセス４”の組合せを含む。したがってこの場合、ワークフローシナリオとシナリオ進捗情報に矛盾がなく、トークン検証部２０８は、アクセストークン検証結果をサービス提供可として出力する。
【００６１】
このように、変形例に係るアクセストークン検証システムによれば、ワークフロー実行時には必要なリソースへのアクセスをトークンサーバ２００がシナリオの進捗状況、及び該進捗状況とワークフローシナリオとに矛盾が無いかを検証した上でリソースへのアクセスを許可するため、シナリオ上不必要になったリソースへのアクセスの防止効果をより向上させることができる。
【００６２】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各手段、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の手段やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。
【符号の説明】
【００６３】
１００  サービス活用装置
１０１  サービス要求受信部
１０２  制御シナリオ取得部
１０３  シナリオデータベース（ＤＢ）
１０４  トークン取得部
１０５  トークン要求送信部
１０６  トークン受信部
１０７  ワークフロー実行制御部
１０８  シナリオ進捗情報送信部
１０９  トークン送信部
１１０  通信部
２００  トークンサーバ
２０１  トークン要求受信部
２０２  トークン発行部
２０３  トークン送信部
２０４  シナリオ進捗情報受信部
２０５  シナリオ管理部
２０６  シナリオ進捗データベース（ＤＢ）
２０７  トークン検証依頼受信部
２０８  トークン検証部
２０９  トークン検証結果送信部
２１０  通信部
３００ａ〜ｃ  サービス提供装置
３０１  トークン受信部
３０２  トークン検証依頼部
３０３  トークン検証依頼送信部
３０４  トークン検証結果受信部
３０５  サービス提供部
３０６  サービス送信部
３０７  通信部
４００  ネットワーク
５００  利用者端末
【図１】
0005718284.tif 000002
【図２】
0005718284.tif 000003
【図３】
0005718284.tif 000004
【図４】
0005718284.tif 000005
【図５】
0005718284.tif 000006