JP5120207B2 - Role-based access control method, program, and computer - Google Patents
Role-based access control method, program, and computer Download PDFInfo
- Publication number
- JP5120207B2 JP5120207B2 JP2008278591A JP2008278591A JP5120207B2 JP 5120207 B2 JP5120207 B2 JP 5120207B2 JP 2008278591 A JP2008278591 A JP 2008278591A JP 2008278591 A JP2008278591 A JP 2008278591A JP 5120207 B2 JP5120207 B2 JP 5120207B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- class
- authority
- function
- user
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
本技術は、オペレーティングシステム(Operating System:OS)上で生成されるプロセス内におけるロールベースアクセス制御(Role Based Access Control)技術に関する。 The present technology relates to a role-based access control technology in a process generated on an operating system (OS).
役割毎にアクセスを制御するRBACという考え方は、セキュリティの分野では一般的な考え方である。しかし、OSにRBACが実装されている場合、OSは通常1人のユーザによって実行される1つのアプリケーションを1つのプロセスとして認識し、プロセス毎に異なる権限を付与することはできるが、1つのプロセス内の各セッションについて異なる権限を付与することはできない。すなわち、アプリケーション側からはOSのRBAC基盤を利用することができない場合が多い。
OSのRBAC基盤を利用できないとなると、個別アプリケーション上でRBACを実装することになるが、当然ながら手間がかかり、その上完全性を確保することが難しいという問題がある。 When the RBAC base of the OS cannot be used, RBAC is mounted on an individual application. However, there is a problem that it takes time and effort and it is difficult to ensure completeness.
従って、本技術の目的は、アプリケーション上でRBACを実装する上で省力化すると共に問題の発生を抑制できるようにすることである。 Therefore, an object of the present technology is to save labor in mounting RBAC on an application and to suppress occurrence of problems.
本ロールベースアクセス制御方法は、データ項目及び機能の各々についてロール毎に許可された権限を規定した権限データにおいて規定されているデータ項目毎に生成されたデータ・クラスのオブジェクトの参照メソッド又は更新メソッドに対するメソッド呼出、又は権限データにおいて規定されている機能毎に生成された機能クラスのオブジェクトのメソッドに対するメソッド呼出を検出するステップと、ユーザからの要求に応じた、プロセス上の各セッション開始時に生成され且つセッション識別子と、ユーザのユーザ識別子及びユーザのロールとを含むユーザ識別情報を含むセッションオブジェクトのうち、メソッド呼出に含まれるセッション識別子に対応するセッションオブジェクトから、ユーザ識別情報を取得するステップと、検出されたメソッド呼出の対象オブジェクトから、データ項目又は機能のいずれかを表すクラスタイプ及びデータ項目名又は機能名を表すクラス識別名を取得するオブジェクトデータ取得ステップと、メソッド呼出に応じて実行されるメソッドによる処理が、権限データにおいてユーザ識別情報に含まれるロールとクラスタイプ及びクラス識別名とから特定される権限において正当であるか判断する正当性判断ステップと、正当であると判断された場合に、メソッド呼出を対象オブジェクトに出力するステップとを含む。 This role-based access control method is a method for referring to or updating an object of a data class generated for each data item defined in the authority data that defines the authority permitted for each role for each data item and function. This method is generated at the start of each session on the process in response to a request from the user and a step of detecting a method call to a method of an object of a function class generated for each function specified in the authority data. And acquiring the user identification information from the session object corresponding to the session identifier included in the method call among the session objects including the session identifier and the user identification information including the user identifier of the user and the user role; Object data acquisition step for acquiring a class type representing either a data item or a function and a class identification name representing a data item name or a function name from the method call target object, and a method executed in response to the method call When it is determined that the processing according to is legitimate in the authority data, the legitimacy determining step for determining whether the authority specified from the role, the class type, and the class identifier included in the user identification information is legitimate, Outputting a method call to the target object.
アプリケーション上でRBACを実装する上で省力化すると共に問題の発生を抑制できるようになる。 It is possible to save labor in mounting RBAC on the application and to suppress the occurrence of problems.
[実施の形態1]
1.アプリケーションプログラム作成時
図1に、本技術の実施の形態におけるプログラム生成システムの機能ブロック図を示す。本実施の形態におけるプログラム生成システムは、権限テーブル11と、権限テーブル11を用いて必要なクラスを自動生成するクラス自動生成器12と、クラス自動生成器12によって生成された複数の機能クラス131のデータを格納する機能クラス格納部13と、クラス自動生成器12によって生成された複数のデータクラス141のデータを格納するデータクラス格納部14とを有する。
[Embodiment 1]
1. FIG. 1 shows a functional block diagram of a program generation system according to an embodiment of the present technology. The program generation system according to the present embodiment includes an authority table 11, a class
図2に権限テーブル11の一例を示す。図2の例では、「顧客」、「監査役」、「マネージャ」、「ブローカ」といったロールに対して、「申請+個人情報」、「口座情報」、「申請」、「結果」、「注文」、「資金」、「取引情報」といったデータ項目と、「口座開設」、「口座解約」、「取引の注文」、「取引の実行」、「取引情報のチェック」といった機能とを含む資産の各々について、付与すべき場合には参照権r、更新権w又は実行権xが登録されている。このようなテーブルについては、これから開発するシステムの開発者が用意する。 FIG. 2 shows an example of the authority table 11. In the example of FIG. 2, “application + personal information”, “account information”, “application”, “result”, “order” are assigned to roles such as “customer”, “auditor”, “manager”, “broker”. ”,“ Fund ”,“ Transaction Information ”, and data items such as“ Open Account ”,“ Account Cancellation ”,“ Order of Transaction ”,“ Execute Transaction ”,“ Check Transaction Information ” For each, a reference right r, an update right w, or an execution right x is registered if it should be granted. Such a table is prepared by a developer of a system to be developed in the future.
次に、図3乃至図7を用いて、クラス自動生成器12の処理について説明する。まず、クラス自動生成器12は、機能クラス生成処理を実施する(図3:ステップS1)。この機能クラス生成処理については、図4及び図5を用いて説明する。
Next, processing of the
まず、クラス自動生成器12は、権限テーブル11における未処理の機能を1つ特定する(ステップS11)。機能については、実行権xが規定されるので、実行権xが規定されている機能のうち未処理の機能を1つ特定する。
First, the
そして、対応機能クラスを生成する(ステップS13)。この処理は、雛形の機能クラスのデータをクラス自動生成器12が有する例えば雛形格納部から読み出すものである。そして、この機能クラスにおいて、クラスタイプとクラス識別子を設定できるようにした自動生成部分を生成する(ステップS15)。その後、自動生成部分のタイプの値に「機能」を設定する(ステップS17)。さらに、自動生成部分のクラス識別名の値に、ステップS11で特定した機能の機能名を設定する(ステップS19)。そして、このようにして生成した機能クラスのデータを、機能クラス格納部13に格納する(ステップS21)。
Then, a corresponding function class is generated (step S13). In this process, the function class data of the model is read from, for example, the model storage unit of the
その後、全ての機能について処理したか判断し(ステップS23)、未処理の機能が存在する場合には、ステップS11に戻る。一方、全ての機能について処理した場合には処理を終了する。 Thereafter, it is determined whether all functions have been processed (step S23). If there are unprocessed functions, the process returns to step S11. On the other hand, if all functions have been processed, the process ends.
このような処理によって生成された機能クラスの構造の一例を図5に示す。機能クラス131は、自動生成部分とカスタマイズ部分とを含む。自動生成部分では、クラスタイプの値に「機能」が設定されており、クラス識別子の値には各機能の名前(例えば「口座開設」)が設定されている。カスタマイズ部分は、プログラマが自由にデータフィールドやメソッドの追加、実装を行う部分である。
An example of the structure of the function class generated by such processing is shown in FIG. The
機能クラス格納部13に格納されている全ての機能クラス131のカスタマイズ部分を、以下で述べるような方針にて実装すれば、権限テーブル11で規定されている機能に関してRBACに必要なクラスが漏れなく作成されることとなる。
If the customization part of all the
図3の処理の説明に戻って、クラス自動生成器12は、データクラス生成処理を実施する(ステップS3)。このデータクラス生成処理については、図6及び図7を用いて説明する。
Returning to the description of the processing in FIG. 3, the
まず、クラス自動生成器12は、権限テーブル11における未処理のデータ項目を1つ特定する(ステップS31)。データ項目については、参照権rや更新権wが規定されるので、参照権rや更新権wが規定されているデータ項目のうち未処理のデータ項目を1つ特定する。
First, the
そして、対応データクラスを生成する(ステップS33)。この処理は、雛形のデータクラスのデータをクラス自動生成器12が有する例えば雛形格納部から読み出すものである。そして、このデータクラスにおいて、処理に係るデータ項目のデータについての参照用メソッド及び更新用メソッドの宣言部分を含み、タイプとクラス識別子を設定できるようにした自動生成部分を生成する(ステップS35)。その後、自動生成部分のタイプの値に「データ」を設定する(ステップS37)。さらに、自動生成部分のクラス識別名の値に、ステップS31で特定したデータ項目のデータ項目名を設定する(ステップS39)。そして、このようにして生成したデータクラス141のデータを、データクラス格納部14に格納する(ステップS41)。
Then, a corresponding data class is generated (step S33). In this process, data of a template data class is read from, for example, a template storage unit included in the
その後、全てのデータ項目について処理したか判断し(ステップS43)、未処理のデータ項目が存在する場合には、ステップS31に戻る。一方、全てのデータ項目について処理した場合には処理を終了する。 Thereafter, it is determined whether all data items have been processed (step S43). If there is an unprocessed data item, the process returns to step S31. On the other hand, if all data items have been processed, the process ends.
このような処理によって生成されたデータクラス141の構造の一例を図7に示す。データクラス141は、自動生成部分を含む。自動生成部分では、クラスタイプの値に「データ」が設定されており、クラス識別子の値には各データ項目の名前(例えば「口座情報」)が設定されている。さらに、データクラス141の場合には、自動生成部分に、参照用メソッドの宣言部分と、更新用メソッドの宣言部分とを含む。この参照用メソッドの参照処理の具体的な内容と、更新用メソッドの更新処理の具体的な内容とが、カスタマイズ部分であって、プログラマが必要な処理内容の実装を行う部分である。
An example of the structure of the
このように、データクラス格納部14に格納されている全てのデータクラス141のカスタマイズ部分を、以下で述べるような方針にて実装すれば、権限テーブル11で規定されているデータ項目に関してRBACに必要なクラスが漏れなく作成されることとなる。
As described above, if the customization part of all the
以上のように機能クラス131及びデータクラス141を、権限テーブル11から自動的に生成し、開発者は、これら機能クラス131及びデータクラス141についてプログラミングを行って、アプリケーションの開発を行う。この際、機能クラス131及びデータクラス141において自動生成部分については変更を行わないようにする。上でも述べたように、機能クラス131のカスタマイズ部分については、データフィールドやメソッドを自由に規定することができる。さらに、データクラス141の参照用メソッドの具体的処理部分や更新用メソッドの具体的処理部分については、必要な処理内容を規定することができる。
As described above, the
機能クラス131のメソッドやアプリケーション中の他のクラスのメソッドについては、データクラス141に係るデータ項目に対するアクセスについて、データクラス141の参照用メソッド及び更新用メソッドのみを用いて行うように、プログラミングするものとする。
For the methods of the
すなわち、構築されるアプリケーションプログラム全体としては図8のような構造を有するものとする。機能クラス131及びデータクラス141以外のサーバアプリケーション100は、RBACの対象となる機能を実行する場合には機能クラス131a乃至131cのカスタマイズ部分におけるメソッドを呼び出す。機能クラス131a乃至131cのカスタマイズ部分におけるメソッドは、RBACの対象となるデータ項目を参照したり更新したりする場合には、データクラス141a乃至141cの該当するデータクラスにおける参照用メソッド又は更新用メソッドを呼び出すようにする。なお、図8には示していないが、サーバアプリケーション100において、RBACの対象となるデータ項目を参照したり更新する場合には、データクラス141a乃至141cの参照用メソッド又は更新用メソッドを呼び出すようにする。
That is, the entire application program to be constructed has a structure as shown in FIG. The
以上のように、クラス自動生成器12を用いてRBACの対象機能及びデータ項目について必要な機能クラス131及びデータクラス141を生成してから、上で述べた方針に従ってアプリケーションプログラムの開発を行うようにすれば、開発者側で特別にRBACについて判断したり追加で実装したりする必要がないため、開発者の手間が削減され、実装漏れも避けることができるようになる。
As described above, the
2.プログラム実行時
上で述べたように実装したアプリケーションプログラムを実行する際には、以下で詳細に述べる権限検査部を導入して、実際の実行時に権限検査を行うようにする。権限検査部は、上で述べたようなメソッド呼出を前提として権限テーブル11に従ったアクセスが行われているかを検査する共通のライブラリである。すなわち、権限検査部は個別のアプリケーションプログラムにカスタマイズするのではなく、どのアプリケーションプログラムにでも適用できるような形で実装されており、アプリケーションプログラムの開発者が個別に作成せずに済むようにする。このような権限検査部によって、開発者の負担を下げることができ、上で述べたようなメソッド呼出が保証されていれば、漏れなく実行時に権限検査が行われるようになる。
2. When executing an application program implemented as described above, an authority check unit described in detail below is introduced to perform an authority check during actual execution. The authority checking unit is a common library that checks whether access according to the authority table 11 is performed on the premise of the method call as described above. That is, the authority checking unit is not customized to an individual application program, but is implemented in a form that can be applied to any application program, so that the developer of the application program does not have to create it individually. By such an authority checking unit, the burden on the developer can be reduced, and if the method call as described above is guaranteed, the authority check is performed at the time of execution without omission.
実行時におけるシステム構成を図9に示す。インターネットやイントラネットなどのネットワークに、複数のユーザ端末1a及び1bと、本実施の形態における主要な処理を実施するサーバ3とが接続されている。サーバ3は、例えば通常のコンピュータであり、図21で述べるようなハードウエア構成を有する。そして、サーバ3は、OS31を実行しており、また、OS31上の1つのプロセス内で本実施の形態に係るオブジェクトなども実行している。すなわち、OS31にRBAC基盤が実装されていたとしても、それを用いることはできず、アプリケーション毎にRBACを用意する必要がある状態であるものとする。
The system configuration at the time of execution is shown in FIG. A plurality of user terminals 1a and 1b and a server 3 that performs main processing in the present embodiment are connected to a network such as the Internet or an intranet. The server 3 is, for example, a normal computer and has a hardware configuration as described in FIG. The server 3 executes the
また、本実施の形態に関係する構成要素としては、様々な処理を行うサーバアプリケーション100と、上で述べたように権限テーブル11から生成された機能クラス131のオブジェクト135と、同じように権限テーブル11から生成されたデータクラス141のオブジェクト145と、権限テーブル11を参照して本実施の形態における主要な処理を実施する権限検査部315と、権限検査部315からの指示に従って特定のメソッド呼出(具体的には、機能クラス131のメソッド呼出、データクラス141の参照用メソッド又は更新用メソッドのメソッド呼出)を捕捉して権限検査部315に出力するメソッド呼出捕捉部311とを含む。
In addition, as constituent elements related to the present embodiment, the
サーバアプリケーション100は、例えばユーザ端末1aからのアクセスに応じて認証処理を実施して当該ユーザのユーザ識別子及びロールを特定してユーザ識別子及びロールを含むユーザ識別情報を保持する、当該ユーザについてのセッションオブジェクトを生成するセッションオブジェクト生成部110を有している。セッションオブジェクト生成部110自体は従来から存在しているものである。セッションオブジェクト生成部110によって生成されたセッションオブジェクト313は、セッションIDで識別され、上で述べたようにユーザ識別情報を保持している。権限検査部315は、セッションIDで該当するセッションオブジェクト313を特定し、ユーザ識別情報を取得する。
For example, the
また、メソッド呼出捕捉部311は、上で述べたように、機能クラス131のメソッド呼出、データクラス141の参照用メソッド又は更新用メソッドのメソッド呼出を捕捉対象として指定され、指定に従って該当メソッド呼出を捕捉して、捕捉したメソッド呼出を権限検査部315に出力する。具体的には、メソッドの属するクラスのクラスタイプが「機能」について全てのメソッドが指定され、メソッドの属するクラスのクラスタイプが「データ」について参照用メソッド及び更新用メソッドが指定される。このような機能自体は周知であるので、これ以上述べない。
Further, as described above, the method
なお、図9では、権限検査部315が、カスタマイズルール317を参照するようになっているが、本実施の形態ではカスタマイズルール317については用いられない。第3の実施の形態で詳しく述べる。
In FIG. 9, the
次に、図9に示したシステムの動作を、図10及び図11を用いて説明する。まず、例えば認証処理時などのユーザ識別時にセッションオブジェクト生成部110は、ユーザ識別子(すなわちユーザID)及びロールを特定し、当該ユーザID及びロールを含むユーザ識別情報を含むセッションオブジェクト313を生成する(ステップS51)。
Next, the operation of the system shown in FIG. 9 will be described with reference to FIGS. First, for example, at the time of user identification such as during authentication processing, the session object generation unit 110 identifies a user identifier (that is, user ID) and role, and generates a
また、権限検査部315は、機能クラス131のメソッド呼出及びデータクラス141の参照用及び更新用メソッドのメソッド呼出の捕捉を、メソッド呼出捕捉部311に要求する(ステップS53)。メソッド呼出捕捉部311は、権限検査部315からの上記メソッド呼出捕捉要求を受信し、指定されたメソッド呼出を捕捉するように設定する(ステップS55)。設定はメインメモリなどの記憶装置に保持される。
Further, the
その後、アプリケーションプログラム100などによって、メソッド呼出が行われると(ステップS57)、メソッド呼出捕捉部311は、当該メソッド呼出がステップS55における設定に従ったものであるか確認し、設定に従ったものである場合には捕捉して、権限検査部315に出力する(ステップS59)。一方、メソッド呼出がステップS55における設定に従ったものではない場合、そのままメソッド呼出の宛先オブジェクトに出力される。
After that, when a method call is made by the
権限検査部315は、メソッド呼出捕捉部311から、捕捉を要求したメソッド呼出を受信すると(ステップS61)、呼出対象メソッドのオブジェクトから、クラス自動生成器12によって自動的に設定された自動生成項目(すなわちクラスタイプ及びクラス識別名。クラスタイプは既に分かっているので除外しても良い。また、他にも自動的に設定される項目が存在する場合にはその項目をも含む。)のデータを取得する(ステップS63)。自動生成項目データについては、メインメモリなどの記憶装置に保持される。
When receiving the method call that requested the capture from the method call capturing unit 311 (step S61), the
さらに、権限検査部315は、捕捉されたメソッド呼出に含まれるセッションIDから該当するセッションオブジェクト313を特定し、当該セッションオブジェクト313からユーザ識別情報(ユーザ識別子及びロール)を取得する(ステップS65)。ユーザ識別情報については、メインメモリなどの記憶装置に保持される。そして、処理は端子Aを介して図11の処理に移行する。
Further, the
図11の処理の説明に移行して、権限検査部315は、ステップS65の処理結果としてユーザ識別情報を取得できたか、すなわちユーザ識別が完了しているか確認する(ステップS67)。何らかの理由でユーザ識別情報が取得できない場合、すなわちユーザ識別が完了していない場合には、例外を発生させる(ステップS73)。
Shifting to the description of the processing in FIG. 11, the
一方、ユーザ識別情報を取得できた場合には、権限検査部315は、ユーザ識別情報に含まれているロールと、自動生成項目データに含まれるクラスタイプ及びクラス識別名とで、権限テーブル11を検索して、該当する権限を取得する(ステップS69)。
On the other hand, when the user identification information can be acquired, the
そして、権限検査部315は、該当する権限から、メソッド呼出から特定される要求処理が許可されているか、すなわち正当なアクセスであるか判断する(ステップS71)。例えば、機能クラス131のメソッドが呼び出された場合には、当該機能クラス131についてのメソッド実行が、権限テーブル11において許可されているか(図2の例では「x」マークが付されているか)判断する。
Then, the
例えば、クラスタイプが「機能」でクラス識別名が「口座開設」であってロールが「顧客」であれば、権限テーブル11(図2)では、実行を許可されているので、ロールが「顧客」であるユーザ識別情報が取得され、クラスタイプが「機能」でクラス識別名が「口座開設」である機能クラス131のメソッドが呼び出された場合には、正当なアクセスと判断される。一方、ロールが「ブローカ」であれば、許可されていないので正当なアクセスではないと判断される。
For example, if the class type is “function”, the class identifier is “account opening”, and the role is “customer”, the execution is permitted in the authority table 11 (FIG. 2). ”Is acquired, and when the method of the
また、データクラス141の参照用メソッド又は更新用メソッドが呼び出された場合には、当該データクラス141についての参照r又は更新wが許可されているか判断する。例えば、クラスタイプが「データ」でクラス識別名が「注文」であってロールが「顧客」であれば、権限テーブル11(図2)では、参照も更新も許可されているので、ロールが「顧客」であるユーザ識別情報が取得され、クラスタイプが「データ」でクラス識別名が「注文」であるデータクラス141の更新用メソッドが呼び出された場合には、正当なアクセスであると判断される。一方、ロールが「ブローカ」であれば、許可されていないので正当なアクセスではないと判断される。
When the reference method or update method of the
正当なアクセスではないと判断された場合には、権限検査部315は、例外を発生させる(ステップS73)。一方、正当なアクセスであると判断された場合には、メソッド呼出を呼出先オブジェクトに出力する(ステップS75)。呼出先オブジェクトである機能クラス131のオブジェクト135又はデータクラス141のオブジェクト145は、メソッド呼出を受信し、要求された処理を実施する(ステップS77)。すなわち、通常どおりの処理を実施する。
If it is determined that the access is not legitimate, the
以上のように、権限検査を行うべきメソッド呼出を、機能クラス131のいずれかのメソッドのメソッド呼出とデータクラス141の参照用又は更新用メソッドのメソッド呼出に限定するようなアプリケーション構成を採用しているため、予め用意した権限検査部315によって集中的に必要十分な権限検査を実施することができるようになっている。すなわち、開発者の手間を省き、漏れを無くすようにして、検証もシンプルに実施されるようになっている。
As described above, an application configuration is adopted in which the method call to be subjected to the authority check is limited to the method call of any method of the
[実施の形態2]
1.アプリケーションプログラム作成時
一般に、口座情報などの個人情報は、顧客というロールのユーザであれば誰の情報でも参照や更新しても良いわけではなく、本人、すなわち所有者のみが参照/更新できるようにすべきである。従って、本実施の形態では、図12に示すように、権限テーブル11において(O)マークの付されたデータ項目については、所有者のみが権限を有するように、第1の実施の形態を変形する。
[Embodiment 2]
1. When creating an application program In general, personal information such as account information may not be referred to or updated by anyone who has a role of customer, so that only the person himself, that is, the owner can refer / update it. Should. Therefore, in the present embodiment, as shown in FIG. 12, the first embodiment is modified so that only the owner has authority for the data item marked with (O) in the authority table 11. To do.
具体的には、データクラス生成処理(図6)のステップS35で、自動生成部分に、所有者フィールドを含むように生成する。すなわち、図13Aに示すように、データクラスの自動生成部分に、データにアクセス可能なロールについての所有者フィールドを設ける。これによって、このデータクラスのオブジェクトには、具体的に特定の所有者ユーザのユーザ識別子が登録される。 Specifically, in step S35 of the data class generation process (FIG. 6), the automatic generation portion is generated so as to include the owner field. That is, as shown in FIG. 13A, an owner field for a role that can access data is provided in the automatic generation part of the data class. As a result, the user identifier of the specific owner user is specifically registered in the object of this data class.
2.プログラム実行時
実行時において基本的なシステム構成は、第1の実施の形態についての図9に示したとおりである。
2. At the time of program execution The basic system configuration at the time of execution is as shown in FIG. 9 for the first embodiment.
そして、処理フローについても第1の実施の形態についての図10におけるステップS63において取得される自動生成項目データには、所有者フィールドのデータ、即ち所有者のユーザ識別子が含まれる。 Also for the processing flow, the automatically generated item data acquired in step S63 in FIG. 10 for the first embodiment includes the data of the owner field, that is, the user identifier of the owner.
また、図10の端子A以降の処理は、図13Bに示すような処理となる。権限検査部315は、ステップS65の処理結果としてユーザ識別情報を取得できたか、すなわちユーザ識別が完了しているか確認する(ステップS81)。何らかの理由でユーザ識別情報が取得できない場合、すなわちユーザ識別が完了していない場合には、例外を発生させる(ステップS89)。
Further, the processing after the terminal A in FIG. 10 is as shown in FIG. 13B. The
一方、ユーザ識別情報を取得できた場合には、権限検査部315は、ユーザ識別情報に含まれているロールと、自動生成項目データに含まれるクラスタイプ及びクラス識別名とで、権限テーブル11を検索して、該当する権限を取得する(ステップS83)。
On the other hand, when the user identification information can be acquired, the
さらに、権限検査部315は、該当権限において所有者限定が含まれている場合には、ユーザ識別情報に含まれるユーザIDと自動生成項目データに含まれる所有者のユーザ識別子とが一致するか確認する(ステップS85)。
Further, the
そして、権限検査部315は、該当する権限から、メソッド呼出から特定される要求処理が許可されているか、すなわち正当なアクセスであるか判断する(ステップS87)。具体的には、ステップS71と同様の判断を行って、機能クラス131のメソッドが呼び出された場合には、当該機能クラス131についてのメソッド実行が、権限テーブル11において許可されているかを判断し、さらに、データクラス141の参照用メソッド又は更新用メソッドが呼び出された場合には、当該データクラス141についての参照r又は更新wが許可されているか判断する。さらに加えて、ステップS87でユーザ識別情報に含まれるユーザIDと所有者のユーザ識別子とが一致するかを確認する。
Then, the
これらの一部でも問題があれば、権限検査部315は、例外を発生させる(ステップS89)。一方、全て問題なく、正当なアクセスである場合には、権限検査部315は、メソッド呼出を呼出先オブジェクトに出力する(ステップS91)。呼出先オブジェクトである機能クラス131のオブジェクト135又はデータクラス141のオブジェクト145は、メソッド呼出を受信し、要求された処理を実施する(ステップS93)。すなわち、通常どおりの処理を実施する。
If there is a problem with any of these, the
以上のような変形を加えることによって、所有者のみが可能となるアクセスなどについても権限検査部315において確認することができる。
By adding the above-described modification, the
[実施の形態3]
本実施の形態では、図2や図12で示したような権限テーブル11だけでは規定できないような細かいアクセス制御を行うものとする。この場合、権限テーブルだけでは対処できないので、図9に示したカスタマイズルール317を導入する。権限検査部315は、権限テーブル11を参照して、図14に示すような(R0)や(R1)といったカスタマイズルールが規定されているか確認する。
[Embodiment 3]
In this embodiment, it is assumed that fine access control that cannot be defined only by the authority table 11 as shown in FIGS. 2 and 12 is performed. In this case, since it cannot be dealt with only by the authority table, the
カスタマイズルールには、例えば、R0の場合、マネージャというロールは、口座開設や口座解約を行う際には顧客と同一人物であってはならないというルールであり、R1の場合には、ブローカというロールは、取引の注文や取引の実行について、事前に顧客に承認を受けた者でなければならないというルールである。 For example, in the case of R0, the role of manager should not be the same person as the customer when opening an account or canceling the account. In the case of R1, the role of broker is It is a rule that a customer must be approved in advance for ordering or executing a transaction.
権限検査部315は、データクラス141のオブジェクト145及び機能クラス131のオブジェクト135から、自動生成項目データだけではなく他のデータフィールドの値をも取得可能であるものとする。
It is assumed that the
口座開設という機能に設定されたR0のようなルールの場合には、図15に示すように、顧客IDフィールドというデータフィールドを、カスタマイズ部分に規定する。 In the case of a rule such as R0 set in the account opening function, a data field called a customer ID field is defined in the customization part as shown in FIG.
そして実行時には、この口座開設に係る機能クラス131のオブジェクトにおける顧客IDフィールドに、開設口座の顧客のユーザIDが設定される。これによって、権限検査部315は、ユーザ識別情報に含まれるユーザID(マネージャのユーザID)と、顧客IDフィールドのユーザIDとが一致するか判断できる。
At the time of execution, the user ID of the customer of the opening account is set in the customer ID field in the object of the
なお、口座開設に係る機能クラス131のオブジェクトにおける顧客IDフィールドには、事前にそのオブジェクト自身のメソッドや他の機能クラス131のオブジェクトのメソッドにより、開設口座の顧客のユーザIDを設定しておくものとする。
In the customer ID field of the
すなわち、本実施の形態では、機能クラス131のメソッドによる、自分自身を含む機能クラス131のメソッドのメソッド呼出については、権限検査部315の検査対象から外しておくものとする。具体的には、メソッド呼出捕捉部311で捕捉すべきメソッド呼出は、機能クラス131のメソッドのメソッド呼出とデータクラス141の参照用メソッド及び更新用メソッドのメソッド呼出であるが、ここでは、機能クラス131のメソッドのメソッド呼出の呼出元を、サーバアプリケーション100に限定する。
That is, in the present embodiment, the method call of the method of the
また、取引の注文という機能に設定されたR1のようなルールの場合には、図16に示すように、承認ブローカというデータフィールドを、カスタマイズ部分に規定する。 In the case of a rule such as R1 set in the function of ordering a transaction, a data field called an approval broker is defined in the customization part as shown in FIG.
そして実行時には、この取引の注文という機能クラス131のオブジェクトにおける承認ブローカに、承認済みのブローカのユーザIDが設定される。これによって、権限検査部315は、ユーザ識別情報に含まれるユーザID(ブローカのユーザID)と、承認ブローカフィールドのユーザIDとが一致するか判断できる。
Then, at the time of execution, the user ID of the approved broker is set in the approval broker in the object of the
次に、プログラム実行時の処理内容について説明する。なお、図10の処理フローについてはほぼ同じである。但し、上で述べたように、権限検査部315からメソッド呼出捕捉部311に設定される、捕捉すべきメソッド呼出は、機能クラス131のメソッドからのメソッド呼出を除外して、サーバアプリケーション100からのメソッド呼出に、当該メソッド呼出に含まれる呼出元データ等によって限定する。これによって、メソッド呼出捕捉部311は、設定に従ってメソッド呼出を捕捉する。
Next, processing contents during program execution will be described. Note that the processing flow of FIG. 10 is almost the same. However, as described above, the method call to be captured, which is set in the method
そして端子A以降の処理は、図17に示すような処理に置き換える。まず、権限検査部315は、ステップS65の処理結果としてユーザ識別情報を取得できたか、すなわちユーザ識別が完了しているか確認する(ステップS101)。何らかの理由でユーザ識別情報が取得できない場合、すなわちユーザ識別が完了していない場合には、例外を発生させる(ステップS113)。
The processing after the terminal A is replaced with processing as shown in FIG. First, the
一方、ユーザ識別情報を取得できた場合には、権限検査部315は、ユーザ識別情報に含まれているロールと、自動生成項目データに含まれるクラスタイプ及びクラス識別名とで、権限テーブル11を検索して、該当する権限を取得する(ステップS103)。
On the other hand, when the user identification information can be acquired, the
そして、権限検査部315は、取得した権限に、カスタマイズルールが設定されていることを示すデータが含まれるか判断する(ステップS105)。カスタマイズルールが設定されていることを示すデータが含まれない場合には、ステップS111に移行する。なお、ステップS111に移行する場合には、第1の実施の形態と同様の判断を行う。
Then, the
一方、カスタマイズルールが設定されていることを示すデータが含まれる場合には、権限検査部315は、カスタマイズルール317から、該当するカスタマイズルールを抽出すると共に、呼出先のオブジェクトから、カスタマイズルールについて判断する上で必要なデータを取得する(ステップS107)。例えば、上で述べたR0であれば、顧客IDフィールドから顧客のユーザIDを読み出す。また、R1であれば、承認ブローカフィールドから承認済みのブローカのユーザIDを読み出す。
On the other hand, when the data indicating that the customization rule is set is included, the
そして、権限検査部315は、ユーザ識別情報、自動生成項目のデータ及びオブジェクトから取得したデータから、今回のメソッド呼出が、該当するカスタマイズルールに従っているか判断する(ステップS109)。上でも述べたように、R0であれば、ユーザ識別情報に含まれるユーザIDと、オブジェクトから取得したユーザIDとが一致している場合には、カスタマイズルールに反することになる。また、R1であれば、ユーザ識別情報に含まれるユーザIDと、オブジェクトから取得したユーザIDとが一致している場合には、カスタマイズルールに従っていることとなる。
Then, the
このようにして得られたデータから、今回のメソッド呼出が正当なアクセスであるかを判断し(ステップS111)、正当と判断されない場合には、権限検査部315は、例外を発生させる(ステップS113)。一方、正当なアクセスである場合には、権限検査部315は、メソッド呼出を呼出先オブジェクトに出力する(ステップS115)。呼出先オブジェクトである機能クラス131のオブジェクト135又はデータクラス141のオブジェクト145は、メソッド呼出を受信し、要求された処理を実施する(ステップS117)。すなわち、通常どおりの処理を実施する。
From the data thus obtained, it is determined whether or not the current method call is a legitimate access (step S111). If it is not determined to be legitimate, the
このように、カスタマイズルール317を権限検査部315の外に規定して、以上のような処理を権限検査部315が実施することによって、さまざまな権限確認を行うことができるようになる。なお、カスタマイズルール317ではなく、カスタマイズルールについて権限検査を行うような処理部を権限検査部315外に設けるようにしても良い。その際には、この場合、カスタマイズルールが規定されていることを検出すると、権限検査部315が、その処理部を起動して、その処理部が権限検査部315に対して必要なデータを取得するように要求する。そして、その処理部は、権限検査部315から得られたデータから、カスタマイズルールに従っているのかを判断する。
As described above, by defining the
[その他の実施の形態]
これまでは権限テーブル11については、予め開発者が用意することを前提にした説明であったが、現在開発においてよく用いられているUML(Unified Modeling Language)におけるユースケース図を利用して、当該ユースケース図から自動的に権限テーブル11を生成するようにしても良い。これによって開発に必要な書類から自動的に生成できるようにすることによって、余分な作業を削減でき、権限設定の見逃しを少なくすることができる。さらに、ユースケース図は、直感的に描くことができるので、権限テーブルという形式よりは、用意しやすい。
[Other embodiments]
Until now, the authority table 11 has been described on the premise that the developer prepares in advance. However, using the use case diagram in UML (Unified Modeling Language), which is often used in development, The authority table 11 may be automatically generated from the use case diagram. This enables automatic generation from the documents required for development, thereby reducing extra work and reducing oversight of authority settings. In addition, use case diagrams can be drawn intuitively, so they are easier to prepare than the authority table format.
例えば、開発者は、図18に示すような拡張ユースケース図を用意する。通常であれば、中央のシステム内に、必要な機能が楕円で列挙され、当該機能に関連するアクタが線で結ばれる。本例では、口座開設(Open Account)、口座解約(Close Account)、取引の注文(Receive Trade Order)、取引の実行(Perform Trade)、取引情報のチェック(Check Trade Info)が機能として定義されている。なお、<<A>>は、必ず提供すべき機能であることを表している。また、顧客(Customer)、監査役(Auditor)、マネージャ(Manager)、ブローカ(Broker)がアクタとして規定されている。顧客は、口座開設、口座解約、取引の注文、取引の実行といった機能に関連しており、監査役は、取引情報のチェックという機能に関連しており、マネージャは口座開設及び口座解約という機能に関連し、ブローカは取引の注文及び取引の実行という機能に関連している。 For example, the developer prepares an extended use case diagram as shown in FIG. Usually, in the central system, necessary functions are listed as ellipses, and actors related to the functions are connected by lines. In this example, account opening (Open Account), account cancellation (Close Account), trade order (Receive Trade Order), trade execution (Perform Trade), trade information check (Check Trade Info) are defined as functions. Yes. Note that << A >> represents a function that must be provided. In addition, customers, auditors, managers, and brokers are defined as actors. The customer is related to functions such as opening an account, closing an account, ordering a transaction, executing a transaction, the auditor is related to the function of checking transaction information, and the manager is responsible for the function of opening an account and closing the account. Relatedly, brokers are related to the functions of ordering trades and executing trades.
このような通常の記述に加えて、各関連に関係するデータ及びそのデータの参照・更新を表す矢印が追加で記述する必要がある。 In addition to such a normal description, it is necessary to additionally describe data related to each association and an arrow indicating reference / update of the data.
具体的には、申請+個人情報(Request+Personal Info)というデータ1001aが、顧客と口座開設との間に規定されており、参照更新権限を表す、アクタから機能への矢印1001bも規定されている。同様に、口座情報(Account Info)というデータ1002aが、顧客と口座開設との間に規定されており、参照権限を表す、機能からアクタへの矢印1002bも規定されている。
Specifically,
さらに、結果(Result)というデータ1003aが、顧客と口座解約との間に規定されており、参照権限を表す、機能からアクタへの矢印1003bも規定されている。同様に、申請(Rquest)というデータ1004aが、顧客と口座解約との間に規定されており、参照更新権限を表す、アクタから機能への矢印1004bも規定されている。
Furthermore,
また、注文(Order)というデータ1005aが、顧客と取引の注文との間に規定されており、参照更新権限を表す、アクタから機能への矢印1005bも規定されている。
Further,
さらに、資金(Money)というデータ1006aが、顧客と取引の実行との間に規定されており、参照更新権限を表す、アクタから機能への矢印1006bも規定されている。
Furthermore,
また、取引情報(Trade Info)というデータ1007aが、監査役と取引情報のチェックとの間に規定されており、参照権限を表す、機能からアクタへの矢印1007bも規定されている。
Further,
さらに、申請+個人情報(Request+Personal Info)というデータ1008aが、マネージャと口座開設との間に規定されており、参照権限を表す、機能からアクタへの矢印1008bも規定されている。また、口座情報(Account Info)というデータ1009aが、マネージャと口座開設との間に規定されており、参照更新権限を表す、アクタから機能への矢印1009bも規定されている。さらに、申請(Request)というデータ1010aが、マネージャと口座解約との間に規定されており、参照権限を表す、機能からアクタへの矢印1010bも規定されている。さらに、結果(Result)というデータ1011aは、マネージャと口座解約との間に規定されており、参照更新権限を表す、アクタから機能への矢印1011bも規定されている。
Further,
また、注文(Order)というデータ1012aが、ブローカと取引の注文との間に規定されており、参照権限を表す、機能からアクタへの矢印1012bも規定されている。また、資金(Money)というデータ1013aが、ブローカと取引の実行との間に規定されており、参照更新権限を表す、アクタから機能への矢印1013bも規定されている。
Further,
なお、データに含まれる<<C2>>は、漏れてはいけないデータであることを表し、<<I>>は、改ざん不可を表す。 Note that << C2 >> included in the data represents data that should not be leaked, and << I >> represents that tampering is not possible.
このようなデータを電子データとして用意した上で、以下のような処理を、権限テーブル生成プログラムに実行させる。 After preparing such data as electronic data, the authority table generation program is caused to execute the following processing.
具体的には、アクタと機能との接続を検出して、アクタに、接続されている機能に対する実行権限を付与するように設定する(図19:ステップS201)。これによって、図18の例では、顧客は4つの機能の実行権限を得て、監査役は1つの機能の実行権限を得て、マネージャは2つの機能の実行権限を得て、ブローカは2つの機能の実行権限を得ることになる。 Specifically, the connection between the actor and the function is detected, and the actor is set to be given execution authority for the connected function (FIG. 19: step S201). Thus, in the example of FIG. 18, the customer has the authority to execute four functions, the auditor has the authority to execute one function, the manager has the authority to execute two functions, and the broker has two functions. You will get the right to execute the function.
また、アクタと機能間にデータが存在している場合には、アクタから機能へのフロー(矢印)を検出して、アクタに、対象データに対する参照更新権限を付与するように設定する(ステップS203)。データ1001a、データ1004a、データ1005a、データ1006a、データ1009a、データ1011a、データ1013aについては、アクタから機能への矢印が設定されているので、参照更新権限がアクタに与えられるようになる。
If data exists between the actor and the function, the flow from the actor to the function (arrow) is detected, and the actor is set to be given reference update authority for the target data (step S203). ). For the
さらに、アクタと機能間にデータが存在している場合には、機能からアクタへのフロー(矢印)を検出して、アクタに、対象データに対する参照権限を付与するように設定する(ステップS205)。データ1002a、データ1003a、データ1007a、データ1008a、データ1010a、データ1012aについては、機能からアクタへの矢印が設定されているので、参照権限がアクタに与えられるようになる。
Further, when data exists between the actor and the function, a flow (arrow) from the function to the actor is detected, and the actor is set to be given reference authority for the target data (step S205). . For
さらに、データに<<C2>>プロパティが付与されている部分を検出し、対象アクタに、対象データに対する所有者のみの権限を付与するように設定する(ステップS207)。図18では全てのデータに<<C2>>プロパティが付与されているので、全てのデータが所有者のみの権限となる。 Further, a portion where the << C2 >> property is assigned to the data is detected, and setting is made so that only the owner's authority for the target data is given to the target actor (step S207). In FIG. 18, since the << C2 >> property is assigned to all data, all data has the authority of only the owner.
このような処理を実施することによって、図20のような権限テーブルが生成される。これは、ほぼ図12と同様であるから、これ以上の説明は省略する。 By executing such processing, an authority table as shown in FIG. 20 is generated. Since this is almost the same as FIG. 12, further explanation is omitted.
以上の処理を実施すれば、自動的に権限テーブル11を生成できるようになる。 If the above processing is performed, the authority table 11 can be automatically generated.
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、処理フローについては、処理結果が変わらない限りにおいて、ステップの順番を入れ替えたり、並列に実行するようにしても良い。 Although the embodiment of the present technology has been described above, the present technology is not limited to this. For example, as for the processing flow, as long as the processing result does not change, the order of the steps may be changed or may be executed in parallel.
さらに、1台のサーバで必要な機能を実現する例を示したが、複数台のサーバで、権限検査部315が動作できるような環境を整えれば、複数台のサーバが並列に又は連携して動作するような構成も採用可能である。
Further, an example in which a necessary function is realized by one server has been shown. However, if an environment in which the
なお、サーバやユーザ端末は、コンピュータ装置であって、図21に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
The server and user terminal are computer devices, and as shown in FIG. 21, a
本実施の形態をまとめると以下のようになる。 This embodiment is summarized as follows.
本ロールベースアクセス制御方法は、データ項目及び機能の各々についてロール毎に許可された権限を規定した権限データにおいて規定されているデータ項目毎に生成されたデータ・クラスのオブジェクトの参照メソッド又は更新メソッドに対するメソッド呼出、又は権限データにおいて規定されている機能毎に生成された機能クラスのオブジェクトのメソッドに対するメソッド呼出を検出するステップと、ユーザからの要求に応じた、プロセス上の各セッション開始時に生成され且つセッション識別子と、ユーザのユーザ識別子及びユーザのロールとを含むユーザ識別情報を含むセッションオブジェクトのうち、メソッド呼出に含まれるセッション識別子に対応するセッションオブジェクトから、ユーザ識別情報を取得するステップと、検出されたメソッド呼出の対象オブジェクトから、データ項目又は機能のいずれかを表すクラスタイプ及びデータ項目名又は機能名を表すクラス識別名を取得するオブジェクトデータ取得ステップと、メソッド呼出に応じて実行されるメソッドによる処理が、権限データにおいてユーザ識別情報に含まれるロールとクラスタイプ及びクラス識別名とから特定される権限において正当であるか判断する正当性判断ステップと、正当であると判断された場合に、メソッド呼出を対象オブジェクトに出力するステップとを含む。 This role-based access control method is a method for referring to or updating an object of a data class generated for each data item defined in the authority data that defines the authority permitted for each role for each data item and function. This method is generated at the start of each session on the process in response to a request from the user and a step of detecting a method call to a method of an object of a function class generated for each function specified in the authority data. And acquiring the user identification information from the session object corresponding to the session identifier included in the method call among the session objects including the session identifier and the user identification information including the user identifier of the user and the user role; Object data acquisition step for acquiring a class type representing either a data item or a function and a class identification name representing a data item name or a function name from the method call target object, and a method executed in response to the method call When it is determined that the processing according to is legitimate in the authority data, the legitimacy determining step for determining whether the authority specified from the role, the class type, and the class identifier included in the user identification information is legitimate, Outputting a method call to the target object.
このような処理を行うことによって、OSでは1つのユーザとして判断されてしまうようなプロセス上の各セッションについて、RBACを実現できる。また、権限データ(実施の形態における権限テーブル)に規定されているデータ項目及び機能について生成されている機能クラス及びデータクラスについてのメソッド呼出を捕捉して、権限データに従っているか判断するだけなので、当該捕捉したメソッド呼出から権限を確認する処理を共通化することができ、開発者が個々のアプリケーションについて実装する手間が省ける。 By performing such processing, RBAC can be realized for each session on the process that is judged as one user in the OS. In addition, since the method call for the function class and the data class generated for the data item and function defined in the authority data (the authority table in the embodiment) is captured, it is only determined whether the authority data is complied with. The process of confirming the authority from the captured method call can be made common, and the developer can save the trouble of implementing each application.
また、上で述べたオブジェクトデータ取得ステップが、検出されたメソッド呼出の対象オブジェクトがデータ・クラスのオブジェクトであって、対象オブジェクトが当該対象オブジェクトの所有者データを含む場合には、当該所有者データを取得するステップを含むようにしてもよい。そして、上で述べた正当性判断ステップが、権限データにおいてユーザ識別情報に含まれるロールとクラスタイプ及びクラス識別名とから特定される権限において所有者のみ可能な権限が含まれる場合、取得された所有者データが、ユーザ識別情報に含まれるユーザ識別子に一致するか判断するステップを含むようにしてもよい。 In the object data acquisition step described above, if the detected object of the method invocation is an object of the data class and the target object includes owner data of the target object, the owner data May be included. Then, the legitimacy determination step described above is acquired when the authority that can only be owned by the owner is included in the authority specified from the role, the class type, and the class identifier included in the user identification information in the authority data. A step of determining whether the owner data matches the user identifier included in the user identification information may be included.
これによって、所有者のみ参照できる又は更新できるようなデータ項目について、所有者であるか判断することができるようになる。 This makes it possible to determine whether or not the data item can be referred to or updated only by the owner.
さらに、上で述べた正当性判断ステップが、権限データにおいてユーザ識別情報に含まれるロールとクラスタイプ及びクラス識別名とから特定される権限について追加の制限ルールが規定されている場合、当該追加の制限ルールのデータを取得するステップと、追加の制限ルールのデータにおいて確認が必要であり且つ対象オブジェクトに規定されている追加規定データを取得するステップと、追加規定データが追加の制限ルールを満たしているか判断するステップとを含むようにしてもよい。このようにすれば、様々な権限データにカスタマイズルールを規定して、当該カスタマイズルールに従った処理のみが実行されるようになる。 Furthermore, when the above-described legitimacy determination step defines additional restriction rules for the authority specified from the role, class type, and class identification name included in the user identification information in the authority data, A step of obtaining restriction rule data, a step of obtaining additional restriction data that is required to be confirmed in the data of the additional restriction rule and defined in the target object, and the additional restriction data satisfies the additional restriction rule. A step of determining whether or not. In this way, customization rules are defined for various authority data, and only processing according to the customization rules is executed.
なお、本発明に係る方法をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。 A program for causing a computer to execute the method according to the present invention can be created, and the program is a computer-readable storage such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory, and a hard disk. Stored in a medium or storage device. Note that data being processed is temporarily stored in a storage device such as a computer memory.
(付記1)
データ項目及び機能の各々についてロール毎に許可された権限を規定した権限データにおいて規定されている前記データ項目毎に生成されたデータ・クラスのオブジェクトの参照メソッド又は更新メソッドに対するメソッド呼出、又は前記権限データにおいて規定されている前記機能毎に生成された機能クラスのオブジェクトのメソッドに対するメソッド呼出を検出するステップと、
ユーザからの要求に応じた、プロセス上の各セッション開始時に生成され且つセッション識別子と、前記ユーザのユーザ識別子及び前記ユーザのロールとを含むユーザ識別情報を含むセッションオブジェクトのうち、前記メソッド呼出に含まれるセッション識別子に対応するセッションオブジェクトから、前記ユーザ識別情報を取得するステップと、
検出された前記メソッド呼出の対象オブジェクトから、前記データ項目又は前記機能のいずれかを表すクラスタイプ及びデータ項目名又は機能名を表すクラス識別名を取得するオブジェクトデータ取得ステップと、
前記メソッド呼出に応じて実行されるメソッドによる処理が、前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及び前記クラス識別名とから特定される権限において正当であるか判断する正当性判断ステップと、
正当であると判断された場合に、前記メソッド呼出を前記対象オブジェクトに出力するステップと、
を、コンピュータに実行させるためのプログラム。
(Appendix 1)
Method call for the reference method or update method of the object of the data class generated for each data item defined in the authority data that defines the authority permitted for each role for each data item and function, or the authority Detecting a method call to a method of an object of a function class generated for each function defined in data;
Included in the method call out of session objects generated at the start of each session on the process in response to a request from the user and including a session identifier and user identification information including the user identifier of the user and the role of the user Obtaining the user identification information from a session object corresponding to the session identifier
An object data acquisition step of acquiring a class type representing either the data item or the function and a class identification name representing a data item name or a function name from the detected object of the method call;
Validity to determine whether the processing by the method executed in response to the method call is valid in the authority specified from the role, the class type, and the class identification name included in the user identification information in the authority data Sex determination step;
Outputting the method call to the target object when it is determined to be valid;
A program that causes a computer to execute.
(付記2)
前記オブジェクトデータ取得ステップが、
検出された前記メソッド呼出の対象オブジェクトが前記データ・クラスのオブジェクトであって、前記対象オブジェクトが当該対象オブジェクトの所有者データを含む場合には、当該所有者データを取得するステップ
を含み、
前記正当性判断ステップが、
前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及びクラス識別名とから特定される権限において所有者のみ可能な権限が含まれる場合、取得された前記所有者データが、前記ユーザ識別情報に含まれるユーザ識別子に一致するか判断するステップ
を含む
付記1記載のプログラム。
(Appendix 2)
The object data acquisition step includes
When the detected target object of the method call is an object of the data class and the target object includes owner data of the target object, the method includes the step of obtaining the owner data;
The legitimacy determining step includes
In the authority data, when the authority specified by the role, the class type, and the class identifier included in the user identification information includes an authority that can only be owned by the owner, the acquired owner data is the user The program according to
(付記3)
前記正当性判断ステップが、
前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及びクラス識別名とから特定される権限について追加の制限ルールが規定されている場合、当該追加の制限ルールのデータを取得するステップと、
前記追加の制限ルールのデータにおいて確認が必要であり且つ前記対象オブジェクトに規定されている追加規定データを取得するステップと、
前記追加規定データが前記追加の制限ルールを満たしているか判断するステップと、
を含む付記1又は2記載のプログラム。
(Appendix 3)
The legitimacy determining step includes
When an additional restriction rule is defined for the authority specified from the role, the class type, and the class identification name included in the user identification information in the authority data, obtaining data of the additional restriction rule When,
Obtaining additional defined data that is required to be confirmed in the data of the additional restriction rule and is defined in the target object;
Determining whether the additional regulatory data satisfies the additional restriction rule;
(付記4)
データ項目及び機能の各々についてロール毎に許可された権限を規定した権限データにおいて規定されている前記データ項目毎に生成されたデータ・クラスのオブジェクトの参照メソッド又は更新メソッドに対するメソッド呼出、又は前記権限データにおいて規定されている前記機能毎に生成された機能クラスのオブジェクトのメソッドに対するメソッド呼出を検出するステップと、
ユーザからの要求に応じた、プロセス上の各セッション開始時に生成され且つセッション識別子と、前記ユーザのユーザ識別子及び前記ユーザのロールとを含むユーザ識別情報を含むセッションオブジェクトのうち、前記メソッド呼出に含まれるセッション識別子に対応するセッションオブジェクトから、前記ユーザ識別情報を取得するステップと、
検出された前記メソッド呼出の対象オブジェクトから、前記データ項目又は前記機能のいずれかを表すクラスタイプ及びデータ項目名又は機能名を表すクラス識別名を取得するオブジェクトデータ取得ステップと、
前記メソッド呼出に応じて実行されるメソッドによる処理が、前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及び前記クラス識別名とから特定される権限において正当であるか判断する正当性判断ステップと、
正当であると判断された場合に、前記メソッド呼出を前記対象オブジェクトに出力するステップと、
を含み、コンピュータに実行されるロールベースアクセス制御方法。
(Appendix 4)
Method call for the reference method or update method of the object of the data class generated for each data item defined in the authority data that defines the authority permitted for each role for each data item and function, or the authority Detecting a method call to a method of an object of a function class generated for each function defined in data;
Included in the method call out of session objects generated at the start of each session on the process in response to a request from the user and including a session identifier and user identification information including the user identifier of the user and the role of the user Obtaining the user identification information from a session object corresponding to the session identifier
An object data acquisition step of acquiring a class type representing either the data item or the function and a class identification name representing a data item name or a function name from the detected object of the method call;
Validity to determine whether the processing by the method executed in response to the method call is valid in the authority specified from the role, the class type, and the class identification name included in the user identification information in the authority data Sex determination step;
Outputting the method call to the target object when it is determined to be valid;
A role-based access control method executed on a computer.
(付記5)
データ項目及び機能の各々についてロール毎に許可された権限を規定した権限データにおいて規定されている前記データ項目毎に生成されたデータ・クラスのオブジェクトの参照メソッド又は更新メソッドに対するメソッド呼出、又は前記権限データにおいて規定されている前記機能毎に生成された機能クラスのオブジェクトのメソッドに対するメソッド呼出を取得する手段と、
ユーザからの要求に応じた、プロセス上の各セッション開始時に生成され且つセッション識別子と、前記ユーザのユーザ識別子及び前記ユーザのロールとを含むユーザ識別情報を含むセッションオブジェクトのうち、前記メソッド呼出に含まれるセッション識別子に対応するセッションオブジェクトから、前記ユーザ識別情報を取得する手段と、
取得された前記メソッド呼出の対象オブジェクトから、前記データ項目又は前記機能のいずれかを表すクラスタイプ及びデータ項目名又は機能名を表すクラス識別名を取得するオブジェクトデータ取得手段と、
前記メソッド呼出に応じて実行されるメソッドによる処理が、前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及び前記クラス識別名とから特定される権限において正当であるか判断する正当性判断手段と、
正当であると判断された場合に、前記メソッド呼出を前記対象オブジェクトに出力する手段と、
を有するコンピュータ。
(Appendix 5)
Method call for the reference method or update method of the object of the data class generated for each data item defined in the authority data that defines the authority permitted for each role for each data item and function, or the authority Means for obtaining a method call for a method of an object of a function class generated for each function defined in data;
Included in the method call out of session objects generated at the start of each session on the process in response to a request from the user and including a session identifier and user identification information including the user identifier of the user and the role of the user Means for obtaining the user identification information from a session object corresponding to the session identifier
An object data acquisition means for acquiring a class type representing either the data item or the function and a class identification name representing a data item name or a function name from the acquired object of the method call;
Validity to determine whether the processing by the method executed in response to the method call is valid in the authority specified from the role, the class type, and the class identification name included in the user identification information in the authority data Sex judgment means,
Means for outputting the method call to the target object when it is determined to be valid;
Having a computer.
11 権限テーブル 12 クラス自動生成器 13 機能クラス格納部
14 データクラス格納部
1a,1b ユーザ端末 3 サーバ
31 OS
100 サーバアプリケーション 110 セッションオブジェクト生成部
311 メソッド呼出捕捉部
313 セッションオブジェクト
315 権限検査部
317 カスタマイズルール
135 機能クラスのオブジェクト 145 データクラスのオブジェクト
DESCRIPTION OF SYMBOLS 11 Authority table 12 Class
DESCRIPTION OF
Claims (5)
ユーザからの要求に応じた、プロセス上の各セッション開始時に生成され且つセッション識別子と、前記ユーザのユーザ識別子及び前記ユーザのロールとを含むユーザ識別情報を含むセッションオブジェクトのうち、前記メソッド呼出に含まれるセッション識別子に対応するセッションオブジェクトから、前記ユーザ識別情報を取得するステップと、
検出された前記メソッド呼出の対象オブジェクトから、前記データ項目又は前記機能のいずれかを表すクラスタイプ及びデータ項目名又は機能名を表すクラス識別名を取得するオブジェクトデータ取得ステップと、
前記メソッド呼出に応じて実行されるメソッドによる処理が、前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及び前記クラス識別名とから特定される権限において正当であるか判断する正当性判断ステップと、
正当であると判断された場合に、前記メソッド呼出を前記対象オブジェクトに出力するステップと、
を、コンピュータに実行させるためのプログラム。 Method call for the reference method or update method of the object of the data class generated for each data item defined in the authority data that defines the authority permitted for each role for each data item and function, or the authority Detecting a method call to a method of an object of a function class generated for each function defined in data;
Included in the method call out of session objects generated at the start of each session on the process in response to a request from the user and including a session identifier and user identification information including the user identifier of the user and the role of the user Obtaining the user identification information from a session object corresponding to the session identifier
An object data acquisition step of acquiring a class type representing either the data item or the function and a class identification name representing a data item name or a function name from the detected object of the method call;
Validity to determine whether the processing by the method executed in response to the method call is valid in the authority specified from the role, the class type, and the class identification name included in the user identification information in the authority data Sex determination step;
Outputting the method call to the target object when it is determined to be valid;
A program that causes a computer to execute.
検出された前記メソッド呼出の対象オブジェクトが前記データ・クラスのオブジェクトであって、前記対象オブジェクトが当該対象オブジェクトの所有者データを含む場合には、当該所有者データを取得するステップ
を含み、
前記正当性判断ステップが、
前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及びクラス識別名とから特定される権限において所有者のみ可能な権限が含まれる場合、取得された前記所有者データが、前記ユーザ識別情報に含まれるユーザ識別子に一致するか判断するステップ
を含む
請求項1記載のプログラム。 The object data acquisition step includes
When the detected target object of the method call is an object of the data class and the target object includes owner data of the target object, the method includes the step of obtaining the owner data;
The legitimacy determining step includes
In the authority data, when the authority specified by the role, the class type, and the class identifier included in the user identification information includes an authority that can only be owned by the owner, the acquired owner data is the user The program according to claim 1, further comprising: determining whether or not the user identifier included in the identification information matches.
前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及びクラス識別名とから特定される権限について追加の制限ルールが規定されている場合、当該追加の制限ルールのデータを取得するステップと、
前記追加の制限ルールのデータにおいて確認が必要であり且つ前記対象オブジェクトに規定されている追加規定データを取得するステップと、
前記追加規定データが前記追加の制限ルールを満たしているか判断するステップと、
を含む請求項1又は2記載のプログラム。 The legitimacy determining step includes
When an additional restriction rule is defined for the authority specified from the role, the class type, and the class identification name included in the user identification information in the authority data, obtaining data of the additional restriction rule When,
Obtaining additional defined data that is required to be confirmed in the data of the additional restriction rule and is defined in the target object;
Determining whether the additional regulatory data satisfies the additional restriction rule;
The program according to claim 1 or 2, comprising:
ユーザからの要求に応じた、プロセス上の各セッション開始時に生成され且つセッション識別子と、前記ユーザのユーザ識別子及び前記ユーザのロールとを含むユーザ識別情報を含むセッションオブジェクトのうち、前記メソッド呼出に含まれるセッション識別子に対応するセッションオブジェクトから、前記ユーザ識別情報を取得するステップと、
検出された前記メソッド呼出の対象オブジェクトから、前記データ項目又は前記機能のいずれかを表すクラスタイプ及びデータ項目名又は機能名を表すクラス識別名を取得するオブジェクトデータ取得ステップと、
前記メソッド呼出に応じて実行されるメソッドによる処理が、前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及び前記クラス識別名とから特定される権限において正当であるか判断する正当性判断ステップと、
正当であると判断された場合に、前記メソッド呼出を前記対象オブジェクトに出力するステップと、
を含み、コンピュータに実行されるロールベースアクセス制御方法。 Method call for the reference method or update method of the object of the data class generated for each data item defined in the authority data that defines the authority permitted for each role for each data item and function, or the authority Detecting a method call to a method of an object of a function class generated for each function defined in data;
Included in the method call out of session objects generated at the start of each session on the process in response to a request from the user and including a session identifier and user identification information including the user identifier of the user and the role of the user Obtaining the user identification information from a session object corresponding to the session identifier
An object data acquisition step of acquiring a class type representing either the data item or the function and a class identification name representing a data item name or a function name from the detected object of the method call;
Validity to determine whether the processing by the method executed in response to the method call is valid in the authority specified from the role, the class type, and the class identification name included in the user identification information in the authority data Sex determination step;
Outputting the method call to the target object when it is determined to be valid;
A role-based access control method executed on a computer.
ユーザからの要求に応じた、プロセス上の各セッション開始時に生成され且つセッション識別子と、前記ユーザのユーザ識別子及び前記ユーザのロールとを含むユーザ識別情報を含むセッションオブジェクトのうち、前記メソッド呼出に含まれるセッション識別子に対応するセッションオブジェクトから、前記ユーザ識別情報を取得する手段と、
取得された前記メソッド呼出の対象オブジェクトから、前記データ項目又は前記機能のいずれかを表すクラスタイプ及びデータ項目名又は機能名を表すクラス識別名を取得するオブジェクトデータ取得手段と、
前記メソッド呼出に応じて実行されるメソッドによる処理が、前記権限データにおいて前記ユーザ識別情報に含まれる前記ロールと前記クラスタイプ及び前記クラス識別名とから特定される権限において正当であるか判断する正当性判断手段と、
正当であると判断された場合に、前記メソッド呼出を前記対象オブジェクトに出力する手段と、
を有するコンピュータ。 Method call for the reference method or update method of the object of the data class generated for each data item defined in the authority data that defines the authority permitted for each role for each data item and function, or the authority Means for obtaining a method call for a method of an object of a function class generated for each function defined in data;
Included in the method call out of session objects generated at the start of each session on the process in response to a request from the user and including a session identifier and user identification information including the user identifier of the user and the role of the user Means for obtaining the user identification information from a session object corresponding to the session identifier
An object data acquisition means for acquiring a class type representing either the data item or the function and a class identification name representing a data item name or a function name from the acquired object of the method call;
Validity to determine whether the processing by the method executed in response to the method call is valid in the authority specified from the role, the class type, and the class identification name included in the user identification information in the authority data Sex judgment means,
Means for outputting the method call to the target object when it is determined to be valid;
Having a computer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008278591A JP5120207B2 (en) | 2008-10-29 | 2008-10-29 | Role-based access control method, program, and computer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008278591A JP5120207B2 (en) | 2008-10-29 | 2008-10-29 | Role-based access control method, program, and computer |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010108170A JP2010108170A (en) | 2010-05-13 |
JP5120207B2 true JP5120207B2 (en) | 2013-01-16 |
Family
ID=42297573
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008278591A Expired - Fee Related JP5120207B2 (en) | 2008-10-29 | 2008-10-29 | Role-based access control method, program, and computer |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5120207B2 (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5704951B2 (en) * | 2011-02-10 | 2015-04-22 | ソニー株式会社 | Information processing apparatus, information processing method, and computer program |
JP5743786B2 (en) * | 2011-07-28 | 2015-07-01 | キヤノン株式会社 | Server apparatus, information processing method, and program |
JP2014203141A (en) | 2013-04-02 | 2014-10-27 | キヤノン株式会社 | Management device, management system, control method and computer program |
JP2015204087A (en) | 2014-04-16 | 2015-11-16 | キヤノン株式会社 | Management system and management method |
JP6362080B2 (en) | 2014-04-16 | 2018-07-25 | キヤノン株式会社 | Management system and management method |
US10572280B2 (en) * | 2017-02-17 | 2020-02-25 | Google Llc | Mobile application activity detector |
-
2008
- 2008-10-29 JP JP2008278591A patent/JP5120207B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010108170A (en) | 2010-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210149648A1 (en) | System and a method for automating application development and deployment | |
US10462148B2 (en) | Dynamic data masking for mainframe application | |
JP5120207B2 (en) | Role-based access control method, program, and computer | |
Vekris et al. | Towards Verifying Android Apps for the Absence of {No-Sleep} Energy Bugs | |
CN110968437A (en) | Method, device, equipment and medium for parallel execution of single contract based on Java intelligent contract | |
CA2874437A1 (en) | Automation in rule engine in an integration development environment | |
Song et al. | Verifiable composition of access control and application features | |
Mustafa et al. | Understanding the implemented access control policy of Android system services with slicing and extended static checking | |
CN116974581B (en) | Code generation method, device, electronic equipment and storage medium | |
US11722324B2 (en) | Secure and accountable execution of robotic process automation | |
Mouheb et al. | Aspect-oriented security hardening of UML design models | |
Hermann et al. | Transformation of type graphs with inheritance for ensuring security in e-government networks | |
US11341275B2 (en) | System and method for implementing and testing security protections in computer software | |
Olivieri et al. | On-Chain Smart Contract Verification over Tendermint | |
Groenewegen et al. | Evolution of the WebDSL runtime: reliability engineering of the WebDSL web programming language | |
Abdelfattah et al. | Towards Security-Aware Microservices: On Extracting Endpoint Data Access Operations to Determine Access Rights [Towards Security-Aware Microservices: On Extracting Endpoint Data Access Operations to Determine Access Rights] | |
Haq et al. | Design pattern for secure object oriented information systems development | |
JP2011065367A (en) | Device, program and method for managing workflow | |
US7937250B2 (en) | Method and system for addressing non-functional concerns | |
Ogbonna et al. | Aspect-Oriented Software Development for Real-Time and Internet Applications | |
Katkalov et al. | Modeling information flow properties with UML | |
Chen et al. | A practical aspect framework for enforcing fine-grained access control in web applications | |
US11797317B1 (en) | Transitioning legacy software to be provably correct | |
Xu et al. | Adding Generic Role-and Process-based Behaviors to Smart Contracts using Dynamic Condition Response Graphs | |
Mouratidis et al. | Secure tropos: Extending i* and tropos to model security throughout the development process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110808 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120830 |
|
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: 20120925 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121008 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151102 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |