(57)【特許請求の範囲】
【請求項１】
複数のテナントと接続された処理実行装置において、
前記複数のテナントのうちのいずれかの委譲元テナントから、前記複数のテナントのうちの前記委譲元テナントと異なる委譲先テナントへの権限の委譲の指示を受け付けるテナント間委譲設定部と、
前記テナント間委譲設定部が前記指示を受け付けると、前記権限の委譲に用いるロール識別子を生成し、生成した前記ロール識別子と、前記委譲元テナントを識別する委譲元テナント識別子と、前記委譲先テナントを識別する委譲先テナント識別子と、前記権限の委譲の状態を表す委譲状態とを対応付けたロール間対応データをロール間対応記憶部に記憶するロール管理部と
を備え、
前記ロール管理部は、
前記委譲元テナント識別子と、前記ロール識別子と、前記委譲元テナントから前記委譲先テナントに委譲する権限を表す実行権限とを対応付けた権限ロール定義情報を権限ロール定義情報記憶部に記憶し、
前記委譲先テナント識別子と、前記ロール識別子と、前記委譲先テナントに属するユーザを識別するユーザ識別子とを対応付けたユーザロール定義情報をユーザロール定義情報記憶部に記憶し、
前記処理実行装置は、さらに、
前記ユーザロール定義情報に基づいて、前記委譲元テナントに関連する処理を代行する前記委譲先テナントに属するユーザに対応づけられたロール識別子を抽出する利用者ロール判定部と、
前記ロール間対応データに基づいて、前記利用者ロール判定部により抽出された前記ロール識別子と前記委譲先テナント識別子と前記委譲元テナントとに対応づけられた委譲状態を判定する権限ロール判定部と、
前記委譲状態が前記権限が委譲中であることを表していた場合、前記権限ロール定義情報に基づいて、前記利用者ロール判定部により抽出された前記ロール識別子に対応づけられた実行権限を抽出する実行権限判定部と、
前記実行権限判定部が抽出した前記実行権限に基づいて、前記委譲元テナントに関連する処理を代行する前記委譲先テナントに属するユーザが前記実行権限を有する処理を実行する実行部と
を備える処理実行装置。
【請求項２】
コンピュータである処理実行装置に実行させるコンピュータプログラムにおいて、
複数のテナントのうちのいずれかの委譲元テナントから、前記複数のテナントのうちの前記委譲元テナントと異なる委譲先テナントへの権限の委譲の指示を受け付ける委譲先入力処理と、
前記委譲先入力処理により前記指示を受け付けると、前記権限の委譲に用いるロール識別子を生成し、生成した前記ロール識別子と、前記委譲元テナントを識別する委譲元テナント識別子と、前記委譲先テナントを識別する委譲先テナント識別子と、前記権限の委譲の状態を表す委譲状態とを対応付けたロール間対応データをロール間対応記憶部に記憶する委譲定義生成処理と、
前記委譲元テナント識別子と、前記ロール識別子と、前記委譲元テナントから前記委譲先テナントに委譲する権限を表す実行権限とを対応付けた権限ロール定義情報を権限ロール定義情報記憶部に記憶する権限ロール生成処理と、
前記委譲先テナント識別子と、前記ロール識別子と、前記委譲先テナントに属するユーザを識別するユーザ識別子とを対応付けたユーザロール定義情報をユーザロール定義情報記憶部に記憶するユーザロール生成処理と、
前記ユーザロール定義情報に基づいて、前記委譲元テナントに関連する処理を代行する前記委譲先テナントに属するユーザに対応づけられたロール識別子を抽出する利用者ロール判定処理と、
前記ロール間対応データに基づいて、前記利用者ロール判定処理により抽出された前記ロール識別子と前記委譲先テナント識別子と前記委譲元テナントとに対応づけられた委譲状態を判定する権限ロール判定処理と、
前記委譲状態が前記権限が委譲中であることを表していた場合、前記権限ロール定義情報に基づいて、前記利用者ロール判定処理により抽出された前記ロール識別子に対応づけられた実行権限を抽出する実行権限判定処理と、
前記実行権限判定処理により抽出した前記実行権限に基づいて、前記委譲元テナントに関連する処理を代行する前記委譲先テナントに属するユーザが前記実行権限を有する処理を実行する実行処理と
をコンピュータに実行させるコンピュータプログラム。
【請求項３】
テナント間委譲設定部が、複数のテナントのうちのいずれかの委譲元テナントから、前記複数のテナントのうちの前記委譲元テナントと異なる委譲先テナントへの権限の委譲の指示を受け付け、
ロール管理部が、前記指示を受け付けると、前記権限の委譲に用いるロール識別子を生成し、生成した前記ロール識別子と、前記委譲元テナントを識別する委譲元テナント識別子と、前記委譲先テナントを識別する委譲先テナント識別子と、前記権限の委譲の状態を表す委譲状態とを対応付けたロール間対応データをロール間対応記憶部に記憶し、
前記ロール管理部が、前記委譲元テナント識別子と、前記ロール識別子と、前記委譲元テナントから前記委譲先テナントに委譲する権限を表す実行権限とを対応付けた権限ロール定義情報を権限ロール定義情報記憶部に記憶し、
前記委譲先テナント識別子と、前記ロール識別子と、前記委譲先テナントに属するユーザを識別するユーザ識別子とを対応付けたユーザロール定義情報をユーザロール定義情報記憶部に記憶し、
利用者ロール判定部が、前記ユーザロール定義情報に基づいて、前記委譲元テナントに関連する処理を代行する前記委譲先テナントに属するユーザに対応づけられたロール識別子を抽出し、
権限ロール判定部が、前記ロール間対応データに基づいて、前記利用者ロール判定部により抽出された前記ロール識別子と前記委譲先テナント識別子と前記委譲元テナントとに対応づけられた委譲状態を判定し、
実行権限判定部が、前記委譲状態が前記権限が委譲中であることを表していた場合、前記権限ロール定義情報に基づいて、前記利用者ロール判定部により抽出された前記ロール識別子に対応づけられた実行権限を抽出し、
実行部が、前記実行権限判定部が抽出した前記実行権限に基づいて、前記委譲元テナントに関連する処理を代行する前記委譲先テナントに属するユーザが前記実行権限を有する処理を実行する処理実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、利用者による指示に基づいて処理を実行する処理実行装置に関する。
【背景技術】
【０００２】
クラウドなど、ネットワークを介して接続された資源を活用して処理を実行するシステムがある。このようなシステムにおいて、処理を実行する処理実行装置には、多数の利用者が接続する。処理の対象となるデータや利用者自身に関するデータなどのデータは、利用者と同じグループに属する利用者がアクセスできるが、それ以外の利用者がアクセスできないよう、分離して管理される。これにより、情報漏洩が防止される。
【０００３】
データ入力業務の代行サービスなどを行なう代行業者がある。上記のシステムにおいて、代行業者も一利用者であり、代行業者に代行サービスを依頼する依頼者も一利用者である。代行業者と依頼者とは、通常、異なるグループに属しているため、代行業者は、依頼者のデータにアクセスすることができない。
【０００４】
代行業者が依頼者のデータにアクセスできるようにするため、例えば、代行業者を、依頼者と同じグループに属するユーザとして登録する方式が提案されている。また、依頼者と同じグループに属する仮ユーザを作成し、代行業者がシステムにログインすると仮ユーザとしてシステムを利用することができるようにする方式が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２１７３６６号公報
【特許文献２】特開２０１０−２０５１６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
提案されている方式では、代行業者についての情報と、依頼者についての情報とを、完全に分離することができない。例えば、代行業者の構成員が複数いる場合、複数の構成員をそれぞれユーザとして登録し、あるいは、複数の構成員と仮ユーザとを対応づける情報を、依頼者に知らせる必要がある。また、代行サービスの終了後、ユーザを削除し忘れるなどして、情報漏洩に繋がる可能性がある。
【０００７】
この発明は、例えば、代行業者など他のグループから権限の委譲を受けて処理実行装置にアクセスする利用者についての情報と、代行業者に権限を委譲する依頼者などの利用者についての情報との分離を確実にすることを目的とする。
【課題を解決するための手段】
【０００８】
この発明にかかる処理実効装置は、データを記憶する記憶装置と、データを処理する処理装置と、利用者ロール記憶部と、権限ロール記憶部と、ロール間対応記憶部と、利用者認証部と、利用者ロール判定部と、権限ロール判定部と、実行権限判定部と、実行部とを有し、
上記利用者ロール記憶部は、上記記憶装置を用いて、複数のグループのうちのいずれかに属する利用者と、上記利用者が属するグループと同じグループに属する利用者ロールとの対応関係を表わす利用者ロールデータを記憶し、
上記権限ロール記憶部は、上記記憶装置を用いて、上記複数のグループのうちのいずれかに属する処理を実行する実行権限と、上記処理が属するグループと同じグループに属する権限ロールとの対応関係を表わす権限ロールデータを記憶し、
上記ロール間対応記憶部は、上記記憶装置を用いて、上記利用者ロールと、上記利用者ロールにかかるグループと異なるグループにかかる権限ロールとの対応関係を表わすロール間対応データを記憶し、
上記利用者認証部は、上記処理装置を用いて、利用者を認証し、
上記利用者ロール判定部は、上記処理装置を用いて、上記利用者ロール記憶部が記憶した利用者ロールデータに基づいて、上記利用者認証部が認証した利用者に対応づけられた利用者ロールを判定し、
上記権限ロール判定部は、上記処理装置を用いて、上記ロール間対応記憶部が記憶したロール間対応データに基づいて、上記利用者ロール判定部が判定した利用者ロールに対応づけられた権限ロールを判定し、
上記実行権限判定部は、上記処理装置を用いて、上記権限ロール記憶部が記憶した権限ロールデータに基づいて、上記権限ロール判定部が判定した権限ロールに対応づけられた実行権限を判定し、
上記実行部は、上記処理装置を用いて、上記実行権限判定部が判定した実行権限に基づいて、上記利用者認証部が認証した利用者が実行権限を有する処理を実行することを特徴とする。
【発明の効果】
【０００９】
この発明にかかる処理実行装置によれば、権限を委譲する側の利用者についての情報を、権限の委譲を受ける側の利用者に知らせる必要がなく、権限の委譲を受ける側の利用者についての情報を、権限を委譲する側の利用者に知らせる必要もない。このため、権限委譲に伴う情報漏洩を防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１におけるマルチテナント型アプリケーション実行システム９００の全体構成の一例を示すシステム構成図。
【図２】実施の形態１におけるコンピュータ９１０のハードウェア資源の一例を示すハードウェア構成図。
【図３】実施の形態１におけるＤＢサーバ装置１０２の機能ブロック構成の一例を示す構成図。
【図４】実施の形態１におけるＡＰサーバ装置１０１の機能ブロック構成の一例を示す構成図。
【図５】実施の形態１における権限情報記憶部１７１が記憶する権限情報の一例を示す図。
【図６】実施の形態１におけるロール情報記憶部１７２が記憶するロール情報の一例を示す図。
【図７】実施の形態１におけるユーザ情報記憶部１７３が記憶するユーザ情報の一例を示す図。
【図８】実施の形態１における権限ロール定義情報記憶部１７４が記憶する権限ロール定義情報の一例を示す図。
【図９】実施の形態１におけるユーザロール定義情報記憶部１７５が記憶するユーザロール定義情報の一例を示す図。
【図１０】実施の形態１におけるテナント間委譲定義情報記憶部１６１が記憶するテナント間委譲定義情報の一例を示す図。
【図１１】実施の形態１におけるマルチテナント型アプリケーション実行処理Ｓ００の流れの一例を示すフロー図。
【図１２】実施の形態１における権限委譲処理Ｓ１０の流れの一例を示すフロー図。
【図１３】実施の形態１における権限役割設定処理Ｓ２０の流れの一例を示すフロー図。
【図１４】実施の形態１におけるユーザ役割設定処理Ｓ３０の流れの一例を示すフロー図。
【図１５】実施の形態１における代行処理Ｓ４０の流れの一例を示すフロー図。
【図１６】実施の形態１における委譲解除処理Ｓ５０の流れの一例を示すフロー図。
【図１７】実施の形態２における権限委譲処理Ｓ１０でテナントロール管理部１１２が生成する情報の一例を示す図。
【発明を実施するための形態】
【００１１】
実施の形態１．
実施の形態１について、図１〜図１６を用いて説明する。
なお、同様の要素が複数ある場合、符号の後ろにアルファベットを付加して区別する場合がある。
【００１２】
図１は、この実施の形態におけるマルチテナント型アプリケーション実行システム９００の全体構成の一例を示すシステム構成図である。
【００１３】
マルチテナント型アプリケーション実行システム９００（処理実行システムの一例。）は、例えば、実行環境システム１００と、複数のテナント１８０とを有する。
テナント１８０（グループの一例。）は、実行環境システム１００が提供するアプリケーションを利用する。それぞれのテナント１８０は、１つ以上のクライアント端末装置１８１〜１８２（端末装置の一例。）を有する。
クライアント端末装置１８１は、インターネットなどの広域網やローカルエリアネットワークなどのネットワーク１０５を介して、実行環境システム１００に接続している。クライアント端末装置１８１は、ユーザによる操作にしたがって、実行環境システム１００に処理の実行を要求し、実行結果を受け取って、ユーザに通知する。
【００１４】
実行環境システム１００（処理実行装置の一例。）は、クライアント端末装置１８１からの要求にしたがって処理を実行し、実行結果をクライアント端末装置１８１に通知する。実行環境システム１００は、例えば、データセンターなどに設置された各種サーバ群によって構成されている。実行環境システム１００は、例えば、ＡＰサーバ装置１０１と、ＤＢサーバ装置１０２と、ゲートウェイ装置１０３とを有する。ＡＰサーバ装置１０１と、ＤＢサーバ装置１０２と、ゲートウェイ装置１０３との間は、ＬＡＮなどのネットワーク１０４を介して接続している。
【００１５】
ゲートウェイ装置１０３は、ＡＰサーバ装置１０１やＤＢサーバ装置１０２をネットワーク１０５から分離するとともに、ネットワーク１０５からの通信を、ＡＰサーバ装置１０１やＤＢサーバ装置１０２に中継する。
ＡＰサーバ装置１０１は、マルチテナントアプリケーションを実行するサーバ装置である。マルチテナントアプリケーションは、複数のテナント１８０から利用可能なアプリケーションである。
ＤＢサーバ装置１０２は、マルチテナントデータベースを構成するサーバ装置である。マルチテナントデータベースは、複数のテナント１８０のデータを混在して管理するデータベースである。
【００１６】
図２は、この実施の形態におけるコンピュータ９１０のハードウェア資源の一例を示すハードウェア構成図である。
【００１７】
ＡＰサーバ装置１０１やＤＢサーバ装置１０２やゲートウェイ装置１０３やクライアント端末装置１８１は、例えば、コンピュータ９１０によって構成されている。
コンピュータ９１０は、例えば、処理装置９１１と、入力装置９１２と、出力装置９１３と、記憶装置９１４とを有する。
記憶装置９１４は、処理装置９１１が実行するコンピュータプログラムや、処理装置９１１が処理するデータなどを記憶する。記憶装置９１４は、例えば、揮発性メモリや不揮発性メモリなどの内部記憶装置を有する。あるいは、記憶装置９１４は、フラッシュメモリなどの半導体メモリや、磁気ディスクや光学ディスクなどの記憶媒体を用いた外部記憶装置を有する。
処理装置９１１は、記憶装置９１４が記憶したコンピュータプログラムを実行することにより、記憶装置９１４が記憶したデータを処理し、コンピュータ９１０全体を制御する。
入力装置９１２は、コンピュータ９１０の外部から信号や情報を入力して、処理装置９１１が処理できるデータに変換する。入力装置９１２が変換したデータは、処理装置９１１が直接処理してもよいし、記憶装置９１４が一時的に記憶してもよい。入力装置９１２は、例えば、キーボードやマウスなどユーザの操作を入力する操作入力装置を有する。あるいは、入力装置９１２は、カメラやスキャナ装置など静止画像や動画像を入力する画像入力装置である。あるいは、入力装置９１２は、マイクなど音声を入力する音声入力装置である。あるいは、入力装置９１２は、温度センサや圧力センサなど物理量を測定するセンサ装置である。あるいは、入力装置９１２は、アナログ信号をデジタルデータに変換するアナログデジタル変換装置である。あるいは、入力装置９１２は、他の装置が送信した信号を受信する受信装置である。
出力装置９１３は、処理装置９１１が処理したデータや記憶装置９１４が記憶したデータを信号などに変換してコンピュータ９１０の外部へ出力する。出力装置９１３は、例えば、液晶ディスプレイ装置など文字や画像を表示する表示装置である。あるいは、出力装置９１３は、レーザプリンタ装置など文字や画像を印刷する印刷装置である。あるいは、出力装置９１３は、スピーカなど音声を出力する音声出力装置である。あるいは、出力装置９１３は、デジタルデータをアナログ信号に変換するデジタルアナログ変換装置である。あるいは、出力装置９１３は、他の装置に対して信号を送信する送信装置である。
ＡＰサーバ装置１０１などの機能ブロックは、例えば、記憶装置９１４が記憶したコンピュータプログラムを処理装置９１１が実行することにより実現される。なお、ＡＰサーバ装置１０１などの機能ブロックは、他の構成により実現する構成であってもよい。例えば、デジタル回路やアナログ回路などの電気的構成や、機械的構成などを用いて、ＡＰサーバ装置１０１などの機能ブロックを実現する構成であってもよい。
【００１８】
図３は、この実施の形態におけるＤＢサーバ装置１０２の機能ブロック構成の一例を示す構成図である。
【００１９】
ＤＢサーバ装置１０２は、例えば、マルチテナント管理情報記憶部１６０と、テナント情報記憶部１７０とを有する。
【００２０】
テナント情報記憶部１７０は、記憶装置９１４を用いて、それぞれのテナント１８０に関するデータをマルチテナントデータベースに格納する。それぞれのテナント１８０に関するデータは、論理的に分離されている。基本的に、あるテナント１８０のデータに対して、他のテナント１８０のユーザはアクセスできない。すなわち、他のテナント１８０のユーザは、原則として、そのデータを見ることもできないし、変更することもできない。
例えば、テナント情報記憶部１７０は、テナント１８０ごとに異なるテーブル、スキーマ、データベースインスタンスなどを用いて、テナント１８０ごとにデータを分離する。
あるいは、テナント情報記憶部１７０は、複数のテナント１８０で同一のテーブルを共有する構成であってもよい。その場合、あるレコードにかかるデータがどのテナント１８０のものであるかを区別するため、例えば、各テーブルに、テナントＩＤなどテナント１８０を識別するテナント識別情報を格納するカラムを設ける。
【００２１】
テナント情報記憶部１７０は、例えば、権限情報記憶部１７１と、ロール情報記憶部１７２と、ユーザ情報記憶部１７３と、権限ロール定義情報記憶部１７４と、ユーザロール定義情報記憶部１７５とを有する。
【００２２】
ユーザ情報記憶部１７３は、記憶装置９１４を用いて、ユーザ情報を記憶する。ユーザ情報は、ユーザ（利用者の一例。）に関する情報である。ユーザ情報には、例えば、ユーザＩＤなどユーザを識別するユーザ識別情報、パスワードなどそのユーザを認証するためのユーザ認証情報、ユーザが属するテナント１８０を表わすテナント識別情報、ユーザ名などユーザの属性を表わすユーザ属性情報などがある。
【００２３】
権限情報記憶部１７１は、記憶装置９１４を用いて、権限情報を記憶する。権限情報は、ユーザが実行環境システム１００に処理を実行させる権限（実行権限の一例。）に関する情報である。権限情報には、例えば、権限を識別する権限識別情報、アプリケーション名など実行環境システム１００が実行する処理を表わす処理識別情報、処理の対象となるデータが属するテナント１８０を表わすテナント識別情報などがある。
【００２４】
ロール情報記憶部１７２は、記憶装置９１４を用いて、ロール情報を記憶する。ロール情報は、役割（利用者ロール及び権限ロールの一例、）に関する情報である。各ユーザは、そのユーザが属するテナント１８０と同じテナント１８０に属する役割に関連づけられる。また、各役割は、その役割が属するテナント１８０と同じテナント１８０に属するデータを対象とする権限に関連づけられる。これにより、ユーザと権限とが、役割を介して関連づけられる。各ユーザには、関連づけられた権限が与えられる。ロール情報には、例えば、役割を識別する役割識別情報、役割が属するテナント１８０を表わすテナント識別情報などがある。
【００２５】
ユーザロール定義情報記憶部１７５（利用者ロール記憶部の一例。）は、記憶装置９１４を用いて、ユーザロール定義情報（利用者ロールデータの一例。）を記憶する。ユーザロール定義情報は、ユーザと役割とのを関連付けを定義する情報である。ユーザロール定義情報には、例えば、役割に関連付けるユーザを表わすユーザ識別情報、そのユーザに関連付けられる役割を表わす役割識別情報などがある。ユーザロール定義情報は、ユーザ識別情報によってユーザ情報に紐付けられ、役割識別情報によってロール情報に紐付けられることにより、ユーザ情報とロール情報との間を関連付ける。
【００２６】
権限ロール定義情報記憶部１７４（権限ロール記憶部の一例。）は、記憶装置９１４を用いて、権限ロール定義情報（権限ロールデータの一例。）を記憶する。権限ロール定義情報は、権限と役割との関連付けを定義する情報でる。権限ロール定義情報には、例えば、役割に関連づける権限を表わす権限識別情報、その権限に関連づけられる役割を表わす役割識別情報などがある。権限ロール定義情報は、権限識別情報によって権限情報に紐付けられ、役割識別情報によってロール情報に紐付けられることにより、権限情報とロール情報との間を関連付ける。
【００２７】
マルチテナント管理情報記憶部１６０は、記憶装置９１４を用いて、マルチテナントを管理するための情報を記憶する。マルチテナント管理情報記憶部１６０は、複数のテナント間にまたがって管理する必要のある情報をマルチテナントデータベースに格納する。マルチテナント管理情報記憶部１６０は、例えば、テナント間委譲定義情報記憶部１６１を有する。
【００２８】
テナント間委譲定義情報記憶部１６１（ロール間対応記憶部の一例。）は、記憶装置９１４を用いて、テナント間委譲定義情報（ロール間対応データの一例。）を記憶する。テナント間委譲定義情報は、テナント間での権限委譲関係を定義する情報である。テナント間での権限委譲とは、あるテナント１８０のデータに対する処理を実行する権限を、別のテナント１８０のユーザに対して与えることをいう。例えば、テナント１８０ｂが、データ入力業務の代行サービスや、保守サービスを提供し、テナント１８０ａが、そのサービスを利用する。テナント１８０ａは、テナント１８０ｂに対して、テナント１８０ａのデータに対する処理を実行する権限を与える。テナント１８０ｂは、テナント１８０ａに与えられた権限に基づいて、テナント１８０ａのデータに対する処理を実行する。
テナント間委譲定義情報には、例えば、委譲される権限に関連付けられた役割を表わす役割識別情報、委譲元のテナント１８０を表わすテナント識別情報（以下「委譲元識別情報」と呼ぶ。）、委譲先のテナント１８０を表わすテナント識別情報（以下「委譲先識別情報」と呼ぶ。）などがある。
【００２９】
図４は、この実施の形態におけるＡＰサーバ装置１０１の機能ブロック構成の一例を示す構成図である。
【００３０】
ＡＰサーバ装置１０１は、例えば、テナント間権限判定部１１１と、テナントロール管理部１１２と、ユーザアクセス制御部１３０と、テナント権限処理部１４０と、アプリケーション処理部１５０とを有する。これらの機能ブロックが連携して動作することにより、ＡＰサーバ装置１０１は、マルチテナントアプリケーションを実行する。
【００３１】
テナント権限処理部１４０は、テナント１８０の権限に関する処理をする。テナント権限処理部１４０は、例えば、アクセス制御部１４１と、テナント間委譲設定部１４２と、ロール管理部１４３とを有する。
【００３２】
アクセス制御部１４１は、ユーザによるアクセスを制御する。アクセス制御部１４１は、例えば、権限判定部１４４と、ユーザ認証部１４５とを有する。
ユーザ認証部１４５（利用者認証部の一例。）は、ログイン時などのユーザの認証をする。ユーザ認証部１４５は、処理装置９１１を用いて、ユーザのログイン処理をする。例えば、ユーザ認証部１４５は、入力装置９１２を用いて、ユーザのユーザＩＤやパスワードなどを入力する。ユーザ認証部１４５は、ユーザ情報記憶部１７３が記憶したユーザ情報に基づいて、入力したユーザＩＤやパスワードなどを検証することにより、ユーザを認証する。
権限判定部１４４（利用者ロール判定部及び実行権限判定部の一例。）は、ユーザの権限を判定する。権限判定部１４４は、処理装置９１１を用いて、ユーザ認証部１４５が認証したユーザが有する権限を判定する。例えば、権限判定部１４４は、ユーザロール定義情報記憶部１７５が記憶したユーザロール情報に基づいて、ユーザ認証部１４５が認証したユーザに関連付けられた役割を判定する。権限判定部１４４は、権限ロール定義情報記憶部１７４が記憶した権限ロール定義情報に基づいて、判定した役割に関連付けられた権限を判定する。
【００３３】
ロール管理部１４３は、テナント１８０内のロールを管理する。ロール管理部１４３は、処理装置９１１を用いて、テナント情報記憶部１７０が記憶したデータを管理する。ロール管理部１４３は、ユーザの指示にしたがって、テナント情報記憶部１７０に新たなデータを追加し、テナント情報記憶部１７０が記憶したデータを変更し、あるいは、テナント情報記憶部１７０が記憶したデータを削除する。ロール管理部１４３は、例えば管理者権限のような特別な権限を有するユーザの指示にしたがって、そのユーザが属するテナント１８０のデータを書き換える。例えば、ロール管理部１４３は、権限判定部１４４による判定結果に基づいて、ユーザが指示した処理を実行させる権限がそのユーザにあるか否かを判定する。その処理についての権限がそのユーザにあると判定した場合、ロール管理部１４３は、ユーザの指示にしたがって、テナント情報記憶部１７０が記憶したデータを書き換える。
【００３４】
ロール情報記憶部１７２が記憶したロール情報によって表わされる役割には、次の２種類がある。
（１）その役割が関連付けられたユーザと同じテナント１８０のデータに対する処理をする権限に関連付けられた役割。
（２）権限委譲により、その役割が関連づけられたユーザと異なるテナント１８０のデータに対する処理をする権限に関連付けられた役割。
以下、（１）を「通常ロール」、（２）を「テナントロール」と呼ぶ。
【００３５】
通常ロールは、その役割が関連付けられたユーザが属するテナント１８０と、その役割が関連付けられた権限の対象となるデータが属するテナント１８０とが一致している。通常ロールは、そのテナント１８０に属する。通常ロールを表わすロール情報に対する処理をユーザが指示した場合、ロール管理部１４３は、指示をしたユーザが属するテナント１８０と、その役割が属するテナント１８０とが一致する場合に、その指示を受け付ける。また、ユーザと通常ロールとを関連付けるユーザロール定義情報や、権限と通常ロールとを関連付ける権限ロール定義情報も同様に、そのテナント１８０に属する。ユーザロール定義情報や権限ロール定義情報に対する処理をユーザが指示した場合、ロール管理部１４３は、指示をしたユーザが属するテナント１８０と、そのユーザロール定義情報や権限ロール定義情報が属するテナント１８０とが一致する場合に、その指示を受け付ける。
【００３６】
これに対し、テナントロールは、その役割が関連付けられたユーザが属するテナント１８０と、その役割が関連付けられた権限の対象となるデータが属するテナント１８０とが異なる。そこで、テナントロールを、その役割が関連付けられたユーザが属するテナント１８０と同じテナント１８０に属するユーザロールと、その役割が関連付けられた権限の対象となるデータが属するテナント１８０と同じテナント１８０に属する権限ロールとの２つに分けて管理する。ユーザとユーザロールとを関連付けるユーザロール定義情報は、そのユーザが属するテナント１８０と同じテナント１８０に属する。権限と権限ロールとを関連付ける権限ロール定義情報は、その権限が属するテナント１８０と同じテナント１８０に属する。ユーザロールや、ユーザとユーザロールとを関連付けるユーザロール定義情報に対する処理をユーザが指示した場合、ロール管理部１４３は、指示をしたユーザが属するテナント１８０と、そのユーザロールやユーザロール定義情報が属するテナント１８０とが一致する場合に、その指示を受け付ける。権限ロールや、権限と権限ロールとを関連付ける権限ロール定義情報に対する処理をユーザが指示した場合、ロール管理部１４３は、指示をしたユーザが属するテナント１８０と、その権限ロールや権限ロール定義情報が属するテナント１８０とが一致する場合に、その指示を受け付ける。
【００３７】
ロール管理部１４３は、例えば、ロールタイプ判定部１４６を有する。
ロールタイプ判定部１４６は、処理装置９１１を用いて、ユーザの指示に関わる役割が通常ロールであるかテナントロールであるかを判定し、テナントロールである場合、ユーザロールであるか権限ロールであるかを判定する。
例えば、ユーザロール定義情報の追加をユーザが指示した場合、ロールタイプ判定部１４６は、ユーザロール定義情報によって関連付けようとしている役割が通常ロールであるかユーザロールであるか権限ロールであるかを判定する。通常ロールあるいはユーザロールであるとロールタイプ判定部１４６が判定した場合、ロール管理部１４３は、ユーザの指示にしたがって、ユーザロール定義情報を追加する。しかし、権限ロールであるとロールタイプ判定部１４６が判定した場合、ロール管理部１４３は、ユーザロール定義情報を追加しない。
あるいは、権限ロール定義情報の追加をユーザが指示した場合、ロールタイプ判定部１４６は、ユーザロール定義情報によって関連付けようとしている役割が通常ロールであるかユーザロールであるか権限ロールであるかを判定する。通常ロールあるいは権限ロールであるとロールタイプ判定部１４６が判定した場合、ロール管理部１４３は、ユーザの指示にしたがって、権限ロール定義情報を追加する。しかし、ユーザロールであるとロールタイプ判定部１４６が判定した場合、ロール管理部１４３は、権限ロール定義情報を追加しない。
【００３８】
テナント間委譲設定部１４２は、テナント１８０間の委譲設定をする。テナント間委譲設定部１４２は、入力装置９１２を用いて、テナント間の権限委譲に関するユーザの指示を入力する。テナント間の権限委譲に関する指示とは、例えば、新たな権限委譲の開始や、既にある権限委譲の終了などの指示である。テナント間委譲設定部１４２は、例えば、権限委譲の対象である権限を自ら有し、更に、その権限を他のテナント１８０に委譲する権限を有するユーザからの指示を受け付ける。例えば、テナント間委譲設定部１４２は、権限判定部１４４による判定結果に基づいて、ユーザが指示した処理を実行させる権限がそのユーザにあるか否かを判定する。その処理についての権限がそのユーザにあると判定した場合、ロール管理部１４３は、ユーザの指示を、テナントロール管理部１１２に通知する。
【００３９】
テナントロール管理部１１２は、テナントロールを管理する。テナントロール管理部１１２は、処理装置９１１を用いて、マルチテナント管理情報記憶部１６０が記憶したデータを管理する。テナントロール管理部１１２は、テナント間委譲設定部１４２からの通知にしたがって、マルチテナント管理情報記憶部１６０に新たなデータを追加し、マルチテナント管理情報記憶部１６０が記憶したデータを変更し、あるいは、マルチテナント管理情報記憶部１６０が記憶したデータを削除する。
【００４０】
テナント間委譲定義情報記憶部１６１が記憶したテナント間委譲定義情報は、委譲元のテナント１８０に属する。委譲元のテナント１８０に属するユーザは、テナント間委譲定義情報にアクセスできるが、委譲先のテナント１８０に属するユーザは、テナント間委譲定義情報にアクセスできない。
【００４１】
テナント間権限判定部１１１（権限ロール判定部の一例。）は、複数のテナント１８０にまたがった権限の判定をする。テナント間権限判定部１１１は、処理装置９１１を用いて、ユーザが他のテナント１８０にアクセスする権限があるか否かを判定する。例えば、ユーザが他のテナント１８０に属するデータにアクセスしようとした場合、テナント間権限判定部１１１は、テナント間委譲定義情報記憶部１６１が記憶したテナント間委譲定義情報に基づいて、ユーザ認証部１４５が認証したユーザが、そのテナント１８０にアクセスできるか否かを判定する。
【００４２】
ユーザアクセス制御部１３０は、ユーザがアプリケーションにアクセスした際の制御をする。ユーザアクセス制御部１３０は、例えば、テナント切替制御部１３１と、アプリケーション切替制御部１３２とを有する。
【００４３】
テナント切替制御部１３１は、ユーザに対してアクセス先のテナント１８０を切り替える。例えば、テナント切替制御部１３１は、入力装置９１２を用いて、ユーザがアクセスしようとしているデータが属するテナント１８０を入力する。テナント切替制御部１３１は、テナント間権限判定部１１１による判定結果に基づいて、そのユーザがそのテナント１８０にアクセスする権限を有するか否かを判定する。そのテナント１８０にアクセスする権限がそのユーザにあると判定した場合、テナント切替制御部１３１は、そのユーザによるアクセスの対象となるテナント１８０をそのテナント１８０に切り替える。
【００４４】
アプリケーション切替制御部１３２は、ユーザが実際に行なうアプリケーション処理の切り替えをする。アプリケーション切替制御部１３２は、入力装置９１２を用いて、ユーザが実行環境システム１００に実行させようとしている処理を入力する。アプリケーション切替制御部１３２は、権限判定部１４４やテナント間権限判定部１１１による判定結果に基づいて、そのユーザがその処理を実行させる権限を有するか否かを判定する。その処理を実行させる権限がそのユーザにあると判定した場合、アプリケーション切替制御部１３２は、アプリケーション処理部１５０が実行するアプリケーションを、その処理を実行するアプリケーションに切り替える。
【００４５】
アプリケーション処理部１５０（実行部の一例。）は、処理装置９１１を用いて、アプリケーションを実行する。アプリケーションは、マルチテナントアプリケーションが提供する処理を実行する。アプリケーション処理部１５０は、アプリケーション切替制御部１３２が指定したアプリケーションを実行し、テナント切替制御部１３１が指定したテナント１８０のデータを対象にして、ユーザが指示した処理を実行する。なお、１つのアプリケーションが実行する処理が複数ある場合、処理によって実行権限が異なる場合があるので、アプリケーション処理部１５０は、権限判定部１４４の判定結果に基づいて、そのユーザがその処理を実行させる権限を有するか否かを判定する。そのユーザにその処理の権限があると判定した場合、アプリケーション処理部１５０は、その処理を実行する。
【００４６】
図５は、この実施の形態における権限情報記憶部１７１が記憶する権限情報の一例を示す図である。
【００４７】
権限情報記憶部１７１は、１つ以上の権限情報を記憶する。それぞれの権限情報は、例えば、テナントＩＤ３１０と、権限ＩＤ３１１と、対象システム３１２と、権限内容３１３とを含む。
テナントＩＤ３１０は、テナント識別情報（グループ識別データ）の一例である。テナントＩＤ３１０は、その権限が属するテナント１８０を表わす。
権限ＩＤ３１１は、権限識別情報（権限識別データ）の一例である。権限ＩＤ３１１は、少なくとも同じテナント１８０に属する権限のなかで一意である。権限情報は、権限ＩＤ３１１、あるいは、テナントＩＤ３１０と権限ＩＤ３１１との組み合わせによって、一意に識別される。
対象システム３１２は、処理識別情報（処理識別データ）の一例である。対象システム３１２は、処理を実行するアプリケーションを表わす。対象システム３１２は、例えば、処理を実行するアプリケーションの名前や、そのアプリケーションによって操作される外部機器の名前などである。
権限内容３１３は、処理識別情報の一例である。権限内容３１３は、対象システム３１２によって表わされるアプリケーションが実行する処理のうち、その権限によって実行させることができる処理の範囲を表わす。
【００４８】
図６は、この実施の形態におけるロール情報記憶部１７２が記憶するロール情報の一例を示す図である。
【００４９】
ロール情報記憶部１７２は、１つ以上のロール情報を記憶する。それぞれのロール情報は、例えば、テナントＩＤ３２０と、ロールＩＤ３２１と、ロールタイプ３２２とを含む。
テナントＩＤ３２０は、テナント識別情報の一例である。テナントＩＤ３２０は、その役割が属するテナント１８０を表わす。
ロールＩＤ３２１は、役割識別情報（ロール識別データ）の一例である。ロールＩＤ３２１は、少なくとも同じテナント１８０のなかで一意である。ロール情報は、ロールＩＤ３２１、あるいは、テナント１８０とロールＩＤ３２１との組み合わせによって、一意に識別される。
ロールタイプ３２２は、その役割が、通常ロールであるか、権限ロールであるか、ユーザロールであるかを表わす。
【００５０】
図７は、この実施の形態におけるユーザ情報記憶部１７３が記憶するユーザ情報の一例を示す図である。
ユーザ情報記憶部１７３は、１つ以上のユーザ情報を記憶する。それぞれのユーザ情報は、例えば、テナントＩＤ３３０と、ユーザＩＤ３３１と、ユーザ名３３２と、パスワード３３３とを含む。
テナントＩＤ３３０は、テナント識別情報の一例である。テナントＩＤ３３０は、そのユーザが属するテナント１８０を表わす。
ユーザＩＤ３３１は、ユーザ識別情報（利用者識別データ）の一例である。ユーザＩＤ３３１は、少なくとも同じテナント１８０のなかで一意である。ユーザ情報は、ユーザＩＤ３３１、あるいは、テナントＩＤ３３０とユーザＩＤ３３１との組み合わせによって、一意に識別される。
ユーザ名３３２は、ユーザ属性情報（利用者属性データ）の一例である。ユーザ名３３２は、そのユーザの氏名を表わす。
パスワード３３３は、ユーザ認証情報（利用者認証データ）の一例である。例えば、ユーザ認証部１４５は、ユーザがログインするときに入力したパスワードと、パスワード３３３とを比較し、一致した場合に、そのユーザを認証する。
【００５１】
図８は、この実施の形態における権限ロール定義情報記憶部１７４が記憶する権限ロール定義情報の一例を示す図である。
権限ロール定義情報記憶部１７４は、１つ以上の権限ロール定義情報を記憶する。それぞれの権限ロール定義情報は、例えば、テナントＩＤ３４０と、ロールＩＤ３４１と、権限ＩＤ３４２とを含む。
テナントＩＤ３４０は、テナント識別情報の一例である。テナントＩＤ３４０は、その権限ロール定義情報が属するテナント１８０を表わす。
ロールＩＤ３４１は、役割識別情報の一例である。権限ＩＤ３４２は、権限識別情報の一例である。権限ロール定義情報は、ロールＩＤ３４１（あるいはテナントＩＤ３４０とロールＩＤ３４１との組み合わせ）によって識別されるロール情報と、権限ＩＤ３４２（あるいはテナントＩＤ３４０と権限ＩＤ３４２との組み合わせ）によって識別される権限情報とを関連付ける。これにより、ロール情報によって表わされる役割に、そのロール情報に関連付けられた権限情報によって表わされる権限が与えられる。
【００５２】
図９は、この実施の形態におけるユーザロール定義情報記憶部１７５が記憶するユーザロール定義情報の一例を示す図である。
ユーザロール定義情報記憶部１７５は、１つ以上のユーザロール定義情報を記憶する。それぞれのユーザロール定義情報は、例えば、テナントＩＤ３５０と、ロールＩＤ３５１と、ユーザＩＤ３５２とを含む。
テナントＩＤ３５０は、テナント識別情報の一例である。テナントＩＤ３５０は、そのユーザロール定義情報が属するテナント１８０を表わす。
ロールＩＤ３５１は、役割識別情報の一例である。ユーザＩＤ３５２は、ユーザ識別情報の一例である。ユーザロール定義情報は、ロールＩＤ３５１（あるいはテナントＩＤ３５０とロールＩＤ３５１との組み合わせ）によって識別されるロール情報と、ユーザＩＤ３５２（あるいはテナントＩＤ３５０とユーザＩＤ３５２との組み合わせ）によって識別されるユーザ情報とを関連付ける。これにより、ユーザ情報によって表わされるユーザに、そのユーザ情報に関連付けられたロール情報によって表わされる役割が与えられ、更に、そのロール情報に関連付けられた権限情報によって表わされる権限が与えられる。
【００５３】
図１０は、この実施の形態におけるテナント間委譲定義情報記憶部１６１が記憶するテナント間委譲定義情報の一例を示す図である。
テナント間委譲定義情報記憶部１６１は、１つ以上のテナント間委譲定義情報を記憶する。それぞれのテナント間委譲定義情報は、例えば、委譲元テナントＩＤ３０１と、委譲先テナントＩＤ３０２と、委譲状態３０３と、ロールＩＤ３０４とを含む。
委譲元テナントＩＤ３０１は、委譲元識別情報（委譲元識別データ）の一例である。委譲元テナントＩＤ３０１は、委譲される権限によって実行される処理の対象となるデータが属するテナント１８０を表わす。
委譲先テナントＩＤ３０２は、委譲先識別情報（委譲先識別データ）の一例である。委譲先テナントＩＤ３０２は、委譲された権限に基づいて処理を実行させるユーザが属するテナント１８０を表わす。
委譲状態３０３は、権限委譲の有無を表わす。例えば、委譲状態３０３が「委譲中」である場合、委譲先のテナント１８０に属するユーザが、委譲された権限に基づいて、委譲元のテナント１８０に属するデータに対する処理を実行できる。委譲状態３０３が「未委譲」である場合、委譲先のテナント１８０に属するユーザは、委譲元のテナント１８０に属するデータに対する処理を実行できない。
ロールＩＤ３０４は、役割識別情報の一例である。この例では、委譲元のテナント１８０において、委譲される権限に関連付けられる役割（権限ロール）を表わすロール情報と、委譲先のテナント１８０において、委譲された処理を実行させるユーザに関連付けられる役割（ユーザロール）を表わすロール情報とで、同一のロールＩＤ３２１を用いることにより、権限ロールとユーザロールとを関連付ける。テナント間委譲定義情報は、委譲元テナントＩＤ３０１とロールＩＤ３０４との組み合わせによって識別されるロール情報と、委譲先テナントＩＤ３０２とロールＩＤ３０４との組み合わせによって識別されるロール情報とを関連付ける。これにより、委譲元のロール情報によって表わされる権限ロールと、委譲先のロール情報によって表わされるユーザロールとが関連付けられる。委譲先のテナント１８０においてそのユーザロールに関連付けられたユーザ情報によって表わされるユーザに、委譲元のテナント１８０においてその権限ロールに関連付けられた権限情報によって表わされる処理を実行する権限が与えられる。
【００５４】
このようなデータ構造とすることにより、委譲元のテナント１８０では、どのテナント１８０にどのような権限を委譲するかを自由に設定することができる。委譲先のテナント１８０では、委譲された権限に基づく処理をするユーザを自由に設定することができる。
委譲元のテナント１８０は、委譲先のテナント１８０でその権限を使うユーザが誰であるかなどの情報を知る必要はない。したがって、委譲先のテナント１８０に関する情報は、委譲元のテナント１８０から完全に保護される。
また、委譲先のテナント１８０は、委譲された権限の範囲でのみ、委譲元のテナント１８０のデータにアクセスすることができる。委譲元のテナント１８０に関して委譲された権限の範囲を超える情報は、委譲先のテナント１８０から完全に保護される。
【００５５】
次に、処理の流れについて、説明する。
【００５６】
図１１は、この実施の形態におけるマルチテナント型アプリケーション実行処理Ｓ００の流れの一例を示すフロー図である。
【００５７】
マルチテナント型アプリケーション実行処理Ｓ００は、例えば、ログイン処理Ｓ０１と、作業選択処理Ｓ０２と、作業実行処理Ｓ０３とを有する。
【００５８】
ログイン処理Ｓ０１において、ユーザ認証部１４５は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、ユーザＩＤやパスワードなどを入力する。ユーザ認証部１４５は、処理装置９１１を用いて、ユーザが属するテナント１８０を判定する。例えば、ユーザ認証部１４５は、ユーザが操作しているクライアント端末装置１８１が属するテナント１８０を、ユーザが属するテナント１８０であると判定する。ユーザ認証部１４５は、入力したユーザＩＤと、判定したテナント１８０とに基づいて、ユーザ情報記憶部１７３が記憶したユーザ情報のなかから、テナントＩＤ３３０及びユーザＩＤ３３１が一致するユーザ情報を抽出する。ユーザ認証部１４５は、入力したパスワードと、抽出したユーザ情報に含まれるパスワード３３３とが一致するか否かを判定する。
パスワードが一致した場合、ユーザ認証部１４５は、認証に成功したと判定し、作業選択処理Ｓ０２へ処理を進める。
パスワードが一致しない場合、ユーザ認証部１４５は、認証に失敗したと判定し、マルチテナント型アプリケーション実行処理Ｓ００を終了する。
【００５９】
作業選択処理Ｓ０２において、ＡＰサーバ装置１０１は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、ユーザが実行しようとしている作業を入力する。
ユーザが作業を終了しログアウトすることを選択した場合、ＡＰサーバ装置１０１は、マルチテナント型アプリケーション実行処理Ｓ００を終了する。
ユーザが作業を選択した場合、ＡＰサーバ装置１０１は、作業実行処理Ｓ０３へ処理を進める。
【００６０】
作業実行処理Ｓ０３において、ＡＰサーバ装置１０１は、作業選択処理Ｓ０２でユーザが選択した作業を実行する。
作業終了後、ＡＰサーバ装置１０１は、作業選択処理Ｓ０２に処理を戻し、次の作業を入力する。
【００６１】
ユーザが選択できる作業には、様々な作業があるが、例えば、アプリケーション処理部１５０がアプリケーションを実行して処理する一般作業、テナント情報やマルチテナント管理情報を操作する管理作業などがある。
一般作業には、例えば、ユーザ自身が属するテナント１８０のデータを対象とする通常作業、委譲された権限に基づいて他のテナント１８０のデータを対象とする代行作業などがある。
管理作業には、例えば、ユーザ情報を設定するユーザ設定作業、ロール情報を設定する役割設定作業、権限情報を設定する権限設定作業、ユーザと役割とを関連付けるユーザ役割設定作業、権限と役割とを関連付ける権限役割設定作業、権限を委譲する権限委譲作業、ユーザと役割との関連付けを解除するユーザ役割解除作業、権限と役割との関連付けを解除する権限役割解除作業、権限委譲を解除する委譲解除作業などがある。
【００６２】
以下、作業実行処理Ｓ０３における具体的な処理の流れについて、作業ごとに分けて説明する。
【００６３】
図１２は、この実施の形態における権限委譲処理Ｓ１０の流れの一例を示すフロー図である。
【００６４】
権限委譲処理Ｓ１０（ロール間対応変更処理の一例。）において、実行環境システム１００は、ユーザの指示にしたがって、権限委譲作業を実行する。権限委譲処理Ｓ１０は、例えば、委譲先入力工程Ｓ１１と、権限判定工程Ｓ１２と、委譲定義生成工程Ｓ１３と、権限ロール生成工程Ｓ１４と、ユーザロール生成工程Ｓ１５とを有する。
【００６５】
委譲先入力工程Ｓ１１において、テナント間委譲設定部１４２は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、委譲先のテナント１８０を入力する。なお、委譲元のテナント１８０は、ユーザが属するテナント１８０であるから、入力する必要はない。
【００６６】
権限判定工程Ｓ１２において、権限判定部１４４は、処理装置９１１を用いて、そのユーザが、委譲先入力工程Ｓ１１で入力したテナント１８０に対して権限委譲をする権限を有するか否かを判定する。
例えば、権限判定部１４４は、ユーザロール定義情報記憶部１７５が記憶したユーザロール定義情報のなかから、テナントＩＤ３５０が、そのユーザが属するテナント１８０のテナントＩＤと一致し、ユーザＩＤ３５２が、そのユーザのユーザＩＤと一致するユーザロール定義情報を抽出する。権限判定部１４４は、抽出したユーザロール定義情報から、ロールＩＤ３５１を取得する。権限判定部１４４は、権限ロール定義情報記憶部１７４が記憶した権限ロール定義情報のなかから、テナントＩＤ３４０が、そのユーザが属するテナント１８０のテナントＩＤと一致し、ロールＩＤ３４１が、取得したロールＩＤ３５１のいずれかと一致する権限ロール定義情報を抽出する。権限判定部１４４は、抽出した権限ロール定義情報から、権限ＩＤ３４２を取得する。権限判定部１４４は、権限情報記憶部１７１が記憶した権限情報のなかから、テナントＩＤ３１０が、そのユーザが属するテナント１８０のテナントＩＤと一致し、権限ＩＤ３１１が、取得した権限ＩＤ３４２のいずれかと一致する権限情報を抽出する。権限判定部１４４は、抽出した権限情報に含まれる対象システム３１２及び権限内容３１３によって表わされる処理のなかに、そのテナント１８０に対する権限委譲処理が含まれるか否かを判定する。
権限委譲をする権限がそのユーザにあると判定した場合、権限判定部１４４は、委譲定義生成工程Ｓ１３へ処理を進める。
権限委譲をする権限がそのユーザにないと判定した場合、権限判定部１４４は、権限委譲処理Ｓ１０を終了する。
【００６７】
委譲定義生成工程Ｓ１３において、テナントロール管理部１１２は、処理装置９１１を用いて、テナント間委譲定義情報を生成する。
テナントロール管理部１１２は、生成するテナント間委譲定義情報の委譲元テナントＩＤ３０１に、委譲先入力工程Ｓ１１で操作を入力したユーザが属するテナント１８０のテナントＩＤを設定する。
テナントロール管理部１１２は、生成するテナント間委譲定義情報の委譲先テナントＩＤ３０２に、委譲先入力工程Ｓ１１で入力した委譲先のテナント１８０のテナントＩＤを設定する。
テナントロール管理部１１２は、所定の規則にしたがって、あるいは、ランダムに、ロールＩＤを決定する。ロールＩＤには、委譲元のテナント１８０に属するいずれの役割情報のロールＩＤ３２１とも、委譲先のテナント１８０に属するいずれの役割情報のロールＩＤ３２１とも異なるものが選択される。例えば、テナントロール管理部１１２は、所定の固定文字列（例えば「ロール」）と、委譲元のテナント１８０を表わす文字列（例えば「Ａ」）と、委譲先のテナント１８０を表わす文字列（例えば「Ｂ」）とを結合して、ロールＩＤ（例えば「ロールＡＢ」）とする。なお、一つの委譲元のテナント１８０が、同じ委譲先のテナント１８０に対して複数の権限を委譲してもよい。その場合、テナントロール管理部１１２は、例えば、更に数字を付加するなど（例えば「ロールＡＢ１」「ロールＡＢ２」など）して、他のロールＩＤ３２１と異なるロールＩＤを生成する。
テナントロール管理部１１２は、生成するテナント間委譲定義情報のロールＩＤ３０４に、決定したロールＩＤを設定する。
また、テナントロール管理部１１２は、生成するテナント間委譲定義情報の委譲状態３０３に、「委譲中」を設定する。
テナント間委譲定義情報記憶部１６１は、記憶装置９１４を用いて、テナントロール管理部１１２が生成したテナント間委譲定義情報を記憶する。
【００６８】
権限ロール生成工程Ｓ１４において、テナントロール管理部１１２は、処理装置９１１を用いて、権限ロールについてのロール情報を生成する。
テナントロール管理部１１２は、生成するロール情報のテナントＩＤ３２０に、委譲先入力工程Ｓ１１で操作を入力したユーザが属するテナント１８０のテナントＩＤを設定する。
テナントロール管理部１１２は、生成するロール情報のロールＩＤ３２１に、委譲定義生成工程Ｓ１３で決定したロールＩＤを設定する。
テナントロール管理部１１２は、生成するロール情報のロールタイプ３２２に、「権限ロール」を設定する。
ロール情報記憶部１７２は、記憶装置９１４を用いて、テナントロール管理部１１２が生成したロール情報を記憶する。
【００６９】
ユーザロール生成工程Ｓ１５において、テナントロール管理部１１２は、処理装置９１１を用いて、ユーザロールについてのロール情報を生成する。
テナントロール管理部１１２は、生成するロール情報のテナントＩＤ３２０に、委譲先入力工程Ｓ１１で入力した委譲先のテナント１８０のテナントＩＤを設定する。
テナントロール管理部１１２は、生成するロール情報のロールＩＤ３２１に、委譲定義生成工程Ｓ１３で決定したロールＩＤを設定する。
テナントロール管理部１１２は、生成するロール情報のロールタイプ３２２に、「ユーザロール」を設定する。
ロール情報記憶部１７２は、記憶装置９１４を用いて、テナントロール管理部１１２が生成したロール情報を記憶する。
【００７０】
権限委譲処理Ｓ１０では、権限を委譲する委譲先のテナント１８０を指定して委譲操作をするが、この時点では、委譲される権限の具体的な内容は、指定されない。すなわち、権限委譲の枠組みだけが設定される。
【００７１】
図１３は、この実施の形態における権限役割設定処理Ｓ２０の流れの一例を示すフロー図である。
【００７２】
権限役割設定処理Ｓ２０において、実行環境システム１００は、ユーザの指示にしたがって、権限役割設定作業を実行する。権限役割設定処理Ｓ２０は、例えば、権限入力工程Ｓ２１と、役割入力工程Ｓ２２と、ロールタイプ判定工程Ｓ２３と、権限判定工程Ｓ２４と、権限ロール定義生成工程Ｓ２５とを有する。
【００７３】
権限入力工程Ｓ２１において、ロール管理部１４３は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、関連付けをする権限を入力する。
【００７４】
役割入力工程Ｓ２２において、ロール管理部１４３は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、関連付けをする役割を入力する。
【００７５】
ロールタイプ判定工程Ｓ２３において、ロールタイプ判定部１４６は、処理装置９１１を用いて、役割入力工程Ｓ２２で入力した役割のロールタイプを判定する。例えば、ロールタイプ判定部１４６は、操作を入力したユーザが属するテナント１８０と、役割入力工程Ｓ２２で入力した役割とに基づいて、ロール情報記憶部１７２が記憶したロール情報のなかから、テナントＩＤ３２０及びロールＩＤ３２１が一致するロール情報を抽出する。ロールタイプ判定部１４６は、抽出したロール情報からロールタイプ３２２を取得する。
ロールタイプがユーザロールである場合、権限と関連付けることはできない。ロールタイプ判定部１４６は、権限役割設定処理Ｓ２０を終了する。
ロールタイプが通常ロールや権限ロールである場合、権限と関連付けることができる。ロールタイプ判定部１４６は、権限判定工程Ｓ２４へ処理を進める。
【００７６】
権限判定工程Ｓ２４において、権限判定部１４４は、処理装置９１１を用いて、操作を入力したユーザが、権限入力工程Ｓ２１で入力した権限と、役割入力工程Ｓ２２で入力した役割とを関連付ける権限を有するか否かを判定する。
ユーザに権限があると判定した場合、権限判定部１４４は、権限ロール定義生成工程Ｓ２５へ処理を進める。
ユーザに権限がないと判定した場合、権限判定部１４４は、権限役割設定処理Ｓ２０を終了する。
【００７７】
権限ロール定義生成工程Ｓ２５において、ロール管理部１４３は、処理装置９１１を用いて、権限ロール定義情報を生成する。
ロール管理部１４３は、生成する権限ロール定義情報のテナントＩＤ３４０に、操作を入力したユーザが属するテナント１８０のテナントＩＤを設定する。
ロール管理部１４３は、生成する権限ロール定義情報のロールＩＤ３４１に、役割入力工程Ｓ２２で入力した役割を識別するロールＩＤを設定する。
ロール管理部１４３は、生成する権限ロール定義情報の権限ＩＤ３４２に、権限入力工程Ｓ２１で入力した権限を識別する権限ＩＤを設定する。
権限ロール定義情報記憶部１７４は、記憶装置９１４を用いて、ロール管理部１４３が生成した権限ロール定義情報を記憶する。
【００７８】
権限を委譲する委譲元のテナント１８０では、まず、権限委譲処理Ｓ１０によって、権限委譲用の役割である権限ロールを作成する。次に、権限役割設定処理Ｓ２０によって、権限ロールと権限とを関連付ける。これにより、権限ロールに関連付けた権限を、委譲先のテナント１８０に委譲することができる。
【００７９】
なお、権限役割設定処理Ｓ２０では、権限ロールではなく通常ロールを権限と関連付けることもできる。通常ロールと権限とを関連付けた場合、その権限は、同じテナント１８０内のユーザに与えられる。すなわち、権限を委譲するか否かに関わらず、同じ流れで処理をすることができる。
【００８０】
図１４は、この実施の形態におけるユーザ役割設定処理Ｓ３０の流れの一例を示すフロー図である。
【００８１】
ユーザ役割設定処理Ｓ３０において、実行環境システム１００は、ユーザによる操作にしたがって、ユーザ役割設定作業を実行する。ユーザ役割設定処理Ｓ３０は、例えば、ユーザ入力工程Ｓ３１と、役割入力工程Ｓ３２と、ロールタイプ判定工程Ｓ３３と、権限判定工程Ｓ３４と、ユーザロール定義生成工程Ｓ３５とを有する。
【００８２】
ユーザ入力工程Ｓ３１において、ロール管理部１４３は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、関連付けをするユーザを入力する。
【００８３】
役割入力工程Ｓ３２において、ロール管理部１４３は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、関連付けをする役割を入力する。
【００８４】
ロールタイプ判定工程Ｓ３３において、ロールタイプ判定部１４６は、処理装置９１１を用いて、役割入力工程Ｓ３２で入力した役割のロールタイプを判定する。
ロールタイプが権限ロールである場合、ユーザと関連付けることはできない。ロールタイプ判定部１４６は、ユーザ役割設定処理Ｓ３０を終了する。
ロールタイプが通常ロールやユーザロールである場合、ユーザと関連付けることができる。ロールタイプ判定部１４６は、権限判定工程Ｓ３４へ処理を進める。
【００８５】
権限判定工程Ｓ３４において、権限判定部１４４は、処理装置９１１を用いて、操作を入力したユーザが、ユーザ入力工程Ｓ３１で入力したユーザと、役割入力工程Ｓ３２で入力した役割とを関連付ける権限を有するか否かを判定する。
ユーザに権限があると判定した場合、権限判定部１４４は、ユーザロール定義生成工程Ｓ３５へ処理を進める。
ユーザに権限がないと判定した場合、権限判定部１４４は、ユーザ役割設定処理Ｓ３０を終了する。
【００８６】
ユーザロール定義生成工程Ｓ３５において、ロール管理部１４３は、処理装置９１１を用いて、ユーザロール定義情報を生成する。
ロール管理部１４３は、生成するユーザロール定義情報のテナントＩＤ３５０に、操作を入力したユーザが属するテナント１８０のテナントＩＤを設定する。
ロール管理部１４３は、生成するユーザロール定義情報のロールＩＤ３５１に、役割入力工程Ｓ３２で入力した役割を識別するロールＩＤを設定する。
ロール管理部１４３は、生成するユーザロール定義情報のユーザＩＤ３５２に、ユーザ入力工程Ｓ３１で入力したユーザを識別するユーザＩＤを設定する。
ユーザロール定義情報記憶部１７５は、記憶装置９１４を用いて、ロール管理部１４３が生成したユーザロール定義情報を記憶する。
【００８７】
権限を委譲される委譲先のテナント１８０では、ユーザ役割設定処理Ｓ３０によって、委譲元のテナント１８０による権限委譲処理Ｓ１０で作成された権限委譲用の役割であるユーザロールと、ユーザとを関連付ける。これにより、委譲元から委譲された権限を、テナント１８０のユーザに与えることができる。
【００８８】
なお、ユーザ役割設定処理Ｓ３０では、ユーザロールではなく通常ロールをユーザと関連付けることもできる。通常ロールとユーザとを関連付けた場合、そのユーザは、同じテナント１８０内の権限を与えられる。すなわち、ユーザに与える権限が、委譲された権限であるか否かに関わらず、同じ流れで処理をすることができる。
【００８９】
図１５は、この実施の形態における代行処理Ｓ４０の流れの一例を示すフロー図である。
【００９０】
代行処理Ｓ４０において、実行環境システム１００は、ユーザによる操作にしたがって、代行作業を実行する。代行処理Ｓ４０は、例えば、テナント入力工程Ｓ４１と、処理入力工程Ｓ４２と、権限判定工程Ｓ４３と、処理実行工程Ｓ４４とを有する。
【００９１】
テナント入力工程Ｓ４１において、テナント切替制御部１３１は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、処理の対象となるデータが属するテナント１８０を入力する。
【００９２】
処理入力工程Ｓ４２において、アプリケーション切替制御部１３２は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、実行する処理を入力する。
【００９３】
権限判定工程Ｓ４３において、権限判定部１４４及びテナント間権限判定部１１１は、処理装置９１１を用いて、そのユーザが、テナント入力工程Ｓ４１で入力したテナント１８０のデータに対して、処理入力工程Ｓ４２で入力した処理をする権限を有するか否かを判定する。
例えば、権限判定部１４４は、ユーザロール定義情報記憶部１７５が記憶したユーザロール定義情報のなかから、テナントＩＤ３５０が、そのユーザが属するテナント１８０のテナントＩＤと一致し、ユーザＩＤ３５２が、そのユーザのユーザＩＤと一致するユーザロール定義情報を抽出する。権限判定部１４４は、抽出したユーザロール定義情報から、ロールＩＤ３５１を取得する。
テナント間権限判定部１１１は、ロール情報記憶部１７２が記憶したロール情報のなかから、テナントＩＤ３２０が、そのユーザが属するテナント１８０のテナントＩＤと一致し、ロールＩＤ３２１が、権限判定部１４４が取得したロールＩＤ３５１のいずれかと一致し、ロールタイプ３２２が「ユーザロール」であるロール情報を抽出する。抽出したロール情報がない場合、テナント間権限判定部１１１は、そのユーザに代行処理の権限がないと判定する。
抽出したロール情報がある場合、テナント間権限判定部１１１は、抽出したロール情報から、ロールＩＤ３２１を取得する。テナント間権限判定部１１１は、テナント間委譲定義情報記憶部１６１が記憶したテナント間委譲定義情報のなかから、委譲元テナントＩＤ３０１が、テナント入力工程Ｓ４１でテナント切替制御部１３１が入力したテナント１８０のテナントＩＤと一致し、委譲先テナントＩＤ３０２が、そのユーザが属するテナント１８０のテナントＩＤと一致し、委譲状態３０３が「委譲中」であり、ロールＩＤ３０４が、取得したロールＩＤ３２１のいずれかと一致するテナント間委譲定義情報を抽出する。抽出したテナント間委譲定義情報がない場合、テナント間権限判定部１１１は、そのユーザに代行処理の権限がないと判定する。
抽出したテナント間委譲定義情報がある場合、テナント間権限判定部１１１は、抽出したテナント間委譲定義情報から、ロールＩＤ３０４を取得する。
権限判定部１４４は、権限ロール定義情報記憶部１７４が記憶した権限ロール定義情報のなかから、テナントＩＤ３４０が、テナント入力工程Ｓ４１でテナント切替制御部１３１が入力したテナント１８０のテナントＩＤと一致し、ロールＩＤ３４１が、テナント間権限判定部１１１が取得したロールＩＤ３０４と一致する権限ロール定義情報を抽出する。権限判定部１４４は、抽出した権限ロール定義情報から、権限ＩＤ３４２を取得する。権限判定部１４４は、権限情報記憶部１７１が記憶した権限情報のなかから、テナントＩＤ３１０が、テナント入力工程Ｓ４１でテナント切替制御部１３１が入力したテナント１８０のテナントＩＤと一致し、権限ＩＤ３１１が、取得した権限ＩＤ３４２と一致する権限情報を抽出する。権限判定部１４４は、抽出した権限情報に含まれる対象システム３１２及び権限内容３１３によって表わされる処理のなかに、処理入力工程Ｓ４２でアプリケーション切替制御部１３２が入力した処理が含まれるか否かを判定する。
代行処理の権限がそのユーザにあると判定した場合、権限判定部１４４は、処理実行工程Ｓ４４へ処理を進める。
代行処理の権限がそのユーザにないと判定した場合、権限判定部１４４は、代行処理Ｓ４０を終了する。
【００９４】
処理実行工程Ｓ４４において、テナント切替制御部１３１は、処理装置９１１を用いて、処理の対象となるデータが属するテナント１８０を、テナント入力工程Ｓ４１で入力したテナント１８０に切り替える。アプリケーション切替制御部１３２は、処理装置９１１を用いて、処理入力工程Ｓ４２で入力した処理をするアプリケーションを判定する。アプリケーション処理部１５０は、処理装置９１１を用いて、テナント切替制御部１３１が切り替えたテナント１８０のデータを対象として、アプリケーション切替制御部１３２が判定したアプリケーションを実行する。
【００９５】
図１６は、この実施の形態における委譲解除処理Ｓ５０の流れの一例を示すフロー図である。
【００９６】
委譲解除処理Ｓ５０（ロール間対応変更処理の一例。）において、実行環境システム１００は、ユーザの指示にしたがって、委譲解除作業を実行する。委譲解除処理Ｓ５０は、例えば、委譲先入力工程Ｓ５１と、役割入力工程Ｓ５２と、権限判定工程Ｓ５３と、委譲定義更新工程Ｓ５４とを有する。
【００９７】
委譲先入力工程Ｓ５１において、テナント間委譲設定部１４２は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、委譲先のテナント１８０を入力する。
【００９８】
役割入力工程Ｓ５２において、テナント間委譲設定部１４２は、入力装置９１２を用いて、ユーザによる操作をクライアント端末装置１８１から入力することにより、権限委譲を解除する権限に関連付けられた役割を入力する。
【００９９】
権限判定工程Ｓ５３において、権限判定部１４４は、処理装置９１１を用いて、そのユーザが、委譲先入力工程Ｓ１１で入力したテナント１８０に対する権限委譲を解除する権限を有するか否かを判定する。
解除権限がそのユーザにあると判定した場合、権限判定部１４４は、委譲定義更新工程Ｓ５４へ処理を進める。
解除権限がそのユーザにないと判定した場合、権限判定部１４４は、委譲解除処理Ｓ５０を終了する。
【０１００】
委譲定義更新工程Ｓ５４において、テナントロール管理部１１２は、処理装置９１１を用いて、テナント間委譲定義情報記憶部１６１が記憶したテナント間委譲定義情報を更新する。
例えば、テナントロール管理部１１２は、テナント間委譲定義情報記憶部１６１が記憶したテナント間委譲定義情報のなかから、委譲元テナントＩＤ３０１が、ユーザが属するテナント１８０のテナントＩＤと一致し、委譲先テナントＩＤ３０２が、委譲先入力工程Ｓ５１で入力したテナント１８０のテナントＩＤと一致し、ロールＩＤ３０４が、役割入力工程Ｓ５２で入力した役割のロールＩＤと一致するテナント間委譲定義情報を抽出する。テナントロール管理部１１２は、抽出したテナント間委譲定義情報の委譲状態３０３に、「未委譲」を設定する。テナント間委譲定義情報記憶部１６１は、テナントロール管理部１１２が抽出したテナント間委譲定義情報を、テナントロール管理部１１２が変更したテナント間委譲定義情報で置き換えて記憶する。
【０１０１】
このように、テナント間委譲定義情報の委譲状態３０３を「未委譲」に変更するだけで、権限委譲を解除することができる。権限委譲を再開する場合は、テナント間委譲定義情報の委譲状態３０３を「委譲中」に戻せばよい。
【０１０２】
なお、テナント間委譲定義情報の委譲状態３０３を「未委譲」に変更するだけでなく、権限ロール生成工程Ｓ１４で生成した権限ロールやユーザロール生成工程Ｓ１５で生成したユーザロールを表わすロール情報を、ロール情報記憶部１７２が記憶したロール情報のなかから削除する構成であってもよい。
【０１０３】
委譲元のテナント１８０において、委譲する権限の内容を変更する場合は、権限役割解除作業をする権限役割解除処理によって、権限ロールと権限との関連付けを解除し、権限役割設定処理Ｓ２０によって、権限ロールを別の権限と関連付ければよい。なお、権限役割解除処理では、通常ロールと権限との関連付けを解除することもできる。権限役割解除処理の詳細については、説明を省略する。
【０１０４】
なお、権限委譲を解除する場合、委譲元のテナント１８０で委譲解除処理Ｓ５０をするのではなく、権限役割解除処理によって、権限ロールと権限との関連付けを解除してもよい。しかし、委譲先のテナント１８０からは、委譲元のテナント１８０の権限ロール定義情報を見ることができないので、権限委譲そのものが解除されたのか、委譲された権限が変更されたのかを区別できない。このため、委譲解除処理Ｓ５０によって、権限委譲を解除するほうが好ましい。
【０１０５】
委譲先のテナント１８０において、委譲された権限を行使するユーザを変更する場合は、ユーザ役割解除作業をするユーザ役割解除処理によって、ユーザロールとユーザとの関連付けを解除し、ユーザ役割設定処理Ｓ３０によって、ユーザロールを別のユーザと関連付ければよい。なお、ユーザ役割解除処理では、通常ロールとユーザとの関連付けを解除することもできる。ユーザ役割解除処理の詳細については、説明を省略する。
【０１０６】
この実施の形態における実行環境システム１００の権限管理方式は、ユーザと、そのユーザの有する権限の関係を判定する。
権限管理方式は、ユーザとロールの関係付けを管理する。
権限管理方式は、ロールと権限の関係付けを管理する。
権限管理方式は、前記２つの関係情報からロールを介して、権限を判定する上で、ロールを、
（１）ユーザと関係付けることのできるロール（ユーザロール）と、
（２）権限のみと関係付けることのできるロール（権限ロール）と
に分割し、その前記２つのロールを関係付けて管理することにより、ユーザの有する権限を判定する。
【０１０７】
この実施の形態における実行環境システム１００は、複数のテナントがアプリケーションを共用するマルチテナントアプリケーションを実行する。
マルチテナントアプリケーション上の他のテナントに権限を委譲するため、
（１）他テナントに、ユーザと関係付けることのできるロール（ユーザロール）を、
（２）自身のテナントに、権限と関係付けることのできるロール（権限ロール）を
それぞれ作成し、前記２つのロールを関係付けて管理することにより、他のテナントのユーザに対して自テナントの権限を委譲する。
【０１０８】
これにより、マルチテナントアプリケーションにおいて、他テナントに対して不用意にユーザや権限を公開することなく、権限の委譲を行うことが可能となる。仮ＩＤの発行やテナント間の役職の対応付けなどを行う必要はない。自身のテナント内のロールを用いたユーザ管理・権限管理のみで他テナントとの権限の連携が可能となる。また、ロールの割り当ては、権限委譲後も更新できるため、柔軟性が高い権限の割当てが可能となる。さらに、ユーザの操作履歴などにおいても、どのユーザが操作したかを記録可能であり、また、逆に履歴を記録していても他テナントからの参照時には詳細な情報を公開しないなどの制御をすることで、不用意な情報公開を避けることもできる。
【０１０９】
なお、権限ロールと、対応するユーザロールとで、同一のロールＩＤを使うのではなく、異なるロールＩＤを使う構成であってもよい。例えば、テナント間委譲定義情報は、ロールＩＤ３０４の代わりに、委譲元ロールＩＤと、委譲先ロールＩＤとを含む。テナント間委譲定義情報は、委譲元テナントＩＤ３０１と委譲元ロールＩＤとの組み合わせによって識別されル権限ロールと、委譲先テナントＩＤ３０２と委譲先ロールＩＤとの組み合わせによって識別されるユーザロールとを関連付ける。
【０１１０】
実施の形態２．
実施の形態２について、図１７を用いて説明する。
なお、実施の形態１と共通する部分については、同一の符号を付し、説明を省略する。
【０１１１】
この実施の形態における実行環境システム１００の全体構成、ＡＰサーバ装置１０１やＤＢサーバ装置１０２などの機能ブロック構成は、実施の形態１と同様である。
【０１１２】
この実施の形態では、１つの権限を複数のテナント１８０に対して委譲する。
【０１１３】
権限委譲処理Ｓ１０の流れは、実施の形態１と同様なので、図１２を参照して、異なる点のみを説明する。
【０１１４】
委譲先入力工程Ｓ１１において、テナントロール管理部１１２は、委譲先のテナント１８０を複数入力する。
【０１１５】
委譲定義生成工程Ｓ１３において、テナントロール管理部１１２は、委譲先テナントＩＤ３０２に、委譲先入力工程Ｓ１１で入力した複数の委譲先のテナント１８０のテナントＩＤからなるリストを設定したテナント間委譲定義情報を生成する。
なお、テナントロール管理部１１２は、委譲先テナントＩＤ３０２に、委譲先入力工程Ｓ１１で入力した複数の委譲先のテナント１８０それぞれのテナントＩＤを設定した複数のテナント間委譲定義情報を生成する構成であってもよい。
【０１１６】
ユーザロール生成工程Ｓ１５において、テナントロール管理部１１２は、テナントＩＤ３５０に、委譲先入力工程Ｓ１１で入力した複数の委譲先のテナント１８０それぞれのテナントＩＤを設定した複数のロール情報を生成する。
【０１１７】
図１７は、この実施の形態における権限委譲処理Ｓ１０でテナントロール管理部１１２が生成する情報の一例を示す図である。
【０１１８】
例えば、委譲先入力工程Ｓ１１でテナントロール管理部１１２が委譲先のテナント１８０として２つのテナント１８０を入力した場合、テナントロール管理部１１２は、その２つのテナント１８０のテナントＩＤのリストを委譲先テナントＩＤ３０２としたテナント間委譲定義情報を生成する。また、テナントロール管理部１１２は、そのユーザが属するテナント１８０に属する１つの権限ロールを表わすロール情報と、委譲先の２つのテナント１８０にそれぞれ属する２つのユーザロールをそれぞれ表わす２つのロール情報とを生成する。
【０１１９】
これにより、１つの権限ロールを使って、複数のテナント１８０に対して権限を委譲することができる。
【０１２０】
この実施の形態における実行環境システム１００は、複数のテナントがアプリケーションを共用するマルチテナントアプリケーションを実行する。
マルチテナントアプリケーション上で、複数のテナントに対して一括で権限を委譲するため、
（１）複数のテナントに、ユーザとの割当てを定義できるロール（ユーザロール）を、
（２）自身のテナントに、権限との割当てを定義できるロール（権限ロール）を
それぞれ作成し、前記２つのロールを１対多で関係付けて管理することにより、複数のテナントのユーザに対して自テナントの権限を一括で委譲する。
【０１２１】
これにより、複数のテナントに対して、同一の権限を一括で委譲管理することが可能となる。
【０１２２】
以上、各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成であってもよいし、本質的でない部分の構成を、他の構成で置き換えた構成であってもよい。
【０１２３】
以上説明した処理実行装置（実行環境システム１００）は、データを記憶する記憶装置（９１４）と、データを処理する処理装置（９１１）と、利用者ロール記憶部（ユーザロール定義情報記憶部１７５）と、権限ロール記憶部（権限ロール定義情報記憶部１７４）と、ロール間対応記憶部（テナント間委譲定義情報記憶部１６１）と、利用者認証部（ユーザ認証部１４５）と、利用者ロール判定部（権限判定部１４４）と、権限ロール判定部（テナント間権限判定部１１１）と、実行権限判定部（権限判定部１４４）と、実行部（アプリケーション処理部１５０）とを有する。
上記利用者ロール記憶部は、上記記憶装置を用いて、複数のグループ（テナント１８０）のうちのいずれかに属する利用者（ユーザ）と、上記利用者が属するグループと同じグループに属する利用者ロール（ユーザロール）との対応関係を表わす利用者ロールデータ（ユーザロール定義情報）を記憶する。
上記権限ロール記憶部は、上記記憶装置を用いて、上記複数のグループのうちのいずれかに属する処理を実行する実行権限と、上記処理が属するグループと同じグループに属する権限ロールとの対応関係を表わす権限ロールデータ（権限ロール定義情報）を記憶する。
上記ロール間対応記憶部は、上記記憶装置を用いて、上記利用者ロールと、上記利用者ロールにかかるグループと異なるグループにかかる権限ロールとの対応関係を表わすロール間対応データ（テナント間委譲定義情報）を記憶する。
上記利用者認証部は、上記処理装置を用いて、利用者を認証する。
上記利用者ロール判定部は、上記処理装置を用いて、上記利用者ロール記憶部が記憶した利用者ロールデータに基づいて、上記利用者認証部が認証した利用者に対応づけられた利用者ロールを判定する。
上記権限ロール判定部は、上記処理装置を用いて、上記ロール間対応記憶部が記憶したロール間対応データに基づいて、上記利用者ロール判定部が判定した利用者ロールに対応づけられた権限ロールを判定する。
上記実行権限判定部は、上記処理装置を用いて、上記権限ロール記憶部が記憶した権限ロールデータに基づいて、上記権限ロール判定部が判定した権限ロールに対応づけられた実行権限を判定する。
上記実行部は、上記処理装置を用いて、上記実行権限判定部が判定した実行権限に基づいて、上記利用者認証部が認証した利用者が実行権限を有する処理を実行する。
【０１２４】
これにより、委譲元のグループについての情報と、委譲先のグループについての情報との分離を確実にし、情報漏洩を防ぐことができる。
【０１２５】
上記実行部は、更に、ロール間対応変更部（テナントロール管理部１１２）を有する。
上記ロール間対応変更部は、上記処理装置（９１１）を用いて、上記ロール間対応記憶部（テナント間委譲定義情報記憶部１６１）が記憶したロール間対応データ（テナント間委譲定義情報）について、上記ロール間対応データにかかる権限ロールが属するグループ（委譲元のテナント１８０）と、上記利用者認証部（ユーザ認証部１４５）が認証した利用者が属するグループ（テナント１８０）とが一致する場合に、上記ロール間対応データを変更するロール間対応変更処理を実行する。
【０１２６】
これにより、権限の委譲や解除を容易に行なうことができるので、解除漏れなどによる情報漏洩を防ぐことができる。
【０１２７】
上記利用者ロール記憶部（ユーザロール定義情報記憶部１７５）が記憶する利用者ロールデータ（ユーザロール定義情報）は、上記利用者ロール（ユーザロール）を識別するロール識別データ（ロールＩＤ）を含む。
上記権限ロール記憶部（権限ロール定義情報記憶部１７４）が記憶する権限ロールデータ（権限ロール定義情報）は、上記権限ロールを識別するロール識別データ（ロールＩＤ）を含む。
上記ロール間対応記憶部（テナント間委譲定義情報記憶部１６１）が記憶するロール間対応データ（テナント間委譲定義情報）は、上記利用者ロールと、上記利用者ロールを識別するロール識別データと同じロール識別データによって識別される権限ロールとが、対応づけられているか否かを表わす。
【符号の説明】
【０１２８】
１００  実行環境システム、１０１  ＡＰサーバ装置、１０２  ＤＢサーバ装置、１０３  ゲートウェイ装置、１０４，１０５  ネットワーク、１１１  テナント間権限判定部、１１２  テナントロール管理部、１３０  ユーザアクセス制御部、１３１  テナント切替制御部、１３２  アプリケーション切替制御部、１４０  テナント権限処理部、１４１  アクセス制御部、１４２  テナント間委譲設定部、１４３  ロール管理部、１４４  権限判定部、１４５  ユーザ認証部、１４６  ロールタイプ判定部、１５０  アプリケーション処理部、１６０  マルチテナント管理情報記憶部、１６１  テナント間委譲定義情報記憶部、１７０  テナント情報記憶部、１７１  権限情報記憶部、１７２  ロール情報記憶部、１７３  ユーザ情報記憶部、１７４  権限ロール定義情報記憶部、１７５  ユーザロール定義情報記憶部、１８０  テナント、１８１  クライアント端末装置、３０１  委譲元テナントＩＤ、３０２  委譲先テナントＩＤ、３０３  委譲状態、３０４，３２１，３４１，３５１  ロールＩＤ、３１０，３２０，３３０，３４０，３５０  テナントＩＤ、３１１，３４２  権限ＩＤ、３１２  対象システム、３１３  権限内容、３２２  ロールタイプ、３３１，３５２  ユーザＩＤ、３３２  ユーザ名、３３３  パスワード、９００  マルチテナント型アプリケーション実行システム、９１０  コンピュータ、９１１  処理装置、９１２  入力装置、９１３  出力装置、９１４  記憶装置、Ｓ００  マルチテナント型アプリケーション実行処理、Ｓ０１  ログイン処理、Ｓ０２  作業選択処理、Ｓ０３  作業実行処理、Ｓ１０  権限委譲処理、Ｓ１１，Ｓ５１  委譲先入力工程、Ｓ１２，Ｓ２４，Ｓ３４，Ｓ４３，Ｓ５３  権限判定工程、Ｓ１３  委譲定義生成工程、Ｓ１４  権限ロール生成工程、Ｓ１５  ユーザロール生成工程、Ｓ２０  権限役割設定処理、Ｓ２１  権限入力工程、Ｓ２２，Ｓ３２，Ｓ５２  役割入力工程、Ｓ２３，Ｓ３３  ロールタイプ判定工程、Ｓ２５  権限ロール定義生成工程、Ｓ３０  ユーザ役割設定処理、Ｓ３１  ユーザ入力工程、Ｓ３５  ユーザロール定義生成工程、Ｓ４０  代行処理、Ｓ４１  テナント入力工程、Ｓ４２  処理入力工程、Ｓ４４  処理実行工程、Ｓ５０  委譲解除処理、Ｓ５４  委譲定義更新工程。
【図１】
0005868221.tif 000002
【図２】
0005868221.tif 000003
【図３】
0005868221.tif 000004
【図４】
0005868221.tif 000005
【図５】
0005868221.tif 000006
【図６】
0005868221.tif 000007
【図７】
0005868221.tif 000008
【図８】
0005868221.tif 000009
【図９】
0005868221.tif 000010
【図１０】
0005868221.tif 000011
【図１１】
0005868221.tif 000012
【図１２】
0005868221.tif 000013
【図１３】
0005868221.tif 000014
【図１４】
0005868221.tif 000015
【図１５】
0005868221.tif 000016
【図１６】
0005868221.tif 000017
【図１７】
0005868221.tif 000018