JP5930847B2 - サーバーシステムおよび制御方法およびプログラム - Google Patents

サーバーシステムおよび制御方法およびプログラム Download PDF

Info

Publication number
JP5930847B2
JP5930847B2 JP2012122916A JP2012122916A JP5930847B2 JP 5930847 B2 JP5930847 B2 JP 5930847B2 JP 2012122916 A JP2012122916 A JP 2012122916A JP 2012122916 A JP2012122916 A JP 2012122916A JP 5930847 B2 JP5930847 B2 JP 5930847B2
Authority
JP
Japan
Prior art keywords
tenant
function
executor
processed
execution
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
JP2012122916A
Other languages
English (en)
Other versions
JP2013033449A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2012122916A priority Critical patent/JP5930847B2/ja
Publication of JP2013033449A publication Critical patent/JP2013033449A/ja
Application granted granted Critical
Publication of JP5930847B2 publication Critical patent/JP5930847B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Description

本発明は、マルチテナントサービスにおいて、実行者と異なるテナントのリソースに対するアクセス制御方法に関する。
従来、Webアプリケーションは、サービス提供先の企業や組織ごとに専用のサーバーを用意して提供する形態が主であった。しかしながら、提供先ごとに専用のサーバーを用意する形態はコスト効率が低下する。そのため、近年、共有のサーバー上に展開した同一のWebアプリケーションを複数の企業や組織に提供する“マルチテナントサービス”という形態が注目されている。ここで“テナント”とは、従来の専用サーバーを用いてサービスを提供していた企業や組織の単位を意味する。
テナントごとに専用のサーバーを用いる方法と比較して、マルチテナントサービスはコスト面で優れているがセキュリティ面で課題がある。従来の形態では、テナントが所有するデータがテナントごとの専用のサーバーで管理されており、物理的に分離されているためデータ漏洩のリスクは低い。しかしながら、マルチテナントサービスは複数テナントのデータを共有のサーバーで管理するため、物理的に分離されておらず、データ漏洩のリスクが高くなる。そこで、マルチテナントサービスでは、テナント間でのデータ漏洩を防ぐために、論理的にデータを分離する仕組みが必須である。
例えば、先行技術では、データを論理的に分離するためのキーとしてテナントIDを用いた方法が提案されている。このテナントIDを、ユーザーを識別するための属性であるユーザーIDと紐づけ、テナントが所有するデータにも同様にテナントIDを付与する方法によってマルチテナントサービスを実現している。より詳細には、ユーザー認証によってユーザーIDとともにテナントIDを特定し、データアクセス時に、同一のテナントIDが付与されたデータのみアクセスを許可するアクセス制御方法である。
特開2010−26653号公報
マルチテナントサービスでは、テナント毎にデータを論理的に分離し、他テナントのデータにアクセスできないように制御することで、サービス全体のセキュリティを担保している。
しかしながら、マルチテナントサービスの運用において、特別に他テナントのデータへのアクセスが必要になる場合がある。
例えばサービス提供を開始する際に、他テナントのデータへのアクセスが発生する場合がある。新たな企業や組織がクラウドサービスの利用を開始する際には、クラウドサービス上にその顧客用のテナントが必要になるため、テナント作成権限を持つユーザーが新たなテナントを作成する。その際、テナント作成者の権限で、そのテナント内にテナント管理を行えるユーザーアカウントを作成する場合がある。
また、顧客にサービスを販売したユーザーが、その顧客のテナント内の一部のデータにアクセスする場合がある。クラウドサービスにおいてユーザーが有償のサービスを利用するためには、ユーザーはサービスの販売者と契約を結び、サービスのライセンスを購入する必要がある。その際、サービスの販売者が販売管理などの目的で、販売者が契約した顧客のテナントが、現在いくつのライセンスを利用しているかを確認する場合がある。
これまでのマルチテナント実現方法でも、他テナントのデータへのアクセスは、実行者に一時的に対象テナントへのアクセス権を付与したり、全てのテナントに対するアクセス権を持つスーパーユーザーを用意したりして実現はできる。しかし、このような方法では、他テナントのデータへのアクセス権を持つユーザーがテナントを越えて全ての処理を実行出来てしまい、セキュリティ上の問題となる。
例えば上記テナント作成の例では、サービス提供者がテナントおよびそのテナント内にユーザーアカウントを作成することは許されるが、サービス提供後にそのテナント内のユーザーを削除したりすることは許されない。
同様に上記ライセンス数取得の例では、サービスの販売者が、契約した顧客のテナントで利用されている総ライセンス数を取得することは許されるが、ユーザーの氏名や住所、誰にライセンスが紐付いているか、などの個人情報を取得することは許されない。
このように、他テナントのデータへのアクセスを許す場合には、テナントを越えて実行できる処理を制限する必要がある。しかしながら、これまでのマルチテナント実現方法でこのように処理に制限を付けるためには、ユーザー作成時や処理実行時などに、細かいアクセス権の制御が必要になり、アクセス権の管理が複雑になってしまう。
さらに、テナントを越えて実行できる処理は、その処理を実行するユーザーによる制御も必要となる。
例えばクラウドサービスを利用するユーザーを、クラウドサービスを運用するユーザー(運用者)と、サービスを販売するユーザー(販売者)、そしてサービスを利用するユーザー(顧客)に分類したとする。
ここで、運用者はサービスの運用を行うユーザーであり、システム管理者や開発者などが含まれる。運用者は販売者に対してサービス販売の委託を行い、販売者と販売契約を結んで販売者のテナントを作成する。そのため、販売テナント作成やシステム管理のために、販売テナントのデータにアクセスすることがある。
販売者はサービスの販売を行うユーザーであり、顧客と利用契約を結び、顧客のテナントを作成する。また、顧客に対して有償サービスの販売を行い、契約を結んだユーザーにライセンスの発行を行う。そのため、顧客テナントの作成や販売管理のために、顧客テナントのデータにアクセスすることがある。
ここで、販売者は顧客と契約を結んでいるため、顧客テナントのデータにアクセスすることが許されるが、その販売者と契約を結んでいる運用者は、顧客とは契約を結んでいないため、顧客テナントのデータへのアクセスは許されない。もし管理者が顧客テナントのデータにアクセスできてしまうと、それは顧客情報の漏えいとなってしまう。
このように、テナントを越えて実行できる処理は、処理内容の制限に加え、処理の実行者と処理対象による制限も行う必要がある。
本発明は、マルチテナントサービスにおいて、実行者と異なるテナントのデータへのアクセスをセキュアに実行する方法を提供することを目的としている。
上記目的を達成するために、本願発明は、マルチテナントサービスのアクセス制御サービスを提供するサーバーシステムであって、機能の実行を指示した実行者が所属するテナントと前記機能による処理対象のテナントが同一か否かを判定する第1判定手段と、前記第1判定手段により同一であると判定された場合、前記実行者に前記機能の実行を許可する許可手段と、前記第1判定手段により同一でないと判定された場合、前記機能が、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても処理可能であるか否かを判定する第2判定手段と、前記第2判定手段により、前記機能が、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても処理可能であると判定された場合、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であるかを判定する第3判定手段とを有し、前記第3判定手段により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定された場合、前記許可手段は、前記実行者に処理対象テナントに対して前記機能の実行権限を許可することを特徴とする。
本発明により、マルチテナントサービスにおいて、実行者が自身の所属するテナントと異なるテナントに対して処理を行うことができる。また、テナントを越えた処理をする際に、必要以上の操作や、必要以上の情報の取得を防ぐことができる。
システム構成図 各装置のハードウェア構成図 ログインサービスのソフトウェアモジュールの説明図 アクセス制御サービスのソフトウェアモジュールの説明図 サービスのソフトウェアモジュールの説明図 ユーザー情報のデータ構造の一例を示す図 リソース情報のデータ構造の一例を示す図 API権限情報のデータ構造の一例を示す図 一般的なWebアプリケーションのアクセスシーケンス。 (A)アクセス制御のフローチャート。 (B)リソースへのアクセス可否判定のフローチャート。 (C)API実行権限判定のフローチャート。 ユーザー情報のデータの一例を示す図 リソース情報のデータの一例を示す図 API権限情報のデータの一例を示す図 一例としてのWebアプリケーションの画面フロー図。 一例としてのWebアプリケーションのアクセスシーケンス。 ロール制御情報のデータの一例を示す図 テナント作成API実行のフローチャート マスター管理者を用いた、API実行権限判定のフローチャート API実行時の権限判定フローチャート
以下、本発明を実施するための最良の形態について図面を用いて説明する。
図1は、本発明の実施例のシステム構成を示すブロック図である。
図中10は、Wide Area Network(WAN10)であり、本発明ではWorld Wide Web(WWW)システムが構築されている。図中11は各構成要素を接続するLocal Area Network(LAN11)である。
図中12はWAN10を介して各サービスに対してWebリクエストを発行する複数のクライアント12A、12Bであり、より具体的にはWWWシステムを利用するためのWebブラウザを備えたコンピュータである。なお、クライアント12Aおよび、クライアント12Bは、不図示のファイアウォール装置により、WAN10に対するリクエスト以外の通信が遮断されている。
図中13はWAN10およびLAN11を介して、クライアント12からのWebリクエスト要求に応じて、ユーザーを認証するためのログイン画面を提示し、ユーザーからのログインリクエストを受け付けるログインサービス13である。
図中14はLAN11を介して、ログインサービス13および、一つないし複数のサービス15からのアクセス許可リクエストを受け付けるアクセス制御サービス14である。
図中15はWAN10およびLAN11を介して、クライアント12からのWebリクエスト要求に応じて、各種サービスを提供する一つないし複数のサービス15A、サービス15Bである。
図中16はLAN11を介してアクセス制御サービス14からのデータアクセス要求をうけつけるデータベースサービス16である。データベースサービス16は、一般的なDBMS(DataBase Management System)が構成されており、アクセス制御サービス14からのデータアクセスクエリをうけつけ、該当するデータを応答する。
図2は、図1中のクライアント12、ログインサービス13、アクセス制御サービス14、サービス15、あるいはデータベースサービス16のハードウェア構成を示すブロック図である。図中、21は内部バスで接続される各デバイス(後述のROM、RAM他)を直接或いは間接的に制御し、本発明を実現するためのプログラムを実行するCPUである。22はBIOSが格納してあるROMである。23はCPU21のワーク領域として利用されたり、本発明を実現するためのソフトウェアモジュールをロードするための一時記憶として利用されたりするRAM(直接記憶装置)。24は基本ソフトウェアであるOSやソフトウェアモジュールが記憶されているHDD(ハードディスクドライブ)、もしくはSSD(ソリッドステートドライブ)などの間接記憶装置。25は入力装置であり不図示のキーボードやポインティングデバイスなどである。26は出力装置でありディスプレイが接続される。27はWAN10ないしはLAN11に接続するためのI/F(Interface)であり、一つないしは複数備えている。
これらハードウェアでは、起動後CPU21によりBIOSが実行されOSがHDD24からRAM23に実行可能にロードされる。CPU21はOSの動作に従って後述する各種ソフトウェアモジュールをHDD24からRAM23に随時、実行可能にロードする。各種ソフトウェアモジュールは上記各デバイスの協調によりCPU21によって実行され動作する。また、I/F27はLAN11に接続されており、OSの動作に従ってCPU21により制御され、各サーバーに格納されたサービス間のリクエストの送受信を実現している。また、I/F27はLAN11を経由してWAN10に接続されており、OSの動作に従ってCPU21により制御され、WWWシステムにおける通信を実現している。
また、図中1のログインサービス13、アクセス制御サービス14、サービス15、あるいはデータベースサービス16は、一台、ないしは複数台の図2で示されたハードウェア構成のサーバーによって構成される。複数台のサーバーで構成する場合は、不図示のロードバランサー装置や、不図示のソフトウェアモジュールによって負荷分散構成、もしくは冗長化構成を採用する事ができる。
図3は、ログインサービス13上で動作するソフトウェアモジュールの構成図である。なお各ソフトウェアモジュールは図2で示したHDD24に記憶されており、前述したようにCPU21によってRAM23にロードされ実行される。
Webサーバー31は、クライアント12からのWebリクエストを受け付けるWebインタフェースを備えたWebアプリケーションサーバーである。
ログインアプリケーション32は、Webサーバー31上にアプリケーションとして構成され、Webサーバー31が受け付けたWebリクエストに対して、ログイン画面を生成する。
アクセス制御エージェント33は、Webサーバー31上にフィルタリングアプリケーションとして構成され、ログインアプリケーション32に対するWebリクエストをフィルタリングする。そして、アクセス制御サービス14に構成されるアクセス制御エージェントI/F41と通信することによりユーザーの認証処理を実行する。
以後、上記ソフトウェアモジュールの協調により実行される一連の認証処理をログインサービス13で実行される処理と記載する。なお、ログインサービス13で実行されるユーザーの認証処理の詳細については後述する。
図4は、アクセス制御サービス14上で動作するソフトウェアモジュールの構成図である。なお各ソフトウェアモジュールは図2で示したHDD24に記憶されており、前述したようにCPU21によってRAM23にロードされ実行される。
図中41はログインサービス13、サービス15に構成されるアクセス制御エージェント33および53からのリクエスト受付およびレスポンス応答を行うアクセス制御エージェントI/F41である。
図中42はサービス15に構成されるアクセス制御サービスI/F54からのAPI呼出の受付およびAPI実行結果の応答を行うアクセス制御サービスAPI42である。
アクセス制御部43は、アクセス制御エージェントI/F41、アクセス制御サービスAPI42からアクセス権確認を受け付け、制御するアプリケーションモジュールである。アクセス部43は、DBドライバ部44を介してデータベースサービス16のデータ取得や更新を行う。
以後、上記ソフトウェアモジュールの協調により実行される一連のアクセス制御処理をアクセス制御サービス14で実行される処理と記載する。なお、アクセス制御サービス14で実行されるアクセス制御処理の詳細は後述する。
図5は、サービス15A、15B上で動作するソフトウェアモジュールの構成例である。なお各ソフトウェアモジュールは図2で示したHDD24に記憶されており、前述したようにCPU21によってRAM23にロードされ実行される。
Webサーバー51は、クライアント12からのWebリクエストを受け付けるWebインタフェースを備えたWebアプリケーションサーバーである。
Webアプリケーション52は、Webサーバー51上にアプリケーションとして構成され、Webサーバー51が受け付けたWebリクエストに対して、サービスを提供する画面を生成する。
アクセス制御エージェント53は、Webサーバー51上にフィルタリングアプリケーションとして構成され、Webアプリケーション52に対するWebリクエストをフィルタリングする。そして、アクセス制御サービス14に構成されるアクセス制御エージェントI/F41と通信することによりユーザーの認証確認処理および、アクセス制御処理を実行する。
図中54は、アクセス制御サービス14に構成されるアクセス制御サービスAPI42を呼び出すためのアクセス制御サービスI/F54である。アクセス制御サービスI/F54は、Webアプリケーション52から利用する事ができるよう構成される。
以後、上記ソフトウェアモジュールの協調により実行される一連のWebアプリケーション処理をサービス15で実行される処理と記載する。なお、サービス15で実行されるWebアプリケーション処理の詳細については後述する。
図6はユーザー情報のデータ構造および、ユーザー認証時に生成する認証トークン情報のデータ構造である。ユーザー情報は、ユーザーテーブル60、ユーザーロールテーブル61で構成され、データベースサービス16にて管理されている。また、認証トークン情報は認証トークンキャッシュ63で構成され、アクセス制御サービス14のRAM23に格納される。
ユーザーテーブル60は、ユーザーを識別するためのユーザーID601、秘匿情報であるパスワード602、ユーザーのデータアクセス範囲を示すユーザータイプID603、ユーザーが所属するテナントを識別するためのテナントID604から成る。
ユーザーロールテーブル61は、ユーザーを識別するためのユーザーID611、ユーザーに設定されているロール情報を示すロールID612から成る。
認証トークンキャッシュ63は、認証トークンを識別するための認証トークンID631、ユーザーを識別するためのユーザーID632、ユーザーに設定されている全てのロールIDであるロールID配列633から成る。
なお、認証トークンキャッシュ63のデータはアクセス制御サービス14においてユーザーの認証処理が実行され、認証が成功した時に生成される。
図7はロール情報およびリソース情報のデータ構造である。ロール情報はロールテーブル70、リソース情報はリソーステーブル71で構成される。また、ロールとリソースの関係はリソースロールテーブル72で構成される。これらテーブルはデータベースサービス16にて管理されている。
ロールテーブル70は、ロールを識別するためのロールID701、ロールのカテゴリを識別するためのロールカテゴリID702から成る。
リソーステーブル71は、リソースを識別するためのリソースID711、リソースのカテゴリを識別するためのリソースカテゴリID712、リソースとして管理される情報である保護アイテム713、リソースに対する権限情報を示す権限714から成る。
リソースロールテーブル72は、リソースを識別するためのリソースID721、ロールを識別するためのロールID722から成る。
図8はテナント情報およびAPI(機能)の実行権限情報のデータ構造である。テナント情報はテナントテーブル80、API(機能)の実行権限情報はAPI権限テーブル81で構成され、データベースサービス16にて管理されている。また、テナント情報の例として、ライセンスを発行できるテナントが管理する契約ライセンス数テーブル82と、各テナントが管理する利用ライセンス数テーブル83のデータ構造も示す。
テナントテーブル80は、テナントを識別するためのテナントID801、テナントに属するユーザーに設定されるユーザータイプID802、テナントのカテゴリを識別するためのテナントカテゴリID803から成る。
API権限テーブル81は、APIを識別するためのファンクションID811、ロールを識別するためのロールID812、および、操作テナントカテゴリID813、***作テナントカテゴリID814、エレベーション可否815からなる。なお、操作テナントカテゴリID813は、API実行者が所属するテナントのカテゴリを識別するためのIDであり、***作テナントカテゴリID814は、API実行対象のデータが所属するテナントのカテゴリを識別するためのIDである。また、エレベーション可否815は、そのAPIが、API実行者のテナントと異なるテナントのデータに対して実行できるかを表す。
契約ライセンス数テーブル82は、ライセンスを識別するためのライセンスID821、ユーザーのデータアクセス範囲を示すユーザータイプID822、契約しているテナントのテナントID823、契約を行っているライセンス数824からなる。利用ライセンス数テーブル83は、ライセンスを識別するためのライセンスID821、ユーザーのデータアクセス範囲を示すユーザータイプID822、テナント内で利用しているライセンス数824からなる。
図6、図7、図8で説明した各データ構造に格納されるデータの処理詳細については後述する。
以下、本発明の各サービスにおける処理フローについてシーケンスおよびフローチャートを用いて説明する。なお、本願のフローチャートは、1台の情報処理装置(例えば、サーバー)、または、複数台の情報処理装置(例えば、複数のサーバー)のCPU21が関連するプログラムを読み込んで実行することにより実現される。また、本願では、1台の情報処理装置(例えば、サーバー)が本願の処理を行っても、複数台の情報処理装置(例えば、複数のサーバー)が本願の処理を行っても良い。これらのシステムを本願ではサーバーシステムと呼称する。
図9はクライアント12のWebブラウザからサービス15に対してWebリクエストを行った場合の基本シーケンスである。なお、以後、クライアント12のWebブラウザでの制御をクライアント12の制御として説明する。
シーケンスS9.1において、クライアント12は、サービス15のWebサーバー51に対してWebリクエストを実行する。Webサーバー51は、フィルタリングアプリケーションであるアクセス制御エージェント53に対して、Webリクエストを通知する(シーケンスS9.2)。
シーケンスS9.3において、アクセス制御エージェント53は、アクセス制御サービス14のアクセス制御エージェントI/F41を介してアクセス制御部43にて認証確認を行う。このとき、Webリクエストに含まれている認証トークンをアクセス制御エージェントI/F41を介してアクセス制御部43に通知する。アクセス制御部43は、通知された認証トークンが認証トークンキャッシュ63に格納されているかを検証する。シーケンスS9.3では初回アクセスであるため、通知された認証トークンは認証トークンキャッシュ63に格納されていない。そのため、認証されていないと判断しアクセス制御エージェントI/F41を介してアクセス制御エージェント53に、ログインサービス13に遷移するよう応答する。
シーケンスS9.4において、アクセス制御エージェント53は、クライアント12をログインサービス13のログインアプリケーション32にリダイレクトさせる。シーケンスS9.5において、ログインアプリケーション32はログイン画面を生成し、クライアント12に提示する。
シーケンスS9.6において、クライアント12はユーザーからのログイン指示を受けて、その際入力されたユーザー情報をログインアプリケーション32にログイン通知する。ここで、ユーザー情報としては、ユーザーを識別するためのユーザーID、および秘匿情報であるパスワードが通知される。
ログイン通知を受けたログインアプリケーション32は、シーケンスS9.7にて、アクセス制御エージェント33および、アクセス制御エージェントI/F41を介して、アクセス制御部43に対して認証リクエストを行う。
認証リクエストを受けたアクセス制御部43は認証リクエストに含まれるユーザーID,パスワードの正当であるか検証する。その際、アクセス制御部43はシーケンスS9.8にて、DBドライバ部44を介してデータベースサービス16のユーザーテーブル60に格納されているユーザーID601、パスワード602情報と比較検証する。なお、秘匿情報であるパスワード602は、例えば、非可逆なハッシュ関数を適用し、秘匿化されて格納されていることが好ましい。その場合は、通知された認証リクエストのパスワード情報をパスワード602に格納する際に適用した関数で秘匿化し、比較することで検証が行われる。
シーケンスS9.8において、アクセス制御部43は、検証の結果、ユーザー情報が正当である場合は認証トークンを生成し、認証トークンキャッシュ63に格納する。その際、DBドライバ部44を介して、ユーザーロールテーブル61からユーザーIDをキーとして、ロールID612を全て取得し、ユーザーIDと共に格納する。そして、アクセス制御部43は、シーケンスS9.9にて、アクセス制御エージェントI/F41を介してアクセス制御エージェント33に生成した認証トークンを通知する。
シーケンスS9.10において、アクセス制御エージェント33は、受け付けた認証トークンを付与して、クライアント12を、シーケンスS9.1にてリクエストされたWebサーバー51にリダイレクトさせる。そして、シーケンスS9.11において、Webサーバー51はシーケンスS9.2と同様にアクセス制御エージェント53にリクエストを通知する。
シーケンスS9.12において、アクセス制御エージェント53は、アクセス制御サービス14のアクセス制御エージェントI/F41を介してアクセス制御部43にて認証確認を行う。このとき、Webリクエストに含まれている認証トークンをアクセス制御エージェントI/F41を介してアクセス制御部43に通知する。アクセス制御部43は、通知された認証トークンが認証トークンキャッシュ63に格納されているかを検証する。シーケンスS9.12では通知された認証トークンは認証トークンキャッシュ63に格納さされている。そのため、認証されていると判断し、リソースアクセス可否確認を行う。リソースアクセス可否確認の処理詳細については後述する。次に、アクセス制御部43は、リソースアクセスを許可と判断した場合は、DBドライバ部44を介してユーザーテーブル60からユーザー情報を取得する。そして、取得したユーザー情報をアクセス制御エージェントI/F41を介してアクセス制御エージェント53に通知する。
シーケンスS9.13において、アクセス制御エージェント53は、Webアプリケーション52に対してWebリクエストおよび、ユーザー情報を通知する。ユーザー情報の通知を受けたWebアプリケーション52は、不図示の業務用の画面を生成し、シーケンスS9.14にてクライアント12に提示する。そして、クライアント12は、ユーザーからの画面操作を受けて、シーケンスS9.16にてWebサーバー51に対して操作したことを示すWebリクエストを通知する。
シーケンスS9.17、シーケンスS9.18、およびシーケンスS9.19は、それぞれ、シーケンスS9.11、シーケンスS9.12、およびシーケンスS9.13と同様の処理であるため、説明を省く。
次に、シーケンスS9.15におけるユーザーの操作に伴って、アクセス制御サービス14のアクセス制御サービスAPI42のAPIが実行されるケースとして説明する。
シーケンスS9.20において、Webアプリケーション52は、アクセス制御サービスI/F54を介してアクセス制御サービスAPI42のAPIを呼び出す。その際、APIの引数として認証トークンを通知する。
シーケンスS9.21において、アクセス制御サービスAPI42はAPI実行権限の確認を行う。API実行権限の確認処理詳細については後述する。API実行が許可された場合、アクセス制御サービスAPI42はAPIの実行内容に従ってアクセス制御部43に対してデータ取得をリクエストする(シーケンスS9.22)。その際、認証トークンを通知する。
シーケンスS9.23において、アクセス制御部43はデータアクセスの可否の確認処理を行う(シーケンスS9.23)。データアクセスの可否の確認処理詳細については後述する。データアクセスが許可された場合、アクセス制御部43はDBドライバ部44を介してデータを取得し、シーケンスS9.24においてアクセス制御サービスAPI42へ通知する。
シーケンスS9.25において、アクセス制御サービスAPI42は、取得したデータをもとにAPI応答を生成し、アクセス制御サービスI/F54を介してWebアプリケーション52に通知する。
シーケンスS9.26において、Webアプリケーション52はAPI応答に従った画面を生成し、クライアント12に提示する。
上記、図9を用いて説明した基本シーケンスによって、ユーザーの認証および、ユーザーのアクセス権制御処理を実行する。
図10(A)は、図9を用いて説明した基本シーケンスにおける、アクセス制御サービス14におけるアクセス制御処理フローである。
以下、図9におけるシーケンスS9.20のアクセス制御サービスAPI42へのAPI呼び出しにおいて、ステップS1001が実行されるフローを説明する。
アクセス制御サービスAPI42は、ステップS1001にてAPI呼び出しを受けると、ステップS1002にて通知された認証トークンの有効性を確認する。より具体的には、アクセス制御サービスAPI42は、アクセス制御部43に対して、通知された認証トークンが認証トークンキャッシュ63に格納されているかを確認する。そして、認証トークンが無効であると判断された場合(認証トークンが格納されていない場合)、ステップS1003にて認証トークンが無効であるため、APIが実行できない旨を応答する。認証トークンが有効である場合、ステップS1004にて、アクセス制御サービスAPI42は、アクセス制御部43を介して認証トークンをキーにユーザーIDを取得する。続けて、アクセス制御サービスAPI42は、ユーザーテーブル60、テナントテーブル80よりユーザー情報、テナント情報を取得する。
次に、ステップS1005において、アクセス制御サービスAPI42は、DBドライバ部44を介してAPI権限テーブルから呼び出されたAPIのファンクションIDをキーに情報を取得する。アクセス制御サービスAPI42は、ステップS1004にて取得したユーザー情報およびテナント情報とステップS1005にて取得したAPI権限情報を比較し、APIが実行できるかの判定を行う(ステップS1006)。なお、この判定については後述する。
ステップS1006の判定の結果、API実行が拒否された場合、ステップS1007にて、アクセス制御サービスAPI42はAPI実行を拒否し、ステップS1008にて認可エラーとして応答する。判定の結果API実行が許可された場合は、アクセス制御サービスAPI42はAPI実行を許可し、ステップS1009にてAPIを実行する。
ステップS1010において、アクセス制御サービスAPI42は、API実行内容にリソースアクセスを含まない場合は、ステップS1011にてAPIの実行結果を生成して応答する。API実行内容にリソースアクセスが含まれる場合は、アクセス制御サービスAPI42は、ステップS1012において、アクセス制御部43に対してリソースアクセス可否確認を行う。ここでリソースとしては、データベースサービス16に格納されている情報であるデータリソースや、サービス15が提供するWebアプリケーションのURLリソースである。アクセス制御部43におけるリソースアクセス可否確認の処理は後述する。
ステップS1013において、アクセス制御サービスAPI42は、アクセス制御部43におけるリソースアクセス可否確認の結果が拒否だった場合は、ステップS1008にて認可エラーとして応答する。アクセス制御サービスAPI42は、アクセス制御部43におけるリソースアクセス可否確認の結果が許可だった場合は、取得したリソース情報をもとにAPIの実行結果を生成して応答する。
以下、図10(B)により、図9におけるシーケンスS9.12、シーケンスS9.18、シーケンスS9.22におけるアクセス制御部43へのアクセス権限確認においてステップS1021が実行されるフローを説明する。また、ステップS1021は、図10(A)におけるステップS1011のリソースアクセス可否確認においても実行される。
シーケンスS9.12、シーケンスS9.18では、URLリソースに対するリソースアクセス可否確認として、また、シーケンスS9.22では、データリソースに対するリソースアクセス可否確認として、ステップS1021が実行される。
ステップS1021において、アクセス制御部43は、リソースアクセス可否確認のリクエストを受け付ける。この際、リソースアクセスを実行するユーザーの認可トークン、対象のリソースカテゴリ、保護アイテム情報、および保護アイテムに対するアクションを取得する。ここで、保護アイテム情報とは、リソースカテゴリがURLリソースである場合はURL、データリソースである場合は、ユーザータイプIDおよび取得条件となる。また、アクションは、保護アイテムに対するCRUD(Create, Read, Update, Delete)から選択される。
ステップS1022において、アクセス制御部43は受け付けた認証トークンが認証トークンキャッシュ63に格納されているかを確認し、有効性を検証する。検証の結果、無効であった場合はステップS1023にて認証トークンが無効である旨を通知する。検証の結果、認証トークンが有効であった場合は、ステップS1024にてユーザーID632およびロールID配列633を取得する。
ステップS1025において、アクセス制御部43は、リソースアクセス可否確認のリクエストに含まれるリソースカテゴリを特定し、URLリソースであった場合はステップS1026へ、データリソースだった場合はステップS1027で、各処理を実行する。
ステップS1026、ステップS1027ではアクセス制御部43は、リソースカテゴリID、保護アイテム情報をキーとしてリソーステーブル71および、リソースロールテーブル72よりリソースに紐づいた全てのロールIDおよび権限を取得する。
ステップS1028において、アクセス制御部43は、取得したロールIDおよび権限と、リクエストで受け付けた認証トークンに紐づくロールIDおよび、アクションを比較する。そして、ステップS1029において、アクセス制御部43は比較検証の結果、アクセス権限がない場合、つまりアクセス拒否の場合、ステップS1030にてアクセス拒否通知を行う。アクセス制御部43は比較検証の結果、アクセス権限がある場合、つまりアクセス許可の場合、ステップS1031にて対象のリソースを取得する。たとえば、リソースカテゴリがデータリソースであった場合は、指定の取得範囲を条件として、DBドライバ部44を介してデータを取得する。この際、必ず許可されたユーザータイプIDの範囲で取得データ範囲を絞り込まれる。結果、権限を保持していない他のテナントのデータを取得する事を防ぐことができる。
ステップS1032において、アクセス制御部43は取得したリソースおよび、アクセス許可を通知する。
なお、図10(B)の処理が、図10(A)のステップS1011のリソースアクセス可否確認において実行された場合、図10(B)の処理に続いて図10(A)のS1013が実行される。
以下、図10(C)により、図10(A)のステップS1006で行われるAPI実行判定フローを説明する。
判定が開始されると、ステップS1006において、アクセス制御サービスAPI42は、図8のAPI権限テーブル81から対象APIの実行可能なロール情報を取得し、API実行者に紐付いているロールと比較する。
認証トークンを通知したAPIの実行者に対象APIを実行可能なロールが紐付いていなかった場合、アクセス制御サービスAPI42は、ステップS1041にて実行権限なしと判断し、ステップS1042にてAPI実行拒否を返す。
認証トークンを通知したAPIの実行者に対象APIを実行可能なロールが紐付いていた場合、アクセス制御サービスAPI42は、ステップS1043にて実行者と対象APIのテナントを比較する。この比較が、第1判定処理に相当する。
実行者と対象APIが同じテナントであった場合、アクセス制御サービスAPI42は、ステップS1044にて処理を許可し、ステップS1045にて処理可能を返す。実行者と対象APIのテナントが異なっていた場合、アクセス制御サービスAPI42は、ステップS1046にて対象APIの定義より対象APIがテナントを越えて実行できるAPIか判定する。具体的には、図8のAPI権限テーブル81における対象APIのエレベーションの内容により、S1046が実行される。この判定が、第2判定処理に相当する。
対象APIが他テナントに対して実行できないAPIであった場合、ステップS1047にて実行権限なしと判断し、ステップS1042にてAPI実行拒否を返す。他テナントに対して実行可能なAPIであった場合、ステップS1048にて、対象APIの定義、実行者のテナントカテゴリと対象APIのテナントカテゴリ(図8の813−814)とを比較する。この比較が、第3判定処理に相当する。
対象APIの定義において、実行者のテナントカテゴリが、処理対象テナントに対して処理できないテナントカテゴリであった場合、ステップS1049にて実行権限なしと判断し、ステップS1042にて実行拒否を返す。実行者のテナントカテゴリが処理対象のテナントカテゴリに対して処理が可能であった場合、ステップS1050にて、実行者に対象テナントに対する処理権限を付与し、ステップS1045にて処理可能を返す。
上記、図9の基本シーケンスおよび、図10(A)〜(C)のアクセス制御フローにより、マルチテナントシステムにおいて、異なるテナントのデータに対して処理を実行することが出来る。その際、API毎の制御と、テナントカテゴリによる制御を行うことで、他テナントへの処理を、処理実行者に対して複雑な設定等をすることなく、詳細な制御を行うことができる。
次に、図6、図7、図8で説明した各データ構造をもつテーブルに対して、データ例として図11、図12、図13を例示する。そして、サービス15に展開されるサービスを図14として例示し、具体的な業務フローとしてアクセス制御フローを図15、図16を用いて説明する。ここで説明するデータやサービスは一例であり、本発明の内容が説明した内容に制限されるものではない。
また、本例ではテナントを越えて処理を実行するために、全てのテナントのデータにアクセス可能なスーパーユーザーを定義して利用する方法を説明している。この方法についても、本発明の内容が制限されるものではない。例えば、全てのテナントのデータにアクセス可能なロールを定義し、そのロールを実行者に一時的に紐づける方法や、処理対象テナントのデータリソースにアクセス可能なロールを実行者に一時的に紐づける方法など、他の方法で実現してもよい。
図11において、111は、ユーザーテーブル60のデータ例である。次に、112はユーザーロールテーブル61のデータ例である。
図12において、121はロールカテゴリの定義例である。本例では、データ管理権限を示す管理ロール、ユーザーとの利用契約を示す製品ロール、そして、データに対するアクセス範囲を示すテナントロールが定義されている。
図12において、123はリソースカテゴリの定義例である。本例では、Webアクセスする対象としてのURLリソース、データベースサービス16で管理されているデータを示すデータリソースが定義されている。
図12において、122はロールテーブルのデータ例である。次に124はリソースロールテーブルのデータ例である。そして、125はリソーステーブルのデータ例である。
図13において、131はテナントカテゴリの定義例である。本例では、サービスの運用を行う運用者が所属する運用テナント、ユーザーとの利用契約を行う販売者が所属する販売テナント、利用者である顧客テナント、および、ユーザー本人である自身というカテゴリが定義されている。
図13において、132はテナントテーブルのデータ例である。次に133はAPI権限テーブルのデータ例である。本データ例では、以下のAPIを例示している。新たなテナントを作成するCreateTenant。他テナントに対して提供したサービス名、および発行したライセンス数を取得するGetLicenseInfo。および、テナント内で利用されているライセンス数をカウントするCountLicenseというAPIを例示している。なお、API権限テーブルでは、操作テナントカテゴリID、***作テナントカテゴリID、エレベーション可否がファンクションIDとを対応付けて管理している。
図13において、134はライセンステーブルのデータ例である。また、135は契約ライセンス数テーブルのデータ例であり、136は利用ライセンス数テーブルのデータ例である。
図14は、サービス15が、Webアプリケーション例として、ユーザーやユーザーのロール設定、およびテナント情報を管理するためのWebアプリケーション(管理サービスとする)を提供したときの画面フロー例である。
1401は、ログインサービス13で生成されるログイン画面の例である。ユーザーが図中のユーザーIDおよびパスワードを入力して、ログインボタンを押下し、ログイン成功およびアクセスが許可されるとメニュー画面1402に遷移する。本例では、ユーザーテーブルのデータ例111に登録されているSalesUser01というユーザーでログインしたとする。
1402は、管理サービスのメニュー画面の例である。ユーザーが図中のテナント管理リンクを押下しアクセスが許可されると、テナント検索画面1402に遷移する。
1403は、管理サービスのテナント検索画面の例である。ユーザーが図中のテナントIDに検索項目を入力し検索ボタンを押下し、CountLicense APIの実行権限が許可されると、指定したテナントで利用されているライセンス数のカウントが実行され、検索結果画面1404に遷移する。ここで、検索項目としては「TA00000003」を指定したとする。
1404は、管理サービスのテナント管理画面の例である。ここでは、TA00000003が契約しているサービス名と契約数、そしてテナント内で利用されているライセンス数が表示される。
図15は、図14の画面フローに従ってユーザーが操作した場合のシーケンスである。
シーケンスS15.1において、クライアント12はサービス15のメニュー画面1402へWebリクエストを行う。サービス15はアクセス制御エージェントI/F41に対して認証確認を行う。ここで認証確認フローは図9、シーケンスS9.3にて説明済みであるため省略する。
シーケンスS15.3において、サービス15は、クライアント12をログインサービス13にリダイレクトさせる。そして、シーケンスS15.4において、ログインサービス13はログイン画面1401を提示する。
シーケンスS15.5において、ユーザーはユーザーID:SalesUser01としてログイン操作を行う。ログイン操作を受けたログインサービス13はアクセス制御エージェントI/F41に対して認証処理を依頼する。
シーケンスS15.6における認証処理については、図9、シーケンスS9.7にて説明済みであるため省略する。ここで、認証成功した場合、アクセス制御部43では、認証トークンキャッシュ63に、生成した認証トークンのID、ユーザーID:SalesUser01および、ロールIDを格納する。ここで、ロールIDとしてはユーザーロールテーブルのデータ例112に基づいて、ログインユーザーの「Sales、TA00000002」が格納される。
認証を受けたログインサービス13は、認証トークンを付与してシーケンスS15.7にて、クライアント12をサービス15のメニュー画面1402へリダイレクトさせる。
シーケンスS15.8において、サービス15はアクセス制御エージェントI/F41を介してアクセス制御部43に対して認証確認、アクセス権限確認、およびユーザー情報取得を行う。
アクセス制御部43では、認証トークンキャッシュ63に認証トークンが格納されているかを確認し、格納されている場合は、ユーザーIDおよびロールID配列を取得する。今回は格納されているため、ユーザーID:SalesUser01、ロールID配列「Sales、TA00000002」が取得される。
次に、アクセス制御部43では、図10(B)におけるステップS1021が実行される。このとき、対象のリソースとして「http:xxx.com/menu/xxx.html」が渡されるとする。これは、例えば、ユーザーが上記アドレスをブラウザに入力することにより実現される。このリソースはリソーステーブルのデータ例125のリソースID:R00000001に格納されているデータと一致する。そして、リソースID:R00000001は、リソースロールテーブルのデータ例124にて、ロールID:Salesに割り当てられている。アクセス制御部43は図10におけるステップS1028にて、ロールID:Salesが、認証トークンキャッシュ63から取得したロールID配列に含まれるかを確認する。今回のデータ例ではロールID配列に含まれているため、アクセス制御部43は、アクセス許可としてユーザーテーブルのデータ例111から情報を取得し、サービス15に通知する。シーケンスS15.9にてサービス15はクライアント12にメニュー画面1402を提示する。
次に、メニュー画面1402にてユーザーがテナント管理リンクを押下した場合のシーケンスを説明する。
シーケンスS15.10において、テナント管理が選択されると、サービス15はシーケンスS15.11にてアクセス制御エージェントI/F41を介して、アクセス制御部43に認証確認、アクセス権限確認、ユーザー情報取得を依頼する。
アクセス制御部43では、認証トークンキャッシュ63に認証トークンが格納されているかを確認し、格納されている場合は、ユーザーIDおよびロールID配列を取得する。今回は格納されているため、ユーザーID:SalesUser01、ロールID配列「Sales、TA00000002」が取得される。
次に、アクセス制御部43では、図10(B)におけるステップS1021が実行される。このとき、対象のリソースとして「http:xxx.com/tenant/xxx.html」が渡されるとする。このリソースはリソーステーブルのデータ例125のリソースID:R00000002に格納されているデータと一致する。そして、リソースID:R0000002は、リソースロールテーブルのデータ例124にて、ロールID:Salesに割り当てられている。アクセス制御部43は図10におけるステップS1028にて、ロールID:Salesが、認証トークンキャッシュ63から取得したロールID配列に含まれるかを確認する。今回のデータ例ではロールID配列に含まれているため、アクセス制御部43は、アクセス許可としてユーザーテーブルのデータ例111から情報を取得し、サービス15に通知する。シーケンスS15.12にてサービス15はクライアント12にテナント検索画面1403を提示する。
次に、テナント検索画面1403にてユーザーが検索項目としてテナントID「TA00000003」を入力し、検索ボタンを押下した場合のシーケンスを説明する。
シーケンスS15.13において、テナント検索が実行されると、サービス15はシーケンスS15.14にてアクセス制御エージェントI/F41を介して、アクセス制御部43にライセンス情報取得を依頼する。
アクセス制御部43では、認証トークンキャッシュ63に認証トークンが格納されているかを確認し、格納されている場合は、ユーザーIDおよびロールID配列を取得する。今回は格納されているため、ユーザーID:SalesUser01、ロールID配列「Sales、TA00000002」が取得される。次に、アクセス制御部43では、図10(B)におけるステップS1021が実行される。このとき、図13のテナントテーブル132を参照することにより対象のリソースとして「TY00000002」が渡される。このリソースはリソーステーブルのデータ例125のリソースID:R00000004に格納されているデータと一致する。そして、リソースID:R0000004は、リソースロールテーブルのデータ例124にて、ロールID:TA00000002に割り当てられている。アクセス制御部43は図10におけるステップS1028にて、ロールID:TA00000002が、認証トークンキャッシュ63から取得したロールID配列に含まれるかを確認する。今回のデータ例ではロールID配列に含まれているため、アクセス制御部43は、アクセス許可と判断する。
その後、アクセス制御部43は、契約ライセンス数テーブルのデータ例135から、契約テナントIDが、渡されたテナントID:TA00000003と一致する情報を取得し、サービス15に通知する。具体的には、ライセンスID:TL00000001、ライセンス数:10本、および、ライセンスID:TL00000002、ライセンス数:20本がサービス15に渡される。
ライセンス情報の通知を受けたサービス15は、シーケンスS15.15にて、アクセス制御サービスAPI42に対して、CountLicense APIを実行する。この際、サービス15は、認証トークンとライセンス数取得対象テナントのテナントID、ライセンスIDを通知する。
シーケンスS15.16において、アクセス制御サービスAPI42は、図10(A)におけるステップS1001を実行する。このとき、対象のAPIとしてCountLicenseが渡されるとする。アクセス制御サービスAPI42は、認証トークンを検証し、ユーザーIDおよびロールID配列を取得する。次に、図10(A)におけるステップS1005が実行され、API権限テーブルのデータ例133からファンクションID:CountLicenseが取得される。
アクセス制御サービスAPI42では、ステップS1006において、API権限テーブルから取得したデータより、APIの実行権限の判断を行う。図13のAPI権限テーブル133において、CountLicense APIはロールID:Provider、Salesに対して実行を許可している。ここで、認証トークンキャッシュ63から取得した実行者のロール配列にロールID:Salseが含まれているので、ステップS1041にて、実行権限ありと判定される。
実行権限ありと判断された後、ステップS1043にて、アクセス制御サービスAPI42は、実行者テナントと対象テナントの確認を行う。渡された対象テナントID(TA00000003)により、テナントテーブル132から利用ライセンス数テーブルのユーザータイプID:TY00000003がデータ取得範囲となる。ここで、実行者のテナントID(TA00000002)と異なる他テナント(TA00000003)への処理であるので、ステップS1044にて、アクセス制御サービスAPI42は、異なるテナントに対する処理と判断する。
他テナントへの処理と判断された後、ステップS1046にて、アクセス制御サービスAPI42は、対象APIについてテナントを越えた処理が許可されているかを確認する。今回の対象APIであるCountLicense APIは、図13のAPI権限テーブル133においてエレベーション可否が「Allow」となっており、テナントを越えての実行が許可されている。そのため、ステップS1047にて、アクセス制御サービスAPI42は、テナント越え出来ると判断する。
対象APIがテナントを越えての実行が可能と判断された後、ステップS1048にてアクセス制御サービスAPI42は、実行者のテナントカテゴリと処理対象テナントカテゴリを、API権限テーブル133に定義されているテナントカテゴリと比較する。具体的に説明すると、テナントテーブル132にて、実行者のテナントTA00000002には「SalesTenant」と定義され、処理対象テナントTA00000003には「CustomerTenant」と定義されている。ここで対象APIであるCountLicense APIは、API権限テーブル133において操作テナントカテゴリ「SalesTenant」に対して***作テナントカテゴリ「CustomerTenant」が定義されている。そのため、ステップS1049にて、アクセス制御サービスAPI42は、処理可能と判断する。
テナントカテゴリにより処理可能と判断された後、ステップS1050にて、アクセス制御API42はユーザーテーブル111に定義されているSuperUserでシステムにログインし、認証トークンを発行する。そして、以降のシーケンスはSalesUser01が実行するが、ここで発行されたSuperUserの認証トークンを利用する。
シーケンスS15.17において、アクセス制御サービスAPI42は、図10におけるステップS1010にて、データリソースへのアクセスとしてアクセス制御部43にリソースアクセス可否確認依頼を実行する。その際、SuperUserの認証トークンおよび、データ取得範囲として、ユーザーテーブルに対する「TA00000003」を通知する。
シーケンスS15.18において、アクセス制御部43では、認証トークンキャッシュ63に認証トークンが格納されているかを確認し、格納されている場合は、ユーザーIDおよびロールID配列を取得する。今回は格納されているため、ユーザーID:SalesUser01、ロールID配列「SuperUser」が取得される。
次に、アクセス制御部43では、図10(B)におけるステップS1021が実行される。このとき、対象のリソースとして「TA00000003」が渡される。アクセス制御部43において、保護アイテムは、ユーザーテーブルデータ例111に登録されているTY00000003となる。このリソースはリソーステーブルのデータ例125のリソースID:R00000005に格納されているデータと一致する。そして、リソースID:R00000005は、リソースロールテーブルのデータ例124にて、ロールID:TA00000003に割り当てられている。アクセス制御部43は図10におけるステップS1028にて、ロールID:TA00000003が取得したロールID配列に含まれるかを確認する。今回のデータ例ではロールID配列に含まれていないが、ロールID:SuperUserが含まれている。データ例111より、SuperUserのユーザータイプが「*」であるため、アクセス制御部43は、TY00000003の範囲でアクセスを許可する。これにより、利用ライセンス数テーブル136から、ユーザータイプID:TY00000003のライセンスIDとライセンス数を取得し、シーケンスS15.19にてアクセス制御サービスAPI42に通知する。なお利用ライセンス数のカウントは、テナント内の全てのユーザーに対して、指定したライセンスが紐付いているかの確認を行い、紐付いているユーザー数をカウントする方法などでも実施できる。
シーケンスS15.20において、アクセス制御サービスAPI42は、CountLicense APIの応答として、取得した現在使用されているライセンス数をサービス15に応答する。
シーケンスS15.21において、サービス15は取得したテナント情報からテナント検索結果画面1404を生成してクライアント12に提示する。
上記、図15のシーケンスおよび、図10のアクセス制御フローにより、API実行者に複雑な設定をすることなく、マルチテナントサービスにおいて、異なるテナントのデータに対して処理を実行することが出来る。もし本例において運用者が顧客テナントに対しての処理を要求したとしても、データ例133においてProviderTenantはCustomerTenantへの操作が許されていないため、図10(C)のステップS1048にて処理が拒否される。また、API単位でエレベーションの許可・不許可を設定することで必要以上の情報の取得等を防ぐことができる。
次に、本発明を実施するための第2の形態について図面を用いて説明する。
第1の実施例においては、API毎に他テナントへの処理の可否を定義し、同時に操作者と操作対象のテナントカテゴリを定義して、他テナントに対する処理を制御している。本実施例では、テナント作成時に発行される情報を利用することで、第1の実施例において、他テナントに対する処理をさらに細かく制御する方法を説明する。なお、本実施例においては、第1の実施例と同一部分に関する説明は省略し、その差異についてのみ説明する。
図16は第2の実施例における、ユーザー情報のデータ構造である。ユーザーテーブル60およびユーザーロールテーブル61からなり、データ601から604、および611、612は図6と同様であり、ユーザーテーブル60において、マスターフラグ1601が新たに定義されている。マスターフラグ1601は、テナントのマスターユーザーを表すフラグである。マスターユーザーとはテナントのマスター管理者として定義され、テナントに1人のみ定義され、テナントが削除されるまで削除されることのないユーザーとする。
以下、第2の実施形態における、テナント作成時のフローおよびAPI実行時の権限判定について、フローチャートを用いて説明する。
図17は、第2の実施形態における、サービス15が、Webアプリケーション例として、ユーザーやユーザーのロール設定、およびテナント情報を管理するためのWebアプリケーション(管理サービスとする)をサービスしたときの画面フロー例である。
1401および1402は、前述の図14のフローと同様である。
1701は、管理サービスのテナント検索画面の例である。ユーザーが図中のテナントIDおよび、マスター管理者IDに検索項目を入力し検索ボタンを押下すると、第1の実施形態と同様に、CountLicense APIの実行権限を確認する。CountLicense APIの実行権限が許可されると、指定したテナントで利用されているライセンス数のカウントが実行され、1702の検索結果画面に遷移する。
1702は、管理サービスのテナント管理画面の例である。ここでは、TA00000003が契約しているサービスとその契約数、そしてテナント内で利用されているライセンス数が表示される。
図18は、図10(A)のステップS1005において、テナント作成APIが実行された際の処理フローである。ここで、ユーザーテーブル111に定義されているSalesUser01がテナントを作成した場合を例に説明を行う。
ステップS1005にて対象となるAPIがテナント作成APIであった場合、ステップS1801にて、アクセス制御サービスAPI142は、実行者が持つロールIDを確認し、API実行許可判定を行う。SalesUser01はロールID:Salesを持っているため、CreateTenant APIの実行が許可される。
ステップS1801にてAPIの実行が許可されなかった場合、ステップS1802にて実行が拒否され、ステップS1803にて実行エラーが応答される。API実行が許可された場合、アクセス制御サービスAPI142は、ステップS1804にてAPI実行者のテナントカテゴリを取得する。SalesUser01はテナントID:TA00000001のユーザーであり、テナントテーブル132からテナントカテゴリID:SalesTenantと判断される。
その後ステップS1805にて、アクセス制御サービスAPI142は、API権限テーブル133に定義されているCreateTenant APIの操作テナントカテゴリIDおよび***作テナントカテゴリIDを確認する。そして、、アクセス制御サービスAPI142は作成するテナントカテゴリを判定する。API権限テーブル133にて、テナントカテゴリ:SalesTenantのユーザーはCustomerTenantを作成可能と定義されているので、作成されるテナントカテゴリはCustomerTenantと判断される。
作成するテナントのテナントカテゴリ判定の結果、作成可能なテナントが存在しなかった場合は、ステップS1806にて作成不可と判定され、ステップS1803にて実行エラーを返す。作成可能なテナントが存在した場合は、ステップS1806にて作成可能と判定され、アクセス制御サービスAPI142は、ステップS1807にてテナントIDを作成する。今回は新たなテナントIDとして「TA00000004」を作成したとする。
テナントIDが作成されると、ステップS1808にて、アクセス制御サービスAPI142は、作成されたテナントIDに従ってテナントを作成し、ステップS1809にてユーザータイプIDを作成する。今回はユーザータイプIDとして「TY00000004」を作成したとする。こうしてアクセス制御サービスAPI142は、作成されたテナントID:TA00000004、ユーザータイプID:TY00000004、テナントカテゴリID:CustomerTenantをテナントテーブル132に登録する。
テナントが作成され、テナントテーブルへと登録されると、ステップS1810にて、アクセス制御サービスAPI142は、テナントのマスター管理者となるテナントのマスターユーザーを作成する。今回はマスターユーザーとして「CustomerAdmin02」を作成したとする。こうして作成されたマスターユーザーID:CustomerAdmin、パスワード、ユーザータイプID:TY00000004、テナントID:TA00000004をユーザーテーブル111に登録する。
その後ステップS1811にて、アクセス制御サービスAPI142は、作成したマスターユーザーにクラウドサービスを利用するための管理ロールおよびテナントロールを付与する。今回は、CustomerAdmin02に管理ロールとして「CustomerAdmin、Customer」を、テナントロールとして「TA00000004」を付与する。
マスターユーザーにロールを付与すると、ステップS1812として処理結果を応答し、処理を終了する。
以上のフローにより、テナント作成時にテナントのマスター管理者が作成される。
図19は、第2の実施形態における、API実行時の権限判定フローである。
ステップS1006、およびステップS1041からステップS1049は図10(C)と同じフローである。
第2の実施形態では、他テナントのデータに対して処理を行う際に、対象となるテナントのテナントIDと合わせて、テナントのマスター管理者IDが要求される。
ステップS1049にてテナントを越えた処理が可能と判断された後に、ステップS1901にて、アクセス制御サービスAPI142は、実行者が指定したマスター管理者IDが、対象となるテナントのマスター管理者か否かを確認する。つまり、実行者が指定したマスター管理者IDが、新たなテナントに設定されたマスター管理者IDの設定内容と同一か判定される。
マスター管理者IDが正しくなかった場合は、ステップS1902にて他テナントのデータへのアクセスを拒否し、ステップS1042にて実行を拒否する。マスター管理者IDが正しかった場合は、ステップS1902にて処理を許可し、ステップS1050にて対象テナントに対する処理権限の付与を行う。
これにより、他テナントのデータにアクセス可能なユーザーを、そのテナントのマスター管理者IDを知っているユーザーに制限することが出来る。
本実施例では、契約時にマスターテナントIDが作成されるため、テナント作成者以外が、テナントを越えてそのテナントにアクセスすることを防げる。これにより、例えば複数の販売者が存在していた場合、いたずらに顧客テナントのデータにアクセスすることを防ぐことができる。また、すでにサービスを利用しており、テナントがある顧客と契約を行った場合、その顧客からマスター管理者IDを通知してもらうことで、新たに契約した販売者もその顧客テナントのデータにアクセスすることが出来るようになる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
10 WAN
11 LAN
12 クライアント
13 ログインサービス
14 アクセス制御サービス
15 サービス
16 データベースサービス

Claims (9)

  1. マルチテナントサービスを提供するサーバーシステムであって、
    機能の実行を指示した実行者が所属するテナントと前記機能による処理対象のテナントが同一か否かを判定する第1判定手段と、
    前記第1判定手段により同一であると判定された場合、前記実行者に前記機能の実行を許可する許可手段と、
    前記第1判定手段により同一でないと判定された場合、前記機能が、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても処理可能であるか否かを判定する第2判定手段と、
    前記第2判定手段により、前記機能が、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても処理可能であると判定された場合、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であるかを判定する第3判定手段とを有し、
    前記第3判定手段により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定された場合、前記許可手段は、前記実行者に処理対象テナントに対して前記機能の実行権限を許可することを特徴とするサーバーシステム。
  2. 新たなテナントの作成時に前記新たなテナントに対してマスター管理者を設定する設定手段と、
    前記第3判定手段により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定され、かつ、前記実行者が指定した前記新たなテナントのテナントIDとマスター管理者IDの組み合わせが正しいかを、前記設定手段の設定内容に基づいて確認する確認手段を更に有し、
    前記第3判定手段により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定され、かつ、前記確認手段により正しいと判定された場合、前記許可手段は、前記実行者に前記機能の実行権限を許可することを特徴とする請求項1に記載のサーバーシステム。
  3. 前記機能について、前記機能の実行者のテナントと、前記処理対象のテナントと、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても前記機能の処理を許可するか否かを示す情報とが対応づけられた権限情報を記憶する記憶手段を更に有し、
    前記第3判定手段は、前記権限情報を用いて前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であるかを判定することを特徴とする請求項1または2に記載のサーバーシステム。
  4. マルチテナントサービスを提供するサーバーシステムにおいて実行される制御方法であって、
    機能の実行を指示した実行者が所属するテナントと前記機能による処理対象のテナントが同一か否かを判定する第1判定工程と、
    前記第1判定工程により同一であると判定された場合、前記実行者に前記機能の実行を許可する許可工程と、
    前記第1判定工程により同一でないと判定された場合、前記機能が、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても処理可能であるか否かを判定する第2判定工程と、
    前記第2判定工程により、前記機能が、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても処理可能であると判定された場合、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であるかを判定する第3判定工程とを有し、
    前記第3判定工程により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定された場合、前記許可工程は、前記実行者に処理対象テナントに対して前記機能の実行権限を許可することを特徴とする制御方法。
  5. 新たなテナントの作成時に前記新たなテナントに対してマスター管理者を設定する設定工程と、
    前記第3判定工程により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定され、かつ、前記実行者が指定した前記新たなテナントのテナントIDとマスター管理者IDの組み合わせが正しいかを、前記設定工程の設定内容に基づいて確認する確認工程を更に有し、
    前記第3判定工程により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定され、かつ、前記確認工程により正しいと判定された場合、前記許可工程は、前記実行者に前記機能の実行権限を許可することを特徴とする請求項4に記載の制御方法。
  6. 前記機能について、前記機能の実行者のテナントと、前記処理対象のテナントと、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても前記機能の処理を許可するか否かを示す情報とが対応づけられた権限情報を記憶する記憶工程を更に有し、
    前記第3判定工程は、前記権限情報を用いて前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であるかを判定することを特徴とする請求項4または5に記載の制御方法。
  7. マルチテナントサービスを提供するサーバーシステムにおいて実行されるプログラムであって、
    機能の実行を指示した実行者が所属するテナントと前記機能による処理対象のテナントが同一か否かを判定する第1判定工程と、
    前記第1判定工程により同一であると判定された場合、前記実行者に前記機能の実行を許可する許可工程と、
    前記第1判定工程により同一でないと判定された場合、前記機能が、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても処理可能であるか否かを判定する第2判定工程と、
    前記第2判定工程により、前記機能が、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても処理可能であると判定された場合、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であるかを判定する第3判定工程とを有し、
    前記第3判定工程により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定された場合、前記許可工程は、前記実行者に処理対象テナントに対して前記機能の実行権限を許可することを特徴とするコンピュータが読み取り可能なプログラム。
  8. 新たなテナントの作成時に前記新たなテナントに対してマスター管理者を設定する設定工程と、
    前記第3判定工程により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定され、かつ、前記実行者が指定した前記新たなテナントのテナントIDとマスター管理者IDの組み合わせが正しいかを、前記設定工程の設定内容に基づいて確認する確認工程を更に有し、
    前記第3判定工程により、前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であると判定され、かつ、前記確認工程により正しいと判定された場合、前記許可工程は、前記実行者に前記機能の実行権限を許可することを特徴とする請求項7に記載のプログラム。
  9. 前記機能について、前記機能の実行者のテナントと、前記処理対象のテナントと、前記実行者が所属するテナントと前記機能による処理対象のテナントが同一でない場合であっても前記機能の処理を許可するか否かを示す情報とが対応づけられた権限情報を記憶する記憶工程を更に有し、
    前記第3判定工程は、前記権限情報を用いて前記実行者が所属するテナントと前記処理対象のテナントとの関係が、前記機能の実行を許可する関係であるかを判定することを特徴とする請求項7または8に記載のプログラム。
JP2012122916A 2011-06-29 2012-05-30 サーバーシステムおよび制御方法およびプログラム Active JP5930847B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012122916A JP5930847B2 (ja) 2011-06-29 2012-05-30 サーバーシステムおよび制御方法およびプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011144654 2011-06-29
JP2011144654 2011-06-29
JP2012122916A JP5930847B2 (ja) 2011-06-29 2012-05-30 サーバーシステムおよび制御方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2013033449A JP2013033449A (ja) 2013-02-14
JP5930847B2 true JP5930847B2 (ja) 2016-06-08

Family

ID=47392137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012122916A Active JP5930847B2 (ja) 2011-06-29 2012-05-30 サーバーシステムおよび制御方法およびプログラム

Country Status (2)

Country Link
US (1) US8904549B2 (ja)
JP (1) JP5930847B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10306080B2 (en) 2016-10-19 2019-05-28 Ricoh Company, Ltd. Information processing system, information processing apparatus, and program
US10803161B2 (en) 2017-03-15 2020-10-13 Ricoh Company, Ltd. Information processing system, information processing method, and information processing apparatus

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8732004B1 (en) 2004-09-22 2014-05-20 Experian Information Solutions, Inc. Automated analysis of data to generate prospect notifications based on trigger events
US9690820B1 (en) 2007-09-27 2017-06-27 Experian Information Solutions, Inc. Database system for triggering event notifications based on updates to database records
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US20100174638A1 (en) 2009-01-06 2010-07-08 ConsumerInfo.com Report existence monitoring
US9558519B1 (en) 2011-04-29 2017-01-31 Consumerinfo.Com, Inc. Exposing reporting cycle information
US9106691B1 (en) 2011-09-16 2015-08-11 Consumerinfo.Com, Inc. Systems and methods of identity protection and management
US8738516B1 (en) 2011-10-13 2014-05-27 Consumerinfo.Com, Inc. Debt services candidate locator
US9853959B1 (en) 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US9654541B1 (en) 2012-11-12 2017-05-16 Consumerinfo.Com, Inc. Aggregating user web browsing data
US9916621B1 (en) 2012-11-30 2018-03-13 Consumerinfo.Com, Inc. Presentation of credit score factors
WO2014128476A2 (en) * 2013-02-22 2014-08-28 Paul Simmonds Methods, apparatus and computer programs for entity authentication
US9406085B1 (en) 2013-03-14 2016-08-02 Consumerinfo.Com, Inc. System and methods for credit dispute processing, resolution, and reporting
US10102570B1 (en) 2013-03-14 2018-10-16 Consumerinfo.Com, Inc. Account vulnerability alerts
JP6103069B2 (ja) * 2013-09-26 2017-03-29 富士通株式会社 アプリデータ記憶領域生成方法,アプリデータ記憶領域生成装置,及びアプリデータ記憶領域生成プログラム
US9648125B2 (en) * 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9641640B2 (en) * 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
US9736159B2 (en) * 2013-11-11 2017-08-15 Amazon Technologies, Inc. Identity pool bridging for managed directory services
US9477737B1 (en) 2013-11-20 2016-10-25 Consumerinfo.Com, Inc. Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules
CN105900059B (zh) 2014-01-21 2019-06-07 甲骨文国际公司 用于在应用服务器、云或其它环境中支持多租户的***和方法
US9436813B2 (en) * 2014-02-03 2016-09-06 Ca, Inc. Multi-tenancy support for a product that does not support multi-tenancy
US10462210B2 (en) * 2014-02-13 2019-10-29 Oracle International Corporation Techniques for automated installation, packing, and configuration of cloud storage services
US9578009B2 (en) 2014-06-23 2017-02-21 Oracle International Corporation System and method for supporting security in a multitenant application server environment
US9721117B2 (en) 2014-09-19 2017-08-01 Oracle International Corporation Shared identity management (IDM) integration in a multi-tenant computing environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
CN106716360B (zh) 2014-09-24 2020-03-03 甲骨文国际公司 支持多租户应用服务器环境中的补丁修补的***和方法
US9641503B2 (en) 2014-10-03 2017-05-02 Amazon Technologies, Inc. Using credentials stored in different directories to access a common endpoint
US9112849B1 (en) * 2014-12-31 2015-08-18 Spotify Ab Methods and systems for dynamic creation of hotspots for media control
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
JP6576109B2 (ja) * 2015-06-09 2019-09-18 キヤノン株式会社 基板とその基板を有する画像形成装置
US10523646B2 (en) 2015-08-24 2019-12-31 Virtru Corporation Methods and systems for distributing encrypted cryptographic data
US11410230B1 (en) 2015-11-17 2022-08-09 Consumerinfo.Com, Inc. Realtime access and control of secure regulated data
US10757154B1 (en) 2015-11-24 2020-08-25 Experian Information Solutions, Inc. Real-time event-based notification system
US10038694B1 (en) * 2016-03-30 2018-07-31 EMC IP Holding Company LLC System and method for security mode-based authorization for data management operations in a multi-tenant protection storage system
US10404702B1 (en) * 2016-03-30 2019-09-03 EMC IP Holding Company LLC System and method for tenant network identity-based authentication and authorization for administrative access in a protection storage system
US20170318143A1 (en) * 2016-04-27 2017-11-02 Global Tel*Link Corp. Monitoring and preventing communications between inmates
KR102041941B1 (ko) 2016-05-11 2019-11-07 오라클 인터내셔날 코포레이션 멀티-테넌트 아이덴티티 및 데이터 보안 관리 클라우드 서비스
CN108289080B (zh) * 2017-01-09 2021-02-05 阿里巴巴集团控股有限公司 一种访问文件***的方法、装置和***
CN112055849B (zh) * 2018-04-19 2024-01-16 村田机械株式会社 排他控制***以及排他控制方法
US10977380B2 (en) 2018-05-25 2021-04-13 Uptake Technologies, Inc. Hybrid role and attribute based access control system
US10671749B2 (en) * 2018-09-05 2020-06-02 Consumerinfo.Com, Inc. Authenticated access and aggregation database platform
US11140166B2 (en) * 2018-10-15 2021-10-05 Uptake Technologies, Inc. Multi-tenant authorization
JP7139898B2 (ja) * 2018-11-08 2022-09-21 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US11315179B1 (en) 2018-11-16 2022-04-26 Consumerinfo.Com, Inc. Methods and apparatuses for customized card recommendations
JP7170550B2 (ja) * 2019-01-28 2022-11-14 キヤノン株式会社 管理装置およびその制御方法
US11531777B2 (en) * 2019-01-30 2022-12-20 Virtru Corporation Methods and systems for restricting data access based on properties of at least one of a process and a machine executing the process
US11238656B1 (en) 2019-02-22 2022-02-01 Consumerinfo.Com, Inc. System and method for an augmented reality experience via an artificial intelligence bot
CN109918876A (zh) * 2019-03-18 2019-06-21 京东方科技集团股份有限公司 权限过滤方法和权限过滤装置
JP7354620B2 (ja) * 2019-06-28 2023-10-03 株式会社リコー サービスシステム、情報登録方法
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
JP7456217B2 (ja) 2020-03-18 2024-03-27 株式会社リコー 情報処理システム、ユーザー作成方法
JP2021157562A (ja) * 2020-03-27 2021-10-07 日鉄ソリューションズ株式会社 情報処理装置、情報処理方法、及びプログラム
US11570170B2 (en) * 2020-09-21 2023-01-31 Slack Technologies, Llc Embedding group-based communication system content
JP7468284B2 (ja) 2020-10-05 2024-04-16 富士通株式会社 情報処理装置、配信制御プログラム、及び、情報処理システム
CN115883394A (zh) * 2021-09-30 2023-03-31 华为技术有限公司 一种管理服务的通信方法和装置
CN116361845A (zh) * 2021-12-27 2023-06-30 华为技术有限公司 访问对象的鉴权方法、装置及***

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9402935D0 (en) * 1994-02-16 1994-04-06 British Telecomm A method for controlling access to a database
US6134549A (en) * 1995-03-31 2000-10-17 Showcase Corporation Client/server computer system having personalizable and securable views of database data
JP4567469B2 (ja) * 2005-01-07 2010-10-20 富士通株式会社 ネットワークに於ける情報共有システム
US6587854B1 (en) * 1998-10-05 2003-07-01 Oracle Corporation Virtually partitioning user data in a database system
JP2002342561A (ja) * 2001-05-14 2002-11-29 Knowledge Soft Corp ネットワークを利用したビジネスデータ処理装置
JP2003044520A (ja) * 2001-07-27 2003-02-14 Fujitsu Ltd 設計資産情報検索システム
JP2004310356A (ja) * 2003-04-04 2004-11-04 Seiko Epson Corp Aspサービス提供システム及びそのアクセス方法、情報処理サービス提供システム及びその提供方法
KR100536897B1 (ko) * 2003-07-22 2005-12-16 삼성전자주식회사 배선기판의 연결 구조 및 연결 방법
WO2007030796A2 (en) * 2005-09-09 2007-03-15 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US8782047B2 (en) * 2009-10-30 2014-07-15 Hitachi Data Systems Corporation Fixed content storage within a partitioned content platform using namespaces
US8010991B2 (en) * 2007-01-29 2011-08-30 Cisco Technology, Inc. Policy resolution in an entitlement management system
JP2009146350A (ja) * 2007-12-18 2009-07-02 Mitsubishi Electric Corp サービス管理装置及びデータアクセス制御装置及びデータ検索方法
US8972978B2 (en) * 2008-05-02 2015-03-03 Skytap Multitenant hosted virtual machine infrastructure
US8478782B1 (en) * 2008-05-08 2013-07-02 Salesforce.Com, Inc. System, method and computer program product for sharing tenant information utilizing a multi-tenant on-demand database service
US8291490B1 (en) * 2008-06-30 2012-10-16 Emc Corporation Tenant life cycle management for a software as a service platform
JP5200721B2 (ja) * 2008-07-16 2013-06-05 富士通株式会社 制御方法、制御装置、及びプログラム
US9208188B2 (en) * 2009-02-17 2015-12-08 Microsoft Technology Licensing, Llc Tenant management of a hosted multi-tenant application
US20100325684A1 (en) * 2009-06-17 2010-12-23 Microsoft Corporation Role-based security for messaging administration and management
US8533161B2 (en) * 2009-10-30 2013-09-10 Hitachi Data Systems Corporation Fixed content storage within a partitioned content platform, with disposition service
US20110213789A1 (en) * 2010-02-26 2011-09-01 Salesforce.Com, Inc. System, method and computer program product for determining an amount of access to data, based on a role
JP5814639B2 (ja) * 2011-06-09 2015-11-17 キヤノン株式会社 クラウドシステム、クラウドサービスのライセンス管理方法、およびプログラム
US8595799B2 (en) * 2012-04-18 2013-11-26 Hewlett-Packard Development Company, L.P. Access authorization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10306080B2 (en) 2016-10-19 2019-05-28 Ricoh Company, Ltd. Information processing system, information processing apparatus, and program
US10803161B2 (en) 2017-03-15 2020-10-13 Ricoh Company, Ltd. Information processing system, information processing method, and information processing apparatus

Also Published As

Publication number Publication date
JP2013033449A (ja) 2013-02-14
US8904549B2 (en) 2014-12-02
US20130007891A1 (en) 2013-01-03

Similar Documents

Publication Publication Date Title
JP5930847B2 (ja) サーバーシステムおよび制御方法およびプログラム
JP5787640B2 (ja) 認証システムおよび認証方法およびプログラム
US10673866B2 (en) Cross-account role management
CN113239344B (zh) 一种访问权限控制方法和装置
CA2825153C (en) Strong rights management for computing application functionality
JP5789390B2 (ja) 業務情報防護装置および業務情報防護方法、並びにプログラム
US20230283644A1 (en) Dynamic security policy management
JP6140735B2 (ja) アクセス制御装置、アクセス制御方法、およびプログラム
CN101647219B (zh) 用于许可证的安全的主机更换的机制
US20120291089A1 (en) Method and system for cross-domain data security
US10911299B2 (en) Multiuser device staging
US11539707B2 (en) Dynamic security policy consolidation
CN114422197A (zh) 一种基于策略管理的权限访问控制方法及***
JP5952466B2 (ja) 業務情報防護装置および業務情報防護方法、並びにプログラム
US10257263B1 (en) Secure remote execution of infrastructure management
US11711360B2 (en) Expedited authorization and access management
US11411813B2 (en) Single user device staging
US11483355B1 (en) System and methods for agentless managed device identification as part of setting a security policy for a device
JP2018152091A (ja) 業務情報防護装置および業務情報防護方法、並びにプログラム
CN115270110B (zh) 一种账户巡检方法、装置、电子设备和存储介质
US20220255970A1 (en) Deploying And Maintaining A Trust Store To Dynamically Manage Web Browser Extensions On End User Computing Devices
JP2016173851A (ja) 業務情報防護装置および業務情報防護方法、並びにプログラム
Thakore et al. Scalable and Privacy-preserving Access Mechanism for Dynamic Clouds
JP2020095750A (ja) 業務情報防護装置および業務情報防護方法、並びにプログラム
CN118364489A (zh) 一种权限验证方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160426

R151 Written notification of patent or utility model registration

Ref document number: 5930847

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151