JP2019144995A - 情報処理装置及び情報処理プログラム - Google Patents

情報処理装置及び情報処理プログラム Download PDF

Info

Publication number
JP2019144995A
JP2019144995A JP2018030628A JP2018030628A JP2019144995A JP 2019144995 A JP2019144995 A JP 2019144995A JP 2018030628 A JP2018030628 A JP 2018030628A JP 2018030628 A JP2018030628 A JP 2018030628A JP 2019144995 A JP2019144995 A JP 2019144995A
Authority
JP
Japan
Prior art keywords
verification
license
module
token
authentication
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.)
Pending
Application number
JP2018030628A
Other languages
English (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 JP2018030628A priority Critical patent/JP2019144995A/ja
Publication of JP2019144995A publication Critical patent/JP2019144995A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】ライセンス管理システムとの通信が可能でない場合に、アプリケーションの実行を制御することができるようにした情報処理装置を提供する。【解決手段】情報処理装置の要求手段は、アプリケーションの実行をライセンスにしたがって制御するライセンス管理システムとの通信が可能でない場合に、本情報処理装置内のライセンス管理手段に対して、ライセンス認証の要求を行い、指示手段は、ライセンス管理手段に対して検証トークンの検証を指示し、制御手段は、要求に対する認証結果、指示に対する検証結果にしたがって、アプリケーションの実行を制御し、ライセンス管理手段は、アプリケーションに関するライセンス認証の要求を受け付けた場合、ユーザのライセンス認証を行い、認証結果を制御手段に通知し、検証トークンの検証の指示を受け付けた場合、該検証トークンに基づいてアクセストークンの真正性を検証し、検証結果を制御手段に通知する。【選択図】図1

Description

本発明は、情報処理装置及び情報処理プログラムに関する。
アプリケーションのライセンスをデバイスに対して付与することや、ユーザに対して付与することが行われている。例えば、デバイスに依存せずにユーザに付与したライセンスを管理する技術としては、以下の特許文献1に記載の発明がある。
特許文献1には、アプリケーションの不正利用を防止し、複数の機器で利用可能にする認証サーバを提供することを課題とし、認証サーバは、ユーザ端末にアプリケーションがインストールされ、試用を開始するために起動された際、ユーザ端末からの要求に応じてアプリケーションの正当性を確認した後、ユーザ端末の機器毎に付与される機器識別キーを発行し、ユーザ端末に送信し、試用を開始させる試用開始認証手段とライセンスキーが登録された後、ユーザ端末から、ライセンスキー及び機器識別キーを受信し、認証キー記憶装置に登録し、アプリケーションの利用を認証する利用認証手段とを備えることが開示されている。
特許文献2には、アプリケーションの個々の契約毎のインストール制御を行うことを課題とし、サーバは、それぞれ親又は子の少なくとも一方が定められたオブジェクトの情報を管理し、端末装置は、アプリケーションオブジェクトの子孫として生成した第1の権限オブジェクトを含むアプリケーションオブジェクトのインストーラを取得し、アプリケーションオブジェクトのライセンス先に対して生成される、アプリケーションオブジェクトの子孫のオブジェクトである第2の権限オブジェクトを取得し、インストーラに含まれる第1の権限オブジェクトと、第2の権限オブジェクトとに基づいて、インストーラによるインストールの実行を制御することが開示されている。
特許文献3には、電子データのライセンスをオフライン化し、ライセンスの安全を守りながら、利用者の利用に便利なライセンスの送信・流通システムを提供することを課題とし、電子データのライセンスを利用するPCや、コンテンツ配信サーバ、PDにセットされる媒体は、LA(あるいは、同機能のLicense Chip)を内蔵し、そして、コンテンツや電子データは、ライセンスに基づいて暗号化して、相互にやり取りされるが、ライセンスは、LA間のみで安全な通信方法でやり取りするようにし、これにより、ライセンスの管理を正しく行うと共に、ライセンスの移動を可能にすることが開示されている。
特許文献4には、主としてオフライン環境で使用されるアプリケーションについて、同時使用ライセンスと同等の管理を行うことを課題とし、端末から、サービスの利用に必要なデータに関するダウンロード要求を受け付ける受付部と、前記サービスに対して記憶部に記憶されているライセンスの管理情報が使用状態であるライセンス数が、所定の数を超えていない場合に、前記ダウンロード要求を受け付けたデータを前記端末へ送信する送信部と、前記端末から、前記データ又は該端末により該データが更新された更新データを受信する受信部と、前記送信部による前記端末への前記データの送信に応じて、前記記憶部に記憶されているライセンスの管理情報を使用状態に更新し、前記受信部による前記端末からの前記データの受信に応じて、前記ライセンスの管理情報を非使用状態に更新するライセンス管理部とを有することが開示されている。
特開2004−135325号公報 特開2016−173715号公報 特開2003−058510号公報 特開2017−021416号公報
アプリケーションの実行をライセンスにしたがって制御することが行われている。その場合、通信回線を介して外部にあるライセンス管理システムとの通信を行って、そのライセンス管理システムによって、認証、検証等が行われている。
しかし、ライセンス管理システムとの通信ができない場合は、正当なライセンスがあるアプリケーションであっても、そのアプリケーションの実行をすることができなくなる。
本発明は、ライセンス管理システムとの通信が可能でない場合に、アプリケーションの実行を制御することができるようにした情報処理装置及び情報処理プログラムを提供することを目的としている。
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項1の発明は、アプリケーションの実行をライセンスにしたがって制御するライセンス管理システムとの通信が可能でない場合に、本情報処理装置内のライセンス管理手段に対して、該アプリケーションに関するライセンス認証の要求を行う要求手段と、前記ライセンス管理手段に対して、アクセストークンの真正性を検証するための検証トークンの検証を指示する指示手段と、前記要求に対する認証結果、前記指示に対する検証結果にしたがって、前記アプリケーションの実行を制御する制御手段を有し、前記ライセンス管理手段は、前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受け付けた場合、該アクセストークンに基づいてユーザのライセンス認証を行う認証手段と、前記認証手段による認証結果を前記制御手段に通知する第1の通知手段と、前記検証トークンの検証の指示を受け付けた場合、該検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、前記検証手段による検証結果を前記制御手段に通知する第2の通知手段を有する情報処理装置である。
請求項2の発明は、前記ライセンス管理システムとの通信が可能である場合に、本情報処理装置を識別する情報を該ライセンス管理システムに送信し、前記ライセンス管理システムから本情報処理装置を識別する情報と該ライセンス管理システムでの検証した日時を受信した場合、該情報と該日時を記憶する記憶手段をさらに有する請求項1に記載の情報処理装置である。
請求項3の発明は、前記ライセンス管理システムとの通信が可能でない場合に、前記指示手段は、前記指示を行う場合に、本情報処理装置を識別する情報を前記ライセンス管理手段に渡し、前記検証手段は、前記指示手段から渡された前記本情報処理装置を識別する情報と前記記憶手段に記憶されている本情報処理装置を識別する情報とが一致することを条件に加えて、前記アクセストークンの真正性を検証する、請求項2に記載の情報処理装置である。
請求項4の発明は、前記ライセンス管理システムでの検証した日時として、検証が成功した場合の日時とする、請求項2に記載の情報処理装置である。
請求項5の発明は、前記記憶手段は、前記ライセンス管理システムによる認証結果と前記アクセストークンを記憶する、請求項2に記載の情報処理装置である。
請求項6の発明は、前記ライセンス管理手段による処理は、前記ライセンス管理システムとの通信が可能である場合に、少なくとも1回以上のライセンス管理システムによる認証が行われていることを条件として行われる、請求項1に記載の情報処理装置である。
請求項7の発明は、前記ライセンス管理手段による処理として、検証の程度が複数用意されている、請求項6に記載の情報処理装置である。
請求項8の発明は、前記ライセンス管理手段による処理として、検証の程度が低いものとして、前記ライセンス管理システムによる検証結果を用いる、請求項7に記載の情報処理装置である。
請求項9の発明は、前記ライセンス管理手段による処理として、検証の程度が高いものとして、前記ライセンス管理システムによる検証の日時から予め定められた期間に、前記ライセンス管理システムによる検証結果を用いる、請求項7に記載の情報処理装置である。
請求項10の発明は、情報処理装置であるコンピュータを、アプリケーションの実行をライセンスにしたがって制御するライセンス管理システムとの通信が可能でない場合に、前記情報処理装置内のライセンス管理手段に対して、該アプリケーションに関するライセンス認証の要求を行う要求手段と、前記ライセンス管理手段に対して、アクセストークンの真正性を検証するための検証トークンの検証を指示する指示手段と、前記要求に対する認証結果、前記指示に対する検証結果にしたがって、前記アプリケーションの実行を制御する制御手段として機能させ、前記ライセンス管理手段を、前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受け付けた場合、該アクセストークンに基づいてユーザのライセンス認証を行う認証手段と、前記認証手段による認証結果を前記制御手段に通知する第1の通知手段と、前記検証トークンの検証の指示を受け付けた場合、該検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、前記検証手段による検証結果を前記制御手段に通知する第2の通知手段として機能させるための情報処理プログラムである。
請求項1の情報処理装置によれば、ライセンス管理システムとの通信が可能でない場合に、アプリケーションの実行を制御することができる。
請求項2の情報処理装置によれば、ライセンス管理システムとの通信が可能である場合に、ライセンス管理システムから送信されてきた、本情報処理装置を識別する情報と検証した日時を記憶することができる。
請求項3の情報処理装置によれば、ライセンス管理システムとの通信が可能でない場合に、本情報処理装置を識別する情報と記憶手段に記憶されている本情報処理装置を識別する情報とが一致することを条件に加えて、アクセストークンの真正性を検証することができる。
請求項4の情報処理装置によれば、ライセンス管理システムでの検証が成功した場合の日時を記憶することができる。
請求項5の情報処理装置によれば、ライセンス管理システムによる認証結果とアクセストークンを記憶することができる。
請求項6の情報処理装置によれば、ライセンス管理手段による処理は、ライセンス管理システムによる認証が行われていることを条件として行わせることができる。
請求項7の情報処理装置によれば、ライセンス管理手段による処理として、検証の程度が複数用意されている。
請求項8の情報処理装置によれば、検証の程度が低いものとして、ライセンス管理システムによる検証結果を用いることができる。
請求項9の情報処理装置によれば、検証の程度が高いものとして、ライセンス管理システムによる検証の日時から予め定められた期間に、ライセンス管理システムによる検証結果を用いることができる。
請求項10の情報処理プログラムによれば、ライセンス管理システムとの通信が可能でない場合に、アプリケーションの実行を制御することができる。
第1の実施の形態に係る情報処理システムのシステム構成例を示す説明図である。 情報処理システムの機能ブロック例を示す説明図である。 プロトタイプベースのオブジェクトの具体例を示す図である。 オブジェクト管理テーブルの一例を示す図である。 バリュー管理テーブルの一例を示す図である。 アプリケーションオブジェクトの生成処理例を示すシーケンス図である。 ライセンス先のユーザオブジェクトの生成処理を示すシーケンス図である。 インストール制御処理を示すシーケンス図である。 テナントオブジェクトの生成処理を示すシーケンス図である。 テナント内ユーザオブジェクトの生成処理を示すシーケンス図である。 テナントオブジェクトの子孫として生成される検証ログを記憶するオブジェクトの一例を示す図である。 第2の実施の形態である端末装置の機能ブロック例を示す説明図である。 リクエスト受付モジュールと通信可能である場合のアプリケーションの実行制御処理を示すシーケンス図である。 リクエスト受付モジュールと通信可能でない場合のアプリケーションの実行制御処理を示すシーケンス図である。
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係、ログイン等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、「A、B、C」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その1つのみを選んでいる場合(例えば、Aのみ)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
アプリケーションのライセンス契約は、個々のユーザと結ぶものや、組織と結び、組織に組織内の個々のユーザに対するライセンス付与の権限を与えるもの等多様な形態があるため、そうした多様な形態におけるライセンスを統一的に管理、制御する必要がある。
第1の実施の形態は、アプリケーションの個々の契約毎のインストール及び実行の制御を可能とするライセンス管理システムである。
[1−0.第1の実施の形態の説明]
[1−1.システム構成の説明]
図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端末装置30−1は、アプリケーションのベンダー(ライセンサー)が利用する装置とし、第2端末装置30−2は、アプリケーションのライセンシーが利用する装置とし、第3端末装置30−3は、アプリケーションをテナント契約するテナント管理者が利用する装置とする。なお、ライセンシーは、個人のユーザである場合、テナント(会社等の組織)である場合がある。ここで、ライセンシーがテナントである場合には、契約の範囲内において、テナント側が、テナントに属するユーザに対してさらにライセンスを付与することがある。第1の実施の形態に係る情報処理システム1は、上記の様々なライセンス形態にも柔軟に対応可能となっている。
また、以下において、第1端末装置30−1、第2端末装置30−2、第3端末装置30−3において共通する内容については端末装置30と表記して説明することがある。
また、図1の例に示されるように、サーバ10は、ハードウェア構成の一例として、制御モジュール11、記憶モジュール12、通信モジュール13を備える。
制御モジュール11は、CPU(Central Processing Unit)を含み、記憶モジュール12に記憶されたプログラムに基づいて、各種の演算処理を実行するとともにサーバ10の各モジュールを制御する。
記憶モジュール12は、サーバ10のオペレーティングシステム等の制御プログラムやデータを記憶するほか、制御モジュール11のワークメモリとしても用いられる。プログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体に格納された状態でサーバ10に供給されてもよいし、インターネット等のデータ通信網を介してサーバ10に供給されてもよい。
通信モジュール13は、例えばネットワークインターフェースカード(NIC)を含み、NICを介してネットワーク2に接続して、ネットワーク2に接続される端末装置等と通信する。
また、図1の例に示されるように、端末装置30は、ハードウェア構成の一例として、制御モジュール31、記憶モジュール32、通信モジュール33、入力モジュール34、及び表示モジュール35を備える。
制御モジュール31は、CPUを含み、記憶モジュール32に記憶されたプログラムに基づいて、各種の演算処理を実行するとともに端末装置30の各モジュールを制御する。
記憶モジュール32は、端末装置30のオペレーティングシステム等の制御プログラムやデータを記憶するほか、制御モジュール31のワークメモリとしても用いられる。プログラムは、光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体に格納された状態で端末装置30に供給されてもよいし、インターネット等のデータ通信網を介して端末装置30に供給されてもよい。
通信モジュール33は、例えばネットワークインターフェースカード(NIC)を含み、NICを介してネットワーク2に接続して、ネットワーク2に接続される端末装置等と通信する。
入力モジュール34は、例えばキーボード、マウス、タッチパネル等の入力デバイスからユーザの操作入力を受け付ける。
表示モジュール35は、例えば液晶ディスプレイを含み、制御モジュール31により生成されるグラフィックイメージを表示する。
なお、入力モジュール34及び表示モジュール35は端末装置30の外部装置として設けられることとしても構わない。
第1の実施の形態では、サーバ10は、プロトタイプベースのオブジェクトを管理する。ここで、プロトタイプベースのオブジェクトとは、プロトタイプベースのオブジェクトの集合に唯一存在するルートオブジェクトを除けば、唯一つの親のオブジェクト(プロトタイプ)を持つオブジェクトのことである。なお、ルートオブジェクトは自身のプロトタイプを持たない。
また、オブジェクトAがオブジェクトBのプロトタイプであるとき、オブジェクトBはオブジェクトAのアーティファクトであるともいう。オブジェクト間のプロトタイプ関係により、プロトタイプベースのオブジェクト全体の集合は木構造で表現される。また、オブジェクトにより構成される木構造を破壊しないならば、プロトタイプを再接続することで木構造を変形することが可能である。
さらに、サーバ10で管理するオブジェクトには、属性及び属性値を持たせることができる。REST(REpresentational State Transfer)アーキテクチャスタイルにおいては、オブジェクトをリソース、値を表現と呼ぶこともある。オブジェクトには、単にオブジェクト識別子とプロトタイプのみからなる純粋なアイデンティティのみを表すもの、任意のコンテント型の値を持つデータを表現するもの、アクセス資格を証明するクレデンシャルであるアクセストークン、あるいはオブジェクトの所有者であるリソースオーナーやリソースオーナーの認可のもとにオブジェクトへのアクセスを行うアプリケーション(クライアント)のようなエンティティを表すものが含まれることとしてよい。そして、これらのオブジェクトが1つの木構造の中に含まれる。なお、上記のアクセストークンは、権限情報が関連づけられるオブジェクトともいえる。
第1の実施の形態に係る情報処理システム1では、サーバ10は、アクセストークンを提示したリクエストを受け付け、アクセストークンが有効と検証された場合に、アクセストークンに基づき特定された権限の範囲で、上記受け付けたリクエストを処理する。例えば、アクセストークンにより特定される権限の範囲は、オブジェクトの作成(追加)、内容の参照、更新、削除等のいずれかを認可(又は不認可)したものである。また例えば、サーバ10は、端末装置30から受け付けたリクエストに従って、管理するオブジェクトの追加、更新、情報の読み出し、削除等を実行する。
以下では、情報処理システム1において実現される機能の一例について説明する。
[1−2.情報処理システム1において実現される機能の説明]
次に、図2に示される情報処理システム1の機能ブロック図に基づき、サーバ10と端末装置30に備えられる機能の一例について説明する。
[1−2.1.サーバ10の機能]
図2の例に示されるように、サーバ10は、データ格納モジュール110、リクエスト受付モジュール120、権限オブジェクト検証モジュール130、オブジェクト管理モジュール140、リクエスト処理モジュール150、処理結果提供モジュール160を備える。
サーバ10に備えられる上記の各モジュールの機能は、サーバ10に備えられる制御モジュール11が、記憶モジュール12やコンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によってサーバ10に供給されることとしてもよいし、インターネット等のデータ通信網を介してサーバ10に供給されることとしてもよい。以下、サーバ10に備えられる各モジュールの機能の詳細について説明する。
データ格納モジュール110は、プロトタイプベースのオブジェクトの情報を管理する。ここで、プロトタイプベースのオブジェクトには、権限情報が関連づけられたアクセストークンと呼ばれる権限オブジェクトを含む。プロトタイプベースのオブジェクトは変更可能(ミュータブル)なオブジェクトであり、典型的にはランダムに生成されたIDで識別される。
図3には、サーバ10により管理されるプロトタイプベースのオブジェクトの具体例を示した。図3に示される例においては、プロトタイプベースのオブジェクトの親子関係を接続した木構造データを示している。
図3に示されるように、「root」オブジェクトD1の子オブジェクトとして、「api」オブジェクトD11、「vendor」オブジェクトD12、が設けられている。さらに、「api」オブジェクトD11の子オブジェクトとして、「authLicenseScope」オブジェクトD111、「verifyTokenScope」オブジェクトD112が設けられている。
また、「vendor」オブジェクトD12の子オブジェクトとして、「application」オブジェクトD121、「vendorToken」オブジェクトD122が設けられている。
また、「application」オブジェクトD121の子オブジェクトとして、「User」オブジェクトD1211、「tenant」オブジェクトD1212、「verifyToken」オブジェクトD1213、「applicationToken」オブジェクトD1214が設けられている。
また、「User」オブジェクトD1211の子オブジェクトとして、「licenseToken」オブジェクトD12111が設けられている。
また、「tenant」オブジェクトD1212の子オブジェクトとして、「userInTenant」オブジェクトD12121、「tenantToken」オブジェクトD12122が設けられている。
また、「userInTenant」オブジェクトD12121の子オブジェクトとして、「licenseToken」オブジェクトD121211が設けられている。
図3に示した例において、「authLicenseScope」オブジェクトD111はライセンス認証を許可するスコープ、「verifyTokenScope」オブジェクトD112はアクセストークンの検証を許可するスコープに相当する。
図3の例に示されるオブジェクトのうち、「application」オブジェクトD121は、インストールの対象となるアプリケーションに相当する。また、「User」オブジェクトD1211は、インストールの対象となるアプリケーションのライセンシーのユーザに相当する。そして、「licenseToken」オブジェクトD12111は、ユーザに付与されたライセンスに相当する。
また、図3の例に示されるオブジェクトのうち、「verifyToken」オブジェクトD1213は、「application」オブジェクトD121の作成時に生成され、インストール対象となるアプリケーションのインストーラに埋め込まれるアクセストークンとなる。
また、図3の例に示されるオブジェクトのうち、「tenant」オブジェクトD1212は、アプリケーションのテナント契約者に相当する。そして、「userInTenant」オブジェクトD12121は、テナントに属するアプリケーションのライセンシーに相当する。そして、「licenseToken」オブジェクトD121211は、「userInTenant」オブジェクトD12121に付与されたライセンスに相当する。
以上のプロトタイプベースのオブジェクトの関係は、例えば以下に示すオブジェクト管理テーブル111とバリュー管理テーブル112に記憶されるデータにより管理可能となっている。
すなわち、第1の実施の形態では、データ格納モジュール110には、オブジェクト管理テーブル111と、バリュー管理テーブル112が含まれ、プロトタイプベースのオブジェクトの情報を、オブジェクト管理テーブル111と、バリュー管理テーブル112に格納して管理している。
図4には、オブジェクト管理テーブル111の一例を、そして図5にはバリュー管理テーブル112の一例をそれぞれ示した。
図4の例に示されるように、オブジェクト管理テーブル111には、プロトタイプベースのオブジェクトの識別情報であるオブジェクトID、オブジェクトの親(プロトタイプ)オブジェクトの識別情報であるプロトタイプID、オブジェクトが有効化されているか否か(Tが有効、Fが無効)を示す有効化フラグ、オブジェクトの属性情報が関連づけて記憶される。また、オブジェクトの属性情報には、オブジェクトの型を示すtype、オブジェクトのデータ内容を格納したデータオブジェクトの識別情報を表すetag、オブジェクトの名称を格納したname、オブジェクトの生成日時を表すtimeを含む。なお、プロトタイプベースのオブジェクトのデータ構成は、図4に示された例に限定されるものではなく、上述した要素以外の要素を含み構成されていても構わない。
また、図5の例に示されるように、バリュー管理テーブル112には、etagの値に関連づけて、etagの内容を格納したバリューが関連づけられている。
例えば、アクセストークンであればetagのバリューとして、{“owner”: owner(オーナー)のオブジェクトID、“client”: client(クライアント)のオブジェクトID、“スコープ”:認可された処理の範囲}の形式の情報を含む。第1の実施の形態に係る情報処理システム1では、端末装置30から受け付ける処理要求にはアクセストークンが添付されるが、ここで、アクセストークンを検証することにより、オーナー、クライアント、スコープの情報が特定される。なお、オーナーが処理のリクエスタ、クライアントが処理の代理リクエスタとして扱われる。
リクエスト受付モジュール120は、端末装置30からリクエストを受け付ける。例えば、リクエスト受付モジュール120は、端末装置30からデータ格納モジュール110で管理されるオブジェクトの処理に関するリクエストを受け付けることとしてよい。なお、リクエスト受付モジュール120は、端末装置30からリクエストとともにリクエストに係るアクセストークンの情報を受け付けることとしてよい。この際、リクエスト受付モジュール120は、例えば端末装置30からHTTPリクエストの形式でリクエストを受け付けることとしてよい。
権限オブジェクト検証モジュール130は、リクエスト受付モジュール120で受け付けたリクエストに係る権限オブジェクト(アクセストークン)の情報を取得し、取得した権限オブジェクトを検証する。例えば、権限オブジェクト検証モジュール130は、アクセストークンの情報を、HTTPリクエストのAuthorizationフィールドから得てもよいし、アクセストークンの情報を含むクッキーが存在すれば、クッキーから得てもよい。
権限オブジェクト検証モジュール130は、上記取得したアクセストークン(権限オブジェクト)の情報が正当なものであるか否かを検証する。以下、権限オブジェクト検証モジュール130による検証処理の具体例について説明する。
まず、権限オブジェクト検証モジュール130は、取得したアクセストークンのIDが、データ格納モジュール110で管理するオブジェクト管理テーブル111に含まれているか否か(第1の条件の適否)を判断し、含まれていない場合には検証失敗と判断する。
次に、権限オブジェクト検証モジュール130は、第1の条件が満たされている場合に、アクセストークンのデータ形式(タイプ)が所定の型(すなわち、application/json)であるか否か(第2の条件の適否)を判断し、所定の型でない場合には検証失敗と判断する。すなわち、アクセストークンのetagについてバリュー管理テーブル112に記憶されるバリューが所定の型(owner、client、scopeを指定したデータ形式)でない場合には、検証失敗と判断する。
次に、権限オブジェクト検証モジュール130は、第2の条件が満たされている場合に、アクセストークンのバリューの値(owner、client、scopeの値)を取得し、owner、client、scopeのそれぞれの値がデータ格納モジュール110で管理されるデータであるか否か(第3の条件の適否)を判断し、いずれかの値がデータ格納モジュール110で管理されるデータでない場合には検証失敗と判断する。
次に、権限オブジェクト検証モジュール130は、第3の条件が満足されている場合に、データ格納モジュール110からアクセストークンのプロトタイプの情報を取得し、アクセストークンのプロトタイプが、アクセストークンのオーナーと一致しているか、オーナーのプロトタイプチェーン(オーナーの親、さらにその親へとオーナーの祖先を順に接続した経路)に含まれるか否か(第4の条件の適否)を判断し、上記のいずれにも合致しない場合には検証失敗と判断する。なお、以上の第1乃至第4の条件を満足した場合には、権限オブジェクト検証モジュール130は、アクセストークンの検証を成功と判断することとしてよい。
権限オブジェクト検証モジュール130は、上記の検証の結果と、アクセストークンにより認可されているスコープ(処理の範囲)の情報と、受け付けたリクエストをリクエスト処理モジュール150に通知する。
リクエスト処理モジュール150は、リクエスト受付モジュール120で受け付けたリクエストについて取得したアクセストークン(権限オブジェクト)についての権限オブジェクト検証モジュール130から通知された検証結果と、該受け付けたアクセストークンについて認可されたスコープ(処理の範囲)に基づいて、リクエスト受付モジュール120で受け付けたリクエストの処理を制御する。例えば、リクエスト処理モジュール150は、リクエスト受付モジュール120で受け付けたリクエストに係るアクセストークンについての検証結果が検証失敗である場合には、リクエストに係る処理を不受理としてエラーを処理結果提供モジュール160に出力することとしてよい。また、リクエスト処理モジュール150は、リクエスト受付モジュール120で受け付けたリクエストに係るアクセストークンについての検証結果が検証成功である場合には、リクエスト受付モジュール120で受け付けたリクエストを、該リクエストに関して受け付けたアクセストークンについて認可されたスコープに基づいて処理し、その実行結果を処理結果提供モジュール160に出力する。
例えば、リクエスト処理モジュール150は、受け付けたリクエストに基づいて、オブジェクト管理モジュール140にオブジェクトの生成、読み出し、更新、削除を依頼し、オブジェクト管理モジュール140から処理結果を受け取る。
具体的には、リクエスト処理モジュール150は、端末装置30から受け付けたリクエストに基づいて、アプリケーションオブジェクトの生成、アプリケーションオブジェクトの子オブジェクトでありアプリケーションインストール時のライセンストークンの検証を行う権限が定められた検証用トークンの生成、ライセンシーに相当するユーザやテナントに対応するライセンシーオブジェクトの生成、ライセンシーオブジェクトの子でありライセンシーに付与するライセンスを示すライセンストークンの生成等をオブジェクト管理モジュール140に実行させる。
例えば、図3における「application」オブジェクトD121が上記の「アプリケーションオブジェクト」に相当し、「verifyToken」オブジェクトD1213が上記の「検証用トークン」に相当する。また、図3の例における「User」オブジェクトD1211や「tenant」オブジェクトD1212が上記の「ライセンシーオブジェクト」に相当し、「licenseToken」オブジェクトD12111,D121211が上記の「ライセンストークン」に相当する。
例えば、第1の実施の形態においては、リクエスト処理モジュール150は、アプリケーションベンダー内の管理者が操作する第1端末装置30−1から受けつけた要求に応じて、上記のアプリケーションオブジェクト、検証用トークン、ライセンシーオブジェクト、ライセンストークンを生成する制御を実行することとしてよい。
オブジェクト管理モジュール140は、データ格納モジュール110により管理されるオブジェクトの情報を管理する。例えば、オブジェクト管理モジュール140は、リクエスト処理モジュール150から受け付ける要求に基づいて、オブジェクト管理テーブル111、バリュー管理テーブル112に対して情報の追加、読み出し、更新、削除等の処理を実行する。
また、オブジェクト管理モジュール140は、配信用オブジェクト生成モジュールを含み、リクエスト処理モジュール150から受け付ける配信用オブジェクトの生成要求に基づいて、マスターデータの子(又は子孫)である配信用オブジェクトを生成する。
また、オブジェクト管理モジュール140は、リクエスト処理モジュール150から受け付ける配信用オブジェクトの読み出し要求に基づいて、配信用オブジェクトの情報を読み出す。ここで、オブジェクト管理モジュール140は、配信用オブジェクトの有していないデータ項目については、配信用オブジェクトの親(又は先祖)のオブジェクトのデータ項目の情報を参照し、配信用オブジェクトの情報として返す。
また、オブジェクト管理モジュール140は、リクエスト処理モジュール150から受け付ける配信用オブジェクトの更新要求に基づいて、配信用オブジェクトの内容を更新する。また、オブジェクト管理モジュール140は、リクエスト処理モジュール150から受け付ける配信用オブジェクトの削除要求に基づいて、配信用オブジェクトを削除する。
処理結果提供モジュール160は、リクエスト処理モジュール150による処理結果を、リクエストの要求元である端末装置30に対して提供する。
例えば、第1の実施の形態においては、処理結果提供モジュール160は、第1端末装置30−1に対して、第1端末装置30−1から受け付けた要求に基づいて生成したアプリケーションオブジェクト、検証用トークン、ライセンシーオブジェクト、ライセンストークンの情報(オブジェクトID等)を提供することとしてよい。
そして、第1端末装置30−1は、アプリケーションをインストールするためのインストーラの中に、上記提供を受けた検証用トークンを書き換え不可の状態で書き込むことで、アプリケーションのインストーラに、検証用トークンを埋め込むこととしてよい。そして、アプリケーションのベンダーは、上記検証用トークンが埋め込まれたインストーラを、ライセンシー側の装置(第2端末装置30−2や第3端末装置30−3等)に提供することとしてよい。なお、インストーラの提供は、インストーラを格納した情報記憶媒体を配布したり、第1端末装置30−1又は他の装置から、ライセンシー側の装置にネットワーク経由で配信したりすることとしてよい。
また、第1端末装置30−1は、ライセンシーとのライセンス契約の締結(例えば課金処理の完了)を契機として、ライセンシーオブジェクト及びライセンストークンの生成をサーバ10に要求し、それにより生成されたライセンシーオブジェクトとライセンストークンの情報を取得する。そして、第1端末装置30−1は、ライセンシー側の装置(第2端末装置30−2や第3端末装置30−3等)に、ライセンストークンの情報を提供する。
そして、ライセンシー側の装置では、検証用トークンが埋め込まれたインストーラと、ライセンストークンに基づいて、アプリケーションのインストールを実行する。以下においては、図2に基づき、上記のインストール処理に関し端末装置30に備えられる機能について説明する。
[1−2.2.端末装置30の機能]
図2の例に示されるように、端末装置30は、インストール・実行制御モジュール310、ライセンス認証要求モジュール320、トークン検証要求モジュール330、処理結果取得モジュール340を備える。なお、以下説明する例においては、端末装置30の記憶モジュール32には、検証用トークンが埋め込まれたインストーラと、ライセンストークンの情報が記憶されていることとする。
端末装置30に備えられる上記の各モジュールの機能は、端末装置30に備えられる制御モジュール31が、記憶モジュール32やコンピュータ読み取り可能な情報記憶媒体に格納されたプログラムを読み込み実行することで実現されるものとしてよい。なお、プログラムは光ディスク、磁気ディスク、磁気テープ、光磁気ディスク、フラッシュメモリ等の情報記憶媒体によって端末装置30に供給されることとしてもよいし、インターネット等のデータ通信網を介して端末装置30に供給されることとしてもよい。以下、端末装置30に備えられる各モジュールの機能の詳細について説明する。
インストール・実行制御モジュール310は、主に端末装置30の制御モジュール31及び記憶モジュール32により実現され、検証用トークンが埋め込まれたインストーラと、ライセンストークンに基づくアプリケーションのインストール処理とアプリケーションの実行処理を制御する。インストール・実行制御モジュール310は、インストール制御モジュール312、実行制御モジュール314を有している。
インストール・実行制御モジュール310(インストール制御モジュール312)は、アプリケーションのインストール処理を行うにあたって、ライセンストークンに基づくライセンス認証の実行をライセンス認証要求モジュール320に指示する。また、インストール・実行制御モジュール310(インストール制御モジュール312)は、インストーラに埋め込まれた検証用トークンに基づくトークン検証の実行をトークン検証要求モジュール330に指示する。
インストール・実行制御モジュール310(実行制御モジュール314)は、アプリケーションの実行処理を行うにあたって、ライセンストークンに基づくライセンス認証の実行をライセンス認証要求モジュール320に指示する。また、インストール・実行制御モジュール310(実行制御モジュール314)は、アプリケーションに埋め込まれた検証用トークンに基づくトークン検証の実行をトークン検証要求モジュール330に指示する。
ライセンス認証要求モジュール320は、主に端末装置30の制御モジュール31、記憶モジュール32及び通信モジュール33により実現され、インストール・実行制御モジュール310から受け付けたライセンストークンに基づくライセンス認証を、サーバ10に対して要求する。例えば、ライセンス認証要求モジュール320は、ライセンストークンのID(オブジェクトID)をサーバ10のリクエスト受付モジュール120に対して送信することで、上記の要求を実行することとしてよい。
例えば、サーバ10においては、権限オブジェクト検証モジュール130によりライセンストークンが正当と検証され、ライセンストークンで指定されるクライアント(委譲先情報)がアクセストークンで指定されるオーナー(所有者情報)の子孫である場合には、認証成功とし、そうでない場合には認証失敗とすることとしてよい。そして、処理結果提供モジュール160は、ライセンストークンの認証結果を示す認証結果情報を、認証要求を受け付けた端末装置30に対して送信する。
トークン検証要求モジュール330は、主に端末装置30の制御モジュール31、記憶モジュール32及び通信モジュール33により実現され、インストール・実行制御モジュール310から受け付けた検証用トークンに基づくトークン検証を、サーバ10に対して要求する。例えば、ライセンス認証要求モジュール320は、検証用トークンのID(オブジェクトID)をサーバ10のリクエスト受付モジュール120に対して送信することで、上記の要求を実行することとしてよい。
なお、サーバ10においては、権限オブジェクト検証モジュール130により検証用トークンの検証が実行され、検証用トークンの検証が成功した検証成功、検証用トークンの検証が失敗した場合には検証失敗とした検証結果情報を、トークン検証要求を受け付けた端末装置30に対して送信する。
処理結果取得モジュール340は、主に端末装置30の制御モジュール31、記憶モジュール32及び通信モジュール33により実現され、サーバ10の処理結果提供モジュール160から提供される情報を取得する。
例えば、処理結果取得モジュール340は、処理結果提供モジュール160からライセンストークンの認証結果を示す認証結果情報、及び検証用トークンの検証結果を示す検証結果情報を受信し、取得することとしてよい。また、処理結果取得モジュール340は、取得した認証結果情報及び検証結果情報をインストール・実行制御モジュール310に提供することとしてよい。
インストール・実行制御モジュール310(インストール制御モジュール312)は、処理結果取得モジュール340から提供された認証結果情報及び検証結果情報に基づき、ライセンストークンの認証が成功し、かつ検証用トークンの検証が成功した場合に、インストーラに基づくインストール処理を実行し、ライセンストークンの認証と検証用トークンの検証のいずれかが失敗した場合には、インストーラに基づくインストール処理を中止することとしてよい。
インストール・実行制御モジュール310(実行制御モジュール314)は、処理結果取得モジュール340から提供された認証結果情報及び検証結果情報に基づき、ライセンストークンの認証が成功し、かつ検証用トークンの検証が成功した場合に、アプリケーションの実行処理を行い、ライセンストークンの認証と検証用トークンの検証のいずれかが失敗した場合には、アプリケーションの実行を中止することとしてよい。
[1−3.処理の一例についての説明]
次に、図6から図10に示されたシーケンス図に基づいて、情報処理システム1で実行される処理の一例について詳細に説明する。
[1−3.1.アプリケーションの登録処理]
まず、図6に示したシーケンス図に基づいて、アプリケーションベンダーの第1端末装置30−1とサーバ10とにより実行される、アプリケーションの登録処理の一例について説明する。図6のフロー例においては、第1端末装置30−1は「vendor」オブジェクトD12について子オブジェクトの生成、取得、更新、削除が可能なスコープが定められたアクセストークン(T1)である「vendorToken」オブジェクトD122を有することとする。
図6の例に示されるように、第1端末装置30−1は、アクセストークンT1を用いて、「vendor」オブジェクトD12の子オブジェクトとして、アプリケーションオブジェクト(「application」オブジェクトD121に対応)の作成をサーバ10に対して指示する(S300)。
サーバ10は、第1端末装置30−1からアプリケーションオブジェクトの作成指示を受け付けると(S100)、アクセストークンT1を検証し、検証が成功した場合に、アプリケーションオブジェクトを作成する(S101)。そして、サーバ10は、上記作成したアプリケーションオブジェクトのID(オブジェクトID)を第1端末装置30−1に対して送信する(S102)。
第1端末装置30−1は、サーバ10から送信されるアプリケーションオブジェクトのIDを受信する(S301)。
次に、第1端末装置30−1は、アクセストークンT1を用いて、アプリケーションオブジェクトの子オブジェクトを作るためのアクセストークンT2(「applicationToken」オブジェクトD1214に対応)の作成をサーバ10に対して指示する(S302)。
サーバ10は、第1端末装置30−1からアクセストークンT2の作成指示を受け付けると(S103)、アクセストークンT1を検証し、検証が成功した場合に、アクセストークンT2(アプリケーショントークン)を作成する(S104)。そして、サーバ10は、上記作成したアクセストークンT2のID(オブジェクトID)を第1端末装置30−1に対して送信する(S105)。
第1端末装置30−1は、サーバ10から送信されるアクセストークンT2のIDを受信する(S303)。そして、第1端末装置30−1は、アクセストークンT2を用いて、アプリケーションオブジェクトの子オブジェクトとして、ライセンストークンを検証するためのアクセストークンである検証用トークンの作成をサーバ10に対して指示する(S304)。
サーバ10は、第1端末装置30−1から検証用トークンの作成指示を受け付けると(S106)、アクセストークンT2を検証し、検証が成功した場合に、アプリケーションオブジェクトの子オブジェクトとして検証用トークンを作成する(S107)。そして、サーバ10は、上記作成した検証用トークンのID(オブジェクトID)を第1端末装置30−1に対して送信する(S108)。
第1端末装置30−1は、サーバ10から検証用トークンのIDを受信する(S305)。
第1端末装置30−1は、上記受信した検証用トークンのIDを、アプリケーションのインストーラに埋め込んだ後に、インストーラを第2端末装置30−2に提供することとしてよい。
[1−3.2.ユーザに対するライセンスの登録処理]
次に、図7に示したシーケンス図に基づいて、第1端末装置30−1とサーバ10により実行される、ライセンシーであるユーザに対しライセンスを登録する処理の一例について説明する。
第1端末装置30−1は、アクセストークンT2(アプリケーショントークン)を用いて、ユーザオブジェクトの作成を、サーバ10に対して指示する(S310)。上記の指示には、ユーザオブジェクトにユーザ属性情報(ユーザ名、メールアドレス等)を設定する指示を含めてよい。
サーバ10は、第1端末装置30−1からユーザオブジェクトの作成指示を受け付けると(S110)、アクセストークンT2を検証し、検証が成功した場合に、ユーザオブジェクトを作成する(S111)。そして、サーバ10は、上記生成したユーザオブジェクトの情報(オブジェクトID)を第1端末装置30−1に対して送信する(S112)。
第1端末装置30−1は、サーバ10からユーザオブジェクトの情報を受信する(S311)。
次に、第1端末装置30−1は、アクセストークンT2(アプリケーショントークン)を用いて、ユーザに付与するライセンスを示すアクセストークンであるライセンストークンの作成を、サーバ10に対して指示する(S312)。上記の指示には、ライセンストークンのオーナーを「application」オブジェクトD121(アプリケーションオブジェクト)、クライアントを「User」オブジェクトD1211(ユーザオブジェクト)、スコープを「authLicenseScope」D111(ライセンス認証用のスコープオブジェクト)に設定する指示を含めてよい。
サーバ10は、第1端末装置30−1からライセンストークンの作成指示を受け付けると(S113)、アクセストークンT2を検証し、検証が成功した場合に、ライセンストークンを作成する(S114)。そして、サーバ10は、上記生成したライセンストークンの情報(オブジェクトID)を第1端末装置30−1に対して送信する(S115)。
第1端末装置30−1は、サーバ10からライセンストークンの情報(オブジェクトID)を受信する(S313)。
第1端末30−1は、ライセンシーとなるユーザとのライセンス契約を機に、ユーザから受け付けたユーザ情報に基づいて上記の処理を実行し、その結果受信したライセンストークンの情報(オブジェクトID)を、ユーザ(ライセンシー)の操作する第2端末装置30−2に提供することとしてよい。
[1−3.3.インストール制御処理]
次に、図8に示されるシーケンス図に基づき、第2端末装置30−1とサーバ10により実行されるアプリケーションのインストール制御処理の一例について説明する。以下のシーケンス例では、第2端末装置30−2は、検証用トークンが埋め込まれたインストーラと、ユーザに対して固有に発行されたライセンストークンとを有していることとする。
図8の例に示されるように、第2端末装置30−2は、ライセンストークンに基づくライセンス認証処理をサーバ10に対して指示する(S320)。
サーバ10は、ライセンストークンに基づくライセンス認証処理の指示を受け付けると(S120)、ライセンストークンに基づくライセンス認証を実行する(S121)。例えば、サーバ10は、ライセンストークンが正当なアクセストークンであって、ライセンストークンで指定されるクライアント(委譲先情報)がアクセストークンで指定されるオーナー(所有者情報)の子孫である場合には、認証成功とし、そうでない場合には認証失敗とした認証結果を第2端末装置30−2に対して送信する(S122)。
第2端末装置30−2は、サーバ10から認証結果を受信し(S321)、受信した認証結果が認証成功である場合には(S322:Y)、インストーラに埋め込まれた検証用トークンの検証をサーバ10に対して指示する(S323)。
サーバ10は、検証用トークンの検証指示を受け付けると(S123)、検証用トークンを検証し(S124)、その検証結果を第2端末装置30−2に送信する(S125)。
第2端末装置30−2は、サーバ10から検証結果を受信し(S324)、受信した検証結果が検証成功である場合には(S325:Y)、インストーラに基づくアプリケーションのインストール処理を実行する(S326)。
一方、S321で受信した認証結果が認証成功でない場合(S322:N)、S324で受信した検証結果が検証成功でない場合(S325:N)には、エラーとして(S327)、インストーラに基づくアプリケーションのインストール処理を中止する。
なお、上記のインストーラに基づくアプリケーションのインストール処理とは、インストーラに基づいて第2端末装置30−2において、アプリケーションを実行可能な状態とすることをいう。
[1−3.4.テナントの登録処理]
次に、図9に示したシーケンス図に基づいて、第1端末装置30−1とサーバ10により実行される、ライセンシーであるテナントを登録する処理の一例について説明する。
第1端末装置30−1は、アクセストークンT2(アプリケーショントークン)を用いて、テナントオブジェクトの作成を、サーバ10に対して指示する(S330)。上記の指示には、テナントオブジェクトにテナント管理者の情報(管理者名、メールアドレス等)を設定する指示を含めてよい。
サーバ10は、第1端末装置30−1からテナントオブジェクトの作成指示を受け付けると(S130)、アクセストークンT2を検証し、検証が成功した場合に、テナントオブジェクトを作成する(S131)。そして、サーバ10は、上記生成したテナントオブジェクトの情報(オブジェクトID)を第1端末装置30−1に対して送信する(S132)。
第1端末装置30−1は、サーバ10からテナントオブジェクトの情報を受信する(S331)。
次に、第1端末装置30−1は、アクセストークンT2(アプリケーショントークン)を用いて、テナントに付与する権限を示すアクセストークンであるテナントトークンの作成を、サーバ10に対して指示する(S332)。なお、テナントトークンは、テナントオブジェクトの子孫にオブジェクトを追加し、追加したオブジェクトを削除、更新等可能な権限が定められることとしてよい。例えば、テナントトークンのオーナーを「tenant」オブジェクトD1212(テナントオブジェクト)、「tenant」オブジェクトD1212(テナントオブジェクト)、スコープを「crudScope」に設定することとしてよい。
サーバ10は、第1端末装置30−1からテナントトークンの作成指示を受け付けると(S133)、アクセストークンT2を検証し、検証が成功した場合に、テナントトークンを作成する(S134)。そして、サーバ10は、上記生成したテナントトークンの情報(オブジェクトID)を第1端末装置30−1に対して送信する(S135)。
第1端末装置30−1は、サーバ10からテナントトークンの情報(オブジェクトID)を受信する(S333)。
第1端末30−1は、ライセンシーとなるテナントの管理者に対して、上記テナントトークンの情報を提供することとしてよい。
[1−3.5.テナント内ユーザに対するライセンス登録処理]
次に、図10に示したシーケンス図に基づいて、テナントの管理者が操作する第3端末装置30−3とサーバ10により実行される、テナント内ユーザに対してライセンスを登録する処理の一例について説明する。
第3端末装置30−3は、テナントトークンを用いて、テナント内ユーザオブジェクト(図3の例に示す「userInTenant」オブジェクトD12121に対応する)の作成を、サーバ10に対して指示する(S340)。上記の指示には、テナント内ユーザオブジェクトにユーザ属性情報(ユーザ名、メールアドレス等)を設定する指示を含めてよい。
サーバ10は、第3端末装置30−3からテナント内ユーザオブジェクトの作成指示を受け付けると(S140)、テナントトークンを検証し、検証が成功した場合に、テナント内ユーザオブジェクトを作成する(S141)。そして、サーバ10は、上記生成したテナント内ユーザオブジェクトの情報(オブジェクトID)を第3端末装置30−3に対して送信する(S142)。
第3端末装置30−3は、サーバ10からテナント内ユーザオブジェクトの情報を受信する(S341)。
次に、第3端末装置30−3は、テナントトークンを用いて、テナント内ユーザに付与するライセンスを示すアクセストークンであるライセンストークンの作成を、サーバ10に対して指示する(S342)。上記の指示には、ライセンストークンのオーナーを「tenant」オブジェクトD1212(テナントオブジェクト)、クライアントを「userInTenant」オブジェクトD12121(テナント内ユーザオブジェクト)、スコープを「authLicenseScope」D111(ライセンス認証用のスコープオブジェクト)に設定する指示を含めてよい。
サーバ10は、第3端末装置30−3からライセンストークンの作成指示を受け付けると(S143)、テナントトークンを検証し、検証が成功した場合に、ライセンストークンを作成する(S144)。そして、サーバ10は、上記生成したライセンストークンの情報(オブジェクトID)を第3端末装置30−3に対して送信する(S145)。
第3端末装置30−3は、サーバ10からライセンストークンの情報(オブジェクトID)を受信する(S343)。
第3端末30−3は、テナント内ユーザに対し上記のライセンストークンの情報(オブジェクトID)を提供することとしてよい。テナント内ユーザについての、ライセンストークンに基づくアプリケーションのインストール処理は、図8の例において説明した処理と同様としてよいため省略する。
[1−4.他の形態について]
以下、他の形態について説明する。図11の例には、図3の例に示すオブジェクトの構造のうち、「tenant」オブジェクトD1212の子孫のオブジェクトの構成を変更したものを示す。
図11に示されるように、「tenant」オブジェクトD1212には、「userInTenant」オブジェクトD12121、「tenantToken」オブジェクトD12122に加えて、「LicenseUsage」オブジェクトD12123、「LogScope」オブジェクトD12124が設けられている。
ここで、「LicenseUsage」オブジェクトD12123には、「userInTenant」オブジェクトD12121に対応するユーザのインストール処理、アプリケーションの起動、アプリケーションの動作等に関するログ情報が記録される。
そして、「LogScope」オブジェクトD12124は、認証処理に加えてログ情報を記録するための処理が定められたスコープである。
そして、「userInTenant」オブジェクトD12121の子オブジェクトである「licenseToken」オブジェクトD121211に対しては、スコープに「LogScope」オブジェクトD12124を設定する点で、図3に示したオブジェクトの例とは相違するが、他の点では共通する。
なお、図11に示したオブジェクトの構成例を採用する場合に、テナント内ユーザにライセンスを登録するときには、図10の例に示すシーケンス図において、ライセンストークンのスコープを「LogScope」オブジェクトD12124に設定するようにする点を除けば、図10の例のシーケンス図と同様の処理を採用することができる。
また、テナント内ユーザのインストール処理に関しても、ライセンストークンのスコープによる処理が異なるものの、図8の例と同様のシーケンスにより実現できるため省略する。
なお、以上説明した第1の実施の形態は具体例として示したものであり、本明細書にて開示される発明をこれら具体例の構成やデータ格納例そのものに限定するものではない。当業者はこれら開示された第1の実施の形態に種々の変形、例えば、データ構造、処理の実行順を変更したりしてもよい。本明細書にて開示される発明の技術的範囲は、そのようになされた変形をも含むものと理解すべきである。以下に説明する第2の実施の形態においても同じである。
例えば、上記の情報処理システム1においては、ライセンストークンを用いて、アプリケーションに対応するクラウドサービス(図1の例のクラウドサービスサーバ50)でのOAuth認証を行うようにしてもよい。
例えば、端末装置30のユーザが、クラウドサービスサーバ50のサービスを利用したい場合には、クラウドサービスとの連携を指示すると、認証情報をサーバ10から受け取ることに対する許可をユーザに求めることとする。ユーザにより許可されると、クラウドサービスサーバ50からサーバ10に対するリクエストに応じて、サーバ10は、ユーザ情報を返却することとする。
例えば、クラウドサービスサーバ50は、ユーザ情報を元に特定された対象フォルダの情報を、端末装置30に提供することとしてよい。例えば、端末装置30では、クラウドサービスとの連携フォルダに、ユーザ固有のクラウドサービスサーバ50で管理されるユーザのフォルダを表示するようにしてよい。上記の構成によれば、端末装置30にクラウドサービスのアカウント情報を保存する必要がないため、アカウント情報の漏洩リスクが低減する。また、初回認証以降は、クラウドサービスサーバ50からサーバ10に対して確認が行われる、ユーザが毎回IDやパスワードを入力する手間がなくなる。
[2−0.第2の実施の形態の説明]
[2−1.端末装置1200において実現される機能の説明]
図12は、第2の実施の形態(端末装置1200)の構成例についての概念的なモジュール構成図を示している。第1の実施の形態における端末装置30を端末装置1200としたものである。端末装置1200は、ライセンス管理システムであるサーバ10との通信が可能でない場合に、アプリケーションの実行を制御することができる。
なお、第1の実施の形態と同種の部位には同一符号を付し重複した説明を省略する。ここで、同種の部位とは、第1の実施の形態における符号に「b」の文字を付けたものである。例えば、ライセンス認証要求モジュール320bは、ライセンス認証要求モジュール320と同種の部位である。なお、サーバ10との通信が可能である場合は、第1の実施の形態と同種の部位と同等の処理を行う。また、サーバ10との通信が可能でない場合は、サーバ10との通信の代わりに、ライセンス管理モジュール1250と情報のやり取りを行う。つまり、ライセンス管理モジュール1250がサーバ10の代わりの役割を有する。
なお、第2の実施の形態の端末装置1200のハードウェア構成例は、図1の例に示した端末装置30と同等のものである。
第2の実施の形態である端末装置1200は、図12の例に示すように、通信確認モジュール1205、ライセンス確認モジュール1210、ライセンス管理モジュール1250を有している。
端末装置1200は、前述の端末装置30に通信確認モジュール1205、結果格納モジュール1220、ライセンス管理モジュール1250を付加したものである。
また、ライセンス管理モジュール1250は、前述のサーバ10内のモジュールと同等の機能を有するモジュールで構成されており、サーバ10のデータ格納モジュール110内に認証結果1213を付加したものである。
通信確認モジュール1205は、アプリケーションの実行をライセンスにしたがって制御するサーバ10との通信が可能であるか否かを確認する。例えば、サーバ10との通信を開始し、サーバ10からの返信がない場合は、サーバ10との通信が可能でないと判断し、サーバ10からの返信がある場合は、サーバ10との通信が可能であると判断すればよい。なお、端末装置1200が、サーバ10との通信が可能である場合をオンライン時ともいい、サーバ10との通信が可能でない場合をオフライン時ともいう。
ライセンス確認モジュール1210は、ライセンス確認処理モジュール1215、結果格納モジュール1220を有しており、通信回線であるネットワーク2を介してサーバ10と接続されている。ライセンス確認モジュール1210は、通信確認モジュール1205の判断結果にしたがって、アプリケーションの実行ができるか否かについて、サーバ10と通信を行うか、ライセンス管理モジュール1250と情報のやり取りを行うか、のいずれかを行う。
ライセンス確認処理モジュール1215は、ライセンス認証要求モジュール320b、トークン検証要求モジュール330b、インストール・実行制御モジュール310b、処理結果取得モジュール340bを有している。前述したように、ライセンス確認処理モジュール1215内の各モジュールは、サーバ10と通信を行う場合は、第1の実施の形態と同等の処理を行う。ライセンス管理モジュール1250と情報のやり取りを行う場合は、サーバ10の代わりにライセンス管理モジュール1250と情報のやり取りを行って、アプリケーションの実行を制御する。
インストール・実行制御モジュール310bは、インストール制御モジュール312b、実行制御モジュール314bを有しており、ライセンス認証要求モジュール320b、トークン検証要求モジュール330b、処理結果取得モジュール340bと接続されている。
ライセンス認証要求モジュール320bは、インストール・実行制御モジュール310b、ライセンス管理モジュール1250のリクエスト受付モジュール120bと接続されている。
トークン検証要求モジュール330bは、インストール・実行制御モジュール310b、ライセンス管理モジュール1250のリクエスト受付モジュール120bと接続されている。
処理結果取得モジュール340bは、インストール・実行制御モジュール310b、結果格納モジュール1220、ライセンス管理モジュール1250の処理結果提供モジュール160bと接続されている。
結果格納モジュール1220は、ライセンス確認処理モジュール1215の処理結果取得モジュール340b、ライセンス管理モジュール1250のデータ格納モジュール110bと接続されている。
アプリケーションの実行をライセンスにしたがって制御するサーバ10との通信が可能でない場合に、以下の処理を行う。
ライセンス認証要求モジュール320bは、端末装置1200内のライセンス管理モジュール1250に対して、そのアプリケーションに関するライセンス認証の要求を行う。
そして、トークン検証要求モジュール330bは、ライセンス管理モジュール1250に対して、アクセストークンの真正性を検証するための検証トークンの検証を指示する。
次に、実行制御モジュール314bは、ライセンス認証要求モジュール320bによる要求に対する認証結果、トークン検証要求モジュール330bによる指示に対する検証結果にしたがって、アプリケーションの実行を制御する。
また、サーバ10との通信が可能でない場合に、ライセンス管理モジュール1250による処理を行わせる場合は、以前に、サーバ10との通信が可能である場合に、少なくとも1回以上のサーバ10による認証が行われていることを条件として行われるようにしてもよい。
サーバ10との通信が可能である場合に、以下の処理を行うようにしてもよい。
トークン検証要求モジュール330bは、端末装置1200を識別する情報をサーバ10に送信するようにしてもよい。
そして、結果格納モジュール1220は、サーバ10から端末装置1200を識別する情報とそのサーバ10での検証した日時を受信した場合、その情報とその日時を、認証結果1213としてデータ格納モジュール110bに記憶させるようにしてもよい。ここで「サーバ10での検証した日時」として、検証が成功した場合の日時としてもよい。
これらの処理は、第1の実施の形態に付加する処理である。つまり、サーバ10は、端末装置1200を識別する情報とそのサーバ10での検証した日時を送信する。
データ格納モジュール110bに認証結果1213が記憶された後に、以下の処理を行うようにしてもよい。
サーバ10との通信が可能でない場合に、トークン検証要求モジュール330bは、ライセンス管理モジュール1250に指示を行う場合に、端末装置1200を識別する情報をライセンス管理モジュール1250に渡すようにしてもよい。
そして、権限オブジェクト検証モジュール130bは、トークン検証要求モジュール330bから渡された端末装置1200を識別する情報とデータ格納モジュール110bに記憶されている認証結果1213内の端末装置1200を識別する情報とが一致することを条件に加えて、アクセストークンの真正性を検証するようにしてもよい。ここで「条件に加えて」とは、トークン検証要求モジュール330bから渡された端末装置1200を識別する情報とデータ格納モジュール110bに記憶されている端末装置1200を識別する情報とが一致しなかった場合は、アクセストークンの真正性は否定されたと判断することを意味する。
また、結果格納モジュール1220は、データ格納モジュール110bに、サーバ10による認証結果とアクセストークンを記憶させるようにしてもよい。
ライセンス管理モジュール1250は、データ格納モジュール110b、リクエスト受付モジュール120b、権限オブジェクト検証モジュール130b、オブジェクト管理モジュール140b、リクエスト処理モジュール150b、処理結果提供モジュール160bを有している。
データ格納モジュール110bは、権限オブジェクト検証モジュール130b、オブジェクト管理モジュール140b、ライセンス確認モジュール1210の結果格納モジュール1220と接続されており、オブジェクト管理テーブル111b、バリュー管理テーブル112b、認証結果1213を記憶している。
リクエスト受付モジュール120bは、権限オブジェクト検証モジュール130b、リクエスト処理モジュール150b、ライセンス確認モジュール1210内のライセンス確認処理モジュール1215のライセンス認証要求モジュール320bとトークン検証要求モジュール330bと接続されている。
権限オブジェクト検証モジュール130bは、データ格納モジュール110b、リクエスト受付モジュール120b、リクエスト処理モジュール150bと接続されている。
オブジェクト管理モジュール140bは、データ格納モジュール110b、リクエスト処理モジュール150bと接続されている。
リクエスト処理モジュール150bは、リクエスト受付モジュール120b、権限オブジェクト検証モジュール130b、オブジェクト管理モジュール140b、処理結果提供モジュール160bと接続されている。
処理結果提供モジュール160bは、リクエスト処理モジュール150b、ライセンス確認モジュール1210内のライセンス確認処理モジュール1215の処理結果取得モジュール340bと接続されている。
権限オブジェクト検証モジュール130bは、ライセンス認証要求モジュール320bから、アクセストークンを含む、アプリケーションに関するライセンス認証の要求を受け付けた場合、そのアクセストークンに基づいてユーザのライセンス認証を行う。
そして、処理結果提供モジュール160bは、権限オブジェクト検証モジュール130bによる認証結果を処理結果取得モジュール340bを介して実行制御モジュール314bに通知する。
また、権限オブジェクト検証モジュール130bは、トークン検証要求モジュール330bから、検証トークンの検証の指示を受け付けた場合、その検証トークンに基づいてアクセストークンの真正性を検証する。
そして、処理結果提供モジュール160bは、権限オブジェクト検証モジュール130bによる検証結果を処理結果取得モジュール340bを介して実行制御モジュール314bに通知する。
また、ライセンス管理モジュール1250(具体的には、権限オブジェクト検証モジュール130b)による処理として、検証の程度が複数用意されているようにしてもよい。
そして、検証の程度が低いものとして、サーバ10による検証結果を用いるようにしてもよい。具体的には、データ格納モジュール110b内の認証結果1213として、サーバ10による検証結果が成功であることが記憶されていれば、権限オブジェクト検証モジュール130bも検証結果は成功であるとしてもよい。
また、検証の程度が高いものとして、サーバ10による検証の日時から予め定められた期間に、サーバ10による検証結果を用いるようにしてもよい。具体的には、データ格納モジュール110b内の認証結果1213として、サーバ10による検証結果が成功であることが記憶されており、その検証日時が現在から予め定められた期間以内である場合は、権限オブジェクト検証モジュール130bも検証結果は成功であるとしてもよい。「予め定められた期間」を過ぎている場合は、アクセストークンの真正性を否定することになる。つまり、この場合は、ライセンス管理システムとの通信が可能でない場合は、アプリケーションの実行ができないことになる。
より具体的に説明する。
オンライン時に、端末装置1200はサーバ10に対して、以下のデータを送信する。
(token,♯random,ack time)
ここで、「token」はアクセストークン(又は、検証トークン)であり、「♯random」は端末装置1200を識別する情報であり、「ack tim」は端末装置1200からサーバ10へ送信した日時である。例えば、「♯random」として、GUID(Globally Unique IDentifier)を用いるようにしてもよい。
そして、その返信として、サーバ10は端末装置1200に対して、以下のデータを送信する。
(token,♯random,latest time)
ここで、「latest time」はサーバ10によって検証が成功した日時である。
そして、この(token,♯random,latest time)を認証結果1213として、データ格納モジュール110b内に記憶しておく。
次に、オフライン時には、データ格納モジュール110b内の認証結果1213を参照して、ユーザのライセンス認証、アクセストークンの真正性を検証する。なお、データ格納モジュール110b内に認証結果1213が記憶されていない場合は、ユーザのライセンス認証、アクセストークンの真正性を検証ができない。したがって、アプリケーションの実行は許可されないこととなる。
また、検証の程度(ポリシー、バリデーション)として、例えば、次のものがある。
(1)緩和型
データ格納モジュール110b内に成功の認証結果1213があれば、ライセンス管理モジュール1250としても認証成功とする。つまり、前回のオンライン時に、アプリケーションの実行が許可されたならば、今回のオフライン時も許可するものである。
(2)厳重型
データ格納モジュール110b内に成功の認証結果1213があり、その検証日時が予め定められた期間以内(例えば、3日以内等)であれば、今回のオフライン時も許可するものである。
[2−2.1.実行制御処理(オンライン時)]
図13は、サーバ10と通信可能である場合のアプリケーションの実行制御処理を示すシーケンス図である。
S1320では、ライセンス確認モジュール1210は、サーバ10に対して、ライセンストークンの認証指示を行う。例えば、以下のデータを送信する。
「POST /
Authorization: Bearer {{licenseToken}}」
S1340では、サーバ10は、ライセンス確認モジュール1210よりライセンストークンの認証指示を受け付ける。
S1341では、サーバ10は、ライセンス認証を行う。
S1342では、サーバ10は、認証結果をライセンス確認モジュール1210に送信する。例えば、以下のデータを送信する。
「200 OK
Content−Type: application/json
{ sub: ’{{userSubject}}’ }」
S1321では、ライセンス確認モジュール1210は、サーバ10より認証結果を受信する。
S1322では、ライセンス確認モジュール1210は、認証がOKであるか否かを判断し、OKの場合はS1323へ進み、それ以外の場合はS1327へ進む。
S1323では、ライセンス確認モジュール1210は、サーバ10に対して、ライセンス検証用のトークン検証指示を行う。例えば、以下のデータを送信する。
「POST /
Authorization: Bearer {{verifyToken}}
Content−Type: text/plain
{{licenseToken, #random, ack_time}}」
つまり、ライセンストークンに加えて、端末装置1200を示すGUIDのようなランダム値(ID)と送信時間を送る。
S1343では、サーバ10は、ライセンス確認モジュール1210よりトークン検証指示を受け付ける。
S1344では、サーバ10は、トークン検証を行う。
S1345では、サーバ10は、検証結果をライセンス確認モジュール1210に送信する。例えば、以下のデータを送信する。
「200 OK
Content−Type: application/json
{{licenseToken, #random, latest_time}}」
つまり、ライセンストークンとID、サーバ10での検証成功の日時を返す。なお、これは、ライセンストークンがアプリケーションの子の場合のデータ例を示している。
S1324では、ライセンス確認モジュール1210は、サーバ10より検証結果を受信する。
S1325では、ライセンス確認モジュール1210は、検証がOKであるか否かを判断し、OKの場合はS1326へ進み、それ以外の場合はS1327へ進む。
S1326では、ライセンス確認モジュール1210は、ライセンス管理モジュール1250のデータ格納モジュール110b内に、検証結果(又は認証結果)を認証結果1213として格納する。
S1351では、ライセンス管理モジュール1250は、検証結果(又は認証結果)を認証結果1213として格納する。
S1327では、ライセンス確認モジュール1210は、エラー処理を行う。
S1328では、ライセンス確認モジュール1210は、インストールを実行する。
図13の例では、アプリケーションのインストール処理を例として挙げたが、アプリケーションの実行処理も同等の処理を行えばよい。
例えば、以下のような処理が行われる。
オンライン時、アプリケーションの起動時、又は、アプリケーションの動作中の任意のタイミングで、アプリケーションに配送されたライセンストークンを用いてライセンス認証を行う。そして、認証結果は、ライセンス管理モジュール1250で保持する。つまり、認証結果とアクセストークンは、データ格納モジュール110b内に認証結果1213として保持される。
[2−2.2.実行制御処理(オフライン時)]
図14は、リクエスト受付モジュール120と通信可能でない場合のアプリケーションの実行制御処理を示すシーケンス図である。

S1421では、ライセンス確認モジュール1210は、サーバ10との通信状態を検知する。
S1422では、ライセンス確認モジュール1210は、通信がOKであるか否かを判断し、OKの場合はS1423へ進み、それ以外の場合はS1424へ進む。
S1423では、ライセンス確認モジュール1210は、サーバ10との認証・検証処理を行う。
S1424では、ライセンス管理モジュール1250に対して、ライセンストークンの認証指示を行う。例えば、以下のデータを送信する。
「POST /
Authorization: Bearer {{licenseToken}}」
S1451では、ライセンス管理モジュール1250は、ライセンス確認モジュール1210よりライセンストークンの認証指示を受け付ける。
S1452では、ライセンス管理モジュール1250は、ライセンス認証を行う。
S1453では、ライセンス管理モジュール1250は、認証結果をライセンス確認モジュール1210に送信する。例えば、以下のデータを送信する。
「200 OK
Content−Type: application/json
{ sub: ’{{userSubject}}’ }」
S1425では、ライセンス確認モジュール1210は、ライセンス管理モジュール1250より認証結果を受信する。
S1426では、ライセンス確認モジュール1210は、認証がOKであるか否かを判断し、OKの場合はS1427へ進み、それ以外の場合はS1431へ進む。
S1427では、ライセンス確認モジュール1210は、ライセンス管理モジュール1250に対して、ライセンス検証用のトークン検証指示を行う。例えば、以下のデータを送信する。
「POST /
Authorization: Bearer {{verifyToken}}
Content−Type: text/plain
{{licenseToken, #random, current_time, policy}}」
つまり、端末装置1200を示すGUIDのようなランダム値(ID)、送信日時、ポリシーを送る。
S1454では、ライセンス管理モジュール1250は、ライセンス確認モジュール1210よりトークン検証指示を受け付ける。
S1455では、ライセンス管理モジュール1250は、トークン検証を行う。具体的には、ポリシーにしたがったトークン検証を行う。
S1456では、ライセンス管理モジュール1250は、検証結果をライセンス確認モジュール1210に送信する。例えば、以下のデータを送信する。
「200 OK
Content−Type: application/json
{{licenseToken, #random, latest_time}}」
ここでは、ライセンストークンが偽でなく、かつ、ポリシーに合致すればアプリケーションの使用が許可される。
S1428では、ライセンス確認モジュール1210は、ライセンス管理モジュール1250より検証結果を受信する。
S1429では、ライセンス確認モジュール1210は、検証がOKであるか否かを判断し、OKの場合はS1430へ進み、それ以外の場合はS1431へ進む。
S1430では、ライセンス確認モジュール1210は、アプリケーションを実行する。
S1431では、ライセンス確認モジュール1210は、エラー処理を行う。
例えば、以下のような処理が行われる。
オフライン時においても、図13の例に示すように、アプリケーションの起動時、又は、アプリケーションの動作中の任意のタイミングで、アプリケーションに配送されたライセンストークンを用いてライセンス認証を行う。
オフラインの場合は、ライセンストークンの認証(又は検証)はライセンス管理モジュール1250が行う。
トークン検証の際に、最後の検証結果とポリシーに応じて評価する。
なお、以下のようにしてもよい。
アプリケーションのライセンスであると、アプリケーションそのものにリクエスト受付モジュール120を組み込むようにしてもよい。そして、コンテンツの場合は、コンテンツを表示するアプリケーションにリクエスト受付モジュール120と同等の許可のステップを用意するようにしてもよい。
例えば、コンテンツとして、機密情報や個人情報がある。このコンテンツの受け渡しに、本実施の形態を用いるようにしてもよい。特に、第2の実施の形態では、オフライン時であると通常は許可が得られないが、オフライン時でも許可することができるようになる。
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読み出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、ブルーレイ・ディスク(Blu−ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読み出し専用メモリ(ROM)、電気的消去及び書き換え可能な読み出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digital)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
10…サーバ
30…端末装置
50…クラウドサービスサーバ
110、110b…データ格納モジュール
120、120b…リクエスト受付モジュール
130、130b…権限オブジェクト検証モジュール
140、140b…オブジェクト管理モジュール
150、150b…リクエスト処理モジュール
160、160b…処理結果提供モジュール
310、310b…インストール・実行制御モジュール
312、312b…インストール制御モジュール
314、314b…実行制御モジュール
320、320b…ライセンス認証要求モジュール
330、330b…トークン検証要求モジュール
340、340b…処理結果取得モジュール
1200…端末装置
1205…通信確認モジュール
1210…ライセンス確認モジュール
1213…認証結果
1215…ライセンス確認処理モジュール
1220…結果格納モジュール
1250…ライセンス管理モジュール

Claims (10)

  1. アプリケーションの実行をライセンスにしたがって制御するライセンス管理システムとの通信が可能でない場合に、本情報処理装置内のライセンス管理手段に対して、該アプリケーションに関するライセンス認証の要求を行う要求手段と、
    前記ライセンス管理手段に対して、アクセストークンの真正性を検証するための検証トークンの検証を指示する指示手段と、
    前記要求に対する認証結果、前記指示に対する検証結果にしたがって、前記アプリケーションの実行を制御する制御手段
    を有し、
    前記ライセンス管理手段は、
    前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受け付けた場合、該アクセストークンに基づいてユーザのライセンス認証を行う認証手段と、
    前記認証手段による認証結果を前記制御手段に通知する第1の通知手段と、
    前記検証トークンの検証の指示を受け付けた場合、該検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、
    前記検証手段による検証結果を前記制御手段に通知する第2の通知手段
    を有する情報処理装置。
  2. 前記ライセンス管理システムとの通信が可能である場合に、本情報処理装置を識別する情報を該ライセンス管理システムに送信し、
    前記ライセンス管理システムから本情報処理装置を識別する情報と該ライセンス管理システムでの検証した日時を受信した場合、該情報と該日時を記憶する記憶手段
    をさらに有する請求項1に記載の情報処理装置。
  3. 前記ライセンス管理システムとの通信が可能でない場合に、前記指示手段は、前記指示を行う場合に、本情報処理装置を識別する情報を前記ライセンス管理手段に渡し、
    前記検証手段は、前記指示手段から渡された前記本情報処理装置を識別する情報と前記記憶手段に記憶されている本情報処理装置を識別する情報とが一致することを条件に加えて、前記アクセストークンの真正性を検証する、
    請求項2に記載の情報処理装置。
  4. 前記ライセンス管理システムでの検証した日時として、検証が成功した場合の日時とする、
    請求項2に記載の情報処理装置。
  5. 前記記憶手段は、前記ライセンス管理システムによる認証結果と前記アクセストークンを記憶する、
    請求項2に記載の情報処理装置。
  6. 前記ライセンス管理手段による処理は、前記ライセンス管理システムとの通信が可能である場合に、少なくとも1回以上のライセンス管理システムによる認証が行われていることを条件として行われる、
    請求項1に記載の情報処理装置。
  7. 前記ライセンス管理手段による処理として、検証の程度が複数用意されている、
    請求項6に記載の情報処理装置。
  8. 前記ライセンス管理手段による処理として、検証の程度が低いものとして、前記ライセンス管理システムによる検証結果を用いる、
    請求項7に記載の情報処理装置。
  9. 前記ライセンス管理手段による処理として、検証の程度が高いものとして、前記ライセンス管理システムによる検証の日時から予め定められた期間に、前記ライセンス管理システムによる検証結果を用いる、
    請求項7に記載の情報処理装置。
  10. 情報処理装置であるコンピュータを、
    アプリケーションの実行をライセンスにしたがって制御するライセンス管理システムとの通信が可能でない場合に、前記情報処理装置内のライセンス管理手段に対して、該アプリケーションに関するライセンス認証の要求を行う要求手段と、
    前記ライセンス管理手段に対して、アクセストークンの真正性を検証するための検証トークンの検証を指示する指示手段と、
    前記要求に対する認証結果、前記指示に対する検証結果にしたがって、前記アプリケーションの実行を制御する制御手段
    として機能させ、
    前記ライセンス管理手段を、
    前記アクセストークンを含む、前記アプリケーションに関するライセンス認証の要求を受け付けた場合、該アクセストークンに基づいてユーザのライセンス認証を行う認証手段と、
    前記認証手段による認証結果を前記制御手段に通知する第1の通知手段と、
    前記検証トークンの検証の指示を受け付けた場合、該検証トークンに基づいて前記アクセストークンの真正性を検証する検証手段と、
    前記検証手段による検証結果を前記制御手段に通知する第2の通知手段
    として機能させるための情報処理プログラム。
JP2018030628A 2018-02-23 2018-02-23 情報処理装置及び情報処理プログラム Pending JP2019144995A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018030628A JP2019144995A (ja) 2018-02-23 2018-02-23 情報処理装置及び情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018030628A JP2019144995A (ja) 2018-02-23 2018-02-23 情報処理装置及び情報処理プログラム

Publications (1)

Publication Number Publication Date
JP2019144995A true JP2019144995A (ja) 2019-08-29

Family

ID=67772475

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018030628A Pending JP2019144995A (ja) 2018-02-23 2018-02-23 情報処理装置及び情報処理プログラム

Country Status (1)

Country Link
JP (1) JP2019144995A (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009277082A (ja) * 2008-05-15 2009-11-26 Nippon Telegr & Teleph Corp <Ntt> 耐タンパデバイスを用いたサービス実行システム、サービス実行方法および耐タンパデバイス
JP2016173715A (ja) * 2015-03-17 2016-09-29 富士ゼロックス株式会社 ライセンス管理システム、プログラム及びライセンス管理方法
US20170109506A1 (en) * 2015-10-16 2017-04-20 International Business Machines Corporation Borrowing software licenses in a license management system for time based usage
JP2017208000A (ja) * 2016-05-20 2017-11-24 システムメトリックス株式会社 認証システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009277082A (ja) * 2008-05-15 2009-11-26 Nippon Telegr & Teleph Corp <Ntt> 耐タンパデバイスを用いたサービス実行システム、サービス実行方法および耐タンパデバイス
JP2016173715A (ja) * 2015-03-17 2016-09-29 富士ゼロックス株式会社 ライセンス管理システム、プログラム及びライセンス管理方法
US20170109506A1 (en) * 2015-10-16 2017-04-20 International Business Machines Corporation Borrowing software licenses in a license management system for time based usage
JP2017208000A (ja) * 2016-05-20 2017-11-24 システムメトリックス株式会社 認証システム

Similar Documents

Publication Publication Date Title
TWI492085B (zh) 用於根據使用者識別符增強產品功能的方法、設備及電腦儲存媒體
JP5593327B2 (ja) あるユーザに成り代わるための方法およびシステム
RU2560784C2 (ru) Модель взаимодействия для переноса состояний и данных
BRPI0613189A2 (pt) sincronizaÇço de conta para identidade comum em uma rede nço-gerenciada
US8341616B2 (en) Updating digitally signed active content elements without losing attributes associated with an original signing user
JP2007183935A (ja) ドメイン管理方法及びその装置
JP2005316952A (ja) 情報処理装置、資源管理装置、属性変更許否判定方法、属性変更許否判定プログラム及び記録媒体
US9652599B2 (en) Restricted code signing
TW200949603A (en) System and method for providing a system management command
US20190356494A1 (en) Identity management for software components
JP2011076377A (ja) 端末装置及び端末装置におけるアクセス制御ポリシー取得方法
JP2023120387A (ja) 管理方法、管理装置、及び、プログラム
US8478724B2 (en) Information life cycle management system, information management server apparatus, information media controlling apparatus and program
JP2007109230A (ja) データベースのスキーマエントリ入力支援システム、方法およびプログラム
JP6676673B2 (ja) 所有者同一性確認システム、端末管理サーバおよび所有者同一性確認方法
JP6477073B2 (ja) ライセンス管理システム、プログラム及びライセンス管理方法
JP4826449B2 (ja) 情報処理システム、電子許可情報発行装置、権利発行装置
JP2009176028A (ja) 権限認証装置、権限認証システム、及び権限認証プログラム
JP2022529640A (ja) デバイスの識別と監視のための方法およびシステム
JP2006270646A (ja) 電子証明書管理装置
JP2019144995A (ja) 情報処理装置及び情報処理プログラム
JP5865386B2 (ja) バックエンド制約委譲モデル
JP7303653B2 (ja) 管理方法、管理装置、及び、プログラム
US8171532B2 (en) Management apparatus, management method and recording medium storing program
JP2008090701A (ja) 認証アクセス制御システム及びこれに使用するアドインモジュール

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220524