(57)【特許請求の範囲】
【請求項１】
アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するライセンス管理システムにおいて、
ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成する生成手段と、
前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信する手段と、
前記検証トークンを受信する手段と、
前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証手段と、
前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、
前記認証手段および前記検証手段の処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御手段と、
を備えるライセンス管理システム。
【請求項２】
前記検証トークンを、前記アプリケーションおよび前記アプリケーションのインストーラの少なくともいずれか一方に差し替えできないように埋め込む手段、
をさらに備えることを特徴とする請求項１に記載のライセンス管理システム。
【請求項３】
前記アクセストークンを、前記アプリケーションのライセンス発行時に、ライセンス先であるユーザへ配信する配信手段、
をさらに備えることを特徴とする請求項１に記載のライセンス管理システム。
【請求項４】
前記認証手段および前記検証手段は、前記アプリケーションのインストール時、前記アプリケーションの起動時、およびアプリケーション動作中の適宜のタイミングのうち少なくともいずれかのタイミングで、前記認証および前記検証の処理を行う、
ことを特徴とする請求項１に記載のライセンス管理システム。
【請求項５】
それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、
前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記検証トークン表す検証トークンオブジェクトを、前記アプリケーションオブジェクトの子孫として生成する、
ことを特徴とする請求項１に記載のライセンス管理システム。
【請求項６】
それぞれ親または少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、
前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記ユーザを表すユーザオブジェクトを前記アプリケーションオブジェクトの子孫として生成し、前記ユーザオブジェクトの子孫として前記アクセストークンを表すアクセストークンオブジェクトを生成する、
ことを特徴とする請求項１に記載のライセンス管理システム。
【請求項７】
それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、
前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、
前記アプリケーションオブジェクトの子孫として前記アプリケーションのライセンス先の組織を表す組織オブジェクトを生成し、
前記組織オブジェクトの子孫として、前記組織オブジェクトの子孫のオブジェクトの生成が可能な権限が定められた権限オブジェクトを生成し、
前記権限オブジェクトに基づいて、前記組織オブジェクトの子孫として、前記ユーザを表すユーザオブジェクトと前記アクセストークンを表すアクセストークンオブジェクトとを生成する、
ことを特徴とする、請求項１に記載のライセンス管理システム。
【請求項８】
前記生成手段は、前記権限オブジェクトに基づいて、前記組織オブジェクトの子孫として、前記認証手段および前記検証手段による処理のログ情報を記憶するオブジェクトを生成する、
ことを特徴とする請求項７に記載のライセンス管理システム。
【請求項９】
アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するコンピュータを、
ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成する手段と、
前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信する手段と、
前記検証トークンを受信する手段と、
前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証手段と、
前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、
前記認証手段および前記検証手段の処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御手段
として機能させるためのプログラム。
【請求項１０】
アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するライセンス管理システムによるライセンス管理方法において、
ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成するステップと、
前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信するステップと、
前記検証トークンを受信するステップと、
前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証ステップと、
前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証ステップと、
前記認証ステップおよび前記検証ステップの処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御ステップと、
を備えるライセンス管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理システム、プログラム及びライセンス管理方法に関する。
【背景技術】
【０００２】
アプリケーションのライセンスをデバイスに対して付与することや、ユーザに対して付与することが行われている。例えば、デバイスに依存せずにユーザに付与したライセンスを管理する技術としては、以下の特許文献１に記載の発明がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１３５３２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
アプリケーションのライセンス契約は、個々のユーザと結ぶものや、組織と結び、組織に組織内の個々のユーザに対するライセンス付与の権限を与えるもの等多様な形態があるため、そうした多様な形態におけるライセンスを統一的に管理、制御する必要がある。
【０００５】
本発明の目的は、アプリケーションの個々の契約ごとのインストールおよび実行の制御が可能なライセンス管理システム、プログラム及びライセンス管理方法を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に係る発明は、アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するライセンス管理システムにおいて、ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成する生成手段と、前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信する手段と、前記検証トークンを受信する手段と、前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証手段と、前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、前記認証手段および前記検証手段の処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御手段と、を備えるライセンス管理システムである。
【０００７】
請求項２に係る発明は、前記検証トークンを、前記アプリケーションおよび前記アプリケーションのインストーラの少なくともいずれか一方に差し替えできないように埋め込む手段、をさらに備えることを特徴とする請求項１に記載のライセンス管理システムである。
【０００８】
請求項３に係る発明は、前記アクセストークンを、前記アプリケーションのライセンス発行時に、ライセンス先であるユーザへ配信する配信手段、をさらに備えることを特徴とする請求項１に記載のライセンス管理システムである。
【０００９】
請求項４に係る発明は、前記認証手段および前記検証手段は、前記アプリケーションのインストール時、前記アプリケーションの起動時、およびアプリケーション動作中の適宜のタイミングのうち少なくともいずれかのタイミングで、前記認証および前記検証の処理を行う、ことを特徴とする請求項１に記載のライセンス管理システムである。
【００１０】
請求項５に係る発明は、それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記検証トークン表す検証トークンオブジェクトを、前記アプリケーションオブジェクトの子孫として生成する、ことを特徴とする請求項１に記載のライセンス管理システムである。
【００１１】
請求項６に係る発明は、それぞれ親または少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記ユーザを表すユーザオブジェクトを前記アプリケーションオブジェクトの子孫として生成し、前記ユーザオブジェクトの子孫として前記アクセストークンを表すアクセストークンオブジェクトを生成する、ことを特徴とする請求項１に記載のライセンス管理システムである。
【００１２】
請求項７に係る発明は、それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記アプリケーションオブジェクトの子孫として前記アプリケーションのライセンス先の組織を表す組織オブジェクトを生成し、前記組織オブジェクトの子孫として、前記組織オブジェクトの子孫のオブジェクトの生成が可能な権限が定められた権限オブジェクトを生成し、前記権限オブジェクトに基づいて、前記組織オブジェクトの子孫として、前記ユーザを表すユーザオブジェクトと前記アクセストークンを表すアクセストークンオブジェクトとを生成する、ことを特徴とする、請求項１に記載のライセンス管理システムである。
【００１３】
請求項８に係る発明は、前記生成手段は、前記権限オブジェクトに基づいて、前記組織オブジェクトの子孫として、前記認証手段および前記検証手段による処理のログ情報を記憶するオブジェクトを生成する、ことを特徴とする請求項７に記載のライセンス管理システムである。
【００１４】
請求項９に係る発明は、アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するコンピュータを、ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成する手段と、前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信する手段と、前記検証トークンを受信する手段と、前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証手段と、前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、前記認証手段および前記検証手段の処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御手段として機能させるためのプログラムである。
【００１５】
請求項１０に係る発明は、アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するライセンス管理システムによるライセンス管理方法において、ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成するステップと、前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信するステップと、前記検証トークンを受信するステップと、前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証ステップと、前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証ステップと、前記認証ステップおよび前記検証ステップの処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御ステップと、を備えるライセンス管理方法である。
【発明の効果】
【００１６】
請求項１、９および１０に記載の発明によれば、アプリケーションのインストールおよび実行のうち少なくとも一方を、当該アプリケーションのライセンスのためのアクセストークンと、当該アクセストークンの真正性を検証するための検証トークンとに基づいて制御できる。
【００１７】
請求項２に記載の発明によれば、前記検証トークンを、前記アプリケーションおよび前記アプリケーションのインストーラの少なくともいずれか一方に差し替えできないように埋め込んだ形で使用できる。
【００１８】
請求項３に記載の発明によれば、前記アプリケーションのライセンス発行時に、ライセンス先であるユーザへ配信する配信することができる。
【００１９】
請求項４に記載の発明によれば、前記アプリケーションのインストール時、前記アプリケーションの起動時、およびアプリケーション動作中の適宜のタイミングのうち少なくともいずれかのタイミングで、前記認証および前記検証の処理を行うようにすることができる。
【００２０】
請求項５に記載の発明によれば、それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する仕組みの中で、前記アプリケーションおよび当該アプリケーションの検証トークンを表すオブジェクトを管理することができる。
【００２１】
請求項６に記載の発明によれば、アプリケーションのライセンス先の個々について付与される権限を独立して管理できる。
【００２２】
請求項７に記載の発明によれば、アプリケーションのライセンス先の組織に、組織に属するユーザに対するライセンスを付与させることができる。
【００２３】
請求項８に記載の発明によれば、組織に属するユーザのログ情報を組織ごとに管理できる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態に係る情報処理システムのシステム構成図である。
【図２】情報処理システムの機能ブロック図である。
【図３】プロトタイプベースのオブジェクトの具体例を示す図である。
【図４】オブジェクト管理テーブルの一例を示す図である。
【図５】バリュー管理テーブルの一例を示す図である。
【図６】アプリケーションオブジェクトの生成処理のシーケンス図である。
【図７】ライセンス先のユーザオブジェクトの生成処理のシーケンス図である。
【図８】インストール制御処理のシーケンス図である。
【図９】テナントオブジェクトの生成処理のシーケンス図である。
【図１０】テナント内ユーザオブジェクトの生成処理のシーケンス図である。
【図１１】テナントオブジェクトの子孫として生成される検証ログを記憶するオブジェクトの一例を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明を実施するための実施の形態（以下、実施形態という）を、図面に基づいて説明する。
【００２６】
［１．システム構成の説明］
図１には、本実施形態に係る情報処理システム１のシステム構成図を示した。図１に示されるように、情報処理システム１は、サーバ１０と、第１端末装置３０−１、第２端末装置３０−２、第３端末装置３０−３、クラウドサービスサーバ５０とを含み、サーバ１０と第１端末装置３０−１、第２端末装置３０−２、第３端末装置３０−３、クラウドサービスサーバ５０とはそれぞれネットワーク２を介してデータ通信可能に接続される。
【００２７】
ここで、第１端末装置３０−１は、アプリケーションのベンダー（ライセンサー）が利用する装置とし、第２端末装置３０−２は、アプリケーションのライセンシーが利用する装置とし、第３端末装置３０−３は、アプリケーションをテナント契約するテナント管理者が利用する装置とする。なお、ライセンシーは、個人のユーザである場合、テナント（会社等の組織）である場合がある。ここで、ライセンシーがテナントである場合には、契約の範囲内において、テナント側が、テナントに属するユーザに対してさらにライセンスを付与することがある。本実施形態に係る情報処理システム１は、上記の様々なライセンス形態にも柔軟に対応可能となっている。
【００２８】
また、以下において、第１端末装置３０−１、第２端末装置３０−２、第３端末装置３０−３において共通する内容については端末装置３０と表記して説明することがある。
【００２９】
また、図１に示されるように、サーバ１０は、ハードウェア構成の一例として、制御部１１、記憶部１２、通信部１３を備える。
【００３０】
制御部１１は、ＣＰＵ（Central Processing Unit）を含み、記憶部１２に記憶されたプログラムに基づいて、各種の演算処理を実行するとともにサーバ１０の各部を制御する。
【００３１】
記憶部１２は、サーバ１０のオペレーティングシステム等の制御プログラムやデータを記憶するほか、制御部１１のワークメモリとしても用いられる。プログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体に格納された状態でサーバ１０に供給されてもよいし、インターネット等のデータ通信網を介してサーバ１０に供給されてもよい。
【００３２】
通信部１３は、例えばネットワークインターフェースカード（ＮＩＣ）を含み、ＮＩＣを介してネットワーク２に接続して、ネットワーク２に接続される端末装置等と通信する。
【００３３】
また、図１に示されるように、端末装置３０は、ハードウェア構成の一例として、制御部３１、記憶部３２、通信部３３、入力部３４、及び表示部３５を備える。
【００３４】
制御部３１は、ＣＰＵ（Central Processing Unit）を含み、記憶部３２に記憶されたプログラムに基づいて、各種の演算処理を実行するとともに端末装置３０の各部を制御する。
【００３５】
記憶部３２は、端末装置３０のオペレーティングシステム等の制御プログラムやデータを記憶するほか、制御部３１のワークメモリとしても用いられる。プログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体に格納された状態で端末装置３０に供給されてもよいし、インターネット等のデータ通信網を介して端末装置３０に供給されてもよい。
【００３６】
通信部３３は、例えばネットワークインターフェースカード（ＮＩＣ）を含み、ＮＩＣを介してネットワーク２に接続して、ネットワーク２に接続される端末装置等と通信する。
【００３７】
入力部３４は、例えばキーボード、マウス、タッチパネル等の入力デバイスからユーザの操作入力を受け付ける。
【００３８】
表示部３５は、例えば液晶ディスプレイを含み、制御部３１により生成されるグラフィックイメージを表示する。
【００３９】
なお、入力部３４及び表示部３５は端末装置３０の外部装置として設けられることとしても構わない。
【００４０】
本実施形態では、サーバ１０は、プロトタイプベースのオブジェクトを管理する。ここで、プロトタイプベースのオブジェクトとは、プロトタイプベースのオブジェクトの集合に唯一存在するルートオブジェクトを除けば、唯一つの親のオブジェクト（プロトタイプ）を持つオブジェクトのことである。なお、ルートオブジェクトは自身のプロトタイプを持たない。
【００４１】
また、オブジェクトＡがオブジェクトＢのプロトタイプであるとき、オブジェクトＢはオブジェクトＡのアーティファクトであるともいう。オブジェクト間のプロトタイプ関係により、プロトタイプベースのオブジェクト全体の集合は木構造で表現される。また、オブジェクトにより構成される木構造を破壊しないならば、プロトタイプを再接続することで木構造を変形することが可能である。
【００４２】
さらに、サーバ１０で管理するオブジェクトには、属性及び属性値を持たせることができる。ＲＥＳＴ（REpresentational State Transfer）アーキテクチャスタイルにおいては、オブジェクトをリソース、値を表現と呼ぶこともある。オブジェクトには、単にオブジェクト識別子とプロトタイプのみからなる純粋なアイデンティティのみを表すもの、任意のコンテント型の値を持つデータを表現するもの、アクセス資格を証明するクレデンシャルであるアクセストークン、あるいはオブジェクトの所有者であるリソースオーナーやリソースオーナーの認可のもとにオブジェクトへのアクセスを行うアプリケーション（クライアント）のようなエンティティを表すものが含まれることとしてよい。そして、これらのオブジェクトが１つの木構造の中に含まれる。なお、上記のアクセストークンは、権限情報が関連付けられるオブジェクトともいえる。
【００４３】
本実施形態に係る情報処理システム１では、サーバ１０は、アクセストークンを提示したリクエストを受け付け、アクセストークンが有効と検証された場合に、アクセストークンに基づき特定された権限の範囲で、上記受け付けたリクエストを処理する。例えば、アクセストークンにより特定される権限の範囲は、オブジェクトを作成（追加）、内容の参照、更新、削除等のいずれかを認可（又は不認可）したものである。また例えば、サーバ１０は、端末装置３０から受け付けたリクエストに従って、管理するオブジェクトの追加、更新、情報の読み出し、削除等を実行する。
【００４４】
以下では、情報処理システム１において実現される機能の一例について説明する。
【００４５】
［２．情報処理システム１において実現される機能の説明］
次に、図２に示される情報処理システム１の機能ブロック図に基づき、サーバ１０と端末装置３０に備えられる機能の一例について説明する。
【００４６】
［２．１．サーバ１０の機能］
図２に示されるように、サーバ１０は、データ格納部１１０、リクエスト受付部１２０、権限オブジェクト検証部１３０、オブジェクト管理部１４０、リクエスト処理部１５０、処理結果提供部１６０を備える。
【００４７】
サーバ１０に備えられる上記の各部の機能は、サーバ１０に備えられる制御部１１が、記憶部１２やコンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によってサーバ１０に供給されることとしてもよいし、インターネット等のデータ通信網を介してサーバ１０に供給されることとしてもよい。以下、サーバ１０に備えられる各部の機能の詳細について説明する。
【００４８】
データ格納部１１０は、プロトタイプベースのオブジェクトの情報を管理する。ここで、プロトタイプベースのオブジェクトには、権限情報が関連付けられたアクセストークンと呼ばれる権限オブジェクトを含む。プロトタイプベースのオブジェクトは変更可能（ミュータブル）なオブジェクトであり、典型的にはランダムに生成されたＩＤで識別される。
【００４９】
図３には、サーバ１０により管理されるプロトタイプベースのオブジェクトの具体例を示した。図３に示される例においては、プロトタイプベースのオブジェクトの親子関係を接続した木構造データを示している。
【００５０】
図３に示されるように、「root」オブジェクトＤ１の子オブジェクトとして、「api」オブジェクトＤ１１、「vendor」オブジェクトＤ１２、が設けられている。さらに、「api」オブジェクトＤ１１の子オブジェクトとして、「authLicenseScope」オブジェクトＤ１１１、「verifyTokenScope」オブジェクトＤ１１２が設けられている。
【００５１】
また、「vendor」オブジェクトＤ１２の子オブジェクトとして、「application」オブジェクトＤ１２１、「vendorToken」オブジェクトＤ１２２が設けられている。
【００５２】
また、「application」オブジェクトＤ１２１の子オブジェクトとして、「user」オブジェクトＤ１２１１、「tenant」オブジェクトＤ１２１２、「verifyToken」オブジェクトＤ１２１３、「applicationToken」オブジェクトＤ１２１４が設けられている。
【００５３】
また、「user」オブジェクトＤ１２１１の子オブジェクトとして、「licenseToken」オブジェクトＤ１２１１１が設けられている。
【００５４】
また、「tenant」オブジェクトＤ１２１２の子オブジェクトとして、「userInTenant」オブジェクトＤ１２１２１、「tenantToken」オブジェクトＤ１２１２２が設けられている。
【００５５】
また、「userInTenant」オブジェクトＤ１２１２１の子オブジェクトとして、「licenseToken」オブジェクトＤ１２１２１１が設けられている。
【００５６】
図３に示した例において、「authLicenseScope」オブジェクトＤ１１１はライセンス認証を許可するスコープ、「verifyTokenScope」オブジェクトＤ１１２はアクセストークンの検証を許可するスコープに相当する。
【００５７】
図３に示されるオブジェクトのうち、「application」オブジェクトＤ１２１は、インストールの対象となるアプリケーションに相当する。また、「user」オブジェクトＤ１２１１は、インストールの対象となるアプリケーションのライセンシーのユーザに相当する。そして、「licenseToken」オブジェクトＤ１２１１１は、ユーザに付与されたライセンスに相当する。
【００５８】
また、図３に示されるオブジェクトのうち、「verifyToken」オブジェクトＤ１２１３は、「application」オブジェクトＤ１２１の作成時に生成され、インストール対象となるアプリケーションのインストーラに埋め込まれるアクセストークンとなる。
【００５９】
また、図３に示されるオブジェクトのうち、「tenant」オブジェクトＤ１２１２は、アプリケーションのテナント契約者に相当する。そして、「userInTenant」オブジェクトＤ１２１２１は、テナントに属するアプリケーションのライセンシーに相当する。そして、「licenseToken」オブジェクトＤ１２１２１１は、「userInTenant」オブジェクトＤ１２１２１に付与されたライセンスに相当する。
【００６０】
以上のプロトタイプベースのオブジェクトの関係は、例えば以下に示すオブジェクト管理テーブル１１１とバリュー管理テーブル１１２に記憶されるデータにより管理可能となっている。
【００６１】
すなわち、本実施形態では、データ格納部１１０には、オブジェクト管理テーブル１１１と、バリュー管理テーブル１１２が含まれ、プロトタイプベースのオブジェクトの情報を、オブジェクト管理テーブル１１１と、バリュー管理テーブル１１２に格納して管理している。
【００６２】
図４には、オブジェクト管理テーブル１１１の一例を、そして図５にはバリュー管理テーブル１１２の一例をそれぞれ示した。
【００６３】
図４に示されるように、オブジェクト管理テーブル１１１には、プロトタイプベースのオブジェクトの識別情報であるオブジェクトＩＤ、オブジェクトの親（プロトタイプ）オブジェクトの識別情報であるプロトタイプＩＤ、オブジェクトが有効化されているか否か（Ｔが有効、Ｆが無効）を示す有効化フラグ、オブジェクトの属性情報が関連づけて記憶される。また、オブジェクトの属性情報には、オブジェクトの型を示すｔｙｐｅ、オブジェクトのデータ内容を格納したデータオブジェクトの識別情報を表すｅｔａｇ、オブジェクトの名称を格納したｎａｍｅ、オブジェクトの生成日時を表すｔｉｍｅを含む。なお、プロトタイプベースのオブジェクトのデータ構成は、図４に示された例に限定されるものではなく、上述した要素以外の要素を含み構成されていても構わない。
【００６４】
また、図５に示されるように、バリュー管理テーブル１１２には、ｅｔａｇの値に関連づけて、ｅｔａｇの内容を格納したバリューが関連づけられている。
【００６５】
例えば、アクセストークンであればｅｔａｇのバリューとして、｛“ｏｗｎｅｒ”： ｏｗｎｅｒ（オーナー）のオブジェクトＩＤ、“ｃｌｉｅｎｔ”： ｃｌｉｅｎｔ（クライアント）のオブジェクトＩＤ、“スコープ”：認可された処理の範囲｝の形式の情報を含む。本実施形態に係る情報処理システム１では、端末装置から受け付ける処理要求にはアクセストークンが添付されるが、ここで、アクセストークンを検証することにより、オーナー、クライアント、スコープの情報が特定される。なお、オーナーが処理のリクエスタ、クライアントが処理の代理リクエスタとして扱われる。
【００６６】
リクエスト受付部１２０は、端末装置３０からリクエストを受け付ける。例えば、リクエスト受付部１２０は、端末装置３０からデータ格納部１１０で管理されるオブジェクトの処理に関するリクエストを受け付けることとしてよい。なお、リクエスト受付部１２０は、端末装置３０からリクエストとともにリクエストに係るアクセストークンの情報を受け付けることとしてよい。この際、リクエスト受付部１２０は、例えば端末装置３０からＨＴＴＰリクエストの形式でリクエストを受け付けることとしてよい。
【００６７】
権限オブジェクト検証部１３０は、リクエスト受付部１２０で受け付けたリクエストに係る権限オブジェクト（アクセストークン）の情報を取得し、取得した権限オブジェクトを検証する。例えば、権限情報取得部１３は、アクセストークンの情報は、ＨＴＴＰリクエストのＡｕｔｈｏｒｉｚａｔｉｏｎフィールドから得てもよいし、アクセストークンの情報を含むクッキーが存在すれば、クッキーから得てもよい。
【００６８】
権限オブジェクト検証部１３０は、上記取得したアクセストークン（権限オブジェクト）の情報が正当なものであるか否かを検証する。以下、権限オブジェクト検証部１３０による検証処理の具体例について説明する。
【００６９】
まず、権限オブジェクト検証部１３０は、権限情報取得部１３で取得されたアクセストークンのＩＤが、データ格納部１１０で管理するオブジェクト管理テーブル１１１に含まれているか否か（第１の条件の適否）を判断し、含まれていない場合には検証失敗と判断する。
【００７０】
次に、権限オブジェクト検証部１３０は、第１の条件が満たされている場合に、アクセストークンのデータ形式（タイプ）が所定の型（すなわち、ａｐｐｌｉｃａｔｉｏｎ／ｊｓｏｎ）であるか否か（第２の条件の適否）を判断し、所定の型でない場合には検証失敗と判断する。すなわち、アクセストークンのｅｔａｇについてバリュー管理テーブル１１２に記憶されるバリューが所定の型（ｏｗｎｅｒ、ｃｌｉｅｎｔ、ｓｃｏｐｅを指定したデータ形式）でない場合には、検証失敗と判断する。
【００７１】
次に、権限オブジェクト検証部１３０は、第２の条件が満たされている場合に、アクセストークンのバリューの値（ｏｗｎｅｒ、ｃｌｉｅｎｔ、ｓｃｏｐｅの値）を取得し、ｏｗｎｅｒ、ｃｌｉｅｎｔ、ｓｃｏｐｅのそれぞれの値がデータ格納部１１０で管理されるデータであるか否か（第３の条件の適否）を判断し、いずれかの値がデータ格納部１１０で管理されるデータでない場合には検証失敗と判断する。
【００７２】
次に、権限オブジェクト検証部１３０は、第３の条件が満足されている場合に、データ格納部１１０からアクセストークンのプロトタイプの情報を取得し、アクセストークンのプロトタイプが、アクセストークンのオーナーと一致しているか、オーナーのプロトタイプチェーン（オーナーの親、さらにその親へとオーナーの祖先を順に接続した経路）に含まれるか否か（第４の条件の適否）を判断し、上記のいずれにも合致しない場合には検証失敗と判断する。なお、以上の第１乃至第４の条件を満足した場合には、権限オブジェクト検証部１３０は、アクセストークンの検証を成功と判断することとしてよい。
【００７３】
権限オブジェクト検証部１３０は、上記の検証の結果と、アクセストークンにより認可されているスコープ（処理の範囲）の情報と、受け付けたリクエストをリクエスト処理部１５０に通知する。
【００７４】
リクエスト処理部１５０は、リクエスト受付部１２０で受け付けたリクエストについて取得したアクセストークン（権限オブジェクト）についての権限オブジェクト検証部１３０から通知された検証結果と、該受け付けたアクセストークンについて認可されたスコープ（処理の範囲）に基づいて、リクエスト受付部１２０で受け付けたリクエストの処理を制御する。例えば、リクエスト処理部１５０は、リクエスト受付部１２０で受け付けたリクエストに係るアクセストークンについての検証結果が検証失敗である場合には、リクエストに係る処理を不受理としてエラーを処理結果提供部１６０に出力することとしてよい。また、リクエスト処理部１５０は、リクエスト受付部１２０で受け付けたリクエストに係るアクセストークンについての検証結果が検証成功である場合には、リクエスト受付部１２０で受け付けたリクエストを、該リクエストに関して受け付けたアクセストークンについて認可されたスコープに基づいて処理し、その実行結果を処理結果提供部１６０に出力する。
【００７５】
例えば、リクエスト処理部１５０は、受け付けたリクエストに基づいて、オブジェクト管理部１４０にオブジェクトの生成、読み出し、更新、削除を依頼し、オブジェクト管理部１４０から処理結果を受け取る。
【００７６】
具体的には、リクエスト処理部１５０は、端末装置３０から受け付けたリクエストに基づいて、アプリケーションオブジェクトの生成、アプリケーションオブジェクトの子オブジェクトでありアプリケーションインストール時のライセンストークンの検証を行う権限が定められた検証用トークンの生成、ライセンシーに相当するユーザやテナントに対応するライセンシーオブジェクトの生成、ライセンシーオブジェクトの子でありライセンシーに付与するライセンスを示すライセンストークンの生成等をオブジェクト管理部１４０に実行させる。
【００７７】
例えば、図３における「application」オブジェクトＤ１２１が上記の「アプリケーションオブジェクト」に相当し、「verifyToken」オブジェクトＤ１２１３が上記の「検証用トークン」に相当する。また、図３における「user」オブジェクトＤ１２１１や「tenant」オブジェクトＤ１２１２が上記の「ライセンシーオブジェクト」に相当し、「license」オブジェクトＤ１２１１１，Ｄ１２１２１１が上記の「ライセンストークン」に相当する。
【００７８】
例えば、本実施形態においては、リクエスト処理部１５０は、アプリケーションベンダー内の管理者が操作する第１端末装置３０−１から受けつけた要求に応じて、上記のアプリケーションオブジェクト、検証用トークン、ライセンシーオブジェクト、ライセンストークンを生成する制御を実行することとしてよい。
【００７９】
オブジェクト管理部１４０は、データ格納部１１０により管理されるオブジェクトの情報を管理する。例えば、オブジェクト管理部１４０は、リクエスト処理部１５０から受け付ける要求に基づいて、オブジェクト管理テーブル１１１、バリュー管理テーブル１１２に対して情報の追加、読み出し、更新、削除等の処理を実行する。
【００８０】
また、オブジェクト管理部１４０は、配信用オブジェクト生成部を含み、リクエスト処理部１５０から受け付ける配信用オブジェクトの生成要求に基づいて、マスターデータの子（又は子孫）である配信用オブジェクトを生成する。
【００８１】
また、オブジェクト管理部１４０は、リクエスト処理部１５０から受け付ける配信用オブジェクトの読み出し要求に基づいて、配信用オブジェクトの情報を読み出す。ここで、オブジェクト管理部１４０は、配信用オブジェクトの有していないデータ項目については、配信用オブジェクトの親（又は先祖）のオブジェクトのデータ項目の情報を参照し、配信用オブジェクトの情報として返す。
【００８２】
また、オブジェクト管理部１４０は、リクエスト処理部１５０から受け付ける配信用オブジェクトの更新要求に基づいて、配信用オブジェクトの内容を更新する。また、オブジェクト管理部１４０は、リクエスト処理部１５０から受け付ける配信用オブジェクトの削除要求に基づいて、配信用オブジェクトを削除する。
【００８３】
処理結果提供部１６０は、リクエスト処理部１５０による処理結果を、リクエストの要求元である端末装置３０に対して提供する。
【００８４】
例えば、本実施形態においては、処理結果提供部１６０は、第１端末装置３０−１に対して、第１端末装置３０−１から受け付けた要求に基づいて生成したアプリケーションオブジェクト、検証用トークン、ライセンシーオブジェクト、ライセンストークンの情報（オブジェクトＩＤ等）を提供することとしてよい。
【００８５】
そして、第１端末装置３０−１は、アプリケーションをインストールするためのインストーラの中に、上記提供を受けた検証用トークンを書き換え不可の状態で書き込むことで、アプリケーションのインストーラに、検証用トークンを埋め込むこととしてよい。そして、アプリケーションのベンダーは、上記検証用トークンが埋め込まれたインストーラを、ライセンシー側の装置（第２端末装置３０−２や第３端末装置３０−３等）に提供することとしてよい。なお、インストーラの提供は、インストーラを格納した情報記憶媒体を配布したり、第１端末装置３０−１又は他の装置から、ライセンシー側の装置にネットワーク経由で配信したりすることとしてよい。
【００８６】
また、第１端末装置３０−１は、ライセンシーとのライセンス契約の締結（例えば課金処理の完了）を契機として、ライセンシーオブジェクト及びライセンストークンの生成をサーバに要求し、それにより生成されたライセンシーオブジェクトとライセンストークンの情報を取得する。そして、第１端末装置３０−１は、ライセンシー側の装置（第２端末装置３０−２や第３端末装置３０−３等）に、ライセンストークンの情報を提供する。
【００８７】
そして、ライセンシー側の装置では、検証用トークンが埋め込まれたインストーラと、ライセンストークンに基づいて、アプリケーションのインストールを実行する。以下においては、図２に基づき、上記のインストール処理に関し端末装置３０に備えられる機能について説明する。
【００８８】
［２．２．端末装置３０の機能］
図２に示されるように、端末装置３０は、インストール制御部３１０、ライセンス認証要求部３２０、トークン検証要求部３３０、処理結果取得部３４０を備える。なお、以下説明する例においては、端末装置３０の記憶部３２には、検証用トークンが埋め込まれたインストーラと、ライセンストークンの情報が記憶されていることとする。
【００８９】
端末装置３０に備えられる上記の各部の機能は、端末装置３０に備えられる制御部３１が、記憶部３２やコンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によって端末装置３０に供給されることとしてもよいし、インターネット等のデータ通信網を介して端末装置３０に供給されることとしてもよい。以下、端末装置３０に備えられる各部の機能の詳細について説明する。
【００９０】
インストール制御部３１０は、主に端末装置３０の制御部３１及び記憶部３２により実現され、検証用トークンが埋め込まれたインストーラと、ライセンストークンに基づくインストール処理を制御する。
【００９１】
インストール制御部３１０は、ライセンストークンに基づくライセンス認証の実行をライセンス認証要求部３２０に指示する。また、インストール制御部３１０は、インストーラに埋め込まれた検証用トークンに基づくトークン検証の実行をトークン検証要求部３３０に指示する。
【００９２】
ライセンス認証要求部３２０は、主に端末装置３０の制御部３１、記憶部３２及び通信部３３により実現され、インストール制御部３１０から受け付けたライセンストークンに基づくライセンス認証を、サーバに対して要求する。例えば、ライセンス認証要求部３２０は、ライセンストークンのＩＤ（オブジェクトＩＤ）をサーバ１０のリクエスト受付部１２０に対して送信することで、上記の要求を実行することとしてよい。
【００９３】
例えば、サーバ１０においては、権限オブジェクト検証部１３０によりライセンストークンが正当と検証され、ライセンストークンで指定されるクライアント（委譲先情報）がアクセストークンで指定されるオーナー（所有者情報）の子孫である場合には、認証成功とし、そうでない場合には認証失敗とすることとしてよい。そして、処理結果提供部１６０は、ライセンストークンの認証結果を示す認証結果情報を、認証要求を受け付けた端末装置３０に対して送信する。
【００９４】
トークン検証要求部３３０は、主に端末装置３０の制御部３１、記憶部３２及び通信部３３により実現され、インストール制御部３１０から受け付けた検証用トークンに基づくトークン検証を、サーバに対して要求する。例えば、ライセンス認証要求部３２０は、検証用トークンのＩＤ（オブジェクトＩＤ）をサーバ１０のリクエスト受付部１２０に対して送信することで、上記の要求を実行することとしてよい。
【００９５】
なお、サーバ１０においては、権限オブジェクト検証部１３０により検証用トークンの検証が実行され、検証用トークンの検証が成功した検証成功、検証用トークンの検証が失敗した場合には検証失敗とした検証結果情報を、トークン検証要求を受け付けた端末装置３０に対して送信する。
【００９６】
処理結果取得部３４０は、主に端末装置３０の制御部３１、記憶部３２及び通信部３３により実現され、サーバ１０の処理結果提供部１６０から提供される情報を取得する。
【００９７】
例えば、処理結果取得部３４０は、処理結果提供部からライセンストークンの認証結果を示す認証結果情報、及び検証用トークンの検証結果を示す検証結果情報を受信し、取得することとしてよい。また、処理結果取得部３４０は、取得した認証結果情報及び検証結果情報をインストール制御部３１０に提供することとしてよい。
【００９８】
インストール制御部３１０は、処理結果取得部３４０から提供された認証結果情報及び検証結果情報に基づき、ライセンストークンの認証が成功し、且つ検証用トークンの検証が成功した場合に、インストーラに基づくインストール処理を実行し、ライセンストークンの認証と検証用トークンの検証のいずれかが失敗した場合には、インストーラに基づくインストール処理を中止することとしてよい。
【００９９】
［３．処理の一例についての説明］
次に、図６乃至図１０に示されたシーケンス図に基づいて、情報処理システム１で実行される処理の一例について詳細に説明する。
【０１００】
［３．１．アプリケーションの登録処理］
まず、図６に示したシーケンス図に基づいて、アプリケーションベンダーの第１端末装置３０−１とサーバ１０とにより実行される、アプリケーションの登録処理の一例について説明する。図６のフローにおいては、第１端末装置３０−１は「vendor」オブジェクトＤ１２について子オブジェクトの生成、取得、更新、削除が可能なスコープが定められたアクセストークン（Ｔ１）である「vendorToken」オブジェクトＤ１２２を有することとする。
【０１０１】
図６に示されるように、第１端末装置３０−１は、アクセストークンＴ１を用いて、「vendor」オブジェクトＤ１２の子オブジェクトとして、アプリケーションオブジェクト（「application」オブジェクトＤ１２１に対応）の作成をサーバ１０に対して指示する（Ｓ３００）。
【０１０２】
サーバ１０は、第１端末装置３０−１からアプリケーションオブジェクトの作成指示を受け付けると（Ｓ１００）、アクセストークンＴ１を検証し、検証が成功した場合に、アプリケーションオブジェクトを作成する（Ｓ１０１）。そして、サーバ１０は、上記作成したアプリケーションオブジェクトのＩＤ（オブジェクトＩＤ）を第１端末装置３０−１に対して送信する（Ｓ１０２）。
【０１０３】
第１端末装置３０−１は、サーバ１０から送信されるアプリケーションオブジェクトのＩＤを受信する（Ｓ３０１）。
【０１０４】
次に、第１端末装置３０−１は、アクセストークンＴ１を用いて、アプリケーションオブジェクトの子オブジェクトを作るためのアクセストークンＴ２（「applicationToken」オブジェクトＤ１２１４に対応）の作成をサーバ１０に対して指示する（Ｓ３０２）。
【０１０５】
サーバ１０は、第１端末装置３０−１からアクセストークンＴ２の作成指示を受け付けると（Ｓ１０３）、アクセストークンＴ１を検証し、検証が成功した場合に、アクセストークンＴ２（アプリケーショントークン）を作成する（Ｓ１０４）。そして、サーバ１０は、上記作成したアクセストークンＴ２のＩＤ（オブジェクトＩＤ）を第１端末装置３０−１に対して送信する（Ｓ１０５）。
【０１０６】
第１端末装置３０−１は、サーバ１０から送信されるアクセストークンＴ２のＩＤを受信する（Ｓ３０３）。そして、第１端末装置３０−１は、アクセストークンＴ２を用いて、アプリケーションオブジェクトの子オブジェクトとして、ライセンストークンを検証するためのアクセストークンである検証用トークンの作成をサーバ１０に対して指示する（Ｓ３０４）。
【０１０７】
サーバ１０は、第１端末装置３０−１から検証用トークンの作成指示を受け付けると（Ｓ１０６）、アクセストークンＴ２を検証し、検証が成功した場合に、アプリケーションオブジェクトの子オブジェクトとして検証用トークンを作成する（Ｓ１０７）。そして、サーバ１０は、上記作成した検証用トークンのＩＤ（オブジェクトＩＤ）を第１端末装置３０−１に対して送信する（Ｓ１０８）。
【０１０８】
第１端末装置３０−１は、サーバ１０から検証用トークンのＩＤを受信する（Ｓ３０５）。
【０１０９】
第１端末装置３０−１は、上記受信した検証用トークンのＩＤを、アプリケーションのインストーラに埋め込んだ後に、インストーラを第２端末装置３０−２に提供することとしてよい。
【０１１０】
［３．２．ユーザに対するライセンスの登録処理］
次に、図７に示したシーケンス図に基づいて、第１端末装置３０−１とサーバ１０により実行される、ライセンシーであるユーザに対しライセンスを登録する処理の一例について説明する。
【０１１１】
第１端末装置３０−１は、アクセストークンＴ２（アプリケーショントークン）を用いて、ユーザオブジェクトの作成を、サーバ１０に対して指示する（Ｓ３１０）。上記の指示には、ユーザオブジェクトにユーザ属性情報（ユーザ名、メールアドレス等）を設定する指示を含めてよい。
【０１１２】
サーバ１０は、第１端末装置３０−１からユーザオブジェクトの作成指示を受け付けると（Ｓ１１０）、アクセストークンＴ２を検証し、検証が成功した場合に、ユーザオブジェクトを作成する（Ｓ１１１）。そして、サーバ１０は、上記生成したユーザオブジェクトの情報（オブジェクトＩＤ）を第１端末装置３０−１に対して送信する（Ｓ１１２）。
【０１１３】
第１端末装置３０−１は、サーバ１０からユーザオブジェクトの情報を受信する（Ｓ３１１）。
【０１１４】
次に、第１端末装置３０−１は、アクセストークンＴ２（アプリケーショントークン）を用いて、ユーザに付与するライセンスを示すアクセストークンであるライセンストークンの作成を、サーバ１０に対して指示する（Ｓ３１２）。上記の指示には、ライセンストークンのオーナーを「application」オブジェクトＤ１２１（アプリケーションオブジェクト）、クライアントを「user」オブジェクトＤ１２１１（ユーザオブジェクト）、スコープを「authLicenseScope」Ｄ１１１（ライセンス認証用のスコープオブジェクト）に設定する指示を含めてよい。
【０１１５】
サーバ１０は、第１端末装置３０−１からライセンストークンの作成指示を受け付けると（Ｓ１１３）、アクセストークンＴ２を検証し、検証が成功した場合に、ライセンストークンを作成する（Ｓ１１４）。そして、サーバ１０は、上記生成したライセンストークンの情報（オブジェクトＩＤ）を第１端末装置３０−１に対して送信する（Ｓ１１５）。
【０１１６】
第１端末装置３０−１は、サーバ１０からライセンストークンの情報（オブジェクトＩＤ）を受信する（Ｓ３１３）。
【０１１７】
第１端末３０−１は、ライセンシーとなるユーザとのライセンス契約を機に、ユーザから受け付けたユーザ情報に基づいて上記の処理を実行し、その結果受信したライセンストークンの情報（オブジェクトＩＤ）を、ユーザ（ライセンシー）の操作する第２端末装置３０−２に提供することとしてよい。
【０１１８】
［３．３．インストール制御処理］
次に、図８に示されるシーケンス図に基づき、第２端末装置３０−１とサーバ１０により実行されるアプリケーションのインストール制御処理の一例について説明する。以下のシーケンス例では、第２端末装置３０−２は、検証用トークンが埋め込まれたインストーラと、ユーザに対して固有に発行されたライセンストークンとを有していることとする。
【０１１９】
図８に示されるように、第２端末装置３０−２は、ライセンストークンに基づくライセンス認証処理をサーバ１０に対して指示する（Ｓ３２０）。
【０１２０】
サーバ１０は、ライセンストークンに基づくライセンス認証処理の指示を受け付けると（Ｓ１２０）、ライセンストークンに基づくライセンス認証を実行する（Ｓ１２１）。例えば、サーバ１０は、ライセンストークンが正当なアクセストークンであって、ライセンストークンで指定されるクライアント（委譲先情報）がアクセストークンで指定されるオーナー（所有者情報）の子孫である場合には、認証成功とし、そうでない場合には認証失敗とした認証結果を第２端末装置３０−２に対して送信する（Ｓ１２２）。
【０１２１】
第２端末装置３０−２は、サーバ１０から認証結果を受信し（Ｓ３２１）、受信した認証結果が認証成功である場合には（Ｓ３２２：Ｙ）、インストーラに埋め込まれた検証用トークンの検証をサーバ１０に対して指示する（Ｓ３２３）。
【０１２２】
サーバ１０は、検証用トークンの検証指示を受け付けると（Ｓ１２３）、検証用トークンを検証し（Ｓ１２４）、その検証結果を第２端末装置３０−２に送信する（Ｓ１２５）。
【０１２３】
第２端末装置３０−２は、サーバ１０から検証結果を受信し（Ｓ３２４）、受信した検証結果が検証成功である場合には（Ｓ３２５：Ｙ）、インストーラに基づくアプリケーションのインストール処理を実行する（Ｓ３２３）。
【０１２４】
一方、Ｓ３２１で受信した認証結果が認証成功でない場合（Ｓ３２３：Ｎ）、Ｓ３２４で受信した検証結果が検証成功でない場合（Ｓ３２５：Ｎ）には、エラーとして（Ｓ３２７）、インストーラに基づくアプリケーションのインストール処理を中止する。
【０１２５】
なお、上記のインストーラに基づくアプリケーションのインストール処理とは、インストーラに基づいて第２端末装置３０−２において、アプリケーションを実行可能な状態とすることをいう。
【０１２６】
［３．４．テナントの登録処理］
次に、図９に示したシーケンス図に基づいて、第１端末装置３０−１とサーバ１０により実行される、ライセンシーであるテナントを登録する処理の一例について説明する。
【０１２７】
第１端末装置３０−１は、アクセストークンＴ２（アプリケーショントークン）を用いて、テナントオブジェクトの作成を、サーバ１０に対して指示する（Ｓ３３０）。上記の指示には、テナントオブジェクトにテナント管理者の情報（管理者名、メールアドレス等）を設定する指示を含めてよい。
【０１２８】
サーバ１０は、第１端末装置３０−１からテナントオブジェクトの作成指示を受け付けると（Ｓ１３０）、アクセストークンＴ２を検証し、検証が成功した場合に、テナントオブジェクトを作成する（Ｓ１３１）。そして、サーバ１０は、上記生成したテナントオブジェクトの情報（オブジェクトＩＤ）を第１端末装置３０−１に対して送信する（Ｓ１３２）。
【０１２９】
第１端末装置３０−１は、サーバ１０からテナントオブジェクトの情報を受信する（Ｓ３３１）。
【０１３０】
次に、第１端末装置３０−１は、アクセストークンＴ２（アプリケーショントークン）を用いて、テナントに付与する権限を示すアクセストークンであるテナントトークンの作成を、サーバ１０に対して指示する（Ｓ３３２）。なお、テナントトークンは、テナントオブジェクトの子孫にオブジェクトを追加し、追加したオブジェクトを削除、更新等可能な権限が定められることとしてよい。例えば、テナントトークンのオーナーを「tenant」オブジェクトＤ１２１２（テナントオブジェクト）、「tenant」オブジェクトＤ１２１２（テナントオブジェクト）、スコープを「crudScope」に設定することとしてよい。
【０１３１】
サーバ１０は、第１端末装置３０−１からテナントトークンの作成指示を受け付けると（Ｓ１３３）、アクセストークンＴ２を検証し、検証が成功した場合に、テナントトークンを作成する（Ｓ１３４）。そして、サーバ１０は、上記生成したテナントトークンの情報（オブジェクトＩＤ）を第１端末装置３０−１に対して送信する（Ｓ１３５）。
【０１３２】
第１端末装置３０−１は、サーバ１０からテナントトークンの情報（オブジェクトＩＤ）を受信する（Ｓ３３３）。
【０１３３】
第１端末３０−１は、ライセンシーとなるテナントの管理者に対して、上記テナントトークンの情報を提供することとしてよい。
【０１３４】
［３．５．テナント内ユーザに対するライセンス登録処理］
次に、図１０に示したシーケンス図に基づいて、テナントの管理者が操作する第３端末装置３０−３とサーバ１０により実行される、テナント内ユーザに対してライセンスを登録する処理の一例について説明する。
【０１３５】
第３端末装置３０−３は、テナントトークンを用いて、テナント内ユーザオブジェクト（図３の「userInTenant」オブジェクトＤ１２１２１に対応する）の作成を、サーバ１０に対して指示する（Ｓ３４０）。上記の指示には、テナント内ユーザオブジェクトにユーザ属性情報（ユーザ名、メールアドレス等）を設定する指示を含めてよい。
【０１３６】
サーバ１０は、第３端末装置３０−３からテナント内ユーザオブジェクトの作成指示を受け付けると（Ｓ１４０）、テナントトークンを検証し、検証が成功した場合に、テナント内ユーザオブジェクトを作成する（Ｓ１４１）。そして、サーバ１０は、上記生成したテナント内ユーザオブジェクトの情報（オブジェクトＩＤ）を第３端末装置３０−３に対して送信する（Ｓ１４２）。
【０１３７】
第３端末装置３０−３は、サーバ１０からテナント内ユーザオブジェクトの情報を受信する（Ｓ３４１）。
【０１３８】
次に、第３端末装置３０−３は、テナントトークンを用いて、テナント内ユーザに付与するライセンスを示すアクセストークンであるライセンストークンの作成を、サーバ１０に対して指示する（Ｓ３４２）。上記の指示には、ライセンストークンのオーナーを「tenant」オブジェクトＤ１２１２（テナントオブジェクト）、クライアントを「userInTenant」オブジェクトＤ１２１２１（テナント内ユーザオブジェクト）、スコープを「authLicenseScope」Ｄ１１１（ライセンス認証用のスコープオブジェクト）に設定する指示を含めてよい。
【０１３９】
サーバ１０は、第３端末装置３０−３からライセンストークンの作成指示を受け付けると（Ｓ１４３）、テナントトークンを検証し、検証が成功した場合に、ライセンストークンを作成する（Ｓ１４４）。そして、サーバ１０は、上記生成したライセンストークンの情報（オブジェクトＩＤ）を第３端末装置３０−３に対して送信する（Ｓ１４５）。
【０１４０】
第３端末装置３０−３は、サーバ１０からライセンストークンの情報（オブジェクトＩＤ）を受信する（Ｓ３４３）。
【０１４１】
第３端末３０−３は、テナント内ユーザに対し上記のライセンストークンの情報（オブジェクトＩＤ）を提供することとしてよい。テナント内ユーザについての、ライセンストークンに基づくアプリケーションのインストール処理は、図８において説明した処理と同様としてよいため省略する。
【０１４２】
［４．本発明の他の形態について］
以下、本発明の他の形態について説明する。図１１には、図３に示すオブジェクトの構造のうち、「tenant」オブジェクトＤ１２１２の子孫のオブジェクトの構成を変更したものを示す。
【０１４３】
図１１に示されるように、「tenant」オブジェクトＤ１２１２には、「userInTenant」オブジェクトＤ１２１２１、「tenantToken」オブジェクトＤ１２１２２に加えて、「LicenseUsage」オブジェクトＤ１２１２３、「LogScope」オブジェクトＤ１２１２４が設けられている。
【０１４４】
ここで、「LicenseUsage」オブジェクトＤ１２１２３には、「userInTenant」オブジェクトＤ１２１２１に対応するユーザのインストール処理、アプリケーションの起動、アプリケーションの動作等に関するログ情報が記録される。
【０１４５】
そして、「LogScope」オブジェクトＤ１２１２４は、認証処理に加えてログ情報を記録するための処理が定められたスコープである。
【０１４６】
そして、「userInTenant」オブジェクトＤ１２１２１の子オブジェクトである「licenseToken」オブジェクトＤ１２１２１１に対しては、スコープに「LogScope」オブジェクトＤ１２１２４を設定する点で、図３に示したオブジェクトの例とは相違するが、他の点では共通する。
【０１４７】
なお、図１１に示したオブジェクトの構成例を採用する場合に、テナント内ユーザにライセンスを登録するときには、図１０に示すシーケンス図において、ライセンストークンのスコープを「LogScope」オブジェクトＤ１２１２４に設定するようにする点を除けば、図１０のシーケンス図と同様の処理を採用することができる。
【０１４８】
また、テナント内ユーザのインストール処理に関しても、ライセンストークンのスコープによる処理が異なるものの、図８と同様のシーケンスにより実現できるため省略する。
【０１４９】
なお、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。
【０１５０】
例えば、上記の情報処理システム１においては、ライセンストークンを用いて、アプリケーションに対応するクラウドサービス（図１のクラウドサービスサーバ５０）でのOAuth認証を行うようにしてもよい。
【０１５１】
例えば、端末装置３０のユーザが、クラウドサービスサーバ５０のサービスを利用したい場合には、クラウドサービスとの連携を指示すると、認証情報をサーバ１０から受け取ることに対する許可をユーザに求めることとする。ユーザにより許可されると、クラウドサービスサーバ５０からサーバ１０に対してリクエストに応じて、サーバ１０は、ユーザ情報を返却することとする。
【０１５２】
例えば、クラウドサービスサーバ５０は、ユーザ情報を元に特定された対象フォルダの情報を、端末装置３０に提供することとしてよい。例えば、端末装置３０では、クラウドサービスとの連携フォルダに、ユーザ固有のクラウドサービスサーバ５０で管理されるユーザのフォルダを表示するようにしてよい。上記の構成によれば、端末装置３０にクラウドサービスのアカウント情報を保存する必要がないため、アカウント情報の漏洩リスクが低減する。また、初回認証以降は、クラウドサービスサーバ５０からサーバ１０に対して確認が行われる、ユーザが毎回ＩＤやパスワードを入力する手間がなくなる。
【符号の説明】
【０１５３】
１０  サーバ、３０−１  第１端末装置、３０−２  第２端末装置、３０−３  第３端末装置、５０  クラウドサービスサーバ、１１０  データ格納部、１２０  リクエスト受付部、１３０  権限オブジェクト検証部、１４０  オブジェクト管理部、１５０  リクエスト処理部、１６０  処理結果提供部、３１０  インストール制御部、３２０  ライセンス認証要求部、３３０  トークン検証要求部、３４０  処理結果取得部。
【図１】
0006477073.tif 000002
【図２】
0006477073.tif 000003
【図３】
0006477073.tif 000004
【図４】
0006477073.tif 000005
【図５】
0006477073.tif 000006
【図６】
0006477073.tif 000007
【図７】
0006477073.tif 000008
【図８】
0006477073.tif 000009
【図９】
0006477073.tif 000010
【図１０】
0006477073.tif 000011
【図１１】
0006477073.tif 000012