JP2016173715A - License management system, program, and license management method - Google Patents

License management system, program, and license management method Download PDF

Info

Publication number
JP2016173715A
JP2016173715A JP2015053161A JP2015053161A JP2016173715A JP 2016173715 A JP2016173715 A JP 2016173715A JP 2015053161 A JP2015053161 A JP 2015053161A JP 2015053161 A JP2015053161 A JP 2015053161A JP 2016173715 A JP2016173715 A JP 2016173715A
Authority
JP
Japan
Prior art keywords
application
verification
token
license
access token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015053161A
Other languages
Japanese (ja)
Other versions
JP6477073B2 (en
Inventor
芳夫 栗村
Yoshio Kurimura
芳夫 栗村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2015053161A priority Critical patent/JP6477073B2/en
Publication of JP2016173715A publication Critical patent/JP2016173715A/en
Application granted granted Critical
Publication of JP6477073B2 publication Critical patent/JP6477073B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

PROBLEM TO BE SOLVED: To perform install control for each contract of an application.SOLUTION: A server 10 manages information on an object in which at least one of a parent and a child is determined. A terminal device 30 acquires the installer of an application object including a first authority object generated as the descendant of the application object, acquires a second authority object, which is the descendant object of the application object, generated for the licensee of the application object, and controls execution of installation by an installer based on the first authority object and the second authority object included in the installer.SELECTED DRAWING: Figure 2

Description

本発明は、ライセンス管理システム、プログラム及びライセンス管理方法に関する。   The present invention relates to a license management system, a program, and a license management method.

アプリケーションのライセンスをデバイスに対して付与することや、ユーザに対して付与することが行われている。例えば、デバイスに依存せずにユーザに付与したライセンスを管理する技術としては、以下の特許文献1に記載の発明がある。   Application licenses are granted to devices and users. For example, as a technology for managing a license granted to a user without depending on a device, there is an invention described in Patent Document 1 below.

特開2004−135325号公報JP 2004-135325 A

アプリケーションのライセンス契約は、個々のユーザと結ぶものや、組織と結び、組織に組織内の個々のユーザに対するライセンス付与の権限を与えるもの等多様な形態があるため、そうした多様な形態におけるライセンスを統一的に管理、制御する必要がある。   There are various forms of license agreements for applications, such as those tied to individual users, and those tied to organizations, giving organizations the authority to grant licenses to individual users within the organization. Must be managed and controlled.

本発明の目的は、アプリケーションの個々の契約ごとのインストールおよび実行の制御が可能なライセンス管理システム、プログラム及びライセンス管理方法を提供することにある。   An object of the present invention is to provide a license management system, a program, and a license management method capable of controlling installation and execution of each contract of an application.

請求項1に係る発明は、アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するライセンス管理システムにおいて、ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成する生成手段と、前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信する手段と、前記検証トークンを受信する手段と、前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証手段と、前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、前記認証手段および前記検証手段の処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御手段と、を備えるライセンス管理システムである。   The invention according to claim 1 is a license management system that controls at least one of installation and execution of an application according to a license, and verifies the authenticity of the access token for authenticating the license relating to the user's application. Generating means for generating a verification token, means for receiving a license authentication request for the application, including the access token, means for receiving the verification token, and based on the access token, the user's An authentication unit that performs license authentication; a verification unit that verifies the authenticity of the access token based on the verification token; and an installation of the application based on the processing results of the authentication unit and the verification unit. And control means for controlling whether to allow at least one of Le and execution, a license management system comprising a.

請求項2に係る発明は、前記検証トークンを、前記アプリケーションおよび前記アプリケーションのインストーラの少なくともいずれか一方に差し替えできないように埋め込む手段、をさらに備えることを特徴とする請求項1に記載のライセンス管理システムである。   The invention according to claim 2 further comprises means for embedding the verification token so that it cannot be replaced with at least one of the application and an installer of the application. It is.

請求項3に係る発明は、前記アクセストークンを、前記アプリケーションのライセンス発行時に、ライセンス先であるユーザへ配信する配信手段、をさらに備えることを特徴とする請求項1に記載のライセンス管理システムである。   The invention according to claim 3 is the license management system according to claim 1, further comprising distribution means for distributing the access token to a license destination user when the license of the application is issued. .

請求項4に係る発明は、前記認証手段および前記検証手段は、前記アプリケーションのインストール時、前記アプリケーションの起動時、およびアプリケーション動作中の適宜のタイミングのうち少なくともいずれかのタイミングで、前記認証および前記検証の処理を行う、ことを特徴とする請求項1に記載のライセンス管理システムである。   According to a fourth aspect of the present invention, the authentication unit and the verification unit are configured so that the authentication and the verification unit are performed at least at any one of the appropriate timing during installation of the application, activation of the application, and operation of the application. The license management system according to claim 1, wherein verification processing is performed.

請求項5に係る発明は、それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記検証トークン表す検証トークンオブジェクトを、前記アプリケーションオブジェクトの子孫として生成する、ことを特徴とする請求項1に記載のライセンス管理システムである。   The invention according to claim 5 further includes management means for managing information of an object for which at least one of a parent and a child is defined, and the generation means generates an application object representing the application and represents the verification token The license management system according to claim 1, wherein a verification token object is generated as a descendant of the application object.

請求項6に係る発明は、それぞれ親または少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記ユーザを表すユーザオブジェクトを前記アプリケーションオブジェクトの子孫として生成し、前記ユーザオブジェクトの子孫として前記アクセストークンを表すアクセストークンオブジェクトを生成する、ことを特徴とする請求項1に記載のライセンス管理システムである。   The invention according to claim 6 further includes management means for managing information of an object for which a parent or at least one is determined, wherein the generation means generates an application object representing the application and a user object representing the user The license management system according to claim 1, further comprising: generating an access token object as a descendant of the application object and generating an access token object representing the access token as a descendant of the user object.

請求項7に係る発明は、それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記アプリケーションオブジェクトの子孫として前記アプリケーションのライセンス先の組織を表す組織オブジェクトを生成し、前記組織オブジェクトの子孫として、前記組織オブジェクトの子孫のオブジェクトの生成が可能な権限が定められた権限オブジェクトを生成し、前記権限オブジェクトに基づいて、前記組織オブジェクトの子孫として、前記ユーザを表すユーザオブジェクトと前記アクセストークンを表すアクセストークンオブジェクトとを生成する、ことを特徴とする、請求項1に記載のライセンス管理システムである。   The invention according to claim 7 further includes management means for managing information on an object for which at least one of a parent and a child is defined, and the generation means generates an application object representing the application, and Generating an organization object representing an organization to which the application is licensed as a descendant, generating an authority object in which an authority capable of generating a descendant object of the organization object is defined as a descendant of the organization object; The license management system according to claim 1, wherein a user object representing the user and an access token object representing the access token are generated as descendants of the organization object based on the license management system. It is a non.

請求項8に係る発明は、前記生成手段は、前記権限オブジェクトに基づいて、前記組織オブジェクトの子孫として、前記認証手段および前記検証手段による処理のログ情報を記憶するオブジェクトを生成する、ことを特徴とする請求項7に記載のライセンス管理システムである。   The invention according to claim 8 is characterized in that the generation means generates an object for storing log information of processing by the authentication means and the verification means as a descendant of the organization object based on the authority object. The license management system according to claim 7.

請求項9に係る発明は、アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するコンピュータを、ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成する手段と、前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信する手段と、前記検証トークンを受信する手段と、前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証手段と、前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、前記認証手段および前記検証手段の処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御手段として機能させるためのプログラムである。   The invention according to claim 9 is a computer for controlling at least one of installation and execution of an application in accordance with a license, an access token for authenticating a license relating to the application of a user, and verification of the authenticity of the access token. Generating a verification token, a means for receiving a request for activation of the application including the access token, a means for receiving the verification token, and activating the user based on the access token Authentication means for performing, verification means for verifying the authenticity of the access token based on the verification token, and installation and execution of the application based on the results of processing of the authentication means and the verification means Even without a program to function as a control means for controlling whether to allow the other.

請求項10に係る発明は、アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するライセンス管理システムによるライセンス管理方法において、ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成するステップと、前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信するステップと、前記検証トークンを受信するステップと、前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証ステップと、前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証ステップと、前記認証ステップおよび前記検証ステップの処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御ステップと、を備えるライセンス管理方法である。   According to a tenth aspect of the present invention, in a license management method by a license management system that controls at least one of installation and execution of an application according to a license, an access token for authenticating a license related to the application of a user, and the access token Generating a verification token for verifying authenticity; receiving a request for activation of the application including the access token; receiving the verification token; and based on the access token An authentication step for performing license authentication of the user; a verification step for verifying authenticity of the access token based on the verification token; and a process of the authentication step and the verification step Based on the results, a control step for controlling whether to allow at least one of installing and running the application, a license management method comprising.

請求項1、9および10に記載の発明によれば、アプリケーションのインストールおよび実行のうち少なくとも一方を、当該アプリケーションのライセンスのためのアクセストークンと、当該アクセストークンの真正性を検証するための検証トークンとに基づいて制御できる。   According to the invention of claim 1, 9 and 10, at least one of installation and execution of an application is performed by using an access token for the license of the application and a verification token for verifying the authenticity of the access token. And can be controlled based on

請求項2に記載の発明によれば、前記検証トークンを、前記アプリケーションおよび前記アプリケーションのインストーラの少なくともいずれか一方に差し替えできないように埋め込んだ形で使用できる。   According to the second aspect of the present invention, the verification token can be used in an embedded form so that it cannot be replaced with at least one of the application and the installer of the application.

請求項3に記載の発明によれば、前記アプリケーションのライセンス発行時に、ライセンス先であるユーザへ配信する配信することができる。   According to the third aspect of the present invention, when the license of the application is issued, it can be distributed to a user who is a license destination.

請求項4に記載の発明によれば、前記アプリケーションのインストール時、前記アプリケーションの起動時、およびアプリケーション動作中の適宜のタイミングのうち少なくともいずれかのタイミングで、前記認証および前記検証の処理を行うようにすることができる。   According to the fourth aspect of the present invention, the authentication and the verification processing are performed at least at any one of an appropriate timing during installation of the application, activation of the application, and operation of the application. Can be.

請求項5に記載の発明によれば、それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する仕組みの中で、前記アプリケーションおよび当該アプリケーションの検証トークンを表すオブジェクトを管理することができる。   According to the fifth aspect of the present invention, it is possible to manage the application and the object representing the verification token of the application in a mechanism for managing the information of the object in which at least one of the parent and the child is determined. .

請求項6に記載の発明によれば、アプリケーションのライセンス先の個々について付与される権限を独立して管理できる。   According to the sixth aspect of the present invention, the authority given to each of the license destinations of the application can be managed independently.

請求項7に記載の発明によれば、アプリケーションのライセンス先の組織に、組織に属するユーザに対するライセンスを付与させることができる。   According to the seventh aspect of the present invention, a license for a user belonging to an organization can be granted to the organization to which the application is licensed.

請求項8に記載の発明によれば、組織に属するユーザのログ情報を組織ごとに管理できる。   According to the eighth aspect of the present invention, log information of users belonging to an organization can be managed for each organization.

本実施形態に係る情報処理システムのシステム構成図である。It is a system configuration figure of the information processing system concerning this embodiment. 情報処理システムの機能ブロック図である。It is a functional block diagram of an information processing system. プロトタイプベースのオブジェクトの具体例を示す図である。It is a figure which shows the specific example of a prototype-based object. オブジェクト管理テーブルの一例を示す図である。It is a figure which shows an example of an object management table. バリュー管理テーブルの一例を示す図である。It is a figure which shows an example of a value management table. アプリケーションオブジェクトの生成処理のシーケンス図である。FIG. 10 is a sequence diagram of application object generation processing. ライセンス先のユーザオブジェクトの生成処理のシーケンス図である。It is a sequence diagram of a generation process of a license-destination user object. インストール制御処理のシーケンス図である。It is a sequence diagram of an installation control process. テナントオブジェクトの生成処理のシーケンス図である。FIG. 10 is a sequence diagram of tenant object generation processing. テナント内ユーザオブジェクトの生成処理のシーケンス図である。It is a sequence diagram of a generation process of a tenant user object. テナントオブジェクトの子孫として生成される検証ログを記憶するオブジェクトの一例を示す図である。It is a figure which shows an example of the object which memorize | stores the verification log produced | generated as a descendant of a tenant object.

以下、本発明を実施するための実施の形態(以下、実施形態という)を、図面に基づいて説明する。   Hereinafter, an embodiment for carrying out the present invention (hereinafter referred to as an embodiment) will be described with reference to the drawings.

[1.システム構成の説明]
図1には、本実施形態に係る情報処理システム1のシステム構成図を示した。図1に示されるように、情報処理システム1は、サーバ10と、第1端末装置30−1、第2端末装置30−2、第3端末装置30−3、クラウドサービスサーバ50とを含み、サーバ10と第1端末装置30−1、第2端末装置30−2、第3端末装置30−3、クラウドサービスサーバ50とはそれぞれネットワーク2を介してデータ通信可能に接続される。
[1. Explanation of system configuration]
FIG. 1 shows a system configuration diagram of an information processing system 1 according to the present embodiment. As shown in FIG. 1, the information processing system 1 includes a server 10, a first terminal device 30-1, a second terminal device 30-2, a third terminal device 30-3, and a cloud service server 50. The server 10 is connected to the first terminal device 30-1, the second terminal device 30-2, the third terminal device 30-3, and the cloud service server 50 via the network 2 so that data communication is possible.

ここで、第1端末装置30−1は、アプリケーションのベンダー(ライセンサー)が利用する装置とし、第2端末装置30−2は、アプリケーションのライセンシーが利用する装置とし、第3端末装置30−3は、アプリケーションをテナント契約するテナント管理者が利用する装置とする。なお、ライセンシーは、個人のユーザである場合、テナント(会社等の組織)である場合がある。ここで、ライセンシーがテナントである場合には、契約の範囲内において、テナント側が、テナントに属するユーザに対してさらにライセンスを付与することがある。本実施形態に係る情報処理システム1は、上記の様々なライセンス形態にも柔軟に対応可能となっている。   Here, the first terminal device 30-1 is a device used by an application vendor (licensor), the second terminal device 30-2 is a device used by an application licensee, and the third terminal device 30-3. Is a device used by a tenant administrator who makes a tenant contract for an application. In addition, when the licensee is an individual user, the licensee may be a tenant (an organization such as a company). Here, if the licensee is a tenant, the tenant may give a license to users belonging to the tenant within the scope of the contract. The information processing system 1 according to the present embodiment can flexibly cope with the various license forms described above.

また、以下において、第1端末装置30−1、第2端末装置30−2、第3端末装置30−3において共通する内容については端末装置30と表記して説明することがある。   In the following description, contents common to the first terminal device 30-1, the second terminal device 30-2, and the third terminal device 30-3 may be described as the terminal device 30.

また、図1に示されるように、サーバ10は、ハードウェア構成の一例として、制御部11、記憶部12、通信部13を備える。   Further, as illustrated in FIG. 1, the server 10 includes a control unit 11, a storage unit 12, and a communication unit 13 as an example of a hardware configuration.

制御部11は、CPU(Central Processing Unit)を含み、記憶部12に記憶されたプログラムに基づいて、各種の演算処理を実行するとともにサーバ10の各部を制御する。   The control unit 11 includes a CPU (Central Processing Unit), executes various arithmetic processes based on a program stored in the storage unit 12, and controls each unit of the server 10.

記憶部12は、サーバ10のオペレーティングシステム等の制御プログラムやデータを記憶するほか、制御部11のワークメモリとしても用いられる。プログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体に格納された状態でサーバ10に供給されてもよいし、インターネット等のデータ通信網を介してサーバ10に供給されてもよい。   The storage unit 12 stores a control program such as an operating system of the server 10 and data, and is also used as a work memory of the control unit 11. The program may be supplied to the server 10 in a state stored in an information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or may be supplied to the server 10 via a data communication network such as the Internet. It may be supplied.

通信部13は、例えばネットワークインターフェースカード(NIC)を含み、NICを介してネットワーク2に接続して、ネットワーク2に接続される端末装置等と通信する。   The communication unit 13 includes, for example, a network interface card (NIC), is connected to the network 2 via the NIC, and communicates with a terminal device or the like connected to the network 2.

また、図1に示されるように、端末装置30は、ハードウェア構成の一例として、制御部31、記憶部32、通信部33、入力部34、及び表示部35を備える。   As illustrated in FIG. 1, the terminal device 30 includes a control unit 31, a storage unit 32, a communication unit 33, an input unit 34, and a display unit 35 as an example of a hardware configuration.

制御部31は、CPU(Central Processing Unit)を含み、記憶部32に記憶されたプログラムに基づいて、各種の演算処理を実行するとともに端末装置30の各部を制御する。   The control unit 31 includes a CPU (Central Processing Unit), executes various arithmetic processes based on a program stored in the storage unit 32, and controls each unit of the terminal device 30.

記憶部32は、端末装置30のオペレーティングシステム等の制御プログラムやデータを記憶するほか、制御部31のワークメモリとしても用いられる。プログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体に格納された状態で端末装置30に供給されてもよいし、インターネット等のデータ通信網を介して端末装置30に供給されてもよい。   The storage unit 32 stores a control program such as an operating system of the terminal device 30 and data, and is also used as a work memory of the control unit 31. The program may be supplied to the terminal device 30 in a state stored in an information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, a flash memory, or the terminal device via a data communication network such as the Internet. 30 may be supplied.

通信部33は、例えばネットワークインターフェースカード(NIC)を含み、NICを介してネットワーク2に接続して、ネットワーク2に接続される端末装置等と通信する。   The communication unit 33 includes, for example, a network interface card (NIC), is connected to the network 2 via the NIC, and communicates with a terminal device or the like connected to the network 2.

入力部34は、例えばキーボード、マウス、タッチパネル等の入力デバイスからユーザの操作入力を受け付ける。   The input unit 34 receives a user operation input from an input device such as a keyboard, a mouse, or a touch panel.

表示部35は、例えば液晶ディスプレイを含み、制御部31により生成されるグラフィックイメージを表示する。   The display unit 35 includes a liquid crystal display, for example, and displays a graphic image generated by the control unit 31.

なお、入力部34及び表示部35は端末装置30の外部装置として設けられることとしても構わない。   Note that the input unit 34 and the display unit 35 may be provided as external devices of the terminal device 30.

本実施形態では、サーバ10は、プロトタイプベースのオブジェクトを管理する。ここで、プロトタイプベースのオブジェクトとは、プロトタイプベースのオブジェクトの集合に唯一存在するルートオブジェクトを除けば、唯一つの親のオブジェクト(プロトタイプ)を持つオブジェクトのことである。なお、ルートオブジェクトは自身のプロトタイプを持たない。   In the present embodiment, the server 10 manages prototype-based objects. Here, the prototype-based object is an object having only one parent object (prototype) except for a root object that exists only in the set of prototype-based objects. Note that the root object does not have its own prototype.

また、オブジェクトAがオブジェクトBのプロトタイプであるとき、オブジェクトBはオブジェクトAのアーティファクトであるともいう。オブジェクト間のプロトタイプ関係により、プロトタイプベースのオブジェクト全体の集合は木構造で表現される。また、オブジェクトにより構成される木構造を破壊しないならば、プロトタイプを再接続することで木構造を変形することが可能である。   Further, when the object A is a prototype of the object B, the object B is also referred to as an artifact of the object A. Due to the prototype relationship between objects, the entire set of prototype-based objects is represented in a tree structure. If the tree structure constituted by objects is not destroyed, the tree structure can be deformed by reconnecting the prototype.

さらに、サーバ10で管理するオブジェクトには、属性及び属性値を持たせることができる。REST(REpresentational State Transfer)アーキテクチャスタイルにおいては、オブジェクトをリソース、値を表現と呼ぶこともある。オブジェクトには、単にオブジェクト識別子とプロトタイプのみからなる純粋なアイデンティティのみを表すもの、任意のコンテント型の値を持つデータを表現するもの、アクセス資格を証明するクレデンシャルであるアクセストークン、あるいはオブジェクトの所有者であるリソースオーナーやリソースオーナーの認可のもとにオブジェクトへのアクセスを行うアプリケーション(クライアント)のようなエンティティを表すものが含まれることとしてよい。そして、これらのオブジェクトが1つの木構造の中に含まれる。なお、上記のアクセストークンは、権限情報が関連付けられるオブジェクトともいえる。   Further, an object managed by the server 10 can have an attribute and an attribute value. In the REST (REpresentational State Transfer) architectural style, an object is sometimes called a resource and a value is called an expression. An object can be simply a pure identity consisting only of an object identifier and prototype, representing data with a value of any content type, an access token that is a credential that certifies access, or the owner of the object It may be included that represents an entity such as a resource owner or an application (client) that accesses an object under the authorization of the resource owner. These objects are included in one tree structure. Note that the above access token can also be said to be an object associated with authority information.

本実施形態に係る情報処理システム1では、サーバ10は、アクセストークンを提示したリクエストを受け付け、アクセストークンが有効と検証された場合に、アクセストークンに基づき特定された権限の範囲で、上記受け付けたリクエストを処理する。例えば、アクセストークンにより特定される権限の範囲は、オブジェクトを作成(追加)、内容の参照、更新、削除等のいずれかを認可(又は不認可)したものである。また例えば、サーバ10は、端末装置30から受け付けたリクエストに従って、管理するオブジェクトの追加、更新、情報の読み出し、削除等を実行する。   In the information processing system 1 according to the present embodiment, the server 10 receives a request that presents an access token, and when the access token is verified to be valid, the server 10 receives the request within the authority range specified based on the access token. Process the request. For example, the range of authority specified by the access token is obtained by authorizing (or disapproving) one of object creation (addition), content reference, update, and deletion. Further, for example, the server 10 executes addition, update, information reading, deletion, and the like of the managed object in accordance with the request received from the terminal device 30.

以下では、情報処理システム1において実現される機能の一例について説明する。   Below, an example of the function implement | achieved in the information processing system 1 is demonstrated.

[2.情報処理システム1において実現される機能の説明]
次に、図2に示される情報処理システム1の機能ブロック図に基づき、サーバ10と端末装置30に備えられる機能の一例について説明する。
[2. Description of functions realized in information processing system 1]
Next, an example of functions provided in the server 10 and the terminal device 30 will be described based on a functional block diagram of the information processing system 1 shown in FIG.

[2.1.サーバ10の機能]
図2に示されるように、サーバ10は、データ格納部110、リクエスト受付部120、権限オブジェクト検証部130、オブジェクト管理部140、リクエスト処理部150、処理結果提供部160を備える。
[2.1. Function of server 10]
As illustrated in FIG. 2, the server 10 includes a data storage unit 110, a request reception unit 120, an authority object verification unit 130, an object management unit 140, a request processing unit 150, and a processing result providing unit 160.

サーバ10に備えられる上記の各部の機能は、サーバ10に備えられる制御部11が、記憶部12やコンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によってサーバ10に供給されることとしてもよいし、インターネット等のデータ通信網を介してサーバ10に供給されることとしてもよい。以下、サーバ10に備えられる各部の機能の詳細について説明する。   The functions of the above-described units included in the server 10 may be realized by the control unit 11 included in the server 10 reading and executing a program stored in the storage unit 12 or a computer-readable information storage medium. . The program may be supplied to the server 10 by an information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or may be supplied to the server 10 via a data communication network such as the Internet. It is also good to do. Hereinafter, the details of the function of each unit provided in the server 10 will be described.

データ格納部110は、プロトタイプベースのオブジェクトの情報を管理する。ここで、プロトタイプベースのオブジェクトには、権限情報が関連付けられたアクセストークンと呼ばれる権限オブジェクトを含む。プロトタイプベースのオブジェクトは変更可能(ミュータブル)なオブジェクトであり、典型的にはランダムに生成されたIDで識別される。   The data storage unit 110 manages information on prototype-based objects. Here, the prototype-based object includes an authority object called an access token associated with authority information. Prototype-based objects are mutable objects and are typically identified by randomly generated IDs.

図3には、サーバ10により管理されるプロトタイプベースのオブジェクトの具体例を示した。図3に示される例においては、プロトタイプベースのオブジェクトの親子関係を接続した木構造データを示している。   FIG. 3 shows a specific example of a prototype-based object managed by the server 10. In the example shown in FIG. 3, tree structure data in which a parent-child relationship of prototype-based objects is connected is shown.

図3に示されるように、「root」オブジェクトD1の子オブジェクトとして、「api」オブジェクトD11、「vendor」オブジェクトD12、が設けられている。さらに、「api」オブジェクトD11の子オブジェクトとして、「authLicenseScope」オブジェクトD111、「verifyTokenScope」オブジェクトD112が設けられている。   As shown in FIG. 3, an “api” object D11 and a “vendor” object D12 are provided as child objects of the “root” object D1. Furthermore, an “authLicenseScope” object D111 and a “verifyTokenScope” object D112 are provided as child objects of the “api” object D11.

また、「vendor」オブジェクトD12の子オブジェクトとして、「application」オブジェクトD121、「vendorToken」オブジェクトD122が設けられている。   Further, an “application” object D121 and a “vendorToken” object D122 are provided as child objects of the “vendor” object D12.

また、「application」オブジェクトD121の子オブジェクトとして、「user」オブジェクトD1211、「tenant」オブジェクトD1212、「verifyToken」オブジェクトD1213、「applicationToken」オブジェクトD1214が設けられている。   Further, a “user” object D1211, a “tenant” object D1212, a “verifyToken” object D1213, and an “applicationToken” object D1214 are provided as child objects of the “application” object D121.

また、「user」オブジェクトD1211の子オブジェクトとして、「licenseToken」オブジェクトD12111が設けられている。   Further, a “licenseToken” object D12111 is provided as a child object of the “user” object D1211.

また、「tenant」オブジェクトD1212の子オブジェクトとして、「userInTenant」オブジェクトD12121、「tenantToken」オブジェクトD12122が設けられている。   Further, a “userInTenant” object D12121 and a “tenantToken” object D12122 are provided as child objects of the “tenant” object D1212.

また、「userInTenant」オブジェクトD12121の子オブジェクトとして、「licenseToken」オブジェクトD121211が設けられている。   Further, a “licenseToken” object D12111 is provided as a child object of the “userInTenant” object D12121.

図3に示した例において、「authLicenseScope」オブジェクトD111はライセンス認証を許可するスコープ、「verifyTokenScope」オブジェクトD112はアクセストークンの検証を許可するスコープに相当する。   In the example shown in FIG. 3, an “authLicenseScope” object D111 corresponds to a scope that permits license authentication, and a “verifyTokenScope” object D112 corresponds to a scope that permits verification of an access token.

図3に示されるオブジェクトのうち、「application」オブジェクトD121は、インストールの対象となるアプリケーションに相当する。また、「user」オブジェクトD1211は、インストールの対象となるアプリケーションのライセンシーのユーザに相当する。そして、「licenseToken」オブジェクトD12111は、ユーザに付与されたライセンスに相当する。   Of the objects shown in FIG. 3, an “application” object D121 corresponds to an application to be installed. The “user” object D1211 corresponds to the licensee user of the application to be installed. The “licenseToken” object D12111 corresponds to a license granted to the user.

また、図3に示されるオブジェクトのうち、「verifyToken」オブジェクトD1213は、「application」オブジェクトD121の作成時に生成され、インストール対象となるアプリケーションのインストーラに埋め込まれるアクセストークンとなる。   Also, among the objects shown in FIG. 3, a “verifyToken” object D1213 is generated when the “application” object D121 is created, and becomes an access token embedded in the installer of the application to be installed.

また、図3に示されるオブジェクトのうち、「tenant」オブジェクトD1212は、アプリケーションのテナント契約者に相当する。そして、「userInTenant」オブジェクトD12121は、テナントに属するアプリケーションのライセンシーに相当する。そして、「licenseToken」オブジェクトD121211は、「userInTenant」オブジェクトD12121に付与されたライセンスに相当する。   Also, among the objects shown in FIG. 3, a “tenant” object D1212 corresponds to a tenant contractor of the application. The “userInTenant” object D12121 corresponds to the licensee of the application belonging to the tenant. The “licenseToken” object D121211 corresponds to the license granted to the “userInTenant” object D12121.

以上のプロトタイプベースのオブジェクトの関係は、例えば以下に示すオブジェクト管理テーブル111とバリュー管理テーブル112に記憶されるデータにより管理可能となっている。   The relationship between the above prototype-based objects can be managed by data stored in the object management table 111 and the value management table 112 shown below, for example.

すなわち、本実施形態では、データ格納部110には、オブジェクト管理テーブル111と、バリュー管理テーブル112が含まれ、プロトタイプベースのオブジェクトの情報を、オブジェクト管理テーブル111と、バリュー管理テーブル112に格納して管理している。   That is, in the present embodiment, the data storage unit 110 includes an object management table 111 and a value management table 112, and information on prototype-based objects is stored in the object management table 111 and the value management table 112. I manage.

図4には、オブジェクト管理テーブル111の一例を、そして図5にはバリュー管理テーブル112の一例をそれぞれ示した。   FIG. 4 shows an example of the object management table 111, and FIG. 5 shows an example of the value management table 112.

図4に示されるように、オブジェクト管理テーブル111には、プロトタイプベースのオブジェクトの識別情報であるオブジェクトID、オブジェクトの親(プロトタイプ)オブジェクトの識別情報であるプロトタイプID、オブジェクトが有効化されているか否か(Tが有効、Fが無効)を示す有効化フラグ、オブジェクトの属性情報が関連づけて記憶される。また、オブジェクトの属性情報には、オブジェクトの型を示すtype、オブジェクトのデータ内容を格納したデータオブジェクトの識別情報を表すetag、オブジェクトの名称を格納したname、オブジェクトの生成日時を表すtimeを含む。なお、プロトタイプベースのオブジェクトのデータ構成は、図4に示された例に限定されるものではなく、上述した要素以外の要素を含み構成されていても構わない。   As shown in FIG. 4, in the object management table 111, an object ID that is identification information of a prototype-based object, a prototype ID that is identification information of a parent (prototype) object of the object, and whether or not the object is validated. (T is valid, F is invalid), and the attribute information of the object is stored in association with each other. The object attribute information includes a type indicating the type of the object, an tag indicating the identification information of the data object storing the data content of the object, a name storing the name of the object, and a time indicating the generation date and time of the object. Note that the data structure of the prototype-based object is not limited to the example shown in FIG. 4 and may include elements other than the elements described above.

また、図5に示されるように、バリュー管理テーブル112には、etagの値に関連づけて、etagの内容を格納したバリューが関連づけられている。   Also, as shown in FIG. 5, the value management table 112 is associated with a value storing the contents of the tag in association with the value of the tag.

例えば、アクセストークンであればetagのバリューとして、{“owner”: owner(オーナー)のオブジェクトID、“client”: client(クライアント)のオブジェクトID、“スコープ”:認可された処理の範囲}の形式の情報を含む。本実施形態に係る情報処理システム1では、端末装置から受け付ける処理要求にはアクセストークンが添付されるが、ここで、アクセストークンを検証することにより、オーナー、クライアント、スコープの情報が特定される。なお、オーナーが処理のリクエスタ、クライアントが処理の代理リクエスタとして扱われる。   For example, in the case of an access token, as the value of an tag, the format of {“owner”: object ID of owner (owner), “client”: object ID of client (client), “scope”: scope of authorized processing} Contains information. In the information processing system 1 according to the present embodiment, an access token is attached to a processing request received from a terminal device. Here, the owner, client, and scope information are specified by verifying the access token. The owner is treated as a process requester, and the client is treated as a process requester.

リクエスト受付部120は、端末装置30からリクエストを受け付ける。例えば、リクエスト受付部120は、端末装置30からデータ格納部110で管理されるオブジェクトの処理に関するリクエストを受け付けることとしてよい。なお、リクエスト受付部120は、端末装置30からリクエストとともにリクエストに係るアクセストークンの情報を受け付けることとしてよい。この際、リクエスト受付部120は、例えば端末装置30からHTTPリクエストの形式でリクエストを受け付けることとしてよい。   The request receiving unit 120 receives a request from the terminal device 30. For example, the request receiving unit 120 may receive a request regarding processing of an object managed by the data storage unit 110 from the terminal device 30. Note that the request receiving unit 120 may receive the access token information related to the request from the terminal device 30 together with the request. At this time, the request reception unit 120 may receive a request from the terminal device 30 in the form of an HTTP request, for example.

権限オブジェクト検証部130は、リクエスト受付部120で受け付けたリクエストに係る権限オブジェクト(アクセストークン)の情報を取得し、取得した権限オブジェクトを検証する。例えば、権限情報取得部13は、アクセストークンの情報は、HTTPリクエストのAuthorizationフィールドから得てもよいし、アクセストークンの情報を含むクッキーが存在すれば、クッキーから得てもよい。   The authority object verification unit 130 acquires information on the authority object (access token) related to the request received by the request reception unit 120 and verifies the acquired authority object. For example, the authority information acquisition unit 13 may obtain the access token information from the Authorization field of the HTTP request, or from a cookie if there is a cookie containing the access token information.

権限オブジェクト検証部130は、上記取得したアクセストークン(権限オブジェクト)の情報が正当なものであるか否かを検証する。以下、権限オブジェクト検証部130による検証処理の具体例について説明する。   The authority object verification unit 130 verifies whether or not the acquired information of the access token (authorization object) is valid. Hereinafter, a specific example of verification processing by the authority object verification unit 130 will be described.

まず、権限オブジェクト検証部130は、権限情報取得部13で取得されたアクセストークンのIDが、データ格納部110で管理するオブジェクト管理テーブル111に含まれているか否か(第1の条件の適否)を判断し、含まれていない場合には検証失敗と判断する。   First, the authority object verification unit 130 determines whether the ID of the access token acquired by the authority information acquisition unit 13 is included in the object management table 111 managed by the data storage unit 110 (appropriateness of the first condition). If it is not included, it is determined that the verification has failed.

次に、権限オブジェクト検証部130は、第1の条件が満たされている場合に、アクセストークンのデータ形式(タイプ)が所定の型(すなわち、application/json)であるか否か(第2の条件の適否)を判断し、所定の型でない場合には検証失敗と判断する。すなわち、アクセストークンのetagについてバリュー管理テーブル112に記憶されるバリューが所定の型(owner、client、scopeを指定したデータ形式)でない場合には、検証失敗と判断する。   Next, the authority object verification unit 130 determines whether the data format (type) of the access token is a predetermined type (that is, application / json) when the first condition is satisfied (second application / json). If the condition is not a predetermined type, it is determined that the verification has failed. That is, if the value stored in the value management table 112 for the access token etag is not a predetermined type (a data format designating owner, client, scope), it is determined that the verification has failed.

次に、権限オブジェクト検証部130は、第2の条件が満たされている場合に、アクセストークンのバリューの値(owner、client、scopeの値)を取得し、owner、client、scopeのそれぞれの値がデータ格納部110で管理されるデータであるか否か(第3の条件の適否)を判断し、いずれかの値がデータ格納部110で管理されるデータでない場合には検証失敗と判断する。   Next, when the second condition is satisfied, the authority object verification unit 130 acquires the value of the access token (the value of owner, client, and scope), and the value of each of the owner, client, and scope Is data managed by the data storage unit 110 (appropriateness of the third condition), and if any value is not data managed by the data storage unit 110, it is determined that the verification has failed. .

次に、権限オブジェクト検証部130は、第3の条件が満足されている場合に、データ格納部110からアクセストークンのプロトタイプの情報を取得し、アクセストークンのプロトタイプが、アクセストークンのオーナーと一致しているか、オーナーのプロトタイプチェーン(オーナーの親、さらにその親へとオーナーの祖先を順に接続した経路)に含まれるか否か(第4の条件の適否)を判断し、上記のいずれにも合致しない場合には検証失敗と判断する。なお、以上の第1乃至第4の条件を満足した場合には、権限オブジェクト検証部130は、アクセストークンの検証を成功と判断することとしてよい。   Next, when the third condition is satisfied, the authority object verification unit 130 acquires the access token prototype information from the data storage unit 110, and the access token prototype matches the access token owner. And whether it is included in the owner's prototype chain (the owner's parent and then the route connecting the owner's ancestors in turn) (matching the fourth condition), and matches any of the above If not, it is determined that the verification has failed. When the first to fourth conditions are satisfied, the authority object verification unit 130 may determine that the access token verification is successful.

権限オブジェクト検証部130は、上記の検証の結果と、アクセストークンにより認可されているスコープ(処理の範囲)の情報と、受け付けたリクエストをリクエスト処理部150に通知する。   The authority object verification unit 130 notifies the request processing unit 150 of the verification result, information on the scope (processing range) authorized by the access token, and the received request.

リクエスト処理部150は、リクエスト受付部120で受け付けたリクエストについて取得したアクセストークン(権限オブジェクト)についての権限オブジェクト検証部130から通知された検証結果と、該受け付けたアクセストークンについて認可されたスコープ(処理の範囲)に基づいて、リクエスト受付部120で受け付けたリクエストの処理を制御する。例えば、リクエスト処理部150は、リクエスト受付部120で受け付けたリクエストに係るアクセストークンについての検証結果が検証失敗である場合には、リクエストに係る処理を不受理としてエラーを処理結果提供部160に出力することとしてよい。また、リクエスト処理部150は、リクエスト受付部120で受け付けたリクエストに係るアクセストークンについての検証結果が検証成功である場合には、リクエスト受付部120で受け付けたリクエストを、該リクエストに関して受け付けたアクセストークンについて認可されたスコープに基づいて処理し、その実行結果を処理結果提供部160に出力する。   The request processing unit 150 confirms the verification result notified from the authority object verification unit 130 regarding the access token (authorization object) acquired for the request received by the request reception unit 120, and the scope (process) processed for the received access token. The request receiving unit 120 controls the processing of the request received based on For example, if the verification result for the access token related to the request received by the request receiving unit 120 is a verification failure, the request processing unit 150 outputs an error to the processing result providing unit 160 by rejecting the processing related to the request. It is good to do. Further, when the verification result for the access token related to the request received by the request receiving unit 120 is successful, the request processing unit 150 determines that the request received by the request receiving unit 120 is the access token received for the request. And the execution result is output to the processing result providing unit 160.

例えば、リクエスト処理部150は、受け付けたリクエストに基づいて、オブジェクト管理部140にオブジェクトの生成、読み出し、更新、削除を依頼し、オブジェクト管理部140から処理結果を受け取る。   For example, the request processing unit 150 requests the object management unit 140 to create, read, update, and delete an object based on the received request, and receives a processing result from the object management unit 140.

具体的には、リクエスト処理部150は、端末装置30から受け付けたリクエストに基づいて、アプリケーションオブジェクトの生成、アプリケーションオブジェクトの子オブジェクトでありアプリケーションインストール時のライセンストークンの検証を行う権限が定められた検証用トークンの生成、ライセンシーに相当するユーザやテナントに対応するライセンシーオブジェクトの生成、ライセンシーオブジェクトの子でありライセンシーに付与するライセンスを示すライセンストークンの生成等をオブジェクト管理部140に実行させる。   Specifically, based on the request received from the terminal device 30, the request processing unit 150 generates verification of the application object, and verification with a right to verify the license token at the time of application installation that is a child object of the application object. The object management unit 140 is caused to generate a token for the user, generate a licensee object corresponding to the user or tenant corresponding to the licensee, generate a license token indicating a license that is a child of the licensee object and is granted to the licensee, and the like.

例えば、図3における「application」オブジェクトD121が上記の「アプリケーションオブジェクト」に相当し、「verifyToken」オブジェクトD1213が上記の「検証用トークン」に相当する。また、図3における「user」オブジェクトD1211や「tenant」オブジェクトD1212が上記の「ライセンシーオブジェクト」に相当し、「license」オブジェクトD12111,D121211が上記の「ライセンストークン」に相当する。   For example, the “application” object D121 in FIG. 3 corresponds to the “application object”, and the “verifyToken” object D1213 corresponds to the “verification token”. Further, the “user” object D1211 and the “tenant” object D1212 in FIG. 3 correspond to the above “licensey object”, and the “license” objects D12111 and D121211 correspond to the above “license token”.

例えば、本実施形態においては、リクエスト処理部150は、アプリケーションベンダー内の管理者が操作する第1端末装置30−1から受けつけた要求に応じて、上記のアプリケーションオブジェクト、検証用トークン、ライセンシーオブジェクト、ライセンストークンを生成する制御を実行することとしてよい。   For example, in the present embodiment, the request processing unit 150 responds to a request received from the first terminal device 30-1 operated by an administrator in the application vendor, and the above application object, verification token, licensee object, Control for generating a license token may be executed.

オブジェクト管理部140は、データ格納部110により管理されるオブジェクトの情報を管理する。例えば、オブジェクト管理部140は、リクエスト処理部150から受け付ける要求に基づいて、オブジェクト管理テーブル111、バリュー管理テーブル112に対して情報の追加、読み出し、更新、削除等の処理を実行する。   The object management unit 140 manages information on objects managed by the data storage unit 110. For example, based on a request received from the request processing unit 150, the object management unit 140 executes processing such as information addition, reading, update, and deletion with respect to the object management table 111 and the value management table 112.

また、オブジェクト管理部140は、配信用オブジェクト生成部を含み、リクエスト処理部150から受け付ける配信用オブジェクトの生成要求に基づいて、マスターデータの子(又は子孫)である配信用オブジェクトを生成する。   The object management unit 140 includes a distribution object generation unit, and generates a distribution object that is a child (or descendant) of the master data based on a distribution object generation request received from the request processing unit 150.

また、オブジェクト管理部140は、リクエスト処理部150から受け付ける配信用オブジェクトの読み出し要求に基づいて、配信用オブジェクトの情報を読み出す。ここで、オブジェクト管理部140は、配信用オブジェクトの有していないデータ項目については、配信用オブジェクトの親(又は先祖)のオブジェクトのデータ項目の情報を参照し、配信用オブジェクトの情報として返す。   Further, the object management unit 140 reads out information on the distribution object based on the distribution object read request received from the request processing unit 150. Here, the object management unit 140 refers to the data item information of the parent (or ancestor) object of the distribution object and returns the data item that the distribution object does not have as the distribution object information.

また、オブジェクト管理部140は、リクエスト処理部150から受け付ける配信用オブジェクトの更新要求に基づいて、配信用オブジェクトの内容を更新する。また、オブジェクト管理部140は、リクエスト処理部150から受け付ける配信用オブジェクトの削除要求に基づいて、配信用オブジェクトを削除する。   Further, the object management unit 140 updates the content of the distribution object based on the distribution object update request received from the request processing unit 150. Further, the object management unit 140 deletes the distribution object based on the distribution object deletion request received from the request processing unit 150.

処理結果提供部160は、リクエスト処理部150による処理結果を、リクエストの要求元である端末装置30に対して提供する。   The processing result providing unit 160 provides the processing result by the request processing unit 150 to the terminal device 30 that is a request source of the request.

例えば、本実施形態においては、処理結果提供部160は、第1端末装置30−1に対して、第1端末装置30−1から受け付けた要求に基づいて生成したアプリケーションオブジェクト、検証用トークン、ライセンシーオブジェクト、ライセンストークンの情報(オブジェクトID等)を提供することとしてよい。   For example, in the present embodiment, the processing result providing unit 160 sends the application object, the verification token, and the licensee generated based on the request received from the first terminal device 30-1 to the first terminal device 30-1. Information on the object and license token (object ID, etc.) may be provided.

そして、第1端末装置30−1は、アプリケーションをインストールするためのインストーラの中に、上記提供を受けた検証用トークンを書き換え不可の状態で書き込むことで、アプリケーションのインストーラに、検証用トークンを埋め込むこととしてよい。そして、アプリケーションのベンダーは、上記検証用トークンが埋め込まれたインストーラを、ライセンシー側の装置(第2端末装置30−2や第3端末装置30−3等)に提供することとしてよい。なお、インストーラの提供は、インストーラを格納した情報記憶媒体を配布したり、第1端末装置30−1又は他の装置から、ライセンシー側の装置にネットワーク経由で配信したりすることとしてよい。   The first terminal device 30-1 then embeds the verification token in the installer of the application by writing the verification token provided in the installer for installing the application in a non-rewritable state. That's good. Then, the application vendor may provide the installer in which the verification token is embedded to the licensee side device (second terminal device 30-2, third terminal device 30-3, etc.). The installer may be provided by distributing an information storage medium storing the installer, or distributing the information storage medium from the first terminal device 30-1 or another device to the licensee side device via a network.

また、第1端末装置30−1は、ライセンシーとのライセンス契約の締結(例えば課金処理の完了)を契機として、ライセンシーオブジェクト及びライセンストークンの生成をサーバに要求し、それにより生成されたライセンシーオブジェクトとライセンストークンの情報を取得する。そして、第1端末装置30−1は、ライセンシー側の装置(第2端末装置30−2や第3端末装置30−3等)に、ライセンストークンの情報を提供する。   Further, the first terminal device 30-1 requests the server to generate a licensee object and a license token upon the conclusion of a license contract with the licensee (for example, completion of the charging process), and the licensee object generated thereby Get license token information. Then, the first terminal device 30-1 provides license token information to the device on the licensee side (second terminal device 30-2, third terminal device 30-3, etc.).

そして、ライセンシー側の装置では、検証用トークンが埋め込まれたインストーラと、ライセンストークンに基づいて、アプリケーションのインストールを実行する。以下においては、図2に基づき、上記のインストール処理に関し端末装置30に備えられる機能について説明する。   Then, the licensee side apparatus executes application installation based on the installer in which the verification token is embedded and the license token. Below, based on FIG. 2, the function with which the terminal device 30 is provided regarding said installation process is demonstrated.

[2.2.端末装置30の機能]
図2に示されるように、端末装置30は、インストール制御部310、ライセンス認証要求部320、トークン検証要求部330、処理結果取得部340を備える。なお、以下説明する例においては、端末装置30の記憶部32には、検証用トークンが埋め込まれたインストーラと、ライセンストークンの情報が記憶されていることとする。
[2.2. Function of terminal device 30]
As illustrated in FIG. 2, the terminal device 30 includes an installation control unit 310, a license authentication request unit 320, a token verification request unit 330, and a processing result acquisition unit 340. In the example described below, the storage unit 32 of the terminal device 30 stores the installer in which the verification token is embedded and the license token information.

端末装置30に備えられる上記の各部の機能は、端末装置30に備えられる制御部31が、記憶部32やコンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によって端末装置30に供給されることとしてもよいし、インターネット等のデータ通信網を介して端末装置30に供給されることとしてもよい。以下、端末装置30に備えられる各部の機能の詳細について説明する。   The function of each unit provided in the terminal device 30 is realized by the control unit 31 provided in the terminal device 30 reading and executing a program stored in the storage unit 32 or a computer-readable information storage medium. As good as The program may be supplied to the terminal device 30 by an information storage medium such as an optical disk, a magnetic disk, a magnetic tape, a magneto-optical disk, or a flash memory, or may be supplied to the terminal device 30 via a data communication network such as the Internet. It may be supplied. Hereinafter, the details of the functions of the units included in the terminal device 30 will be described.

インストール制御部310は、主に端末装置30の制御部31及び記憶部32により実現され、検証用トークンが埋め込まれたインストーラと、ライセンストークンに基づくインストール処理を制御する。   The installation control unit 310 is realized mainly by the control unit 31 and the storage unit 32 of the terminal device 30, and controls the installation process based on the installer in which the verification token is embedded and the license token.

インストール制御部310は、ライセンストークンに基づくライセンス認証の実行をライセンス認証要求部320に指示する。また、インストール制御部310は、インストーラに埋め込まれた検証用トークンに基づくトークン検証の実行をトークン検証要求部330に指示する。   The installation control unit 310 instructs the license authentication request unit 320 to execute license authentication based on the license token. Further, the installation control unit 310 instructs the token verification request unit 330 to execute token verification based on the verification token embedded in the installer.

ライセンス認証要求部320は、主に端末装置30の制御部31、記憶部32及び通信部33により実現され、インストール制御部310から受け付けたライセンストークンに基づくライセンス認証を、サーバに対して要求する。例えば、ライセンス認証要求部320は、ライセンストークンのID(オブジェクトID)をサーバ10のリクエスト受付部120に対して送信することで、上記の要求を実行することとしてよい。   The license authentication request unit 320 is realized mainly by the control unit 31, the storage unit 32, and the communication unit 33 of the terminal device 30, and requests the server for license authentication based on the license token received from the installation control unit 310. For example, the license authentication requesting unit 320 may execute the above request by transmitting the license token ID (object ID) to the request receiving unit 120 of the server 10.

例えば、サーバ10においては、権限オブジェクト検証部130によりライセンストークンが正当と検証され、ライセンストークンで指定されるクライアント(委譲先情報)がアクセストークンで指定されるオーナー(所有者情報)の子孫である場合には、認証成功とし、そうでない場合には認証失敗とすることとしてよい。そして、処理結果提供部160は、ライセンストークンの認証結果を示す認証結果情報を、認証要求を受け付けた端末装置30に対して送信する。   For example, in the server 10, the license token is verified as valid by the authority object verification unit 130, and the client (transferee information) specified by the license token is a descendant of the owner (owner information) specified by the access token. In such a case, the authentication may be successful, and if not, the authentication may fail. Then, the processing result providing unit 160 transmits authentication result information indicating the authentication result of the license token to the terminal device 30 that has received the authentication request.

トークン検証要求部330は、主に端末装置30の制御部31、記憶部32及び通信部33により実現され、インストール制御部310から受け付けた検証用トークンに基づくトークン検証を、サーバに対して要求する。例えば、ライセンス認証要求部320は、検証用トークンのID(オブジェクトID)をサーバ10のリクエスト受付部120に対して送信することで、上記の要求を実行することとしてよい。   The token verification request unit 330 is mainly implemented by the control unit 31, the storage unit 32, and the communication unit 33 of the terminal device 30, and requests the server for token verification based on the verification token received from the installation control unit 310. . For example, the license authentication request unit 320 may execute the above request by transmitting the ID (object ID) of the verification token to the request reception unit 120 of the server 10.

なお、サーバ10においては、権限オブジェクト検証部130により検証用トークンの検証が実行され、検証用トークンの検証が成功した検証成功、検証用トークンの検証が失敗した場合には検証失敗とした検証結果情報を、トークン検証要求を受け付けた端末装置30に対して送信する。   In the server 10, the verification of the verification token is executed by the authority object verification unit 130, the verification successful when verification of the verification token is successful, and the verification result that verification is failed when verification of the verification token fails The information is transmitted to the terminal device 30 that has received the token verification request.

処理結果取得部340は、主に端末装置30の制御部31、記憶部32及び通信部33により実現され、サーバ10の処理結果提供部160から提供される情報を取得する。   The processing result acquisition unit 340 is mainly realized by the control unit 31, the storage unit 32, and the communication unit 33 of the terminal device 30, and acquires information provided from the processing result providing unit 160 of the server 10.

例えば、処理結果取得部340は、処理結果提供部からライセンストークンの認証結果を示す認証結果情報、及び検証用トークンの検証結果を示す検証結果情報を受信し、取得することとしてよい。また、処理結果取得部340は、取得した認証結果情報及び検証結果情報をインストール制御部310に提供することとしてよい。   For example, the processing result acquisition unit 340 may receive and acquire authentication result information indicating the authentication result of the license token and verification result information indicating the verification result of the verification token from the processing result providing unit. Further, the processing result acquisition unit 340 may provide the acquired authentication result information and verification result information to the installation control unit 310.

インストール制御部310は、処理結果取得部340から提供された認証結果情報及び検証結果情報に基づき、ライセンストークンの認証が成功し、且つ検証用トークンの検証が成功した場合に、インストーラに基づくインストール処理を実行し、ライセンストークンの認証と検証用トークンの検証のいずれかが失敗した場合には、インストーラに基づくインストール処理を中止することとしてよい。   Based on the authentication result information and the verification result information provided from the processing result acquisition unit 340, the installation control unit 310 performs an installation process based on the installer when the license token is successfully authenticated and the verification token is successfully verified. If either of the license token authentication or the verification token verification fails, the installation process based on the installer may be stopped.

[3.処理の一例についての説明]
次に、図6乃至図10に示されたシーケンス図に基づいて、情報処理システム1で実行される処理の一例について詳細に説明する。
[3. Explanation of an example of processing]
Next, an example of processing executed in the information processing system 1 will be described in detail based on the sequence diagrams shown in FIGS.

[3.1.アプリケーションの登録処理]
まず、図6に示したシーケンス図に基づいて、アプリケーションベンダーの第1端末装置30−1とサーバ10とにより実行される、アプリケーションの登録処理の一例について説明する。図6のフローにおいては、第1端末装置30−1は「vendor」オブジェクトD12について子オブジェクトの生成、取得、更新、削除が可能なスコープが定められたアクセストークン(T1)である「vendorToken」オブジェクトD122を有することとする。
[3.1. Application registration process]
First, an example of application registration processing executed by the application vendor's first terminal device 30-1 and the server 10 will be described based on the sequence diagram shown in FIG. In the flow of FIG. 6, the first terminal device 30-1 has a “vendorToken” object that is an access token (T 1) with a scope that allows generation, acquisition, update, and deletion of child objects for the “vendor” object D 12. D122.

図6に示されるように、第1端末装置30−1は、アクセストークンT1を用いて、「vendor」オブジェクトD12の子オブジェクトとして、アプリケーションオブジェクト(「application」オブジェクトD121に対応)の作成をサーバ10に対して指示する(S300)。   As illustrated in FIG. 6, the first terminal device 30-1 uses the access token T <b> 1 to create an application object (corresponding to the “application” object D <b> 121) as a child object of the “vendor” object D <b> 12. (S300).

サーバ10は、第1端末装置30−1からアプリケーションオブジェクトの作成指示を受け付けると(S100)、アクセストークンT1を検証し、検証が成功した場合に、アプリケーションオブジェクトを作成する(S101)。そして、サーバ10は、上記作成したアプリケーションオブジェクトのID(オブジェクトID)を第1端末装置30−1に対して送信する(S102)。   Upon receiving an application object creation instruction from the first terminal device 30-1 (S100), the server 10 verifies the access token T1, and creates an application object when the verification is successful (S101). Then, the server 10 transmits the ID (object ID) of the created application object to the first terminal device 30-1 (S102).

第1端末装置30−1は、サーバ10から送信されるアプリケーションオブジェクトのIDを受信する(S301)。   The first terminal device 30-1 receives the ID of the application object transmitted from the server 10 (S301).

次に、第1端末装置30−1は、アクセストークンT1を用いて、アプリケーションオブジェクトの子オブジェクトを作るためのアクセストークンT2(「applicationToken」オブジェクトD1214に対応)の作成をサーバ10に対して指示する(S302)。   Next, using the access token T1, the first terminal device 30-1 instructs the server 10 to create an access token T2 (corresponding to the “applicationToken” object D1214) for creating a child object of the application object. (S302).

サーバ10は、第1端末装置30−1からアクセストークンT2の作成指示を受け付けると(S103)、アクセストークンT1を検証し、検証が成功した場合に、アクセストークンT2(アプリケーショントークン)を作成する(S104)。そして、サーバ10は、上記作成したアクセストークンT2のID(オブジェクトID)を第1端末装置30−1に対して送信する(S105)。   Upon receiving an access token T2 creation instruction from the first terminal device 30-1 (S103), the server 10 verifies the access token T1, and creates an access token T2 (application token) if the verification is successful ( S104). Then, the server 10 transmits the ID (object ID) of the created access token T2 to the first terminal device 30-1 (S105).

第1端末装置30−1は、サーバ10から送信されるアクセストークンT2のIDを受信する(S303)。そして、第1端末装置30−1は、アクセストークンT2を用いて、アプリケーションオブジェクトの子オブジェクトとして、ライセンストークンを検証するためのアクセストークンである検証用トークンの作成をサーバ10に対して指示する(S304)。   The first terminal device 30-1 receives the ID of the access token T2 transmitted from the server 10 (S303). Then, using the access token T2, the first terminal device 30-1 instructs the server 10 to create a verification token that is an access token for verifying the license token as a child object of the application object ( S304).

サーバ10は、第1端末装置30−1から検証用トークンの作成指示を受け付けると(S106)、アクセストークンT2を検証し、検証が成功した場合に、アプリケーションオブジェクトの子オブジェクトとして検証用トークンを作成する(S107)。そして、サーバ10は、上記作成した検証用トークンのID(オブジェクトID)を第1端末装置30−1に対して送信する(S108)。   Upon receiving a verification token creation instruction from the first terminal device 30-1 (S106), the server 10 verifies the access token T2, and creates a verification token as a child object of the application object when the verification is successful. (S107). Then, the server 10 transmits the ID (object ID) of the created verification token to the first terminal device 30-1 (S108).

第1端末装置30−1は、サーバ10から検証用トークンのIDを受信する(S305)。   The first terminal device 30-1 receives the ID of the verification token from the server 10 (S305).

第1端末装置30−1は、上記受信した検証用トークンのIDを、アプリケーションのインストーラに埋め込んだ後に、インストーラを第2端末装置30−2に提供することとしてよい。   The first terminal device 30-1 may provide the installer to the second terminal device 30-2 after embedding the ID of the received verification token in the installer of the application.

[3.2.ユーザに対するライセンスの登録処理]
次に、図7に示したシーケンス図に基づいて、第1端末装置30−1とサーバ10により実行される、ライセンシーであるユーザに対しライセンスを登録する処理の一例について説明する。
[3.2. License registration process for users]
Next, based on the sequence diagram shown in FIG. 7, an example of a process for registering a license for a licensee user executed by the first terminal device 30-1 and the server 10 will be described.

第1端末装置30−1は、アクセストークンT2(アプリケーショントークン)を用いて、ユーザオブジェクトの作成を、サーバ10に対して指示する(S310)。上記の指示には、ユーザオブジェクトにユーザ属性情報(ユーザ名、メールアドレス等)を設定する指示を含めてよい。   The first terminal apparatus 30-1 instructs the server 10 to create a user object using the access token T2 (application token) (S310). The above instruction may include an instruction to set user attribute information (user name, mail address, etc.) in the user object.

サーバ10は、第1端末装置30−1からユーザオブジェクトの作成指示を受け付けると(S110)、アクセストークンT2を検証し、検証が成功した場合に、ユーザオブジェクトを作成する(S111)。そして、サーバ10は、上記生成したユーザオブジェクトの情報(オブジェクトID)を第1端末装置30−1に対して送信する(S112)。   Upon receiving a user object creation instruction from the first terminal device 30-1 (S110), the server 10 verifies the access token T2, and creates a user object if the verification is successful (S111). Then, the server 10 transmits the generated user object information (object ID) to the first terminal device 30-1 (S112).

第1端末装置30−1は、サーバ10からユーザオブジェクトの情報を受信する(S311)。   The first terminal device 30-1 receives the user object information from the server 10 (S311).

次に、第1端末装置30−1は、アクセストークンT2(アプリケーショントークン)を用いて、ユーザに付与するライセンスを示すアクセストークンであるライセンストークンの作成を、サーバ10に対して指示する(S312)。上記の指示には、ライセンストークンのオーナーを「application」オブジェクトD121(アプリケーションオブジェクト)、クライアントを「user」オブジェクトD1211(ユーザオブジェクト)、スコープを「authLicenseScope」D111(ライセンス認証用のスコープオブジェクト)に設定する指示を含めてよい。   Next, using the access token T2 (application token), the first terminal device 30-1 instructs the server 10 to create a license token that is an access token indicating a license to be granted to the user (S312). . In the above instruction, the owner of the license token is set to “application” object D121 (application object), the client is set to “user” object D1211 (user object), and the scope is set to “authLicenseScope” D111 (scope object for license authentication). Instructions may be included.

サーバ10は、第1端末装置30−1からライセンストークンの作成指示を受け付けると(S113)、アクセストークンT2を検証し、検証が成功した場合に、ライセンストークンを作成する(S114)。そして、サーバ10は、上記生成したライセンストークンの情報(オブジェクトID)を第1端末装置30−1に対して送信する(S115)。   Upon receiving a license token creation instruction from the first terminal device 30-1 (S113), the server 10 verifies the access token T2, and creates a license token if the verification is successful (S114). Then, the server 10 transmits the information (object ID) of the generated license token to the first terminal device 30-1 (S115).

第1端末装置30−1は、サーバ10からライセンストークンの情報(オブジェクトID)を受信する(S313)。   The first terminal device 30-1 receives the license token information (object ID) from the server 10 (S313).

第1端末30−1は、ライセンシーとなるユーザとのライセンス契約を機に、ユーザから受け付けたユーザ情報に基づいて上記の処理を実行し、その結果受信したライセンストークンの情報(オブジェクトID)を、ユーザ(ライセンシー)の操作する第2端末装置30−2に提供することとしてよい。   The first terminal 30-1 executes the above-described processing based on the user information received from the user with the license contract with the licensee user, and receives the license token information (object ID) received as a result, It is good also as providing to the 2nd terminal device 30-2 which a user (licensee) operates.

[3.3.インストール制御処理]
次に、図8に示されるシーケンス図に基づき、第2端末装置30−1とサーバ10により実行されるアプリケーションのインストール制御処理の一例について説明する。以下のシーケンス例では、第2端末装置30−2は、検証用トークンが埋め込まれたインストーラと、ユーザに対して固有に発行されたライセンストークンとを有していることとする。
[3.3. Installation control process]
Next, an example of application installation control processing executed by the second terminal device 30-1 and the server 10 will be described based on the sequence diagram shown in FIG. In the following sequence example, it is assumed that the second terminal device 30-2 has an installer in which a verification token is embedded and a license token uniquely issued to the user.

図8に示されるように、第2端末装置30−2は、ライセンストークンに基づくライセンス認証処理をサーバ10に対して指示する(S320)。   As shown in FIG. 8, the second terminal device 30-2 instructs the server 10 to perform a license authentication process based on the license token (S320).

サーバ10は、ライセンストークンに基づくライセンス認証処理の指示を受け付けると(S120)、ライセンストークンに基づくライセンス認証を実行する(S121)。例えば、サーバ10は、ライセンストークンが正当なアクセストークンであって、ライセンストークンで指定されるクライアント(委譲先情報)がアクセストークンで指定されるオーナー(所有者情報)の子孫である場合には、認証成功とし、そうでない場合には認証失敗とした認証結果を第2端末装置30−2に対して送信する(S122)。   When the server 10 receives a license authentication processing instruction based on the license token (S120), the server 10 executes license authentication based on the license token (S121). For example, if the license token is a valid access token and the client (transferee information) specified by the license token is a descendant of the owner (owner information) specified by the access token, If the authentication is successful, the authentication result indicating authentication failure is transmitted to the second terminal device 30-2 (S122).

第2端末装置30−2は、サーバ10から認証結果を受信し(S321)、受信した認証結果が認証成功である場合には(S322:Y)、インストーラに埋め込まれた検証用トークンの検証をサーバ10に対して指示する(S323)。   The second terminal device 30-2 receives the authentication result from the server 10 (S321), and when the received authentication result is successful authentication (S322: Y), the verification of the verification token embedded in the installer is performed. The server 10 is instructed (S323).

サーバ10は、検証用トークンの検証指示を受け付けると(S123)、検証用トークンを検証し(S124)、その検証結果を第2端末装置30−2に送信する(S125)。   Upon receiving the verification instruction for the verification token (S123), the server 10 verifies the verification token (S124), and transmits the verification result to the second terminal device 30-2 (S125).

第2端末装置30−2は、サーバ10から検証結果を受信し(S324)、受信した検証結果が検証成功である場合には(S325:Y)、インストーラに基づくアプリケーションのインストール処理を実行する(S323)。   The second terminal device 30-2 receives the verification result from the server 10 (S324), and when the received verification result is a verification success (S325: Y), the installation process of the application based on the installer is executed (S325: Y). S323).

一方、S321で受信した認証結果が認証成功でない場合(S323:N)、S324で受信した検証結果が検証成功でない場合(S325:N)には、エラーとして(S327)、インストーラに基づくアプリケーションのインストール処理を中止する。   On the other hand, if the authentication result received in S321 is not successful authentication (S323: N), and if the verification result received in S324 is not successful (S325: N), an error is detected (S327), and application installation based on the installer is performed. Cancel processing.

なお、上記のインストーラに基づくアプリケーションのインストール処理とは、インストーラに基づいて第2端末装置30−2において、アプリケーションを実行可能な状態とすることをいう。   Note that the application installation process based on the installer means that the application can be executed in the second terminal device 30-2 based on the installer.

[3.4.テナントの登録処理]
次に、図9に示したシーケンス図に基づいて、第1端末装置30−1とサーバ10により実行される、ライセンシーであるテナントを登録する処理の一例について説明する。
[3.4. Tenant registration process]
Next, an example of processing for registering a tenant as a licensee executed by the first terminal device 30-1 and the server 10 will be described based on the sequence diagram shown in FIG.

第1端末装置30−1は、アクセストークンT2(アプリケーショントークン)を用いて、テナントオブジェクトの作成を、サーバ10に対して指示する(S330)。上記の指示には、テナントオブジェクトにテナント管理者の情報(管理者名、メールアドレス等)を設定する指示を含めてよい。   The first terminal device 30-1 instructs the server 10 to create a tenant object using the access token T2 (application token) (S330). The above instruction may include an instruction to set tenant administrator information (administrator name, email address, etc.) in the tenant object.

サーバ10は、第1端末装置30−1からテナントオブジェクトの作成指示を受け付けると(S130)、アクセストークンT2を検証し、検証が成功した場合に、テナントオブジェクトを作成する(S131)。そして、サーバ10は、上記生成したテナントオブジェクトの情報(オブジェクトID)を第1端末装置30−1に対して送信する(S132)。   Upon receiving a tenant object creation instruction from the first terminal device 30-1 (S130), the server 10 verifies the access token T2, and creates a tenant object if the verification is successful (S131). Then, the server 10 transmits the generated tenant object information (object ID) to the first terminal device 30-1 (S132).

第1端末装置30−1は、サーバ10からテナントオブジェクトの情報を受信する(S331)。   The first terminal device 30-1 receives information on the tenant object from the server 10 (S331).

次に、第1端末装置30−1は、アクセストークンT2(アプリケーショントークン)を用いて、テナントに付与する権限を示すアクセストークンであるテナントトークンの作成を、サーバ10に対して指示する(S332)。なお、テナントトークンは、テナントオブジェクトの子孫にオブジェクトを追加し、追加したオブジェクトを削除、更新等可能な権限が定められることとしてよい。例えば、テナントトークンのオーナーを「tenant」オブジェクトD1212(テナントオブジェクト)、「tenant」オブジェクトD1212(テナントオブジェクト)、スコープを「crudScope」に設定することとしてよい。   Next, using the access token T2 (application token), the first terminal device 30-1 instructs the server 10 to create a tenant token that is an access token indicating the authority to be granted to the tenant (S332). . The tenant token may be defined with authority that allows an object to be added to a descendant of the tenant object and the added object to be deleted or updated. For example, the tenant token owner may be set to “tenant” object D1212 (tenant object), “tenant” object D1212 (tenant object), and the scope may be set to “crudScope”.

サーバ10は、第1端末装置30−1からテナントトークンの作成指示を受け付けると(S133)、アクセストークンT2を検証し、検証が成功した場合に、テナントトークンを作成する(S134)。そして、サーバ10は、上記生成したテナントトークンの情報(オブジェクトID)を第1端末装置30−1に対して送信する(S135)。   Upon receiving the tenant token creation instruction from the first terminal device 30-1 (S133), the server 10 verifies the access token T2, and creates a tenant token if the verification is successful (S134). Then, the server 10 transmits the generated tenant token information (object ID) to the first terminal device 30-1 (S135).

第1端末装置30−1は、サーバ10からテナントトークンの情報(オブジェクトID)を受信する(S333)。   The first terminal device 30-1 receives the tenant token information (object ID) from the server 10 (S333).

第1端末30−1は、ライセンシーとなるテナントの管理者に対して、上記テナントトークンの情報を提供することとしてよい。   The first terminal 30-1 may provide the tenant token information to the tenant administrator who is the licensee.

[3.5.テナント内ユーザに対するライセンス登録処理]
次に、図10に示したシーケンス図に基づいて、テナントの管理者が操作する第3端末装置30−3とサーバ10により実行される、テナント内ユーザに対してライセンスを登録する処理の一例について説明する。
[3.5. License registration process for tenant users]
Next, based on the sequence diagram shown in FIG. 10, an example of processing for registering a license for a user in a tenant, which is executed by the third terminal device 30-3 operated by the tenant administrator and the server 10. explain.

第3端末装置30−3は、テナントトークンを用いて、テナント内ユーザオブジェクト(図3の「userInTenant」オブジェクトD12121に対応する)の作成を、サーバ10に対して指示する(S340)。上記の指示には、テナント内ユーザオブジェクトにユーザ属性情報(ユーザ名、メールアドレス等)を設定する指示を含めてよい。   Using the tenant token, the third terminal apparatus 30-3 instructs the server 10 to create a tenant user object (corresponding to the “userInTenant” object D12121 in FIG. 3) (S340). The above instruction may include an instruction to set user attribute information (user name, email address, etc.) in the tenant user object.

サーバ10は、第3端末装置30−3からテナント内ユーザオブジェクトの作成指示を受け付けると(S140)、テナントトークンを検証し、検証が成功した場合に、テナント内ユーザオブジェクトを作成する(S141)。そして、サーバ10は、上記生成したテナント内ユーザオブジェクトの情報(オブジェクトID)を第3端末装置30−3に対して送信する(S142)。   Upon receiving an instruction to create an in-tenant user object from the third terminal device 30-3 (S140), the server 10 verifies the tenant token and creates an in-tenant user object if the verification is successful (S141). And the server 10 transmits the information (object ID) of the generated user object in the tenant to the third terminal device 30-3 (S142).

第3端末装置30−3は、サーバ10からテナント内ユーザオブジェクトの情報を受信する(S341)。   The third terminal device 30-3 receives the information on the user object in the tenant from the server 10 (S341).

次に、第3端末装置30−3は、テナントトークンを用いて、テナント内ユーザに付与するライセンスを示すアクセストークンであるライセンストークンの作成を、サーバ10に対して指示する(S342)。上記の指示には、ライセンストークンのオーナーを「tenant」オブジェクトD1212(テナントオブジェクト)、クライアントを「userInTenant」オブジェクトD12121(テナント内ユーザオブジェクト)、スコープを「authLicenseScope」D111(ライセンス認証用のスコープオブジェクト)に設定する指示を含めてよい。   Next, using the tenant token, the third terminal device 30-3 instructs the server 10 to create a license token that is an access token indicating a license to be granted to the in-tenant user (S342). In the above instruction, the owner of the license token is “tenant” object D1212 (tenant object), the client is “userInTenant” object D12121 (in-tenant user object), and the scope is “authLicenseScope” D111 (scope object for license authentication). Instructions to set may be included.

サーバ10は、第3端末装置30−3からライセンストークンの作成指示を受け付けると(S143)、テナントトークンを検証し、検証が成功した場合に、ライセンストークンを作成する(S144)。そして、サーバ10は、上記生成したライセンストークンの情報(オブジェクトID)を第3端末装置30−3に対して送信する(S145)。   Upon receiving a license token creation instruction from the third terminal device 30-3 (S143), the server 10 verifies the tenant token and creates a license token if the verification is successful (S144). Then, the server 10 transmits the information (object ID) of the generated license token to the third terminal device 30-3 (S145).

第3端末装置30−3は、サーバ10からライセンストークンの情報(オブジェクトID)を受信する(S343)。   The third terminal device 30-3 receives the license token information (object ID) from the server 10 (S343).

第3端末30−3は、テナント内ユーザに対し上記のライセンストークンの情報(オブジェクトID)を提供することとしてよい。テナント内ユーザについての、ライセンストークンに基づくアプリケーションのインストール処理は、図8において説明した処理と同様としてよいため省略する。   The third terminal 30-3 may provide the license token information (object ID) to the in-tenant user. The application installation process based on the license token for the in-tenant user may be the same as the process described in FIG.

[4.本発明の他の形態について]
以下、本発明の他の形態について説明する。図11には、図3に示すオブジェクトの構造のうち、「tenant」オブジェクトD1212の子孫のオブジェクトの構成を変更したものを示す。
[4. Other forms of the present invention]
Hereinafter, other embodiments of the present invention will be described. FIG. 11 shows a structure obtained by changing the structure of the descendant object of the “tenant” object D1212 among the object structures shown in FIG.

図11に示されるように、「tenant」オブジェクトD1212には、「userInTenant」オブジェクトD12121、「tenantToken」オブジェクトD12122に加えて、「LicenseUsage」オブジェクトD12123、「LogScope」オブジェクトD12124が設けられている。   As shown in FIG. 11, the “tenant” object D1212 is provided with a “LicenseUsage” object D12123 and a “LogScope” object D12124 in addition to the “userInTenant” object D12121 and the “tenantToken” object D12122.

ここで、「LicenseUsage」オブジェクトD12123には、「userInTenant」オブジェクトD12121に対応するユーザのインストール処理、アプリケーションの起動、アプリケーションの動作等に関するログ情報が記録される。   Here, in the “License Usage” object D12123, log information related to user installation processing, application activation, application operation, and the like corresponding to the “userInTenant” object D12121 is recorded.

そして、「LogScope」オブジェクトD12124は、認証処理に加えてログ情報を記録するための処理が定められたスコープである。   The “LogScope” object D12124 is a scope in which processing for recording log information in addition to authentication processing is defined.

そして、「userInTenant」オブジェクトD12121の子オブジェクトである「licenseToken」オブジェクトD121211に対しては、スコープに「LogScope」オブジェクトD12124を設定する点で、図3に示したオブジェクトの例とは相違するが、他の点では共通する。   The “licenseToken” object D12111 that is a child object of the “userInTenant” object D12121 is different from the example of the object shown in FIG. 3 in that the “LogScope” object D12124 is set as the scope. The point is common.

なお、図11に示したオブジェクトの構成例を採用する場合に、テナント内ユーザにライセンスを登録するときには、図10に示すシーケンス図において、ライセンストークンのスコープを「LogScope」オブジェクトD12124に設定するようにする点を除けば、図10のシーケンス図と同様の処理を採用することができる。   In the case of adopting the object configuration example shown in FIG. 11, when registering a license for a user in the tenant, the scope of the license token is set to the “LogScope” object D12124 in the sequence diagram shown in FIG. Except for this point, the same processing as that in the sequence diagram of FIG. 10 can be adopted.

また、テナント内ユーザのインストール処理に関しても、ライセンストークンのスコープによる処理が異なるものの、図8と同様のシーケンスにより実現できるため省略する。   Also, the installation process of the tenant user is omitted because it can be realized by the same sequence as in FIG. 8 although the process depending on the scope of the license token is different.

なお、以上説明した実施形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された実施形態に種々の変形、例えば、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。   The embodiment described above is shown as a specific example, and the invention disclosed in this specification is not limited to the configuration of the specific example or the data storage example itself. Those skilled in the art may make various modifications to the disclosed embodiments, for example, change the data structure and the execution order of the processes. It should be understood that the technical scope of the invention disclosed herein includes such modifications.

例えば、上記の情報処理システム1においては、ライセンストークンを用いて、アプリケーションに対応するクラウドサービス(図1のクラウドサービスサーバ50)でのOAuth認証を行うようにしてもよい。   For example, in the information processing system 1 described above, a license token may be used to perform OAuth authentication in a cloud service (cloud service server 50 in FIG. 1) corresponding to an application.

例えば、端末装置30のユーザが、クラウドサービスサーバ50のサービスを利用したい場合には、クラウドサービスとの連携を指示すると、認証情報をサーバ10から受け取ることに対する許可をユーザに求めることとする。ユーザにより許可されると、クラウドサービスサーバ50からサーバ10に対してリクエストに応じて、サーバ10は、ユーザ情報を返却することとする。   For example, when the user of the terminal device 30 wants to use the service of the cloud service server 50, when instructing the cooperation with the cloud service, the user is asked for permission to receive the authentication information from the server 10. If permitted by the user, the server 10 returns user information in response to a request from the cloud service server 50 to the server 10.

例えば、クラウドサービスサーバ50は、ユーザ情報を元に特定された対象フォルダの情報を、端末装置30に提供することとしてよい。例えば、端末装置30では、クラウドサービスとの連携フォルダに、ユーザ固有のクラウドサービスサーバ50で管理されるユーザのフォルダを表示するようにしてよい。上記の構成によれば、端末装置30にクラウドサービスのアカウント情報を保存する必要がないため、アカウント情報の漏洩リスクが低減する。また、初回認証以降は、クラウドサービスサーバ50からサーバ10に対して確認が行われる、ユーザが毎回IDやパスワードを入力する手間がなくなる。   For example, the cloud service server 50 may provide the terminal device 30 with information on the target folder specified based on the user information. For example, the terminal device 30 may display the user's folder managed by the user-specific cloud service server 50 in the cooperation folder with the cloud service. According to said structure, since it is not necessary to preserve | save the cloud service account information in the terminal device 30, the leakage risk of account information reduces. Further, after the first authentication, confirmation from the cloud service server 50 to the server 10 is performed, and the user does not have to input the ID and password every time.

10 サーバ、30−1 第1端末装置、30−2 第2端末装置、30−3 第3端末装置、50 クラウドサービスサーバ、110 データ格納部、120 リクエスト受付部、130 権限オブジェクト検証部、140 オブジェクト管理部、150 リクエスト処理部、160 処理結果提供部、310 インストール制御部、320 ライセンス認証要求部、330 トークン検証要求部、340 処理結果取得部。   10 server, 30-1 first terminal device, 30-2 second terminal device, 30-3 third terminal device, 50 cloud service server, 110 data storage unit, 120 request reception unit, 130 authority object verification unit, 140 object Management unit, 150 request processing unit, 160 processing result providing unit, 310 installation control unit, 320 license authentication request unit, 330 token verification request unit, 340 processing result acquisition unit.

Claims (10)

アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するライセンス管理システムにおいて、
ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成する生成手段と、
前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信する手段と、
前記検証トークンを受信する手段と、
前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証手段と、
前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、
前記認証手段および前記検証手段の処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御手段と、
を備えるライセンス管理システム。
In a license management system that controls at least one of installation and execution of an application according to a license,
Generating means for generating an access token for authenticating a license relating to the application of the user and a verification token for verifying the authenticity of the access token;
Means for receiving a request for activation of the application including the access token;
Means for receiving the verification token;
Authentication means for performing license authentication of the user based on the access token;
Verification means for verifying authenticity of the access token based on the verification token;
Control means for controlling whether to permit at least one of installation and execution of the application based on a result of processing of the authentication means and the verification means;
A license management system comprising:
前記検証トークンを、前記アプリケーションおよび前記アプリケーションのインストーラの少なくともいずれか一方に差し替えできないように埋め込む手段、
をさらに備えることを特徴とする請求項1に記載のライセンス管理システム。
Means for embedding the verification token so that it cannot be replaced with at least one of the application and an installer of the application;
The license management system according to claim 1, further comprising:
前記アクセストークンを、前記アプリケーションのライセンス発行時に、ライセンス先であるユーザへ配信する配信手段、
をさらに備えることを特徴とする請求項1に記載のライセンス管理システム。
Distribution means for distributing the access token to a licensed user when issuing a license for the application;
The license management system according to claim 1, further comprising:
前記認証手段および前記検証手段は、前記アプリケーションのインストール時、前記アプリケーションの起動時、およびアプリケーション動作中の適宜のタイミングのうち少なくともいずれかのタイミングで、前記認証および前記検証の処理を行う、
ことを特徴とする請求項1に記載のライセンス管理システム。
The authentication unit and the verification unit perform the authentication and the verification process at at least one of an appropriate timing during installation of the application, startup of the application, and operation of the application.
The license management system according to claim 1.
それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、
前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記検証トークン表す検証トークンオブジェクトを、前記アプリケーションオブジェクトの子孫として生成する、
ことを特徴とする請求項1に記載のライセンス管理システム。
A management means for managing information on an object in which at least one of a parent and a child is defined;
The generation unit generates an application object representing the application, and generates a verification token object representing the verification token as a descendant of the application object.
The license management system according to claim 1.
それぞれ親または少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、
前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、前記ユーザを表すユーザオブジェクトを前記アプリケーションオブジェクトの子孫として生成し、前記ユーザオブジェクトの子孫として前記アクセストークンを表すアクセストークンオブジェクトを生成する、
ことを特徴とする請求項1に記載のライセンス管理システム。
A management means for managing the information of the object for which each parent or at least one is determined;
The generation means generates an application object representing the application, generates a user object representing the user as a descendant of the application object, and generates an access token object representing the access token as a descendant of the user object.
The license management system according to claim 1.
それぞれ親または子の少なくとも一方が定められたオブジェクトの情報を管理する管理手段をさらに備え、
前記生成手段は、前記アプリケーションを表すアプリケーションオブジェクトを生成し、
前記アプリケーションオブジェクトの子孫として前記アプリケーションのライセンス先の組織を表す組織オブジェクトを生成し、
前記組織オブジェクトの子孫として、前記組織オブジェクトの子孫のオブジェクトの生成が可能な権限が定められた権限オブジェクトを生成し、
前記権限オブジェクトに基づいて、前記組織オブジェクトの子孫として、前記ユーザを表すユーザオブジェクトと前記アクセストークンを表すアクセストークンオブジェクトとを生成する、
ことを特徴とする、請求項1に記載のライセンス管理システム。
A management means for managing information on an object in which at least one of a parent and a child is defined;
The generation means generates an application object representing the application,
Generating an organization object representing the licensed organization of the application as a descendant of the application object;
As a descendant of the organizational object, generate an authority object that is defined as an authority capable of generating the descendant object of the organizational object,
Based on the authority object, a user object representing the user and an access token object representing the access token are generated as descendants of the organization object.
The license management system according to claim 1, wherein:
前記生成手段は、前記権限オブジェクトに基づいて、前記組織オブジェクトの子孫として、前記認証手段および前記検証手段による処理のログ情報を記憶するオブジェクトを生成する、
ことを特徴とする請求項7に記載のライセンス管理システム。
The generation unit generates an object for storing log information of processing by the authentication unit and the verification unit as a descendant of the organization object based on the authority object.
The license management system according to claim 7.
アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するコンピュータを、
ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成する手段と、
前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信する手段と、
前記検証トークンを受信する手段と、
前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証手段と、
前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、
前記認証手段および前記検証手段の処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御手段
として機能させるためのプログラム。
A computer that controls at least one of application installation and execution according to a license,
Means for generating an access token for authenticating a license relating to the application of the user and a verification token for verifying the authenticity of the access token;
Means for receiving a request for activation of the application including the access token;
Means for receiving the verification token;
Authentication means for performing license authentication of the user based on the access token;
Verification means for verifying authenticity of the access token based on the verification token;
A program for functioning as control means for controlling whether to permit at least one of installation and execution of the application based on the processing results of the authentication means and the verification means.
アプリケーションのインストールおよび実行のうち少なくとも一方をライセンスに従って制御するライセンス管理システムによるライセンス管理方法において、
ユーザの前記アプリケーションに関するライセンスを認証するためのアクセストークンと、前記アクセストークンの真正性を検証するための検証トークンとを生成するステップと、
前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受信するステップと、
前記検証トークンを受信するステップと、
前記アクセストークンに基づいて前記ユーザのライセンス認証を行う認証ステップと、
前記検証トークンに基づいて前記アクセストークンの真正性を検証する検証ステップと、
前記認証ステップおよび前記検証ステップの処理の結果に基づいて、前記アプリケーションのインストールおよび実行のうち少なくとも一方を許可するかどうかを制御する制御ステップと、
を備えるライセンス管理方法。
In a license management method by a license management system that controls at least one of installation and execution of an application according to a license,
Generating an access token for authenticating a user's license for the application and a verification token for verifying the authenticity of the access token;
Receiving a request for activation of the application including the access token;
Receiving the verification token;
An authentication step of performing license authentication of the user based on the access token;
A verification step of verifying authenticity of the access token based on the verification token;
A control step for controlling whether to permit at least one of installation and execution of the application based on a result of the processing of the authentication step and the verification step;
A license management method comprising:
JP2015053161A 2015-03-17 2015-03-17 License management system, program, and license management method Expired - Fee Related JP6477073B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015053161A JP6477073B2 (en) 2015-03-17 2015-03-17 License management system, program, and license management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015053161A JP6477073B2 (en) 2015-03-17 2015-03-17 License management system, program, and license management method

Publications (2)

Publication Number Publication Date
JP2016173715A true JP2016173715A (en) 2016-09-29
JP6477073B2 JP6477073B2 (en) 2019-03-06

Family

ID=57009684

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015053161A Expired - Fee Related JP6477073B2 (en) 2015-03-17 2015-03-17 License management system, program, and license management method

Country Status (1)

Country Link
JP (1) JP6477073B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019144995A (en) * 2018-02-23 2019-08-29 富士ゼロックス株式会社 Information processing device and information processing program
JP2020521257A (en) * 2017-05-18 2020-07-16 コデックス エルエルシーCodex Llc Decentralized digital content distribution system and process using blockchain
JP2021018521A (en) * 2019-07-18 2021-02-15 富士ゼロックス株式会社 License management system and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256670A (en) * 2002-02-28 2003-09-12 Fujitsu Ltd Distributed management type net sales method for software and protect program
JP2005038307A (en) * 2003-07-18 2005-02-10 Casio Comput Co Ltd Authentication system
JP2012238047A (en) * 2011-05-10 2012-12-06 Hitachi Solutions Ltd License authentication system and license authentication method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003256670A (en) * 2002-02-28 2003-09-12 Fujitsu Ltd Distributed management type net sales method for software and protect program
JP2005038307A (en) * 2003-07-18 2005-02-10 Casio Comput Co Ltd Authentication system
JP2012238047A (en) * 2011-05-10 2012-12-06 Hitachi Solutions Ltd License authentication system and license authentication method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020521257A (en) * 2017-05-18 2020-07-16 コデックス エルエルシーCodex Llc Decentralized digital content distribution system and process using blockchain
JP2019144995A (en) * 2018-02-23 2019-08-29 富士ゼロックス株式会社 Information processing device and information processing program
JP2021018521A (en) * 2019-07-18 2021-02-15 富士ゼロックス株式会社 License management system and program
JP7279558B2 (en) 2019-07-18 2023-05-23 富士フイルムビジネスイノベーション株式会社 License management system and program

Also Published As

Publication number Publication date
JP6477073B2 (en) 2019-03-06

Similar Documents

Publication Publication Date Title
KR101752082B1 (en) Development-environment system, development-environment device, and development-environment provision method and computer readable medium recording program
JP7472359B2 (en) Management method, management device, and program
JP5531819B2 (en) Management device, license management server, electronic device, electronic device management system, management method, program, and recording medium
JP2010237898A (en) Apparatus, and method for processing login and program
JP2015111415A (en) Information processing system and information processing method
US11861360B2 (en) Management method, management apparatus, and program
JP6477073B2 (en) License management system, program, and license management method
JP4826449B2 (en) Information processing system, electronic permission information issuing device, rights issuing device
CN112241517A (en) License management system and recording medium
JP7208807B2 (en) System, tenant movement method, information processing device and its control method, and program
JP5570278B2 (en) Document management system and document management method
JPH09185503A (en) User environment preparing and eliminating method
JP7303653B2 (en) Management method, management device, and program
JP6435678B2 (en) Information processing apparatus, management apparatus, program, and system
JP2008217300A (en) System and method for encrypting and decrypting file with biological information
JP2019003477A (en) Information processing system, control method and program thereof
JP6128958B2 (en) Information processing server system, control method, and program
JP4946726B2 (en) Document operation system, management apparatus and program
JP6415155B2 (en) Server system, method, and program thereof
JP7316812B2 (en) Management method, management device, and program
JP2019144995A (en) Information processing device and information processing program
JP7222792B2 (en) Information processing system, information processing device, control method and program for information processing device
JP2011175562A (en) System and method for managing restriction of terminal use, and recording medium
JP5027097B2 (en) Agent access management system
JP5686689B2 (en) Electronic authentication alternative system and electronic authentication alternative method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190121

R150 Certificate of patent or registration of utility model

Ref document number: 6477073

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees