JP6326807B2 - 情報処理システム及びプログラム - Google Patents

情報処理システム及びプログラム Download PDF

Info

Publication number
JP6326807B2
JP6326807B2 JP2013260999A JP2013260999A JP6326807B2 JP 6326807 B2 JP6326807 B2 JP 6326807B2 JP 2013260999 A JP2013260999 A JP 2013260999A JP 2013260999 A JP2013260999 A JP 2013260999A JP 6326807 B2 JP6326807 B2 JP 6326807B2
Authority
JP
Japan
Prior art keywords
access token
owner
request
parent
prototype
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.)
Active
Application number
JP2013260999A
Other languages
English (en)
Other versions
JP2015022750A (ja
JP2015022750A5 (ja
Inventor
寺尾 太郎
太郎 寺尾
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
Fujifilm Business Innovation Corp
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, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2013260999A priority Critical patent/JP6326807B2/ja
Publication of JP2015022750A publication Critical patent/JP2015022750A/ja
Publication of JP2015022750A5 publication Critical patent/JP2015022750A5/ja
Application granted granted Critical
Publication of JP6326807B2 publication Critical patent/JP6326807B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、情報処理システム及びプログラムに関する。
オブジェクトを管理するサーバでは、処理の要求元であるクライアントが有する権限に応じてオブジェクトを処理(生成、取得、変更、削除等)することがある。ここで、サーバで管理するオブジェクトには生成、変更、削除等が行われることがあるため、クライアントに対してオブジェクトとは独立に権限を固定的に紐付けておくと、クライアントの権限に応じてオブジェクトを柔軟に処理することが困難となることがある。
特開平09−251425号公報
本発明の目的は、オブジェクトの情報とオブジェクトの処理に関する権限とを同一のデータ構造で管理し、クライアントからの要求を柔軟に制御できる情報処理システム及びプログラムを提供することにある。
請求項1に係る発明は、それぞれ親又は子の少なくとも一方が定められたオブジェクトの情報を管理する情報処理システムにおいて、オーナー属性を持つオブジェクトであるアクセストークンのプロトタイプがオーナーに一致する場合に、前記アクセストークンが添付されたメソッド送信を受理する処理部を有する情報処理システムである。
請求項2に係る発明は、前記処理部は、前記アクセストークンのプロトタイプがオーナーの親のオブジェクトを順次接続した経路の中に含まれる場合に、該アクセストークンが添付されたメソッド送信は、前記オーナーにより認可されたものと解釈し、受理する請求項1に記載の情報処理システムである。
請求項3に係る発明は、前記処理部により前記メソッド送信が受理された場合に、前記オーナーに受理されたことを通知する通知部を有する請求項2に記載の情報処理システムである。
請求項4に係る発明は、それぞれ親又は子の少なくとも一方が定められたオブジェクトの情報を管理するコンピュータに、オーナー属性を持つオブジェクトであるアクセストークンのプロトタイプがオーナーに一致する場合に、前記アクセストークンが添付されたメソッド送信を受理するステップを実行させるためのプログラムである。
本実施形態に係る情報処理装置の機能ブロック図である。 木構造の一例を示す図である。 木構造の一例を示す図である。 木構造の一例を示す図である。 木構造の一例を示す図である。 木構造の一例を示す図である。 データを管理する管理テーブルの一例を示す図である。 データを管理する管理テーブルの一例を示す図である。 データを管理する管理テーブルの一例を示す図である。 データを管理する管理テーブルの一例を示す図である。 データを管理する管理テーブルの一例を示す図である。 データを管理する管理テーブルの一例を示す図である。 データを管理する管理テーブルの一例を示す図である。 データを管理する管理テーブルの一例を示す図である。 木構造の一例を示す図である。
以下、本発明を実施するための実施の形態(以下、実施形態という)を、図面に従って説明する。
[1.情報処理装置に備えられる機能の説明]
図1には、本実施形態に係る情報処理装置1の機能ブロック図を示した。図1に示されるように、情報処理装置1は、木構造データ管理部11、リクエスト受付部12、権限情報取得部13、検証部14、リクエスト処理部15、処理データ提供部16を備える。
情報処理装置1に備えられる上記各部の機能は、CPU(Central Processing Unit)等の制御手段、半導体メモリや磁気ディスク装置等の記憶手段、ネットワークインターフェース等の通信手段を備えるコンピュータにおいて、記憶手段に記憶されるプログラムを制御手段が実行することにより実現されることとしてよい。なお、プログラムは、情報記憶媒体に格納された状態で情報処理装置1に供給されることとしてもよいし、インターネット等のデータ通信手段を介して情報処理装置1に供給されることとしてもよい。以下、情報処理装置1に備えられた各部の詳細について説明する。
木構造データ管理部11は、木構造を構成する2つ以上のオブジェクトを管理する。ここで、オブジェクトは、系に唯一存在するルートオブジェクトを除けば、唯一つの親のオブジェクト(プロトタイプ)を持つ。ルートオブジェクトは自身のプロトタイプを持たない。オブジェクトAがオブジェクトBのプロトタイプであるとき、オブジェクトBはオブジェクトAのアーティファクトであるともいう。オブジェクト間のプロトタイプ関係はオブジェクト全体の集合に木構造を導入する。木構造を破壊しないならば、プロトタイプを再接続することで木構造を変形することが可能である。木構造データ管理部11で管理するオブジェクトは値を持つことができる。REST(REpresentational State Transferアーキテクチャスタイル)の文脈においては、オブジェクトをリソース、値を表現と呼ぶこともある。値を持つオブジェクトには、アクセストークンと呼ばれる権限情報を表すものがある。オブジェクトには、単にオブジェクト識別子とプロトタイプのみからなる純粋なアイデンティティのみを表すもの、任意のコンテント型の値を持つデータを表現するもの、アクセス資格を証明するクレデンシャルであるアクセストークン、あるいはオブジェクトの所有者であるリソースオーナーやリソースオーナーの認可のもとにオブジェクトへのアクセスを行うアプリケーション(クライアント)のようなエンティティを表すものが含まれることとしてよい。これらのオブジェクト達が1つの木構造の中に含まれる。そして、木構造データ管理部11は、クライアント装置2から受け付けた命令に従って、管理するオブジェクトの追加、更新、情報の読み出し、削除等を実行する。以下、木構造データ管理部11で管理されるデータの一例について説明する。
図2〜図6には、木構造データ管理部11で管理されるオブジェクトを木構造に表した表示例を、図7〜14には、木構造を構成する各オブジェクトのデータを管理する管理テーブルの一例を示した。ここでは、図2と、図2に対応する管理テーブルのデータ構成例を示した図7を参照しながら、木構造データ管理部11で管理されるオブジェクトのデータ構成例について説明する。
図7には、図2に示した木構造データのデータを保持したリソース管理テーブルの一例を示した。図7の(A)は、有効化管理テーブル、(B)はオブジェクト管理テーブル、(C)はデータ内容管理テーブルを表している。
ここで、図7の(A)に示されるように、有効化管理テーブルには、各オブジェクトのキー(オブジェクトIDであり、例えばオブジェクト生成時にシステムがランダムに発生する32バイト程度の乱数としてよい。本実施形態においては一例として16進符号化された4バイトの値をキーとして用いることとしている)、バリュー(フラグ値、例えば真偽値としてよい)の各項目を含む1以上のレコードを含む。図2に示した木構造におけるオブジェクト「spf」のオブジェクトキーは「a1f40f99」であり、オブジェクト「spf_token」のオブジェクトキーは「bfa67956」であり、いずれも有効化(「0」)されている。なお、オブジェクトを無効化する場合には、有効化管理テーブルにおいて、オブジェクトキーに関連付けられるバリューを「1」に更新すればよい。
次に、図7の(B)に示されるように、オブジェクト管理テーブルには、オブジェクトキー(オブジェクトID)、プロトタイプバリュー、アーティファクトバリュー、ステートバリュー、コンテントタイプバリューの各項目を含む1以上のレコードを含む。ここで、オブジェクトキーには、オブジェクトIDが格納され、プロトタイプバリューには、オブジェクトの親オブジェクトのオブジェクトIDが格納され、アーティファクトバリューには、オブジェクトのアーティファクトのオブジェクトIDを格納したデータ内容管理テーブル内のレコードのキー(例えばハッシュ値としてもよい)が格納され、ステートバリューには、オブジェクトのデータ内容を示すデータ内容管理テーブル内のレコードのキー(例えばハッシュ値としてもよい)が格納され、コンテントタイプバリューには、オブジェクトの種類を示すデータ内容管理テーブルのキー(例えばハッシュ値としてもよい)が格納される。
そして、図7の(C)に示されるように、オブジェクトのデータ内容を格納したデータ内容管理テーブルには、キー(例えば、アーティファクトバリュー、ステートバリュー、コンテントタイプバリューに格納された値)に関連付けて、対応するデータ内容が格納される。例えば、データ内容管理テーブルにおいては、オブジェクトのアーティファクトバリューのキーに関連付けて、当該オブジェクトのアーティファクトのリストの情報が記憶される。また、例えば、データ内容管理テーブルにおいては、アクセストークンのオブジェクトに紐付くステートバリューに格納されたキーには、{“オーナー”:オーナーのオブジェクトID、“クライアント”:クライアントのオブジェクトID、“スコープ”:スコープを表現する文字列}の情報が関連付けられている。全ての処理要求にはアクセストークンが添付されるが、ここで、オーナーが処理のリクエスタ、クライアントが処理の代理リクエスタとして扱われ、スコープには、生成(C:create)、更新(U:update)、削除(D:delete)、一覧取得(L:list)等の認可された処理の種類の情報が含まれる。なお、スコープには権限を有する処理の情報を含むこととしてよい。そして、例えば、データ内容管理テーブルにおいては、オブジェクトに紐付くコンテントタイプバリューに格納されたキーには、例えばオブジェクトのデータ型に関する情報が関連付けられてもよい。
リクエスト受付部12は、クライアント装置2から木構造データ管理部11で管理されるオブジェクトの処理に関するリクエストを受け付ける。また、リクエスト受付部12は、リクエストとともに、アクセストークン(権限情報のキー)の情報を取得する。
権限情報取得部13は、リクエスト受付部12で受け付けたアクセストークンに基づいて、受け付けたリクエストに係る権限情報(例えばオーナー情報、クライアント情報、スコープ情報)を取得する。例えば、権限情報取得部13は、リクエスト受付部12で受け付けたアクセストークンが、有効化管理テーブルで有効とされている場合に、アクセストークンをキーとしてオブジェクト管理テーブルから対応するレコードを検索する。ここで、権限情報取得部13は、オブジェクト管理テーブルからアクセストークンをキーとするレコードが検索されなかった場合には検索エラーを検証部14に出力することとしてよい。そして、権限情報取得部13は、オブジェクト管理テーブルからアクセストークンをキーとするレコードが検索された場合には、検索されたレコードのステートバリューに格納された値をキー(特定キー)として、データ内容管理テーブルから対応するレコードを検索する。ここで、権限情報取得部13は、データ内容管理テーブルから特定キーに対応するレコードが検索されなかった場合には検索エラーを検証部14に出力することとしてよい。そして、権限情報取得部13は、データ内容管理テーブルから特定キーに対応するレコードが検索された場合には、検索されたレコードのバリューに格納されたデータ(オーナー情報、クライアント情報、スコープ情報)を権限情報として取得し、オーナー情報やクライアント情報を検証(オーナーやクライアントが有効なオブジェクトIDであるか)し、検証部14に出力する。
検証部14は、権限情報取得部13により取得された権限情報と、リクエスト受付部12で受け付けたアクセストークンの親オブジェクト(プロトタイプオブジェクト)の情報の比較に基づく検証を実行する。例えば、検証部14は、権限情報取得部13により検索エラーが通知された場合には、検証エラーをリクエスト処理部15に出力する。また、検証部14は、権限情報取得部13により取得された権限情報に含まれるオーナー情報(オーナーオブジェクト)が、リクエスト受付部12で受け付けたアクセストークンの親オブジェクト(プロトタイプオブジェクト)に一致するか、オーナーオブジェクトの親オブジェクト、親オブジェクトの更に親オブジェクトを順次接続する経路(プロトタイプチェーン)内に、アクセストークンの親オブジェクト(プロトタイプオブジェクト)が含まれる場合に、検証成功と判断し、それ以外の場合には検証失敗と判断して、検証結果をリクエスト処理部15に通知する。
ここで、通知キューに関する処理について説明する。まず、リクエスト受付部12で受け付けたアクセストークンが検証された場合において、リクエスト受付部12で受け付けたアクセストークンのプロトタイプは通知を格納するキュー(通知キュー)を持つこととなる(通知キューに空のキューがセットされる)。また、リクエスト受付部12で受け付けたアクセストークンが検証された場合において、アクセストークンが指定するオーナーオブジェクトのプロトタイプチェーンに、アクセストークンのプロトタイプが含まれる場合には、オーナーオブジェクトから通知キューを持つオブジェクトをプロトタイプチェーンに沿って探索し、最初に見つかったオブジェクトが通知先として設定される。
リクエスト処理部15は、リクエスト受付部12で受け付けたリクエストと、権限情報取得部13により取得された権限情報と、検証部14から通知された検証結果と、に基づいてリクエストに係る処理の実行を制御する。例えば、リクエスト処理部15は、リクエスト受付部12で受け付けたリクエストに係る処理が、権限情報取得部13により取得された権限情報のスコープ情報に含まれており、さらに、検証部14から通知された検証結果が検証成功であるという条件、さらにターゲットリソース(リクエスト対象のオブジェクト)とアクセストークンの指定するオーナー(オブジェクト)との関係についての条件(例えば、オーナーがターゲットリソースに対する特権を有しているか否か等)を満足する場合に、リクエスト受付部12で受け付けたリクエストに係る処理を実行し、その実行結果を処理データ提供部16に出力し、上記の条件を満足しない場合には、リクエストに係る処理を不受理としてエラーを処理データ提供部16に出力することとしてよい。また、リクエスト処理部15は、受け付けたリクエストが上記の条件を満足しない場合であっても、処理(例えば更新)を保留し、ターゲットリソースのプロトタイプに処理(例えば更新)の依頼を通知することとしてもよい。ここで、ターゲットリソースのプロトタイプが通知キューを持っていない場合には、ターゲットリソースのプロトタイプチェーンにおける最初に通知キューを有するオブジェクト(通知先オブジェクト)に通知される。ここで、通知先オブジェクトは、通知キューに格納された通知を知った後に、自身のアクセストークンを利用してターゲットリソースへの処理(例えば値のセット)を行なってもよいし、単に通知をキューから削除してもよい。
以下、クライアント装置2からのリクエストが受理される場合に、リクエスト処理部15が受け付けたリクエストに応じて実行する処理(アーティファクトのリスト取得、アーティファクトの生成、オブジェクトの表現取得、オブジェクトの表現更新、オブジェクトの削除、プロトタイプの取得、プロトタイプの更新等)の例について説明する。以下説明する例においては、クライアント装置2から情報処理装置1に対して送信されるリクエストが、HTTPSのトランスポートでRESTのAPIを利用するものであり、HTTPリクエストヘッダにアクセストークンが含まれる場合を例として説明する。
リクエスト処理部15は、受け付けたリクエストが“GET /”の場合には、権限情報に含まれるオーナーオブジェクトをキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードに含まれるアーティファクトバリューの値に基づいてデータ内容管理テーブルを検索し、検索されたレコードに含まれるバリューの値を処理結果として処理データ提供部16に出力する。
リクエスト処理部15は、受け付けたリクエストが“POST /”の場合には、権限情報に含まれるオーナーオブジェクトを親とする新たなオブジェクトのキー(オブジェクトID)を生成し(オブジェクトIDは例えば乱数により生成することとしてよい)、生成したオブジェクトIDと、プロトタイプオブジェクトの情報とを格納したレコードをオブジェクト管理テーブルに追加し、生成したオブジェクトIDを処理結果として処理データ提供部16に出力する。そして、リクエスト処理部15は、プロトタイプオブジェクトについてのアーティファクトバリューの値を更新するとともに、更新した値をキー、新たに生成されたオブジェクトの情報をリストに含むリスト情報とを含むレコードをデータ内容管理テーブルに追加することとしてよい。
リクエスト処理部15は、受け付けたリクエストが“GET /{id}”の場合には、{id}をオブジェクトキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードに含まれるステートバリューに格納された値を参照し、参照した値をキーとしてデータ内容管理テーブルを検索し、検索されたレコードに含まれるバリューの値を処理結果として処理データ提供部16に出力する。
リクエスト処理部15は、受け付けたリクエストが“PUT /{id}”の場合には、{id}により特定されるターゲットオブジェクトに対して、アクセストークンが指定するオーナーが特権を有しているときには(すなわち、ターゲットオブジェクトのプロトタイプチェーンにアクセストークンが指定するオーナーが含まれているときには)、{id}をオブジェクトキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードに含まれるステートバリューに格納された値を参照し、参照した値をキーとしてデータ内容管理テーブルを検索し、検索されたレコードに含まれるバリューの値を、リクエストとともに受け付けた更新情報に従って更新する。
リクエスト処理部15は、受け付けたリクエストが“DELETE /{id}”の場合には、{id}により特定されるターゲットオブジェクトに対して、アクセストークンが指定するオーナーが特権を有しているときには(すなわち、ターゲットオブジェクトのプロトタイプチェーンにアクセストークンが指定するオーナーが含まれているときには)、{id}をオブジェクトキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードのアーティファクトバリューに値が格納されていない(つまり,ターゲットオブジェクトはアーティファクトを持たない)場合には、有効化管理テーブルにおいてオブジェクトキー{id}に対応するバリューを無効化の値(1)に更新し、検索されたレコードのアーティファクトバリューに値が格納されている場合には、エラーを処理データ提供部16に出力することとしてよい。
リクエスト処理部15は、受け付けたリクエストが“GET /{id}/prototype”の場合には、{id}をオブジェクトキーとしてオブジェクト管理テーブルから対応するレコードを検索し、検索されたレコードに含まれるプロトタイプバリューに格納された値を処理結果として処理データ提供部16に出力する。
リクエスト処理部15は、受け付けたリクエストが“PUT /{id}/prototype”でリクエストボディは新しいプロトタイプのオブジェクトIDの場合には、アクセストークンが指定するオーナー(リクエスタ)がターゲットリソース({id}で特定されるオブジェクト)の現在のプロトタイプであり、プロトタイプの変更が木構造を破壊しない場合には、新しいプロトタイプを予約する。そして、リクエスタが新しいプロトタイプとして予約され、プロトタイプの変更が木構造を破壊しない場合には、新しいプロトタイプへの設定を完了し(すなわちプロトタイプの更新を実行し)、上記以外のケースについては、リクエストを拒絶する。例えば、オブジェクトCの変更前のプロトタイプをA、変更後のプロトタイプをBとすると、「リクエスタ=A、変更先のプロトタイプ=B、対象オブジェクト=C」とする第1の指示と、「リクエスタ=B、変更先のプロトタイプ=B、対象オブジェクト=C」とする第2の指示の両方が,それぞれの指示のタイミングで,木構造を破壊しない場合に、リクエスト処理部15は、オブジェクトCのプロトタイプをAからBに変更する処理を実行することとしてよい。
処理データ提供部16は、リクエスト処理部15から通知された処理結果をクライアント装置2に提供する。なお、処理データ提供部16は、リクエスト処理部15からエラーが通知された場合にはクライアント装置2にエラーを通知することとしてよい。
また、木構造データ管理部11で管理されるオブジェクト毎に、そのオブジェクトに対して実行が保留されたリクエストを保持するキューを用意し、オブジェクトのオーナーには、オブジェクトに用意されたキューに保持されたアイテムの閲覧や削除が可能とするようにしてよい。ここで、キューに保持されるアイテムは、HTTPリクエストのヘッダおよびボディのハッシュ値とし、ボディの内容自体はハッシュ値から参照できるように保存しておくこととしてよい。そして、オブジェクトのオーナーは、リクエストの内容が妥当であれば、そのリクエストを自分自身のアクセストークンを利用したリプレイにより実行することとしてよい。ただし、当初のHTTPリクエストヘッダをそのまま全て保存した場合には、本来秘匿すべきアクセストークンがオブジェクトのオーナーに知られてしまう(つまり、オーナーは元のリクエストを行ったエンティティになりすませる)ので、リクエストヘッダ中のアクセストークンはオブジェクト識別子ではなく、そのオブジェクト識別子に割り当てられたハッシュ値(すなわち、オブジェクト識別子(アクセストークン)に対してデータ内容管理テーブルで管理されるハッシュ値)に置換することで、アクセストークンの漏洩を防ぐこととしてよい。このようにすれば、ハッシュ値からトークンの内容(JSONオブジェクトとしての{“オーナー”:オーナーのオブジェクトID、“クライアント”:クライアントのオブジェクトID、“スコープ”:スコープを表現する文字列}は特定できるが、アクセストークン自体がオーナーに露見することはない。
[2.処理の具体例についての説明]
以下、本実施形態に係る情報処理装置1において実行されるオブジェクトの追加、更新処理の具体例について図2〜図14を参照しながら説明する。
まず、図2には、初期状態のオブジェクトのなす木構造を示した。図2に示されるように、初期状態のオブジェクトの木構造には、ルートオブジェクトである「spf」に対して、ルート用のアクセストークンである「spf_token」がアーティファクトとして設けられている。また、図2に示される木構造のデータは、図7に示す管理テーブル(有効化テーブル、オブジェクト管理テーブル、データ内容管理テーブル)に対応している。
次に、図3に示されるように、オブジェクトのなす木構造において、オブジェクト「spf」のアーティファクトとして「users」オブジェクトを追加する場合の処理について説明する。この場合には、まず、クライアント装置2は、情報処理装置1に対してアクセストークン「spf_token」を用いて、“POST /”のリクエストを投げる。これにより、情報処理装置1は、図8に示されるように、新たなオブジェクトキーを生成し、生成したオブジェクトキーについてのレコードを有効化管理テーブル(A)とオブジェクト管理テーブル(B)に追加するとともに、オブジェクト管理テーブル(B)とデータ内容管理テーブル(C)に関して、アーティファクトを追加するプロトタイプオブジェクト(ここでは「spf」オブジェクト)に関するアーティファクトバリューの値を更新、追加する。なお、図8においては、図7から変更があるデータについて下線を付している。情報処理装置1は、追加したオブジェクトのキー(e356bf46)をクライアント装置2に通知する。
クライアント装置2は、アクセストークン「spf_token」を用いて、情報処理装置1から通知されたオブジェクトキー(e356bf46)についての情報を更新するリクエスト(PUT /e356bf46)、更新内容{“name”:“users”}を情報処理装置1に対して投げる。これにより、図9に示されるように、オブジェクト管理テーブル(B)及びデータ内容管理テーブル(C)において、オブジェクトキー(e356bf46)についてのデータ内容が登録される。なお、図9においては、図8から変更があるデータについて下線を付している。
次に、図4に示されるように、オブジェクト「users」の一時的なアクセストークンとして「temp_users_token」を追加する。クライアント装置2は、「spf_token」を用いて、“POST /”のリクエストを投げることで、オブジェクトを新規追加することとしてよい。図10には、「temp_users_token」のオブジェクト(de75e969)を追加した管理テーブルを示した。なお、図10においては、図9から変更があるデータについて下線を付している。
ここで、クライアント装置2は、アクセストークン「spf_token」を用いて、情報処理装置1から通知されたオブジェクトキー(de75e969)についての情報を更新するリクエスト(PUT /de75e969)、更新内容{“owner”:“/e35bf46”,“client”:“/e35bf46”,“scope“:”create update delete list”}を情報処理装置1に対して投げる。これにより、図11に示されるように、オブジェクト管理テーブル(B)及びデータ内容管理テーブル(C)において、オブジェクトキー(de75e969)について、オブジェクト「users」をオーナーとする権限情報が設定される。なお、図11においては、図10から変更があるデータについて下線を付している。
次に、図5に示されるように、クライアント装置2は、アクセストークン「temp_users_token」を用いてオブジェクト「users」の子として「users_token」を追加する。すなわち、クライアント装置2は、「temp_users_token」を用いて、“POST /”のリクエストを投げることで、オブジェクトを新規追加することとしてよい。図12には、「users_token」のオブジェクト(1ff64df4)を追加した管理テーブルを示した。なお、図12においては、図11から変更があるデータについて下線を付している。
ここで、クライアント装置2は、アクセストークン「temp_users_token」を用いて、情報処理装置1から通知されたオブジェクトキー(1ff64df4)についての情報を更新するリクエスト(PUT /1ff64df4)、更新内容{“owner”:“/e35bf46”,“client”:“/e35bf46”,“scope“:”create update delete list”}を情報処理装置1に対して投げる。これにより、図13に示されるように、オブジェクト管理テーブル(B)及びデータ内容管理テーブル(C)において、オブジェクトキー(1ff64df4)について、オブジェクト「users」をオーナーとする権限情報が設定される。なお、図13においては、図12から変更があるデータについて下線を付している。
次に、図6に示されるように、クライアント装置2は、アクセストークン「users_token」を用いて、オブジェクト「users」に対してアーティファクト「Alice」を追加する。すなわち、クライアント装置2は、「users_token」を用いて、“POST /”のリクエストを投げることで、オブジェクトを新規追加することとしてよい。図14には、「Alice」のオブジェクト(87ad557f)を追加した管理テーブルを示した。なお、図14においては、図13から変更があるデータについて下線を付している。
このように、アクセストークンの追加、オブジェクトの追加、更新を実行することにより、権限情報と、リソースとを同一の木構造内に設けることが可能となるとともに、リソースごとに詳細な権限情報を設定することが可能となる。
次に、図15に示されたオブジェクトの木構造を参照しながら、アクセストークンの指定するオーナーと、プロトタイプ(親オブジェクト)が異なる場合に実行される通知処理の一例について説明する。なお、アクセストークンの指定するオーナーと、アクセストークン自体のプロトタイプ(親オブジェクト)が異なるタイプのアクセストークンを特異トークンと称する。
図15に示されるように、オブジェクトAに対するアーティファクトであるオブジェクトBはアクセストークンであり、そのオーナー及びクライアントはオブジェクトA、スコープはs=”create update delete list”である。
次に、トークンBを利用してオブジェクトCを生成したとする。このとき、トークンBが利用された時に、トークンBのプロトタイプであるオブジェクトAは通知を格納するキューを有することとなる。
次に、トークンBを利用してトークンDを生成したとする。ここで、トークンDは、オブジェクトAをプロトタイプとし、そのオーナー及びクライアントはオブジェクトC、スコープはsであるとする。
次に、トークンDを利用してトークンEを生成したとする。ここで、トークンDが検証された時に、トークンDが特異トークンであることが検知され、トークンDのオーナーであるオブジェクトCに対して通知される。ここで、オブジェクトCから通知キューを有するオブジェクトをプロトタイプチェーンに沿って探索し、その最初に探索されたオブジェクト(オブジェクトA)を通知先とする。
次に、トークンEを利用してオブジェクトFを生成したとする。このとき、トークンEが検証されて、トークンEのプロトタイプであるオブジェクトCは通知を格納するキューを有することとなる。
また、トークンDを利用してオブジェクトGが生成されたとする。このとき、トークンDが特異トークンであることが検知され、トークンDのオーナーであるオブジェクトCに対して通知が発行され、オブジェクトCのキューに通知が格納される。
また、オブジェクトCを親とするトークンKがあり、トークンKのオーナーがC、クライアント(オーナの権限の委譲先を示す)がJで、スコープがsである場合に、オブジェクトJはオブジェクトCの代理で例えばオブジェクトCのアーティファクトであるオブジェクトGを生成することができる。
本発明は、例えば以下の形態を有することができる。
(1)本実施形態に係る情報処理装置1において、オーナー属性を持つオブジェクト(アクセストークンと呼称)のプロトタイプがオーナーに一致する場合(正規アクセストークンと呼称)、そのアクセストークンが添付されたメソッド送信は、オーナーにより認可されたものと解釈され、受理されることとしてよい。
(2)(1)において、アクセストークン自体のプロトタイプがオーナーのプロトタイプチェーンに含まれる場合(特異アクセストークンと呼称)、そのアクセストークンが添付されたメソッド送信は、オーナーにより認可されたものと解釈され、受理されることとしてよい。
(3)(2)において、特異アクセストークンの添付によってメソッド送信が受理された場合、オーナーに受理されたことを通知することとしてよい。
(4)(2)において、特異アクセストークンの添付によってメソッド送信が受理された場合、アクセストークン自体のプロトタイプに受理されたことを通知することとしてよい。
(5)(1)乃至(4)において、オブジェクト生成のためのメソッド(クローニング)を持ち、生成されたオブジェクトはオーナーのクローン(つまり、オーナーをプロトタイプとする)であることとしてよい。
(6)(1)乃至(5)において、アクセストークンはクライアント属性を持ち、アクセストークンが添付されたメソッド送信は、指定されたクライアントへ委譲されたものと解釈されることとしてよい。
(7)(1)乃至(6)において、アクセストークンはスコープ属性を持ち、アクセストークンが添付されたメソッド送信は、指定されたスコープの範囲で委譲されたものと解釈されることとしてよい。
(8)(1)乃至(7)において、クローン一覧取得のためのメソッド(クローンリスティング)を持ち、オーナーのクローンのコレクションを返却することとしてよい。
(9)(1)乃至(8)において、対象オブジェクトの表現取得のためのメソッドを持つこととしてよい。
(10)(1)乃至(9)において、対象オブジェクトの表現更新のためのメソッドを持ち、対象オブジェクトのプロトタイプに認可された場合に限り、表現更新が実行できることとしてよい。
(11)(1)乃至(10)において、対象オブジェクトの削除のためのメソッドを持ち、対象オブジェクトのプロトタイプに認可された場合に限り、削除が実行できることとしてよい。
(12)(1)乃至(11)において、メソッドの実行は、アクセストークンが指定するスコープに含まれる場合に限り、実行されることとしてよい。
(13)(1)乃至(12)において、対象オブジェクトのプロトタイプチェーンに含まれるオブジェクトに認可された場合、メソッドの実行が可能となることとしてよい。
(14)(1)乃至(13)において、対象オブジェクトのプロトタイプチェーンに含まれるオブジェクトに認可されてメソッドの実行を行った場合、対象オブジェクトのプロトタイプにメソッドが実行されたことを通知することとしてよい。
(15)(1)乃至(14)において、対象オブジェクトのプロトタイプチェーンに含まれるオブジェクトに認可されてメソッドの実行を行った場合、メソッド送信オーナーにメソッドが実行されたことを通知することとしてよい。
(16)(1)乃至(15)において、オブジェクト識別子はシステムによってランダムに生成されることとしてよい。
(17)(1)乃至(16)において、表現は、表現のハッシュ値として定まる識別子を持ち、オブジェクトと表現のバインディングはこの識別子を介して行われることとしてよい。
(18)(1)乃至(17)において、オブジェクト表現取得およびオブジェクト表現更新等の表現の送受信が発生するメソッド実行では、応答に表現識別子が付加されることとしてよい。
(19)(1)乃至(18)において、オブジェクト表現取得およびオブジェクト表現更新等の表現の送受信が発生するメソッド実行では、メソッド送信に表現識別子が付加され、付加された表現識別子に応じてメソッド実行が条件的に行われることとしてよい。
(20)(1)乃至(19)において、権限が満たされない対象オブジェクトへのメソッド送信の内容は保存され、対象オブジェクトのプロトタイプは送信内容を参照できることとしてよい。
(21)(1)乃至(20)において、メソッド送信に添加されたトークンは置換されることとしてよい。
(22)(1)乃至(21)において、対象オブジェクトのプロトタイプに事象が通知されることとしてよい。
(23)(1)乃至(22)において、通知はキューあるいはスタックに保存されることとしてよい。
(24)(1)乃至(23)において、オブジェクトへのメソッド送信の内容や付帯状況は記録され、オーナーは参照することができることとしてよい。
(25)(1)乃至(24)において、メソッド送信のトランスポートがHTTP over TLS (https)であることとしてよい。
(26)(1)乃至(25)において、アクセストークンがHTTPリクエストメッセージにおけるAuthorizationフィールドを利用して添付されることとしてよい。
(27)(1)乃至(26)において、クローニングがファクトリーリソースへのPOSTで表現されることとしてよい。
(28)(1)乃至(27)において、クローンリスティングがファクトリーリソースへのGETで表現されることとしてよい。
(29)(1)乃至(28)において、オブジェクト表現取得がエンティティリソースへのGETで表現されることとしてよい。
(30)(1)乃至(29)において、オブジェクト表現更新がエンティティリソースへのPUTで表現されることとしてよい。
(31)(1)乃至(30)において、メソッド送信のトランスポートがWebSocket over TLS (wss)であることとしてよい。
また、本実施形態において、クライアント装置2から受け付けた要求に対して、要求とともに受け付けたアクセストークンにより権限がない場合であっても、プロトタイプの情報についてはクライアント装置2に提供することとしても構わない。
1 情報処理装置、2 クライアント装置、11 木構造データ管理部、12 リクエスト受付部、13 権限情報取得部、14 検証部、15 リクエスト処理部、16 処理データ提供部。

Claims (3)

  1. それぞれ親又は子の少なくも一方が定められたオブジェクトの情報を管理する情報処理システムにおいて、
    アクセス資格を証明するオブジェクトであり、オーナー属性を持つオブジェクトであるアクセストークンの指定を、オブジェクトの処理に関するリクエストとともに受け付ける受付手段と、
    前記アクセストークンの親のオブジェクトが、前記オーナー属性により示されるオブジェクトと一致するか、又は前記オーナー属性により示されるオブジェクトの親のオブジェクトを順次接続した経路の中に含まれるか否かを判断する第1判断手段と、
    前記アクセストークンの親のオブジェクトが、前記オーナー属性により示されるオブジェクトと一致するか、又は前記オーナー属性により示されるオブジェクトの親のオブジェクトを順次接続した経路の中に含まれる場合には、前記リクエストを受理する判断し、前記アクセストークンの親のオブジェクトが、前記オーナー属性により示されるオブジェクトと一致せず、且つ前記経路の中に含まれない場合には、前記リクエストを受理しないと判断する第2判断手段を有する情報処理システム。
  2. 前記アクセストークンの親のオブジェクトが前記オーナー属性により示されるオブジェクトと一致する場合には、前記アクセストークンの親のオブジェクトに受理されたことを通知し、前記アクセストークンの親のオブジェクトが前記オーナー属性により示されるオブジェクトの親のオブジェクトを順次接続した経路の中に含まれる場合には、当該経路の中に含まれる前記アクセストークンの親のオブジェクトに受理されたことを通知する通知手段を有する
    請求項に記載の情報処理システム。
  3. それぞれ親又は子の少なくとも一方が定められたオブジェクトの情報を管理するコンピュータに、
    アクセス資格を証明するオブジェクトであり、オーナー属性を持つオブジェクトであるアクセストークンの指定を、オブジェクトの処理に関するリクエストとともに受け付けるステップ、
    前記アクセストークンの親のオブジェクトが、前記オーナー属性により示されるオブジェクトと一致するか、又は前記オーナー属性により示されるオブジェクトの親のオブジェクトを順次接続した経路の中に含まれるか否かを判断するステップ、及び、
    前記アクセストークンの親のオブジェクトが、前記オーナー属性により示されるオブジェクトと一致するか、又は前記オーナー属性により示されるオブジェクトの親のオブジェクトを順次接続した経路の中に含まれる場合には、前記リクエストを受理する判断し、前記アクセストークンの親のオブジェクトが、前記オーナー属性により示されるオブジェクトと一致せず、且つ前記経路の中に含まれない場合には、前記リクエストを受理しないと判断するステップを実行させるプログラム。
JP2013260999A 2013-12-18 2013-12-18 情報処理システム及びプログラム Active JP6326807B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013260999A JP6326807B2 (ja) 2013-12-18 2013-12-18 情報処理システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013260999A JP6326807B2 (ja) 2013-12-18 2013-12-18 情報処理システム及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013148173A Division JP5447722B1 (ja) 2013-07-17 2013-07-17 情報処理システム及びプログラム

Publications (3)

Publication Number Publication Date
JP2015022750A JP2015022750A (ja) 2015-02-02
JP2015022750A5 JP2015022750A5 (ja) 2016-09-08
JP6326807B2 true JP6326807B2 (ja) 2018-05-23

Family

ID=52487086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013260999A Active JP6326807B2 (ja) 2013-12-18 2013-12-18 情報処理システム及びプログラム

Country Status (1)

Country Link
JP (1) JP6326807B2 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3790661B2 (ja) * 2000-09-08 2006-06-28 インターナショナル・ビジネス・マシーンズ・コーポレーション アクセス制御システム
JP4455239B2 (ja) * 2004-09-10 2010-04-21 キヤノン株式会社 情報処理方法及び装置
JP5095529B2 (ja) * 2008-07-01 2012-12-12 株式会社内田洋行 異種スマート環境制御方法
JP2011154496A (ja) * 2010-01-27 2011-08-11 Fuji Xerox Co Ltd アクセス権設定プログラム、アクセス権設定装置及びアクセス権管理システム

Also Published As

Publication number Publication date
JP2015022750A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
EP3499789B1 (en) Primary and secondary blockchain device
US9679005B2 (en) Client computer for querying a database stored on a server via a network
US11475150B2 (en) Methods and apparatus for implementing state proofs and ledger identifiers in a distributed database
JP2020504927A (ja) イベントの削除を可能にする分散データベースのための方法および装置
JP5447722B1 (ja) 情報処理システム及びプログラム
US8838679B2 (en) Providing state service for online application users
US9292703B2 (en) Electronic document management method
WO2022206439A1 (zh) 提供跨链消息的方法和装置
KR20230073274A (ko) 운영 시스템을 공개하기 위한 블록체인-기반 시스템 및 방법
JP6248422B2 (ja) 情報開示システム、情報開示プログラム及び情報開示方法
CN113743944A (zh) 跨链消息可靠传递方法、装置以及电子设备
US11728928B2 (en) Securely sharing public and private blockchain data
JP2023528649A (ja) ファイル検証システムおよび方法
JP6326807B2 (ja) 情報処理システム及びプログラム
US20230336355A1 (en) Data protection on distributed data storage (dds) protection networks
WO2023004807A1 (zh) 知识管理系统、方法、装置、电子设备和存储介质
CN117118640A (zh) 一种数据处理方法、装置、计算机设备以及可读存储介质
Trueman et al. Ensuring privacy and data freshness for public auditing of shared data in cloud
JP6419143B2 (ja) 共通プログラム、データベース管理装置、及びデータベース管理方法
US8495132B2 (en) Information processing system
JP6467999B2 (ja) 情報処理システム及びプログラム
JP6083210B2 (ja) 認証情報管理システム、認証情報管理方法、認証情報管理プログラム、及び、検索システム
Ranjini et al. PRS Generic Data Store Service
JP5157770B2 (ja) ノード装置、プログラム及び保存指示方法
TW202304171A (zh) 用於以區塊鏈實施之資料應用程式中簽章驗證的改良方法與系統

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160719

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160721

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180109

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180307

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: 20180320

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180402

R150 Certificate of patent or registration of utility model

Ref document number: 6326807

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