(57)【特許請求の範囲】
【請求項１】
サービス提供装置によるサービスの提供を受ける情報処理装置であって、
権限情報と、該権限情報の委譲先であって、前記情報処理装置にサービスを提供する前記サービス提供装置を識別する委譲先識別情報が関連付けられた権限オブジェクトを取得する権限オブジェクト取得手段と、
委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先である前記サービス提供装置を識別する委譲先識別情報を関連付けて管理する管理手段から、前記権限オブジェクト取得手段により取得した前記権限オブジェクトの識別情報に関連付けられた前記委譲先識別情報を取得する委譲先識別情報取得手段と、
を含む情報処理装置。
【請求項２】
前記委譲先識別情報取得手段により取得した委譲先識別情報と、前記取得した権限オブジェクトを利用して処理を実行する処理手段に予め定められた識別情報が一致するか否かに基づいて、前記権限オブジェクト取得手段により取得した権限オブジェクトを検証する検証手段をさらに含む
請求項１に記載の情報処理装置。
【請求項３】
前記検証手段は、前記委譲先識別情報取得手段により取得した委譲先識別情報と、前記取得した権限オブジェクトを利用して処理を実行する処理手段に予め定められた識別情報とが一致する場合に、前記権限オブジェクト取得手段により取得した権限オブジェクトが正当と検証し、前記委譲先識別情報取得手段により取得した委譲先識別情報と、前記予め定められた識別情報とが一致しない場合に、前記権限オブジェクト取得手段により取得した権限オブジェクトが正当でないと検証する
請求項２に記載の情報処理装置。
【請求項４】
前記検証手段により前記権限オブジェクト取得手段により取得した権限オブジェクトが正当と検証された場合に、該権限オブジェクトの指定を含む処理要求を受理し、該受理した処理要求に基づく処理を実行する要求処理手段をさらに含む
請求項３に記載の情報処理装置。
【請求項５】
前記要求処理手段は、前記検証手段により前記権限オブジェクト取得手段により取得した権限オブジェクトが正当でないと検証された場合に、該権限オブジェクトの指定を含む処理要求を受理しない
請求項４に記載の情報処理装置。
【請求項６】
前記検証手段により前記権限オブジェクト取得手段により取得した権限オブジェクトが正当でないと検証された場合に、該権限オブジェクトに関連付けられた前記委譲先識別情報に関連付けられた権限オブジェクトを無効化させるための通知を行う通知手段をさらに含む
請求項３乃至５のいずれかに記載の情報処理装置。
【請求項７】
前記検証手段により前記権限オブジェクト取得手段により取得した権限オブジェクトが正当でないと検証された場合に、該権限オブジェクトに関連付けられた前記委譲先識別情報に、前記情報処理装置の秘密鍵に基づいて電子署名する電子署名手段を含み、
前記通知手段は、前記電子署名手段により電子署名された前記委譲先識別情報を、前記管理手段を有する管理装置に通知し、
前記管理装置は、前記通知手段により通知された前記委譲先識別情報の電子署名に基づく信頼性が検証された場合に、該委譲先識別情報に関連付けられた権限オブジェクトを無効化する無効化手段を有する
請求項６に記載の情報処理装置。
【請求項８】
権限情報と、該権限情報の委譲先であって、情報処理装置にサービスを提供するサービス提供装置を識別する委譲先識別情報とに基づいて、権限オブジェクトを委譲する委譲手段と、
前記委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先である前記サービス提供装置を識別する委譲先識別情報を関連付けて管理する管理手段と、
前記情報処理装置から受け付けた権限オブジェクトの識別情報に基づいて、前記管理手段から読み出した前記委譲先識別情報を、該情報処理装置に提供する提供手段と、
を含む管理装置。
【請求項９】
サービス提供装置によるサービスの提供を受ける情報処理装置としてコンピュータを機能させるためのプログラムであって、
権限情報と、該権限情報の委譲先であって、前記情報処理装置にサービスを提供する前記サービス提供装置を識別する委譲先識別情報が関連付けられた権限オブジェクトを取得する権限オブジェクト取得手段、及び、
委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先である前記サービス提供装置を識別する委譲先識別情報を関連付けて管理する管理手段から、前記権限オブジェクト取得手段により取得した前記権限オブジェクトの識別情報に関連付けられた前記委譲先識別情報を取得する委譲先識別情報取得手段
としてコンピュータを機能させるためのプログラム。
【請求項１０】
権限情報と、該権限情報の委譲先であって、情報処理装置にサービスを提供するサービス提供装置を識別する委譲先識別情報とに基づいて、権限オブジェクトを委譲する委譲手段、
前記委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先である前記サービス提供装置を識別する委譲先識別情報を関連付けて管理する管理手段、及び、
前記情報処理装置から受け付けた権限オブジェクトの識別情報に基づいて、前記管理手段から読み出した前記委譲先識別情報を、該情報処理装置に提供する提供手段
としてコンピュータを機能させるためのプログラム。
【請求項１１】
管理装置と、情報処理装置と、サービス提供装置とを含み、
前記管理装置は、
権限情報と、該権限情報の委譲先であって、前記情報処理装置にサービスを提供する前記サービス提供装置を識別する委譲先識別情報とに基づいて、権限オブジェクトを委譲する委譲手段と、
前記委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先である前記サービス提供装置を識別する委譲先識別情報を関連付けて管理する管理手段と、を有し、
前記情報処理装置は、
権限情報と、該権限情報の委譲先であって、前記情報処理装置にサービスを提供するサービス提供装置を識別する委譲先識別情報が関連付けられた権限オブジェクトを取得する権限オブジェクト取得手段と、
前記取得手段により取得した前記権限オブジェクトの識別情報を前記管理装置に送信する送信手段と、を有し、
前記管理装置は、さらに
前記送信手段により送信された権限オブジェクトの識別情報に基づいて、前記管理手段から読み出した前記委譲先識別情報を、該情報処理装置に提供する提供手段を有する
システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、管理装置、プログラム及びシステムに関する。
【背景技術】
【０００２】
オブジェクトを管理するサーバでは、処理の要求元であるクライアントが有する権限に応じてオブジェクトを処理（生成、取得、変更、削除等）することがある。ここで、サーバで管理するオブジェクトには生成、変更、削除等が行われることがあるため、クライアントに対してオブジェクトとは独立に権限を固定的に紐付けておくと、クライアントの権限に応じてオブジェクトを柔軟に処理することが困難となることがある。また、サーバにおいて実行される処理の指定を拡張可能に構成することで、システムの開発や利用性が向上することが期待される。また、特許文献１には、第三者に対してリソースのアクセス権限を委譲するシステムについて開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０９８８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、取得した権限オブジェクトの委譲先を確認できる情報処理装置、管理装置、プログラム及びシステムを提供することにある。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、権限情報と、該権限情報の委譲先を識別する委譲先識別情報が関連付けられた権限オブジェクトを取得する権限オブジェクト取得手段と、委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先を識別する委譲先識別情報を関連付けて管理する管理手段から、前記権限オブジェクト取得手段により取得した前記権限オブジェクトの識別情報に関連付けられた委譲先識別情報を取得する委譲先識別情報取得手段と、を含む情報処理装置である。
【０００６】
請求項２に係る発明は、前記委譲先識別情報取得手段により取得した委譲先識別情報と、前記取得した権限オブジェクトを利用して処理を実行する処理手段に予め定められた識別情報が一致するか否かに基づいて、前記権限オブジェクト取得手段により取得した権限オブジェクトを検証する検証手段をさらに含む請求項１に記載の情報処理装置である。
【０００７】
請求項３に係る発明は、前記検証手段は、前記委譲先識別情報取得手段により取得した委譲先識別情報と、前記取得した権限オブジェクトを利用して処理を実行する処理手段に予め定められた識別情報とが一致する場合に、前記権限オブジェクト取得手段により取得した権限オブジェクトが正当と検証し、前記委譲先識別情報取得手段により取得した委譲先識別情報と、前記予め定められた識別情報とが一致しない場合に、前記権限オブジェクト取得手段により取得した権限オブジェクトが正当でないと検証する請求項２に記載の情報処理装置である。
【０００８】
請求項４に係る発明は、前記検証手段により前記権限オブジェクト取得手段により取得した権限オブジェクトが正当と検証された場合に、該権限オブジェクトの指定を含む処理要求を受理し、該受理した処理要求に基づく処理を実行する要求処理手段をさらに含む請求項３に記載の情報処理装置である。
【０００９】
請求項５に係る発明は、前記要求処理手段は、前記検証手段により前記権限オブジェクト取得手段により取得した権限オブジェクトが正当でないと検証された場合に、該権限オブジェクトの指定を含む処理要求を受理しない請求項４に記載の情報処理装置である。
【００１０】
請求項６に係る発明は、前記検証手段により前記権限オブジェクト取得手段により取得した権限オブジェクトが正当でないと検証された場合に、該権限オブジェクトに関連付けられた委譲先識別情報に関連付けられた権限オブジェクトを無効化させるための通知を行う通知手段をさらに含む請求項３乃至５のいずれかに記載の情報処理装置である。
【００１１】
請求項７に係る発明は、前記検証手段により前記権限オブジェクト取得手段により取得した権限オブジェクトが正当でないと検証された場合に、該権限オブジェクトに関連付けられた委譲先識別情報に、前記情報処理装置の秘密鍵に基づいて電子署名する電子署名手段を含み、前記通知手段は、前記電子署名手段により電子署名された委譲先識別情報を、前記管理手段を有する管理装置に通知し、前記管理装置は、前記通知手段により通知された委譲先識別情報の電子署名に基づく信頼性が検証された場合に、該委譲先識別情報に関連付けられた権限オブジェクトを無効化する無効化手段を有する請求項６に記載の情報処理装置である。
【００１２】
請求項８に係る発明は、権限情報と、該権限情報の委譲先を識別する委譲先識別情報とに基づいて、権限オブジェクトを委譲する委譲手段と、前記委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先を識別する委譲先識別情報を関連付けて管理する管理手段と、情報処理装置から受け付けた権限オブジェクトの識別情報に基づいて、前記管理手段から読み出した委譲先識別情報を、該情報処理装置に提供する提供手段と、を含む管理装置である。
【００１３】
請求項９に係る発明は、権限情報と、該権限情報の委譲先を識別する委譲先識別情報が関連付けられた権限オブジェクトを取得する権限オブジェクト取得手段と、委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先を識別する委譲先識別情報を関連付けて管理する管理手段から、前記権限オブジェクト取得手段により取得した前記権限オブジェクトの識別情報に関連付けられた委譲先識別情報を取得する委譲先識別情報取得手段としてコンピュータを機能させるためのプログラムである。
【００１４】
請求項１０に係る発明は、権限情報と、該権限情報の委譲先を識別する委譲先識別情報とに基づいて、権限オブジェクトを委譲する委譲手段と、前記委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先を識別する委譲先識別情報を関連付けて管理する管理手段と、情報処理装置から受け付けた権限オブジェクトの識別情報に基づいて、前記管理手段から読み出した委譲先識別情報を、該情報処理装置に提供する提供手段としてコンピュータを機能させるためのプログラムである。
【００１５】
請求項１１に係る発明は、管理装置と、情報処理装置とを含み、前記管理装置は、権限情報と、該権限情報の委譲先を識別する委譲先識別情報とに基づいて、権限オブジェクトを委譲する委譲手段と、前記委譲された権限オブジェクトの識別情報と、該権限オブジェクトの権限情報の委譲先を識別する委譲先識別情報を関連付けて管理する管理手段と、を有し、前記情報処理装置は、権限情報と、該権限情報の委譲先を識別する委譲先識別情報が関連付けられた権限オブジェクトを取得する権限オブジェクト取得手段と、前記取得手段により取得した前記権限オブジェクトの識別情報を前記管理装置に送信する送信手段と、を有し、前記管理装置は、さらに前記送信手段により送信された権限オブジェクトの識別情報に基づいて、前記管理手段から読み出した委譲先識別情報を、該情報処理装置に提供する提供手段を有するシステムである。
【発明の効果】
【００１６】
請求項１、９及び１１に記載の発明によれば、取得した権限オブジェクトの委譲先を確認できる。
【００１７】
請求項２に記載の発明によれば、取得した権限オブジェクトの権限の委譲先と、処理手段の識別情報に基づいて権限オブジェクトの正当性を検証できる。
【００１８】
請求項３に記載の発明によれば、取得した権限オブジェクトの権限の委譲先が処理手段の識別情報と一致する場合に権限オブジェクトが正当と検証できる。
【００１９】
請求項４に記載の発明によれば、取得した権限オブジェクトが正当である場合に権限オブジェクトに係る要求を処理できる。
【００２０】
請求項５に記載の発明によれば、取得した権限オブジェクトが不正である場合に権限オブジェクトに係る要求を処理しないようにできる。
【００２１】
請求項６に記載の発明によれば、取得した権限オブジェクトが不正である場合に、不正とされた委譲先識別情報に係る権限オブジェクトを無効化できる。
【００２２】
請求項７に記載の発明によれば、不正とされた委譲先識別情報の通知元が信頼できる場合に、不正とされた委譲先識別情報に係る権限オブジェクトを無効化できる。
【００２３】
請求項８及び１０に記載の発明によれば、情報処理装置からの要求に係る権限オブジェクトの委譲先の情報を情報処理装置に提供できる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態に係る情報処理システムＳの全体構成図である。
【図２】認証サーバのハードウェア構成図である。
【図３】ユーザ端末のハードウェア構成図である。
【図４】認証サーバの機能ブロック図である。
【図５】有効化管理テーブルの一例を示す図である。
【図６】プロトタイプベースオブジェクト管理テーブルの一例を示す図である。
【図７】バリュー管理テーブルの一例を示す図である。
【図８】ユーザ端末の機能ブロック図である。
【図９】委譲先情報管理テーブルの一例を示す図である。
【図１０】アクセストークンの不正取得に関する処理を説明する図である。
【図１１】不正取得されたアクセストークンが利用された場合の制御処理を説明する図である。
【図１２】不正取得されたアクセストークンが利用された場合に無効化を行う処理を説明する図である。
【発明を実施するための形態】
【００２５】
以下、本発明を実施するための実施の形態（以下、実施形態という）を、図面に基づいて説明する。
【００２６】
［１．情報処理システムＳの全体構成例］
図１には、本実施形態に係る情報処理システムＳの全体構成図を示した。図１に示されるように、情報処理システムＳは、認証サーバ１、第１のサービス提供サーバ２−１、第２のサービス提供サーバ２−２、ＡＰＩ（Application Programming Interface）サーバ３、ユーザ端末４Ａ、ユーザ端末４Ｂを含む。ここで、認証サーバ１、第１のサービス提供サーバ２−１、第２のサービス提供サーバ２−２、ＡＰＩサーバ３、ユーザ端末４Ａ、ユーザ端末４Ｂは、それぞれネットワークＮに接続し、ネットワークＮを介してデータ通信可能となっている。以下において、第１のサービス提供サーバ２−１、第２のサービス提供サーバ２−２に共通する内容についてはサービス提供サーバ２と表記して説明することがある。また以下において、ユーザ端末４Ａ、ユーザ端末４Ｂに共通する内容についてはユーザ端末４と表記して説明することがある。
【００２７】
認証サーバ１は、ユーザ端末４に対する認証処理および権限の委譲先（クライアント）の要求に応じて所有者（オーナー）の同意のもとに定められた範囲でリソースへのアクセスを認可する処理を実行するコンピュータである。認証サーバ１は、サービス提供サーバ２からの要求に対して、サービス提供サーバ２に対して認可する権限が定められたアクセストークンを、ユーザ端末４を介して発行し、発行したアクセストークンを管理するとともにサービス提供サーバ２に提供する。本実施形態では、アクセストークンには、権限を認可した所有者（オーナー）の識別情報（オーナーＩＤ）と、権限の委譲先（クライアント）を識別する委譲先識別情報（クライアントＩＤ）と、権限の範囲（スコープ）が定められることとする。
【００２８】
本実施形態では、認証サーバ１は、プロトタイプベースのオブジェクトを管理する。ここで、プロトタイプベースのオブジェクトとは、プロトタイプベースのオブジェクトの集合に唯一存在するルートオブジェクトを除けば、唯一つの親のオブジェクト（プロトタイプ）を持つオブジェクトのことであり、ルートオブジェクトは自身のプロトタイプを持たない。また、オブジェクトＡがオブジェクトＢのプロトタイプであるとき、オブジェクトＢはオブジェクトＡのアーティファクトであるともいう。オブジェクト間のプロトタイプ関係により、プロトタイプベースのオブジェクト全体の集合は木構造で表現される。また、オブジェクトにより構成される木構造を破壊しないならば、プロトタイプを再接続することで木構造を変形することが可能である。さらに、認証サーバ１で管理するオブジェクトには、属性及び属性値を持たせることができる。ＲＥＳＴ（REpresentational State Transfer）アーキテクチャスタイルにおいては、オブジェクトをリソース、値を表現と呼ぶこともある。値を持つオブジェクトには、アクセストークンと呼ばれる権限情報を表すものがある。オブジェクトには、単にオブジェクト識別子とプロトタイプのみからなる純粋なアイデンティティのみを表すもの、任意のコンテント型の値を持つデータを表現するもの、アクセス資格を証明するクレデンシャルであるアクセストークン、あるいはオブジェクトの所有者であるリソースオーナーやリソースオーナーの認可のもとにオブジェクトへのアクセスを行うアプリケーション（クライアント）のようなエンティティを表すものが含まれることとしてよい。そして、これらのオブジェクトが１つの木構造の中に含まれる。
【００２９】
サービス提供サーバ２は、ユーザ端末４に対してサービスを提供するコンピュータである。サービス提供サーバ２は、ユーザ端末４を介して取得したアクセストークンの委譲先識別情報（クライアントＩＤ）が、サービス提供サーバ２に定められた委譲先識別情報である場合には、ユーザ端末４に対してサービスを提供する。
【００３０】
ＡＰＩサーバ３は、サービス提供サーバ２から提示されたアクセストークンで認可された範囲のリソースをサービス提供サーバ２に提供するコンピュータである。
【００３１】
ユーザ端末４Ａは、第１のユーザ（ここでは、アクセストークンを第２のユーザに不正取得されるユーザであり、以下では第１のユーザを被害者と称することがある）により操作されるコンピュータである。例えば、ユーザ端末４Ａは、認証サーバ１、サービス提供サーバ２と通信して、認証サーバ１から受信したアクセストークンをサービス提供サーバ２に転送した上でサービスの提供を受ける。サービス提供サーバ２は、取得したアクセストークンを用いて、ＡＰＩサーバ３からリソース（例えばユーザーが保存しているデータ）にアクセスする。なお、以下においては、ユーザ端末４Ａを被害者端末と称することがある。
【００３２】
ユーザ端末４Ｂは、第２のユーザ（第１のサービス提供サーバ２−１に対して発行されたアクセストークンを不正利用するユーザであり、以下では第２のユーザを攻撃者と称することがある）により操作されるコンピュータである。例えば、ユーザ端末４Ｂは、認証サーバ１、サービス提供サーバ２と通信して、認証サーバ１から受信したアクセストークンを破棄し、別途取得していた第１のユーザの同意のもとに第１のサービス提供サーバ２−１に対して発行されたアクセストークンに置換することで、第２のサービス提供サーバ２−２からサービスの提供を受ける。第２のサービス提供サーバ２−２は、置換されたアクセストークンを用いて、ＡＰＩサーバ３からリソース（被害者である第１のユーザが所有するもの）にアクセスする。なお、以下においては、ユーザ端末４Ｂを攻撃者端末と称することがある。
【００３３】
［２．ハードウェア構成例の説明］
次に、認証サーバ１と、ユーザ端末４にそれぞれ備えられたハードウェアの一例について説明する。
【００３４】
［２．１．管理装置のハードウェア構成の説明］
また、図２に示されるように、認証サーバ１は、ハードウェア構成の一例として、制御部１１、記憶部１２、通信部１３を備える。
【００３５】
制御部１１は、ＣＰＵ（Central Processing Unit）を含み、記憶部１２に記憶されたプログラムに基づいて、各種の演算処理を実行するとともに認証サーバ１の各部を制御する。
【００３６】
記憶部１２は、認証サーバ１のオペレーティングシステム等の制御プログラムやデータを記憶するほか、制御部１１のワークメモリとしても用いられる。プログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体に格納された状態で認証サーバ１に供給されてもよいし、インターネット等のデータ通信網を介して認証サーバ１に供給されてもよい。
【００３７】
通信部１３は、例えばネットワークインターフェースカード（ＮＩＣ）を含み、ＮＩＣを介してネットワーク２に接続して、ネットワーク２に接続されるユーザ端末４等と通信する。
【００３８】
［２．２．ユーザ端末４のハードウェア構成の説明］
次に、ユーザ端末４のハードウェア構成例について説明する。なお、以下に説明する例では、ユーザ端末４Ａ，４Ｂのハードウェア構成は同一とし、両者に共通する構成についてはユーザ端末４として表記して説明する。
【００３９】
図３には、ユーザ端末４のハードウェア構成図を示した。図３に示されるように、ユーザ端末４は、制御部４１、記憶部４２、通信部４３、表示部４４、入力部４５を備える。
【００４０】
制御部４１は、ＣＰＵ（Central Processing Unit）を含み、記憶部４２に記憶されたプログラムに基づいて、各種の演算処理を実行するとともにユーザ端末４の各部を制御する。
【００４１】
記憶部４２は、ユーザ端末４のオペレーティングシステム等の制御プログラムやデータを記憶するほか、制御部４１のワークメモリとしても用いられる。プログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体に格納された状態でユーザ端末４に供給されてもよいし、インターネット等のデータ通信網を介してユーザ端末４に供給されてもよい。記憶部４２には、１以上のアプリケーションのプログラム及びデータが記憶されることとする。
【００４２】
通信部４３は、例えばネットワークインターフェースカード（ＮＩＣ）又は無線通信用のアンテナを含み、ＮＩＣ又はアンテナを用いた有線通信又は無線通信によりネットワークＮに接続して、ネットワークＮに接続される認証サーバ１、他のユーザ端末４、ＡＰＩサーバ３等と通信する。
【００４３】
表示部４４は、例えば液晶表示パネル又は有機ＥＬディスプレイ等であり、制御部４１の指示に従って画面を表示する。
【００４４】
入力部４５は、例えばキーボード、マウス、タッチパネル等であり、ユーザからの操作入力を受け付ける。
【００４５】
［３．機能の説明］
次に、図４乃至図９に基づいて、認証サーバ１とユーザ端末４にそれぞれ備えられた機能の一例について説明する。
【００４６】
［３．１．認証サーバ１に備えられた機能の説明］
まず、図４に示される認証サーバ１の機能ブロック図に基づき、認証サーバ１に備えられた機能の一例について説明する。図４に示されるように、認証サーバ１は、アクセストークン情報記憶部１０３、アクセストークン発行要求受付部１０１、アクセストークン発行部１０２、アクセストークン提供部１０４、委譲先情報要求受付部１０５、委譲先情報読出部１０６、委譲先情報提供部１０７、不正通知受付部１０８、通知元検証部１０９、アクセストークン検索部１１０、アクセストークン無効化部１１１を備える。
【００４７】
認証サーバ１に備えられる上記の各部の機能は、認証サーバ１に備えられる制御部１１が、記憶部１２やコンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によって認証サーバ１に供給されることとしてもよいし、インターネット等のデータ通信網を介して認証サーバ１に供給されることとしてもよい。以下、認証サーバ１に備えられる各部の機能の詳細について説明する。
【００４８】
アクセストークン情報記憶部１０３は、主として記憶部により実現される。なお、アクセストークン情報記憶部１０３は、認証サーバ１とデータ通信可能な他の装置に含まれる記憶部により実現されることとしてもよい。
【００４９】
アクセストークン情報記憶部１０３は、管理するアクセストークンの情報を記憶する。例えば、アクセストークン情報記憶部１０３は、アクセストークンを識別するアクセストークン識別情報（アクセストークンＩＤ）と、当該アクセストークンの委譲先を識別する委譲先識別情報（クライアントＩＤ）を関連付けて記憶する。以下には、アクセストークン情報記憶部１０３に記憶されるデータの一例について説明する。
【００５０】
図５には、アクセストークン情報記憶部１０３に記憶される有効化管理テーブルの一例を示した。図５に示されるように、有効化管理テーブルには、各オブジェクトのキー（オブジェクトＩＤであり、例えばオブジェクト生成時にシステムがランダムに発生する３２バイト程度の乱数としてよい。本実施形態においては一例として１６進符号化された４バイトの値をキーとして用いることとしている）、バリュー（フラグ値、例えば真偽値としてよい）の各項目を含む１以上のレコードを含む。なお、図３に示した例では、オブジェクトＩＤにより識別されるオブジェクトの有効化フラグが「０」である場合には、オブジェクトが有効化されていることを示し、オブジェクトＩＤにより識別されるオブジェクトの有効化フラグが「１」である場合には、オブジェクトが無効化されていることを示す。
【００５１】
図６には、アクセストークン情報記憶部１０３に記憶されるプロトタイプベースのオブジェクトの情報を管理するプロトタイプベースオブジェクト管理テーブルを示した。図６に示されるように、プロトタイプベースオブジェクト管理テーブルには、オブジェクトを識別するオブジェクトＩＤ、オブジェクトの親（プロトタイプ）であるプロトタイプオブジェクトを識別するプロトタイプＩＤ、オブジェクトの属性情報が関連付けて記憶される。例えば、オブジェクトの属性情報には、オブジェクトの型情報（ｔｙｐｅ）、オブジェクトに格納される（関連付けられる）値（バリュー）を格納したデータ（オブジェクト）の識別情報（ｅｔａｇ）、オブジェクトの生成日時（ｔｉｍｅ）等の情報が含まれる。
【００５２】
図７には、アクセストークン情報記憶部１０３に記憶されるプロトタイプベースのオブジェクトのｅｔａｇに対応するデータを格納したバリュー管理テーブルの一例を示した。図７に示されるように、バリュー管理テーブルには、ｅｔａｇのＩＤ（キー）に関連付けてバリューの情報が記憶される。例えば、アクセストークンであれば、バリューは｛“ｏｗｎｅｒ”： ｏｗｎｅｒ（オーナー）のオブジェクトＩＤ、“ｃｌｉｅｎｔ”： ｃｌｉｅｎｔ（クライアント）のオブジェクトＩＤ、“スコープ”：認可された処理の範囲を示す情報｝というａｐｐｌｉｃａｔｉｏｎ／ｊｓｏｎタイプのデータ形式に記述される。例えば、スコープには、生成（Ｃ：ｃｒｅａｔｅ）、更新（Ｕ：ｕｐｄａｔｅ）、削除（Ｄ：ｄｅｌｅｔｅ）、一覧取得（Ｌ：ｌｉｓｔ）等の認可された処理の情報が記述されることとしてもよい。また例えば、スコープには、処理の内容を記述したデータ（オブジェクト）を指定するキーが記述されることとしてもよい。
【００５３】
アクセストークン発行要求受付部１０１は、アクセストークンの発行要求を受け付ける。例えば、アクセストークン発行要求受付部１０１は、ユーザ端末４からアクセストークンの発行要求を受け付けることとしてよい。また例えば、アクセストークン発行要求受付部１０１は、アクセストークンのプロトタイプのオブジェクトＩＤ、アクセストークンのオーナー、クライアント、スコープの情報の指定を受け付けることとしてよい。また例えば、アクセストークン発行要求受付部１０１は、アクセストークンの発行要求とともに、アクセストークンの発行に用いる権限を指定するアクセストークンを受け付けることとしてよい。なお、上記の発行要求に係るアクセストークンのオーナーは、例えばアクセストークンの発行に用いる権限を指定するアクセストークンの情報としてよい。
【００５４】
アクセストークン発行部１０２は、アクセストークン発行要求受付部１０１により受け付けた発行要求に基づいて、アクセストークンを発行する。例えば、アクセストークン発行部１０２は、アクセストークンの発行要求とともに受け付けたアクセストークンを検証した検証結果に応じて、アクセストークンを発行することとしてよい。なお、情報処理システムＳにおいては、処理要求とともに受け付けたアクセストークンについて以下の検証処理を実行し、検証処理の結果に応じて処理要求を処理することしてよい。以下には、アクセストークンの検証処理の一例について説明する。
【００５５】
まず、認証サーバ１は、要求元から受け付けたアクセストークンのＩＤが、プロトタイプベースオブジェクト管理テーブルに含まれているか否か（第１の条件の適否）を判断し、含まれていない場合には検証失敗と判断する。
【００５６】
次に、認証サーバ１は、第１の条件が満たされている場合に、アクセストークンのデータ形式（タイプ）が所定の型（すなわち、ａｐｐｌｉｃａｔｉｏｎ／ｊｓｏｎ）であるか否か（第２の条件の適否）を判断し、所定の型でない場合には検証失敗と判断する。
【００５７】
次に、認証サーバ１は、第２の条件が満たされている場合に、アクセストークンのバリューの値（ｏｗｎｅｒ、ｃｌｉｅｎｔ、ｓｃｏｐｅの値）を取得し、ｏｗｎｅｒ、ｃｌｉｅｎｔ、ｓｃｏｐｅのそれぞれの値がバリュー管理テーブルで管理されるデータであるか否か（第３の条件の適否）を判断し、いずれかの値がバリュー管理テーブルで管理されるデータでない場合には検証失敗と判断する。
【００５８】
次に、認証サーバ１は、第３の条件が満足されている場合に、プロトタイプベースオブジェクト管理テーブルからアクセストークンのプロトタイプの情報を取得し、アクセストークンのプロトタイプが、アクセストークンのオーナーと一致しているか、オーナーのプロトタイプチェーン（オーナーの親、さらにその親へとオーナーの祖先を順に接続した経路）に含まれるか否か（第４の条件の適否）を判断し、上記のいずれにも合致しない場合には検証失敗と判断する。
【００５９】
次に、認証サーバ１は、第４の条件が満足されている場合に、アクセストークンのスコープの情報により処理要求に係る処理（例えばアクセストークンの発行）が許可されているか否か（第５の条件の適否）を判断し、許可されていない場合には検証失敗と判断し、許可されている場合には、検証成功と判断する。
【００６０】
そして、アクセストークン発行部１０２は、上記の検証の結果、検証成功と判断された場合に、発行要求に係るアクセストークンのオブジェクトＩＤを新規に発行し、アクセストークン情報記憶部１０３（例えばプロトタイプベースオブジェクト管理テーブル）に、発行したアクセストークンのオブジェクトＩＤ、アクセストークンのプロトタイプオブジェクトのオブジェクトＩＤ、アクセストークンの属性の情報を登録することとしてよい。また、アクセストークン発行部１０２は、アクセストークン情報記憶部１０３（例えばバリュー管理テーブル）に、上記発行したアクセストークンのオーナー、クライアント、スコープの情報を登録することとしてよい。なお、アクセストークンのプロトタイプのオブジェクトＩＤ、アクセストークンのオーナー、クライアント、スコープの情報は、アクセストークン発行要求受付部１０１により、ユーザ端末４から受け付けることとしてよい。
【００６１】
アクセストークン提供部１０４は、アクセストークン発行部１０２により発行したアクセストークンの情報を提供する。例えば、アクセストークン提供部１０４は、アクセストークン発行要求受付部１０１により発行要求を受け付けた要求元に対して、アクセストークン発行部１０２により発行したアクセストークンの情報を提供することとしてよい。なお、アクセストークンの情報には、アクセストークンＩＤ、リダイレクトＵＲＬ、スコープの情報を含むこととしてよい。なお、リダイレクトＵＲＬには、アクセストークンに基づく認証先を指定することとしてよく、例えば認証サーバ１を指定したＵＲＬとしてよい。
【００６２】
委譲先情報要求受付部１０５は、指定のアクセストークン識別情報に関連づけてアクセストークン情報記憶部１０３に記憶される委譲先識別情報（クライアントＩＤ）の提供の要求を受け付ける。例えば、委譲先情報要求受付部１０５は、ユーザ端末４から、アクセストークンのオブジェクトＩＤを指定した、委譲先識別情報の提供の要求を受け付けることとしてよい。
【００６３】
委譲先情報読出部１０６は、指定のアクセストークン識別情報に関連づけてアクセストークン情報記憶部１０３に記憶される委譲先識別情報（クライアントＩＤ）を読み出す。例えば、委譲先情報読出部１０６は、プロトタイプベースオブジェクト管理テーブルから、委譲先情報要求受付部１０５により受け付けたオブジェトＩＤを含むレコードを検索し、検索されたレコードにおける属性の欄を参照する。次に、委譲先情報読出部１０６は、バリュー管理テーブルから、上記参照した属性の欄における「ｅｔａｇ」に格納されたＩＤを含むレコードを検索し、検索されたレコードにおける「ｃｌｉｅｎｔ（クライアント）」の欄に格納された委譲先識別情報（クライアントＩＤ）を読み出すこととしてよい。
【００６４】
委譲先情報提供部１０７は、委譲先情報読出部１０６により読み出された委譲先識別情報を提供する。例えば、委譲先情報提供部１０７は、委譲先情報要求受付部１０５により受け付けた要求元のユーザ端末４に対して、委譲先情報読出部１０６により読み出した委譲先識別情報（クライアントＩＤ）を提供することとしてよい。
【００６５】
不正通知受付部１０８は、不正利用に用いられた委譲先識別情報（クライアントＩＤ）の通知を受け付ける。例えば、不正通知受付部１０８は、ユーザ端末４から、不正利用に用いられた委譲先識別情報（クライアントＩＤ）の通知を受け付けることとしてよい。また、委譲先識別情報（クライアントＩＤ）は、不正の通知に係るユーザの電子署名が施されていることとしてもよい。
【００６６】
通知元検証部１０９は、不正通知受付部１０８により不正利用に用いられた委譲先識別情報（クライアントＩＤ）の通知を受け付けた場合に、その通知元を検証する。例えば、通知元検証部１０９は、不正利用に用いられた委譲先識別情報（クライアントＩＤ）に施された電子署名を検証し、電子署名が正当であるか否かに基づいて通知元を検証することとしてよい。なお、電子署名の検証は、電子署名に用いられた秘密鍵に対応する公開鍵を用いて実行することとしてよい。
【００６７】
アクセストークン検索部１１０は、不正通知受付部１０８により不正利用に用いられた旨の通知を受け付けた委譲先識別情報（クライアントＩＤ）に対応するアクセストークンをアクセストークン記憶情報から検索する。例えば，アクセストークン検索部１１０は、アクセストークン記憶情報に記憶されるバリュー管理テーブルから、「クライアント」の項目に不正利用に係るクライアントＩＤを含むレコードの「ＩＤ」を検索する。次に、アクセストークン検索部１１０は、アクセストークン記憶情報に記憶されるプロトタイプベースオブジェクト管理テーブルから、上記検索された「ＩＤ」を「ｅｔａｇ」の項目に含むレコードを検索し、検索されたレコードの「オブジェクトＩＤ」を取得する。こうして取得された「オブジェクトＩＤ」が、アクセストークン検索部１１０により検索されるアクセストークンの識別情報である。
【００６８】
アクセストークン無効化部１１１は、不正通知受付部１０８により通知を受け付けた委譲先識別情報（クライアントＩＤ）の電子署名に基づく信頼性が検証された場合に、委譲先識別情報（クライアントＩＤ）が関連付けられたアクセストークンを無効化する。
【００６９】
例えば、アクセストークン無効化部１１１は、不正通知受付部１０８により通知を受け付けた委譲先識別情報（クライアントＩＤ）の電子署名に基づく信頼性が検証された場合に、当該委譲先識別情報（クライアントＩＤ）に基づいてアクセストークン検索部１１０により検索されたアクセストークンの識別情報を含むレコードを、アクセストークン記憶情報に記憶された有効化管理テーブルから検索する。そして、アクセストークン無効化部１１１は、上記有効化管理テーブルから検索されたレコードにおける「有効化フラグ」を「１（無効）」に更新することとしてよい。
【００７０】
［３．２．ユーザ端末４に備えられた機能の説明］
次に、図８に示されるユーザ端末４の機能ブロック図に基づき、ユーザ端末４に備えられた機能の一例について説明する。図８に示されるように、ユーザ端末４は、委譲先情報記憶部４００、処理要求受付部４０１、認証制御部４０２、アクセストークン取得部４０３、委譲先情報取得部４０４、検証部４０５、電子署名部４０６、不正通知部４０７、要求処理部４０８を備える。
【００７１】
ユーザ端末４に備えられる上記の各部の機能は、ユーザ端末４に備えられる制御部が、記憶部やコンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によってユーザ端末４に供給されることとしてもよいし、インターネット等のデータ通信網を介してユーザ端末４に供給されることとしてもよい。以下、ユーザ端末４に備えられる各部の機能の詳細について説明する。
【００７２】
委譲先情報記憶部４００は、主として記憶部４２により実現される。なお、委譲先情報記憶部４００は、ユーザ端末４とデータ通信可能な他の装置に含まれる記憶部により実現されることとしてもよい。
【００７３】
委譲先情報記憶部４００は、ユーザ端末４が利用する委譲先識別情報についての情報を記憶する。以下には、委譲先情報記憶部４００に記憶されるデータの一例について説明する。
【００７４】
図９には、委譲先情報記憶部４００に記憶される委譲先情報管理テーブルの一例を示した。図９に示されるように、委譲先情報管理テーブルには、アプリケーションを識別する「アプリケーションＩＤ」、「クライアントＩＤ」、リダイレクト先のＵＲＬを示す「リダイレクトＵＲＬ」、クライアントＩＤに許可された処理の範囲を示す「スコープ」の情報が関連づけて記憶される。なお、本実施形態では、上記のように、ユーザ端末４で利用するアプリケーション（例えばアプリケーションは対応するサービス提供サーバ２と連携してユーザにサービスを提供するプログラムとしてよい）に対して１つのクライアントＩＤが対応付けられていることとしてよい。そのため、１つのアプリケーションに対して、１つのクライアントＩＤが特定されることとなる。なお、ユーザ端末４では、アプリケーションを指定した処理要求を受け付けた場合に、当該指定されたアプリケーションにより特定されたクライアントＩＤに関連づけられたリダイレクトＵＲＬと、スコープの情報を要求元に返すようにしてよい。ここで上記の委譲先情報管理テーブルに記憶されるデータは、アクセストークン提供部１０４により提供されることとしてもよい。
【００７５】
処理要求受付部４０１は、ユーザから処理要求を受け付ける。例えば、処理要求受付部４０１は、指定されたアプリケーションに対する処理の要求を受け付けることとしてよい。なお、上記の指定されたアプリケーションには１つのクライアントＩＤが対応付けられることとしてよい。
【００７６】
認証制御部４０２は、処理要求受付部４０１で受け付けた処理要求に対する認証処理を制御する。例えば、認証制御部４０２は、上記の指定されたアプリケーションのサービスを利用するための認証処理を制御することとしてよい。具体的には、認証制御部４０２は、上記の指定されたアプリケーション（アプリケーションＩＤ）について委譲先情報管理テーブルに記憶されるクライアントＩＤ、リダイレクトＵＲＬ、スコープの情報を取得することとしてよい。そして、認証制御部４０２は、アプリケーションに関連づけて記憶された認証サーバ１のアドレスにアクセスし、ユーザ認証が行われていなければユーザ認証を実行する。そして、認証制御部４０２は、ユーザ認証が成功した状態において、認証サーバ１から問い合わせに応じて、ユーザに対してクライアントＩＤにより特定されるアプリケーションに、スコープの情報での処理を許可するか否かを決定する。例えば、認証制御部４０２は、クライアントＩＤにより特定されるアプリケーションに許可が与えられた場合に、必要に応じて認証サーバ１にアクセストークンの発行を要求し、認証サーバ１からアクセストークンを取得することとしてもよい。この際に、認証制御部４０２は、認証サーバ１に対して、アクセストークンのプロトタイプのオブジェクトＩＤ、アクセストークンのオーナー（オーナーＩＤ）、クライアント（クライアントＩＤ）、スコープの情報を指定し、その指定に基づいて発行されたアクセストークンを取得することとしてよい。
【００７７】
アクセストークン取得部４０３は、処理要求受付部４０１により受け付けた処理要求を処理するために用いるアクセストークンの情報を取得する。すなわち、アクセストークン取得部４０３は、指定されたアプリケーションのサービスを利用するために用いるアクセストークンの情報を取得する。なお、上記のアクセストークンの情報とは、例えばアクセストークンのオブジェクトＩＤを含むこととしてよい。
【００７８】
委譲先情報取得部４０４は、アクセストークン取得部４０３により取得したアクセストークンに関連付けられた委譲先識別情報を取得する。例えば、委譲先情報取得部４０４は、アクセストークン取得部４０３により取得したアクセストークンのＩＤ（オブジェクトＩＤ）を指定したクライアントＩＤの問い合わせを認証サーバ１に対して行い、上記の問い合わせに応じて認証サーバ１の委譲先情報提供部１０７から提供された委譲先識別情報（クライアントＩＤ）を取得することとしてよい。
【００７９】
検証部４０５は、委譲先情報取得部４０４により取得した委譲先識別情報と、アクセストークン取得部４０３により取得したアクセストークンを利用して処理を実行するアプリケーション（処理手段）に予め定められた識別情報が一致するか否かに基づいて、アクセストークン取得部４０３により取得したアクセストークンを検証する。例えば、上記のアクセストークン取得部４０３により取得したアクセストークンを利用して処理を実行するアプリケーションに予め定められた識別情報とは、指定されたアプリケーションに対して委譲先情報管理テーブルに記憶されるクライアントＩＤとしてよい。
【００８０】
ここで、検証部４０５は、委譲先情報取得部４０４により取得した委譲先識別情報（クライアントＩＤ）と、指定されたアプリケーションに予め定められたクライアントＩＤとが一致する場合に、アクセストークン取得部４０３により取得したアクセストークンが正当と検証する。また、検証部４０５は、委譲先情報取得部４０４により取得した委譲先識別情報（クライアントＩＤ）と、指定されたアプリケーションに予め定められたクライアントＩＤとが一致しない場合に、アクセストークン取得部４０３により取得したアクセストークンが正当でないと検証する。
【００８１】
電子署名部４０６は、検証部４０５により、アクセストークン取得部４０３により取得したアクセストークンが正当でないと検証された場合に、当該アクセストークンに関連付けられた委譲先識別情報を、ユーザ端末４に保持される秘密鍵に基づいて電子署名する。例えば、電子署名部４０６は、検証部４０５によりアクセストークン取得部４０３により取得したアクセストークンが正当でないと検証された場合に、委譲先情報取得部４０４により取得した委譲先識別情報に電子署名することとしてよい。
【００８２】
不正通知部４０７は、検証部４０５によりアクセストークン取得部４０３により取得したアクセストークンが正当でないと検証された場合に、当該アクセストークンに関連付けられた委譲先識別情報に関連付けられたアクセストークンを無効化させるための通知を行う。例えば、不正通知部４０７は、委譲先情報取得部４０４により取得した委譲先識別情報に関連づけられたアクセストークンを無効化させるための通知を認証サーバ１に対して行うこととしてよい。また例えば、不正通知部４０７は、委譲先情報取得部４０４により取得した委譲先識別情報に対して電子署名部４０６により電子署名された委譲先識別情報を認証サーバ１に通知することで、上記の通知を行うこととしてよい。
【００８３】
要求処理部４０８は、検証部４０５によりアクセストークン取得部４０３により取得したアクセストークンが正当と検証された場合に、当該アクセストークンの指定を含む処理要求を受理し、当該受理した処理要求に基づく処理を実行するように制御する。例えば、要求処理部４０８は、アクセストークン取得部４０３により取得したアクセストークンを利用して、指定されたアプリケーションに対応するサービス提供サーバ２からサービスの提供（例えばデータのダウンロード、アップロード、アップデート、デリート等の処理）を受けることとしてよい。
【００８４】
また要求処理部４０８は、検証部４０５によりアクセストークン取得部４０３により取得したアクセストークンが正当でないと検証された場合に、当該アクセストークンの指定を含む処理要求を受理しないように制御することとしてよい。
【００８５】
［４．情報システムで実行される処理の一例］
次に、図１０乃至図１２に示されたフロー図に基づいて、情報処理システムＳで実行される処理の一例について説明する。なお、図１０乃至図１２において、ユーザ端末４において実行される処理は、ユーザ端末４の制御部４１が記憶部４２に記憶されるプログラムに基づいて実行することで実現されることとしてよい。同様に、認証サーバ１において実行される処理は、認証サーバ１の制御部１１が記憶部１２に記憶されるプログラムに基づいて実行することで実現されることとしてよい。
【００８６】
以下に説明する例においては、被害者端末４Ａ（ユーザ端末４Ａ）では、制御処理を実行するためのアプリケーションである制御アプリ４Ａ−１と、被害者端末４Ａ（ユーザ端末４Ａ）のユーザに付与されたアクセストークンＡを不正に取得し攻撃者に提供するためのアプリケーションである攻撃アプリ４Ａ−２とが動作することとする。また、攻撃者端末４Ｂ（ユーザ端末４Ｂ）では、制御処理を実行するためのアプリケーションである制御アプリ４Ｂ−１と、攻撃者が攻撃アプリ４Ａ−２により取得したアクセストークンＡを利用してサービスを受けようとする標的のアプリケーションである標的アプリ４Ｂ−２とが動作することとする。なお、攻撃アプリ４Ａ−２、標的アプリ４Ｂ−２はそれぞれ記憶媒体又はネットワークを介して被害者端末４Ａ（ユーザ端末４Ａ）、攻撃者端末４Ｂ（ユーザ端末４Ｂ）にそれぞれ予め記憶されインストールされていることとしてよい。
【００８７】
［４．１．アクセストークンの不正取得に関する処理］
図１０に示されるように、被害者端末４Ａの制御部４１は、制御アプリ４Ａ−１に基づいて、攻撃アプリ４Ａ−２に対して処理の開始を要求する（Ｓ１０１）。
【００８８】
被害者端末４Ａの制御部４１は、制御アプリ４Ａ−１に対して攻撃アプリ４Ａ−２に関連づけられた認証先のデータを通知する（Ｓ１０２）。例えば、被害者端末４Ａの制御部４１は、攻撃アプリ４Ａ−２の識別情報（アプリケーションＩＤ）に関連づけて記憶されたクライアントＩＤ、リダイレクトＵＲＬ、スコープの情報を制御アプリ４Ａ−１に対して通知することとしてよい。
【００８９】
被害者端末４Ａの制御部４１は、制御アプリ４Ａ−１に基づいて、認証サーバ１に対してデータ（例えばクライアントＩＤとリダイレクトＵＲＬ）を通知する（Ｓ１０３）。
【００９０】
認証サーバ１の制御部１１は、被害者端末４Ａがユーザ認証済みでない場合には（Ｓ１０４：Ｎ）、被害者端末４Ａに対してユーザ認証を要求する（Ｓ１０５）。
【００９１】
被害者端末４Ａの制御部４１は、ユーザの認証情報の入力を受け付けると、受け付けた認証情報を通信部４３により認証サーバ１に送信する（Ｓ１０６）。
【００９２】
認証サーバ１の制御部１１は、被害者端末４Ａから受信した認証情報に基づく認証を実行する。なお、このシーケンスの例では、ユーザ認証が成功したこととして説明を続ける。
【００９３】
認証サーバ１の制御部１１は、Ｓ１０４でユーザ認証が済んでいる場合（Ｓ１０４：Ｙ）、又はＳ１０６でユーザ認証が成功した後に、ユーザに対してクライアントＩＤに対応するアプリケーション（ここでは攻撃アプリ４Ａ−２）に許可を与えるか否かを確認するための許可確認を通信部１３により被害者端末４Ａに送信する（Ｓ１０７）。
【００９４】
被害者端末４Ａの制御部４１は、認証サーバ１からの許可確認に対して、ユーザの入力に基づいて許可が選択された場合には、許可通知を通信部４３により認証サーバ１に対して送信する（Ｓ１０８）。
【００９５】
認証サーバ１の制御部１１は、被害者端末４Ａから許可通知を受信すると、クライアントＩＤ、スコープの情報等に基づいて、必要に応じてアクセストークンＡを発行し（Ｓ１０９）、発行したアクセストークンＡをアクセストークン情報記憶部１０３に登録する（Ｓ１１０）。なお、アクセストークンＡは、被害者端末４Ａのユーザの有する権限情報である。
【００９６】
そして、認証サーバ１の制御部１１は、Ｓ１０８で受信した許可通知に対する応答として、アクセストークンＡを通信部１３により被害者端末４Ａに送信する（Ｓ１１１）。
【００９７】
被害者端末４Ａの制御部４１は、認証サーバ１から受信したアクセストークンＡを、攻撃アプリ４Ａ−２に通知する（Ｓ１１２）。
【００９８】
そして、被害者端末４Ａの制御部４１は、攻撃アプリ４Ａ−２に基づいて、アクセストークンＡを攻撃者に提供する（Ｓ１１３）。例えば、被害者端末４Ａの制御部４１は、電子メール、ファイル転送等の手段によりアクセストークンＡを攻撃者端末４Ｂに提供することとしてよい。
【００９９】
［４．２．不正取得されたアクセストークンが利用された場合の制御処理］
次に、図１１及び図１２に基づいて、情報処理システムＳにおいて、攻撃者に不正取得されたアクセストークンが利用された場合における制御処理の一例について説明する。
【０１００】
図１１に示されるように、攻撃者端末４Ｂの制御部４１は、制御アプリ４Ｂ−１に基づいて、標的アプリ４Ｂ−２に対して処理の開始を要求する（Ｓ２０１）。
【０１０１】
攻撃者端末４Ｂの制御部４１は、制御アプリ４Ｂ−１に対して標的アプリ４Ｂ−２に関連づけられた認証先のデータを通知する（Ｓ２０２）。例えば、攻撃者端末４Ｂの制御部４１は、標的アプリ４Ｂ−２の識別情報（アプリケーションＩＤ）に関連づけて記憶されたクライアントＩＤ、リダイレクトＵＲＬ、スコープの情報を制御アプリ４Ｂ−１に対して通知することとしてよい。
【０１０２】
攻撃者端末４Ｂの制御部４１は、認証サーバ１に対してデータ（例えばクライアントＩＤとリダイレクトＵＲＬ）を通知する（Ｓ２０３）。
【０１０３】
認証サーバ１の制御部１１は、攻撃者端末４Ｂがユーザ認証済みでない場合には（Ｓ２０４：Ｎ）、攻撃者端末４Ｂに対してユーザ認証を要求する（Ｓ２０５）。
【０１０４】
攻撃者端末４Ｂの制御部４１は、ユーザの認証情報の入力を受け付けると、受け付けた認証情報を通信部４３により認証サーバ１に送信する（Ｓ２０６）。
【０１０５】
認証サーバ１の制御部１１は、攻撃者端末４Ｂから受信した認証情報に基づく認証を実行する。なお、このシーケンスの例では、ユーザ認証が成功したこととして説明を続ける。
【０１０６】
認証サーバ１の制御部１１は、Ｓ２０４でユーザ認証が済んでいる場合（Ｓ２０４：Ｙ）、又はＳ２０６でユーザ認証が成功した後に、ユーザに対してクライアントＩＤに対応するアプリケーション（ここでは標的アプリ４Ｂ−２）に許可を与えるか否かを確認するための許可確認を通信部１３により攻撃者端末４Ｂに送信する（Ｓ２０７）。
【０１０７】
攻撃者端末４Ｂの制御部４１は、認証サーバ１からの許可確認に対して、ユーザの入力に基づいて許可が選択された場合には、許可通知を通信部４３により認証サーバ１に対して送信する（Ｓ２０８）。
【０１０８】
認証サーバ１の制御部１１は、攻撃者端末４Ｂから許可通知を受信すると、クライアントＩＤ、スコープの情報等に基づいて、必要に応じてアクセストークンＢを発行し（Ｓ２０９）、発行したアクセストークンＢをアクセストークン情報記憶部１０３に登録する（Ｓ２１０）。なお、アクセストークンＢは、攻撃者端末４Ｂのユーザの有する権限情報である。
【０１０９】
そして、認証サーバ１の制御部１１は、Ｓ２０８で受信した許可通知に対する応答として、アクセストークンＢを通信部１３により攻撃者端末４Ｂに送信する（Ｓ２１１）。
【０１１０】
攻撃者端末４Ｂの制御部４１は、認証サーバ１から受信したアクセストークンＢを、被害者端末４Ａから取得したアクセストークンＡに置換し（Ｓ２１２）、アクセストークンＡを標的アプリ４Ｂ−２に通知する（Ｓ２１３）。ここでＳ２１３以降の処理については図１２に基づいて説明する。
【０１１１】
図１２に示されるように、攻撃者端末４Ｂの制御部４１は、標的アプリ４Ｂ−２に基づいて、通知されたアクセストークンＡの委譲先情報（クライアントＩＤ）を認証サーバ１に対して要求する（Ｓ３０１）。ここで例えば、攻撃者端末４Ｂの制御部４１は、アクセストークンＡのオブジェクトＩＤを認証サーバ１に通知することとしてよい。
【０１１２】
認証サーバ１の制御部１１は、攻撃者端末４Ｂからの要求に基づいて、アクセストークンＡの委譲先情報（クライアントＩＤ）を取得する（Ｓ３０２）。例えば、認証サーバ１の制御部１１は、アクセストークンＡのオブジェクトＩＤに基づいて、プロトタイプベースオブジェクト管理テーブルから対応する「ｅｔａｇ」の情報を取得する。次いで、認証サーバ１の制御部１１は、上記取得した「ｅｔａｇ」の情報に基づいてバリュー管理テーブルから対応する「バリュー」の情報を取得し、さらに取得した「バリュー」における「ｃｌｉｅｎｔ」の情報を委譲先情報（クライアントＩＤ）として取得することとしてよい。
【０１１３】
認証サーバ１の制御部１１は、Ｓ３０２で取得した委譲先情報（クライアントＩＤ）を攻撃者端末４Ｂに提供する（Ｓ３０３）。
【０１１４】
攻撃者端末４Ｂの制御部４１は、標的アプリ４Ｂ−２に基づいて、認証サーバ１から受信した委譲先情報（クライアントＩＤ）が、標的アプリ４Ｂ−２に関連づけて記憶される識別情報（クライアントＩＤ）と一致するか否かを判定する（Ｓ３０４）。
【０１１５】
攻撃者端末４Ｂの制御部４１は、Ｓ３０４で一致すると判定された場合には（Ｓ３０４：Ｙ）、アクセストークンに基づくＡＰＩの参照・利用をＡＰＩサーバ３に対して要求する（Ｓ３０５）。
【０１１６】
攻撃者端末４Ｂの制御部４１は、Ｓ３０４で一致しないと判定された場合には（Ｓ３０４：Ｎ）、Ｓ２１３で取得されたアクセストークンが不正であると判定する（Ｓ３０６）。
【０１１７】
そして、攻撃者端末４Ｂの制御部４１は、不正利用に係るアクセストークンの委譲先情報（クライアントＩＤ）、すなわちＳ３０３で取得した委譲先情報（クライアントＩＤ）に電子署名を施す（Ｓ３０７）。例えば、電子署名は、標的アプリ４Ｂ−２に予め記憶された秘密鍵を用いることとしてよい。
【０１１８】
攻撃者端末４Ｂの制御部４１は、通信部４３により電子署名した委譲先情報（クライアントＩＤ）を認証サーバ１に通知する（Ｓ３０８）。
【０１１９】
認証サーバ１の制御部１１は、通知を受けた委譲先情報（クライアントＩＤ）の電子署名を検証し（Ｓ３０９）、電子署名が正しく検証された場合には以下の処理を実行する。
【０１２０】
すなわち、認証サーバ１の制御部１１は、通知を受けた委譲先情報（クライアントＩＤ）が関連づけられたアクセストークンをアクセストークン情報記憶部１０３から検索する（Ｓ３１０）。
【０１２１】
そして、認証サーバ１の制御部１１は、Ｓ３１０で検索されたアクセストークンを無効化する（Ｓ３１１）。例えば、認証サーバ１の制御部１１は、有効化管理テーブルの中から、Ｓ３１０で検索されたアクセストークンのオブジェクトＩＤを含むレコードを検索し、検索されたレコードの有効化フラグを「１（無効）」に更新することとしてよい。以上の処理により、標的アプリ４Ｂ−２が、不正取得されたアクセストークンの権限で処理の実行を許可してしまうことが回避される。また、アクセストークンの不正取得に用いられたアプリケーションについて発行されたアクセストークンを即時に無効化することができる。
【０１２２】
なお、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。
【０１２３】
例えば、上記の実施形態では、制御アプリ４Ａ−１、攻撃アプリ４Ａ−２は１つのユーザ端末４で動作する例を説明したが、これらは別体の装置でそれぞれ動作してもよい。また同様に、制御アプリ４Ｂ−１、標的アプリ４Ｂ−２もそれぞれ別体の装置で動作してもよい。
【符号の説明】
【０１２４】
１  認証サーバ、２−１  第１のサービス提供サーバ、２−２  第２のサービス提供サーバ、３  ＡＰＩサーバ、４Ａ  ユーザ端末、４Ｂ  ユーザ端末、１１  制御部、１２  記憶部、１３  通信部、４１  制御部、４２  記憶部、４３  通信部、４４  表示部、４５  入力部、１０３  アクセストークン情報記憶部、１０１  アクセストークン発行要求受付部、１０２  アクセストークン発行部、１０４  アクセストークン提供部、１０５  委譲先情報要求受付部、１０６  委譲先情報読出部、１０７  委譲先情報提供部、１０８  不正通知受付部、１０９  通知元検証部、１１０  アクセストークン検索部、１１１  アクセストークン無効化部、４００  委譲先情報記憶部、４０１  処理要求受付部、４０２  認証制御部、４０３  アクセストークン取得部、４０４  委譲先情報取得部、４０５  検証部、４０６  電子署名部、４０７  不正通知部、４０８  要求処理部。
【図１】
0006435678.tif 000002
【図２】
0006435678.tif 000003
【図３】
0006435678.tif 000004
【図４】
0006435678.tif 000005
【図５】
0006435678.tif 000006
【図６】
0006435678.tif 000007
【図７】
0006435678.tif 000008
【図８】
0006435678.tif 000009
【図９】
0006435678.tif 000010
【図１０】
0006435678.tif 000011
【図１１】
0006435678.tif 000012
【図１２】
0006435678.tif 000013