説明

情報処理装置、情報処理方法、及びコンピュータプログラム

【課題】 SaaSアプリケーションなどの、マルチテナント型のアプリケーションにおいて、アクセス権限を付与する単位であるロールの分類と、各々のロール付与される権限を、テナント毎に柔軟に定義できるようにする。
【解決手段】 情報資源に対する操作権限の情報を定義したアクセス権限定義情報と、テナント毎のロールの分類とロールに付与する権限を定義したテナントロール定義情報、またこのロールのユーザへの割り当てを定義したユーザロール定義情報を記憶しておき、これらの情報を組み合わせて結びつけることで、アプリケーションは単一のプログラムを用いて情報資源に対するユーザのアクセス制御を実現する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報資源に対するアクセス制御に関するものであって、特にマルチテナント型のシステムにおける、テナント毎に管理されるロール(役割)の定義と、ユーザに割り当てられたロールに基づく、情報資源に対するアクセス制御に関するものである。
【背景技術】
【0002】
ユーザロールに基づく情報資源に対するアクセス制御を行う場合には、情報資源に対してのアクセス権限をロールに付与しておき、ユーザにロールを割り当てる。ユーザに割り当てられたロールに特定の操作に対する権限があれば、ユーザはそのアクションが許可される。特許文献1には、上記のようなユーザロールによるアクセス制御の方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000-207363号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
SaaSアプリケーションなど、マルチテナント型のシステムでは、同一のアプリケーションプログラムが複数のテナント(利用企業)に提供される。しかしながら、企業規模・業態が異なるテナント企業において、ユーザの役割を表すロールの望ましい分類は異なるものであり、また同一のロールに付与される権限も異なる可能性がある。このためマルチテナント型のアプリケーションにおいては、アクセス権限を付与する単位であるロールの分類と、各々のロール付与される権限(以下 アクセス権限を付与する単位であるロールの分類と、各々のロール付与される権限を「ロール定義情報」と表記する)を、テナント毎に柔軟に定義できるようにした上で、アプリケーションが単一のプログラム制御によって、アクセス制御を実現できるように必要がある。
【0005】
しかしながら、特許文献1に記載のユーザ・アクセス制御装置においては、単一のロール定義情報による情報資源に対するアクセス制御は可能であるが、テナント毎の複数のロール定義情報に基づく、情報資源に対するアクセス制御を実現することはできない。特に、複数のロール定義情報を記憶する手段と、テナント毎に定義されたロールの権限を、単一のプログラムによって情報資源に対するアクセス権限制御を実現するためのデータに変換する手段に欠けている。
【0006】
本発明は上記の課題を解決するためになされたものであり、アクセス権限を付与する単位であるロールの分類と、各々のロール付与される権限をテナント毎に設定可能な、アプリケーションが情報資源に対するユーザのアクセス制御を、単一のプログラム制御で実現できるようにするための、アクセス制御装置及びその制御方法、アクセス制御システム、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記した目的を達成するために、本発明の情報処理装置は以下の構成を備える。即ち、 マルチテナント型のアプリケーションが提供する機能のうち、ユーザの権限に基づき前記ユーザが利用できる機能を決定する情報処理装置であって、複数の前記テナントそれぞれについて、ロールとそのロールを有する権限との関係を示すテナント−ロール定義情報、前記テナント毎に、ユーザと当該ユーザに割り当てられたロールの関係を示すユーザ−ロール定義情報、及び複数の前記マルチテナント型のアプリケーションそれぞれについて、前記権限とその権限を有するユーザが実行できる当該アプリケーションの機能との関係を示すアクセス権限定義情報を記憶した記憶手段と、ユーザが使用する端末より送信されるユーザ認証に用いる認証情報に従い、前記端末を使用するユーザを認証する認証手段と、前記認証手段で認証されたユーザの権限を、前記記憶手段に記憶されているユーザ−ロール定義情報及びテナント−ロール定義情報に従って決定する第1の決定手段と、前記端末よりアプリケーションの実行要求を受け付ける受付手段と、前記受付手段が前記端末より実行要求を受け付けたアプリケーションのアクセス権限定義情報と、前記第1の決定手段で決定された当該ユーザの権限に従って、前記実行要求を受け付けたアプリケーションにおいて前記ユーザが利用できる機能を決定する第2の決定手段と、を備えることを特徴とする。
【0008】
また、上記した目的を達成するために、本発明の情報処理詳報は以下の構成を備える。即ち、 複数の前記テナントそれぞれについて、ロールとそのロールを有する権限との関係を示すテナント−ロール定義情報、前記テナント毎に、ユーザと当該ユーザに割り当てられたロールの関係を示すユーザ−ロール定義情報、及び複数の前記マルチテナント型アプリケーションそれぞれについて、前記権限とその権限を有するユーザが実行できる当該アプリケーションの機能との関係を示すアクセス権限定義情報を記憶した記憶手段を備える情報処理装置によって行われる、マルチテナント型のアプリケーションが提供する機能のうち、ユーザの権限に基づき前記ユーザが利用できる機能を決定する情報処理方法であって、ユーザが使用する端末より送信されるユーザ認証に用いる認証情報に従い、前記端末を使用するユーザを認証する認証工程と、前記認証工程で認証されたユーザの権限を、前記記憶手段に記憶されているユーザ−ロール定義情報及びテナント−ロール定義情報に従って決定する第1の決定工程と、前記端末よりアプリケーションの実行要求を受け付ける受付工程と、前記受付工程で前記端末より実行要求を受け付けたアプリケーションのアクセス権限定義情報と、前記第1の決定工程で決定した当該ユーザの権限に従って、前記実行要求を受け付けたアプリケーションにおいて前記ユーザが利用できる機能を決定する第2の決定工程と、を備えることを特徴とする。
【0009】
また、上記した目的を達成するために、本発明のコンピュータプログラムは以下の構成を備える。即ち、 複数の前記テナントそれぞれについて、ロールとそのロールを有する権限との関係を示すテナント−ロール定義情報、前記テナント毎に、ユーザと当該ユーザに割り当てられたロールの関係を示すユーザ−ロール定義情報、及び複数の前記マルチテナント型アプリケーションそれぞれについて、前記権限とその権限を有するユーザが実行できる当該アプリケーションの機能との関係を示すアクセス権限定義情報を記憶した記憶手段を備えるコンピュータを、マルチテナント型のアプリケーションが提供する機能のうち、ユーザの権限に基づき前記ユーザが利用できる機能を決定する情報処理装置として機能させるためのコンピュータプログラムであって、ユーザが使用する端末より送信されるユーザ認証に用いる認証情報に従い、前記端末を使用するユーザを認証する認証手段と、
前記認証手段で認証されたユーザの権限を、前記記憶手段に記憶されているユーザ−ロール定義情報及びテナント−ロール定義情報に従って決定する第1の決定手段と、前記端末よりアプリケーションの実行要求を受け付ける受付手段と、前記受付手段で前記端末より実行要求を受け付けたアプリケーションのアクセス権限定義情報と、前記第1の決定工程で決定した当該ユーザの権限に従って、前記実行要求を受け付けたアプリケーションにおいて前記ユーザが利用できる機能を決定する第2の決定手段、として機能させることを特徴とする。
【発明の効果】
【0010】
本発明によれば、情報資源に対するアクセス権限を付与する単位であるロールの分類と各々のロールに付与される権限を、テナント毎に柔軟に定義しながら、アプリケーションが情報資源に対するユーザのアクセス制御を、単一のプログラム制御で実施するための、情報処理装置及び情報処理方法、及びコンピュータプログラムを提供できる。特に、テナント毎のロール定義情報と、テナント内のユーザが割り当てられたロールを定義したユーザロール定義情報を記憶し、これらの情報を元に、情報資源に対するアクセス権限のデータに変換するので、単一のシステムで柔軟なアクセス権限の制御を実現する効果を奏する。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態におけるシステムの構成を示す図である
【図2】本発明の実施形態における各端末及びサーバのハードウェア構成を示す図である。
【図3】本発明の実施形態における各端末及びサーバのモジュール構成を示す図である。
【図4】図3のアクセス制限定義情報の構成の一例を示す図である。
【図5】図3のユーザロール定義情報の構成の一例を示す図である。
【図6】図3のテナントロール定義情報の構成の一例を示す図である。
【図7】アクセス権限定義情報の設定に用いられる管理画面の一例を示す図である。
【図8】ユーザロール定義情報の設定に用いられる管理画面の一例を示す図である。
【図9】テナントロール定義情報の設定に用いられる管理画面の一例を示す図である。
【図10】サービスアプリケーション301のメニュー画面の一例を示す図である。
【図11】サービスアプリケーション301の業務画面の一例を示す図である。
【図12】サービスアプリケーション301の業務画面の一例を示す図である。
【図13】アクセス制御部302が情報資源に対するユーザのアクセス権限を導出する処理の一例を示すフローチャートである。
【図14】アクセス権限定義情報を設定する処理の一例を示すフローチャートである。
【図15】テナントロール権限定義情報を設定する処理の一例を示すフローチャートである。
【図16】ユーザロール権限定義情報を設定する処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の実施形態を詳細に説明する。図1は、本発明の実施形態におけるシステムの構成を示す図である。尚、図1のネットワーク103上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。
【0013】
101はアプリケーションサービスを提供するアプリケーションサーバであり、マルチテナント型のアプリケーションは101上で稼動する。102はサービスを管理する事業者が使用する、サービス管理端末である。104−1、104−2は当該サービスを使用する各テナントの利用者が使用する、サービス利用端末である。サービス管理端末102、サービス利用端末104−1、サービス利用端末104−2は、ネットワーク103を介して、アプリケーションサーバ101とデータの送受信が可能である。
【0014】
次に、図1のアプリケーションサーバ101、サービス管理端末102、サービス利用端末104−1、サービス利用端末104−2の各種端末に適用可能な情報処理装置のハードウェア構成について、図2を用いて説明する。
【0015】
CPU201は、システムバス204に接続される後述の各デバイスやコントローラを統括的に制御する。また、ROM203あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。
【0016】
CPU201は、処理の実行に際して必要なプログラム等をRAM202にロードして、プログラムを実行することで各種動作を実現するものである。また、入力コントローラ(入力C)205は、キーボードやポインティングデバイス等で構成される入力装置209からの入力を制御する。ビデオコントローラ(VC)206は、ディスプレイ装置210等の表示装置への表示を制御する。ディスプレイ装置は、例えばCRTディスプレイや液晶ディスプレイ等で構成される。
【0017】
メモリコントローラ(MC)207は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶するハードディスク(HD)やフロッピーディスク(登録商標 FD)或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュメモリ等の外部メモリ211へのアクセスを制御する。
【0018】
通信I/Fコントローラ(通信I/FC)208は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いたインターネット通信等が可能である。
【0019】
なお、CPU201は、例えばRAM202内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ装置210上での表示を可能としている。また、CPU201は、ディスプレイ装置210上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【0020】
図1に示す、本実施形態にかかる各種端末(アプリケーションサーバ101、サービス管理端末102、サービス利用端末104−1、104−2)が後述する各種処理を実行するために用いられるプログラムは外部メモリ211に記録されており、必要に応じてRAM202にロードされることによりCPU201によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ211に格納されている。
【0021】
次に、図1のアプリケーションサーバ101、サービス管理端末102、サービス利用端末104−1、サービス利用端末104−2の各種端末の内部構成について、図3を用いて説明する。
【0022】
図3で、301のサービスアプリケーション(サービスAP)はアプリケーションサーバ101に配置され、サービスアプリケーション301がWebアプリケーションの形態を取る場合、サービス利用端末104からブラウザ303を用いてアクセスされる。302は特定のテナントの特定のユーザが許可されたアクセス権限の情報を、サービスアプリケーション301に提供するアクセス制御部である。アクセス制御部302は、サービスアプリケーション301から、ネットワーク103を介してアクセス可能な別のハードウェア上に配置されていても構わない。311、312、313は、アクセス制御部302の構成要素である。アクセス権限管理モジュール311は、アクセス制御部302のメインモジュールであり、ユーザロールプロバイダモジュール312、テナントロール定義プロバイダモジュール313を呼び出し、またアクセス権限定義情報321を用いて、テナントのユーザが利用できるアクセス権限の情報を提供する。ユーザロールプロバイダモジュール312は、ユーザ定義情報322を用いて、テナント内のユーザが割り当てられたロール情報を提供するモジュールである。テナントロール定義プロバイダモジュール313は、テナントロール定義情報323を用いて、テナントが定義するロールとそのロールに付与された権限の情報を提供するモジュールである。ユーザロールプロバイダモジュール312、テナントロール定義プロバイダモジュール313は、アクセス権限管理モジュール311から、ネットワーク103を介してアクセス可能な別のハードウェア上に配置されていても構わない。305はアクセス制御部302の動作に必要な、アクセス権限定義情報321、ユーザ定義情報322、テナントロール定義情報323を設定するための管理アプリケーション(管理AP)である。管理アプリケーション305は、サービス利用端末104のブラウザ303や、サービス管理端末102のブラウザ304からネットワーク103を介してアクセスできる。
【0023】
次に、図3のアクセス権限定義情報321、ユーザロール定義情報322、テナントロール定義情報323の各種データ構造の例と、これを設定するための管理画面例について、図4から図9を用いて説明する。
【0024】
図4は図3のアクセス権限定義情報321のデータ構造の一例を示している。アクセス権限定義情報321は、アクセス権限の一覧401を保持し、アクセス権限401毎に業務機能(業務機能1(402)、業務機能2(403)、業務機能3(404)、業務機能4(405))の操作権限を定義している。例えば図4の設定例で、アクセス権限”AP権限−4”は、”業務機能1”の参照権限”R”と、”業務機能2”の参照・編集権限”R/W”があることを意味する。
【0025】
図7は、アクセス権限定義情報321を設定するための管理画面の一例である。管理画面700がWebアプリケーションの形態で提供される場合、サービス管理端末102は、サービス管理端末102のブラウザ304により表示される管理画面700を介してデータの入力を受け付け、ネットワーク103を介して管理アプリケーション305にデータを送信することで、アクセス制御部302のアクセス権限管理モジュール311はアクセス権限定義情報321を設定する。
【0026】
図5は、図3のユーザロール定義情報322のデータ構造の一例を示している。ユーザロール定義情報322は、テナントのユーザ毎に、ユーザに割り当てられたロールを定義している。テナントID501はテナントを一意に識別するIDであり、ユーザID502はテナント内のユーザを一意に識別するIDである。ロール503はユーザに割り当てられたロールを示している。例えば、図5の設定例で、テナントIDが”T−A”のテナントに所属するユーザ”USER1”は、”ロール2”と”ロール3”と”ロール4”が割り当てられていることを意味する。尚、ユーザに割り当てられるロールに割り当てられた権限は、テナントロール定義情報323に定義されている。
【0027】
図8は、ユーザロール定義情報322を設定するための管理画面の一例である。管理画面800がWebアプリケーションの形態で提供される場合、サービス利用端末104は、サービス利用端末104のブラウザ303により表示される管理画面800を介してデータの入力を受け付け、ネットワーク103を介して管理アプリケーション305にデータを送信することで、アクセス制御部302のユーザロールプロバイダモジュール312はユーザロール定義情報322を設定する。
【0028】
図6は、テナントロール定義情報323のデータ構造の一例を示している。テナントロール定義情報323は、各々のテナントID601で特定されるテナントのそれぞれのロール602について、当該ロールに付与されるアクセス権限603を定義している。例えば図6の設定例で、テナントIDが”T−A”で表されるテナントにおいて、”ロール3”は”AP権限−1”と”AP権限−2”の権限を持つことを意味する。尚、ロールに付与されるアクセス権限は、図4で説明したアクセス権限定義情報321に定義されている。
【0029】
図9は、テナントロール定義情報503を設定するための管理画面の一例である。管理画面900がWebアプリケーションの形態で提供される場合、サービス利用端末104は、サービス利用者端末104のブラウザ303により表示される管理画面900を介してデータの入力を受け付け、ネットワーク103を介して管理アプリケーション305にデータを送信することで、アクセス制御部302のテナントロール定義プロバイダモジュール323は定義情報テナントロール定義情報323を設定する。
【0030】
次に、アプリケーションサーバ101のアクセス制御部302が情報資源に対するユーザのアクセス権限を導出する処理を、図13を参照して説明する。ここでは、外部から与えられたテナントIDとユーザIDと、予め定義された情報に基づいて、アクセス制御部302が業務機能に対する当該ユーザのアクセス権の一覧を導出する処理の説明を行う。この処理を行う際には、アプリケーションサーバ101のCPU201は、外部メモリ211に記憶されている、CPU201にアクセス制御部302に係る処理を行わせるためのプログラムをRAM202にロードし、当該プログラムの制御に従って本処理を行うことになる。以降の説明では、アクセス権限管理モジュール311によるに従ってCPU201が行う処理を、アクセス権限管理モジュール311が行う処理として、ユーザロールプロバイダモジュール312による制御に従ってCPU201が行う処理をユーザロールプロバイダモジュール312が行う処理として、テナントロール定義プロバイダモジュール313による制御に従ってCPU201が行う処理をテナントロール定義プロバイダモジュール313が行う処理として説明することにする。
【0031】
ステップS1301では、アクセス権限管理モジュール321を呼び出し、その制御に従ってCPU201は、外部から条件として与えられたテナントID(P1)とユーザID(P2)を受け取る。そしてユーザ認証を行い、当該ユーザ情報、テナント情報を特定する。ここでは、P1の値を”T−A”、P2の値を”USER2”と仮定して、この先のフローを説明する。
【0032】
続いて、ステップS1302では、アクセス権限管理モジュール311は、ユーザロールプロバイダモジュール322を呼び出す。そしてユーザロールプロバイダモジュール312は、当該ユーザのロールリスト(L1)をユーザロール定義情報322より取得する。この際、ユーザロールプロバイダモジュール312には、引数としてテナントID(P1)とユーザID(P2)が受け渡される。ユーザロールプロバイダモジュール312は、ユーザロール定義情報322に予め定義されたデータを参照して、当該テナントユーザに割り当てられたロールを取得する。例えば、図5のようにユーザロール定義情報が設定されていた場合には、テナントID列が引数P1の値”T−A”、ユーザID列が引数P2の値”USER2”の両方が一致する行が探索され、そのデータ行のロール列の値”ロール2、ロール3、ロール4”が取得される。そして取得したロールを要素とする配列L1をアクセス権限管理モジュール401に返す。この時点でL1の配列の要素には”ロール2”、”ロール3”、”ロール4”が含まれる。
【0033】
ステップS1303では、配列L2が初期化される。この時点では配列L2の要素は空である。その後ステップS1304では、配列L2のカウンタ変数であるKを0に初期化する。
【0034】
ステップS1305は、ループ始端である。配列L1各々の要素であるL1[i](iの初期値は0)に対して、ステップS1306からS1311の処理を行う。
【0035】
ステップS1306では、アクセス権限管理モジュール311は、テナントロール定義プロバイダモジュール313を呼び出して、テナントロール定義情報323からL1[i]のロールについてアクセス権限リスト(L3)を取得する。この際、テナントロール定義プロバイダモジュール313には、引数としてテナントID(P1)とL1[i]のロール(P3)が受け渡される。テナントロール定義プロバイダモジュール313は、テナントロール定義情報323に予め定義されたデータを参照して、当該ロールに付与されたアクセス権限を取得する。例えば、テナントロール定義情報が図6に示すように設定されており、引数P3の値が”ロール2”の時、テナントID列と引数P1の値”T−A”、ロール列と引数P3の値”ロール2”の両方が一致する行が探索され、そのデータ行のアクセス権限列が取得される。そして取得したデータ行の権限列に設定された権限の、各々を要素とする配列L3をアクセス権限管理モジュール401に返す。引数P1の値が”T−A”、
引数P3の値が”ロール2”の時、L3の配列の要素には”AP権限−3”が含まれる。
【0036】
ステップS1307はループ始端である。配列L3各々の要素であるL3[j](jの初期値は0)に対して、ステップS1308からS1310の処理を行う。
【0037】
ステップS1308では、L3[j]の値が示すアクセス権限が配列L2の要素として含まれているかを確認し、配列L2の要素に含まれていない場合にはステップS1309に進む。L3[j]の値が配列L2の要素に既に含まれている場合にはステップS1311に進む。
【0038】
ステップS1309では、L2[k]にL3[j]を代入する。そして、ステップS1310で変数kの値に1を追加する。
【0039】
ステップS1311はステップS1307に対応するループ終端である。配列L3に含まれる全ての要素についてステップS1308からS1310の処理が終わるとループが終了する。このループが終了した時点でユーザに割り当てられたロールの1つに付与された業務権限が、配列L2に追加されていることになる。例えばL1の1つ目の要素であるL1[0]が“ロール2”の時、L3の要素は“AP権限−3”が含まれる。
【0040】
ステップS1312は、ステップS1305に対応するループ終端である。配列L1に含まれる全ての要素についてステップS1306からS1311の処理が終わるとループが終了する。このループが終了した時点でユーザに割り当てられた全てのロールに付与された業務権限が、配列L2に追加されていることになる。例えば引数P1の値が“T−A”、引数P2の値が“USER2”の時、このループを終了する時点での、配列L2の要素は“AP権限−3”、“AP権限−1”、“AP権限−2”が含まれる。そして、ステップS1313で呼出元に配列L2を返す。
【0041】
次に、図14を参照して、アクセス権限定義情報321を設定する処理について説明する。図14に示すアクセス権限定義情報設定処理は、サービス管理端末102及びアプリケーションサーバ101によって行われる。尚、アプリケーションサーバ101のCPU201により行われる処理については、その処理主体をCPU201に当該処理を行わせるモジュールとして説明することにする。
【0042】
まず、サービス管理端末102のCPU201は、アクセス権限定義情報変更要求をアプリケーションサーバ101に対して送信する(ステップS1401)。その変更要求を受信する(ステップS1402)と、ステップS1403で管理アプリケーション305は、現在登録されているアクセス権限定義情報321のデータを取得するために、アクセス制御部302を呼び出す。このデータ取得要求は、アクセス制御部302の内部でアクセス権限管理モジュール311に伝えられる。
【0043】
その後、ステップS1404でアクセス権限管理モジュール311は、アクセス権限定義情報321からデータを読み込んで、読み込んだデータ(以下 D1a)を呼出元に返す。アクセス制御装置302から、D1aを受け取った管理アプリケーション305はステップS1405で、D1aを反映したアクセス権限定義情報の管理画面700のHTML文書を生成し、このHTML文書をサービス管理端末102のブラウザ304の応答として返す(ステップS1406)。このHTML文書はネットワーク103に送信され、ブラウザ304が受信する。サービス管理端末102が管理画面700のHTMLデータを取得すると、ブラウザ304の機能により、D1aが設定されたアクセス権限定義情報の管理画面700がディスプレイ装置210に表示される(ステップS1408)。
【0044】
そしてその後、管理画面700を介してデータの変更入力を受け付ける(ステップS1409)。そしてその後、管理画面700の送信ボタン704の押下を受け付けると、入力データ(以下 D1b)が、ブラウザ304の機能によってネットワーク103に送信され(ステップS1410)、管理アプリケーション305がこれを受信する(ステップS1411)。ステップS1412では、D1bを受信した管理アプリケーション305は、このデータを永続化するために、アクセス制御部302にD1bを受け渡す。この永続化要求は、アクセス制御部302の内部でアクセス権限管理モジュール311に伝えられる。
【0045】
そして、アクセス権限管理モジュール311は、アクセス権限定義情報321のデータを、受け取ったD1bの内容に置き換える(ステップS1412:データ更新)。そして、管理アプリケーション305はその処理結果をアクセス制御部302より取得し、取得した処理結果をサービス管理端末102のブラウザ304に対して送信する(ステップS1413)。そして、サービス管理端末102のブラウザ304は受信した処理結果を表示する(ステップS1414)。以上がアクセス権限定義情報設定処理の説明である。
【0046】
次に、図15を参照して、テナントロール定義情報323を設定する処理について説明する。図15に示すテナントロール定義情報設定処理は、サービス利用端末104及びアプリケーションサーバ101によって行われる。尚、本処理の説明は、その処理主体をCPU201に当該処理を行わせるモジュールとして説明することにする。
【0047】
まず、サービス利用端末104のCPU201は、テナントロール定義情報変更要求をアプリケーションサーバ101に対して送信する(ステップS1501)。その際には、ブラウザ303を利用して、管理アプリケーション305にアクセスすることになる。またこのアクセス要求には、テナントIDのようなアクセス元のテナントを識別する情報が含まれる。テナントIDをアクセス要求に含める方法としては、例えばHTTP CookieやURL内のクエリストリングあるいは、HTTP POSTデータに含める方法が考えられる。管理アプリケーション305においては、前記のアクセス元のテナントの表明が偽装される攻撃に備えて、十分な対策がなされるべきであることは言うまでもない。
【0048】
アプリケーションサーバ101の管理アプリケーション305が変更要求を受信する(ステップS1502)と、ステップS1503で現在登録されているテナントロール定義情報323のデータを取得するために、アクセス制御部302を呼び出す。このデータ取得要求は、アクセス制御部302の内部でテナントロール定義プロバイダモジュール313に伝えられる。
【0049】
ステップS1503で管理アプリケーション305は、該当するテナントのテナントロール定義のデータを取得するために、アクセス制御部302を呼び出す。呼び出しにあたって、管理アプリケーション305は、アクセス要求に含まれるテナントIDを取り出して、アクセス制御装置302に引数として受け渡す。このデータ取得要求は引数とともに、アクセス制御部302の内部で、アクセス権限管理モジュール311を介して、テナントロール定義プロバイダモジュール313に伝えられる。ステップS1504でテナントロール定義プロバイダモジュール313は、引数として受け渡されたテナントIDに該当する全てのレコードを、テナントロール定義情報323から読み込んで、このデータ(以下 D2a)を呼出元に返す。アクセス制御部302から、D2aを受け取った管理アプリケーション305はステップS1505で、D2aを反映したテナントロール定義情報の管理画面900のHTML文書を作成し、このHTML文書をブラウザ303の応答として返す(ステップS1506)。このHTML文書はネットワーク103に送信され、ブラウザ303が受信する(ステップS1507)。ブラウザ303の機能により、D2aが設定されたテナントロール定義情報の管理画面900が表示される(ステップS1508)。
【0050】
そしてその後、管理画面900を介してデータの変更入力を受け付ける(ステップS1509)。そしてその後、管理画面900の送信ボタン905の押下を受け付けると、入力データ(以下 D2b)がブラウザ303の機能によってネットワーク103に送信され(ステップS1510)、管理アプリケーション305がこれを受信する(ステップS1511)。D2bを受信した管理アプリケーション305は、ステップS1511で、このデータを永続化するために、アクセス制御装置302にD2bとテナントIDを、アクセス制御部302に引数として受け渡す。この永続化要求は引数と共に、アクセス部装置302の内部でアクセス権限管理モジュール311を介して、テナントロール定義プロバイダモジュール313に伝えられる。尚、引数の一部として受け渡すテナントIDは、前述のアクセス要求時と同じようにブラウザ303から送出されるか、あるいはアプリケーションサーバ101のセッション状態管理機能を用いて、前述のアクセス要求時に管理アプリケーション305がテナントIDを記憶しておき、これを取り出して用いても良い。ステップS1512でテナントロール定義プロバイダモジュール313は、テナントロール定義情報323のうち、引数のテナントIDに該当するレコードを受け取ったD2bの内容に置き換える(ステップS1512:データ更新)。
【0051】
そして、管理アプリケーション305はその処理結果をアクセス制御部302より取得し、取得した処理結果をサービス利用端末104のブラウザ304に対して送信する(ステップS1513)。そして、サービス利用端末104のブラウザ303は受信した処理結果を表示する(ステップS1514)。以上がテナントロール定義設定処理の説明である。
【0052】
次に、図16を参照して、ユーザロール定義情報322を設定する処理について説明する。図16に示すユーザロール定義情報設定処理は、サービス利用端末104及びアプリケーションサーバ101によって行われる。尚、本処理の説明は、その処理主体をCPU201に当該処理を行わせるモジュールとして説明することにする。
【0053】
まず、サービス利用端末104のCPU201は、ユーザロール定義情報変更要求をアプリケーションサーバ101に対して送信する(ステップS1601)。その際には、ブラウザ303を利用して、管理アプリケーション305にアクセスすることになる。またこのアクセス要求には、テナントIDのようなアクセス元のテナントを識別する情報が含まれる。テナントIDをアクセス要求に含める方法としては、例えばHTTP CookieやURL内のクエリストリングあるいは、HTTP POSTデータに含める方法が考えられる。管理アプリケーション305においては、前記のアクセス元のテナントの表明が偽装される攻撃に備えて、十分な対策がなされるべきであることは言うまでもない。
【0054】
アプリケーションサーバ101の管理アプリケーション305が変更要求を受信する(ステップS1602)と、ステップS1603で現在登録されているユーザロール定義情報322のデータを取得するために、アクセス制御部302を呼び出す。このデータ取得要求は、アクセス制御部302の内部でユーザロールプロバイダモジュール312に伝えられる。
【0055】
ステップS1603で、管理アプリケーション305は、該当するユーザのユーザロール定義のデータを取得するために、アクセス制御部302を呼び出す。呼び出しにあたって、管理アプリケーション305は、アクセス要求に含まれるテナントIDとユーザIDを取り出して、アクセス制御部302に引数として受け渡す。このデータ取得要求は引数とともに、アクセス制御部302の内部で、アクセス権限管理モジュール311を介して、ユーザロールプロバイダモジュール312に伝えられる。ステップS1604でユーザロールプロバイダモジュール312は、引数として受け渡されたテナントIDに該当する全てのレコードを、ユーザロール定義情報322から読み込んで、このデータ(以下 D3a)を呼出元に返す。
【0056】
アクセス制御部302からD3aを受け取った管理アプリケーション305はステップS1605で、D3aを反映したユーザロール定義情報の管理画面800のHTML文書を作成し、このHTML文書をブラウザ303の応答として返す(ステップS1606)。このHTML文書はネットワーク103に送信され、ブラウザ303が受信する(ステップS1607)。ブラウザ303の機能により、D3aが設定されたたユーザロール定義情報の管理画面800が表示される(ステップS1608)。
【0057】
そしてその後、管理画面800を介してデータの変更入力を受け付ける(ステップS1609)。そしてその後、管理画面800の送信ボタン803の押下を受け付けると、入力データ(以下 D3b)がブラウザ303の機能によってネットワーク103に送信され(ステップS1610)、管理アプリケーション305がこれを受信する(ステップS1611)。D3bを受信した管理アプリケーション305は、このデータを永続化するために、アクセス制御装置302にD3bとテナントID、ユーザIDを、アクセス制御装置302に引数として受け渡す。この永続化要求は引数と共に、アクセス制御装置302の内部でアクセス権限管理モジュール311を介して、ユーザロールプロバイダモジュール312に伝えられる。尚、引数の一部として受け渡すテナントIDとユーザIDは、前述のアクセス要求時と同じようにブラウザ303から送出されるか、あるいはアプリケーションサーバのセッション状態管理機能を用いて、前述のアクセス要求時に管理アプリケーション305がテナントIDを記憶しておき、これを取り出して用いても良い。ステップS1612でユーザロールプロバイダモジュール312は、ユーザロール定義情報322のうち、引数のテナントIDとユーザIDに該当するレコードを受け取ったD3bの内容に置き換える(ステップS1612:データ更新)。
【0058】
そして、管理アプリケーション305はその処理結果をアクセス制御部302より取得し、取得した処理結果をサービス利用端末104のブラウザ304に対して送信する(ステップS1613)。そして、サービス利用端末104のブラウザ303は受信した処理結果を表示する(ステップS1614)。以上がユーザロール定義設定処理の説明である。
【0059】
次に、図10から図12を参照して、サービス利用端末104からのアプリケーションの実行要求を受けた場合に、図13に示すアクセス制御部302による情報資源に対するユーザのアクセス権限を導出する処理を実行後、ユーザが使用するサービス利用端末104に表示されるサービスアプリケーション301により提供される画面例について説明する。図10は、サービスアプリケーション301のメニュー画面の一例である。サービス利用者は、この画面を用いて、使用する業務機能の起動指示をCPU201に対して入力する。例えば、図中に示す業務機能1ボタン(1002)乃至業務機能4(1004)ボタン等のコントロールに対する操作指示を行うことで、その入力を行うことが可能である。サービスアプリケーション301はアクセス制御装置302から取得した情報を用いて、このようなメニュー画面1000のボタンの使用可否を切り替えることができる。すなわち、テナント“T−A”に所属するユーザである“USER1”は、ロール1が割り当てられているとして、テナント“T−A”における“ロール1”に付与される権限が、“AP権限−1”と“AP権限−2”と“AP権限−3”と“AP権限−4”である時、このユーザは、“業務機能1”と“業務機能2”に対するアクセスが許可されるため、“業務機能1”と業務権限“2”に対応するメニューボタンを有効とし、権限を持たない業務機能のメニューボタンを無効化にすることができる。
【0060】
図11及び図12は、メニュー画面1000から起動される業務画面の例である。サービスアプリケーション301は、例えば
“業務機能1”に対するアクセス権が参照・編集権限(R/W)のユーザに対しては、1100の画面例のようにデータの変更に関わるボタンを活性化し、“業務機能1”に対するアクセス権が参照権限(R)のユーザに対しては、1200の画面のようにデータの変更に関わるボタンを非活性にすることで、ユーザのアクセス権に応じた機能を提供できる。尚、アクセス制御装置302が提供するアクセス権限情報は、画面制御に限らず、アクセス制御の様々な局面に適用可能である。
【0061】
以上説明したように、本実施形態によれば、情報資源に対する操作権限の情報を定義したアクセス権限定義情報と、テナント毎のロールの分類とロールに付与する権限を定義したテナントロール定義情報、またこのロールのユーザへの割り当てを定義したユーザロール定義情報を記憶しておき、これらの情報を組み合わせて結びつけることで、アプリケーションは単一のプログラムを用いて情報資源に対するユーザのアクセス制御を実現できる。
【0062】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実勢態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0063】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【0064】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0065】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0066】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
【0067】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0068】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0069】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0070】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0071】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0072】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0073】
101 アプリケーションサーバ
102 サービス管理端末
103 ネットワーク
104−1、104−2 サービス利用端末
201 CPU
202 RAM
203 ROM
204 システムバス
205 入力コントローラ
206 ビデオコントローラ
207 メモリコントローラ
208 通信I/F(インターフェース)コントローラ
209 入力装置
210 ディスプレイ装置
211 外部メモリ

【特許請求の範囲】
【請求項1】
マルチテナント型のアプリケーションが提供する機能のうち、ユーザの権限に基づき前記ユーザが利用できる機能を決定する情報処理装置であって、
複数の前記テナントそれぞれについて、ロールとそのロールを有する権限との関係を示すテナント−ロール定義情報、前記テナント毎に、ユーザと当該ユーザに割り当てられたロールの関係を示すユーザ−ロール定義情報、及び複数の前記マルチテナント型のアプリケーションそれぞれについて、前記権限とその権限を有するユーザが実行できる当該アプリケーションの機能との関係を示すアクセス権限定義情報を記憶した記憶手段と、
ユーザが使用する端末より送信されるユーザ認証に用いる認証情報に従い、前記端末を使用するユーザを認証する認証手段と、
前記認証手段で認証されたユーザの権限を、前記記憶手段に記憶されているユーザ−ロール定義情報及びテナント−ロール定義情報に従って決定する第1の決定手段と、
前記端末よりアプリケーションの実行要求を受け付ける受付手段と、
前記受付手段が前記端末より実行要求を受け付けたアプリケーションのアクセス権限定義情報と、前記第1の決定手段で決定された当該ユーザの権限に従って、前記実行要求を受け付けたアプリケーションにおいて前記ユーザが利用できる機能を決定する第2の決定手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記第1の決定手段は、前記認証手段で認証されたユーザが、当該ユーザが属するテナントにおいて有するロールを前記ユーザ−ロール定義情報より全て取得し、取得した前記ロールがテナントにおいて有するユーザの権限を前記テナント−ロール定義情報から全て取得し、前記取得した全てのユーザの権限を前記ユーザの権限として決定する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記テナント−ロール定義情報、前記ユーザ−ロール定義情報及びアクセス権限定義情報の入力画面を介して入力された入力情報を取得する取得手段をさらに備え、
前記記憶手段は、前記取得手段で取得した入力情報に従い、前記テナント−ロール定義情報、前記ユーザ−ロール定義情報及びアクセス権限定義情報を記憶する
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記第2の決定手段より決定したユーザが利用できるアプリケーションの機能に応じて、前記受付手段で実行要求を受け付けた前記アプリケーションにより提供される画面に含まれるコントロールの使用の可否を制御する制御手段
をさらに備えることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
【請求項5】
複数の前記テナントそれぞれについて、ロールとそのロールを有する権限との関係を示すテナント−ロール定義情報、前記テナント毎に、ユーザと当該ユーザに割り当てられたロールの関係を示すユーザ−ロール定義情報、及び複数の前記マルチテナント型アプリケーションそれぞれについて、前記権限とその権限を有するユーザが実行できる当該アプリケーションの機能との関係を示すアクセス権限定義情報を記憶した記憶手段を備える情報処理装置によって行われる、マルチテナント型のアプリケーションが提供する機能のうち、ユーザの権限に基づき前記ユーザが利用できる機能を決定する情報処理方法であって、
ユーザが使用する端末より送信されるユーザ認証に用いる認証情報に従い、前記端末を使用するユーザを認証する認証工程と、
前記認証工程で認証されたユーザの権限を、前記記憶手段に記憶されているユーザ−ロール定義情報及びテナント−ロール定義情報に従って決定する第1の決定工程と、
前記端末よりアプリケーションの実行要求を受け付ける受付工程と、
前記受付工程で前記端末より実行要求を受け付けたアプリケーションのアクセス権限定義情報と、前記第1の決定工程で決定した当該ユーザの権限に従って、前記実行要求を受け付けたアプリケーションにおいて前記ユーザが利用できる機能を決定する第2の決定工程と、
を備えることを特徴とする情報処理方法。
【請求項6】
複数の前記テナントそれぞれについて、ロールとそのロールを有する権限との関係を示すテナント−ロール定義情報、前記テナント毎に、ユーザと当該ユーザに割り当てられたロールの関係を示すユーザ−ロール定義情報、及び複数の前記マルチテナント型アプリケーションそれぞれについて、前記権限とその権限を有するユーザが実行できる当該アプリケーションの機能との関係を示すアクセス権限定義情報を記憶した記憶手段を備えるコンピュータを、マルチテナント型のアプリケーションが提供する機能のうち、ユーザの権限に基づき前記ユーザが利用できる機能を決定する情報処理装置として機能させるためのコンピュータプログラムであって、
ユーザが使用する端末より送信されるユーザ認証に用いる認証情報に従い、前記端末を使用するユーザを認証する認証手段と、
前記認証手段で認証されたユーザの権限を、前記記憶手段に記憶されているユーザ−ロール定義情報及びテナント−ロール定義情報に従って決定する第1の決定手段と、
前記端末よりアプリケーションの実行要求を受け付ける受付手段と、
前記受付手段で前記端末より実行要求を受け付けたアプリケーションのアクセス権限定義情報と、前記第1の決定工程で決定した当該ユーザの権限に従って、前記実行要求を受け付けたアプリケーションにおいて前記ユーザが利用できる機能を決定する第2の決定手段
として機能させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2011−128994(P2011−128994A)
【公開日】平成23年6月30日(2011.6.30)
【国際特許分類】
【出願番号】特願2009−288423(P2009−288423)
【出願日】平成21年12月18日(2009.12.18)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.コンパクトフラッシュ
【出願人】(592135203)キヤノンITソリューションズ株式会社 (528)
【Fターム(参考)】