JP5120207B2 - Role-based access control method, program, and computer - Google Patents

Role-based access control method, program, and computer Download PDF

Info

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
Application number
JP2008278591A
Other languages
Japanese (ja)
Other versions
JP2010108170A (en
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008278591A priority Critical patent/JP5120207B2/en
Publication of JP2010108170A publication Critical patent/JP2010108170A/en
Application granted granted Critical
Publication of JP5120207B2 publication Critical patent/JP5120207B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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基盤を利用することができない場合が多い。
特開2007−41881号公報
The concept of RBAC that controls access for each role is a general concept in the field of security. However, when RBAC is implemented in the OS, the OS normally recognizes one application executed by one user as one process and can grant different authority for each process. It is not possible to grant different privileges for each session. That is, in many cases, the application side cannot use the RBAC infrastructure of the OS.
JP 2007-41881 A

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 automatic generator 12 that automatically generates a necessary class using the authority table 11, and a plurality of function classes 131 generated by the class automatic generator 12. A function class storage unit 13 that stores data and a data class storage unit 14 that stores data of a plurality of data classes 141 generated by the automatic class generator 12 are included.

図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 automatic class generator 12 will be described with reference to FIGS. First, the automatic class generator 12 performs a function class generation process (FIG. 3: step S1). This function class generation process will be described with reference to FIGS.

まず、クラス自動生成器12は、権限テーブル11における未処理の機能を1つ特定する(ステップS11)。機能については、実行権xが規定されるので、実行権xが規定されている機能のうち未処理の機能を1つ特定する。   First, the automatic class generator 12 specifies one unprocessed function in the authority table 11 (step S11). Since the execution right x is defined for the function, one unprocessed function is specified from among the functions for which the execution right x is defined.

そして、対応機能クラスを生成する(ステップ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 automatic class generator 12. Then, in this function class, an automatically generated part that can set a class type and a class identifier is generated (step S15). Thereafter, “function” is set as the type value of the automatically generated portion (step S17). Further, the function name of the function specified in step S11 is set as the value of the class identification name of the automatically generated part (step S19). The function class data generated in this way is stored in the function class storage unit 13 (step S21).

その後、全ての機能について処理したか判断し(ステップ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 function class 131 includes an automatic generation part and a customization part. In the automatic generation part, “function” is set as the value of the class type, and the name of each function (for example, “open account”) is set as the value of the class identifier. The customization part is the part where programmers can freely add and implement data fields and methods.

機能クラス格納部13に格納されている全ての機能クラス131のカスタマイズ部分を、以下で述べるような方針にて実装すれば、権限テーブル11で規定されている機能に関してRBACに必要なクラスが漏れなく作成されることとなる。   If the customization part of all the function classes 131 stored in the function class storage unit 13 is implemented according to the policy described below, the classes required for the RBAC are not leaked for the functions defined in the authority table 11 Will be created.

図3の処理の説明に戻って、クラス自動生成器12は、データクラス生成処理を実施する(ステップS3)。このデータクラス生成処理については、図6及び図7を用いて説明する。   Returning to the description of the processing in FIG. 3, the automatic class generator 12 performs data class generation processing (step S3). This data class generation process will be described with reference to FIGS.

まず、クラス自動生成器12は、権限テーブル11における未処理のデータ項目を1つ特定する(ステップS31)。データ項目については、参照権rや更新権wが規定されるので、参照権rや更新権wが規定されているデータ項目のうち未処理のデータ項目を1つ特定する。   First, the automatic class generator 12 specifies one unprocessed data item in the authority table 11 (step S31). Since the reference right r and the update right w are specified for the data item, one unprocessed data item is specified from the data items for which the reference right r and the update right w are specified.

そして、対応データクラスを生成する(ステップ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 automatic class generator 12. Then, in this data class, an automatic generation part including the declaration part of the reference method and the update method for the data of the data item related to the process and capable of setting the type and class identifier is generated (step S35). Thereafter, “data” is set as the type value of the automatically generated portion (step S37). Further, the data item name of the data item specified in step S31 is set as the value of the class identification name of the automatically generated part (step S39). And the data of the data class 141 produced | generated in this way are stored in the data class storage part 14 (step S41).

その後、全てのデータ項目について処理したか判断し(ステップ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 data class 141 generated by such processing is shown in FIG. The data class 141 includes an automatically generated part. In the automatic generation portion, “data” is set as the value of the class type, and the name of each data item (for example, “account information”) is set as the value of the class identifier. Further, in the case of the data class 141, the automatic generation part includes the declaration part of the reference method and the declaration part of the update method. The specific contents of the reference process of the reference method and the specific contents of the update process of the update method are customization parts, and a part where the programmer performs the necessary process contents.

このように、データクラス格納部14に格納されている全てのデータクラス141のカスタマイズ部分を、以下で述べるような方針にて実装すれば、権限テーブル11で規定されているデータ項目に関してRBACに必要なクラスが漏れなく作成されることとなる。   As described above, if the customization part of all the data classes 141 stored in the data class storage unit 14 is implemented according to the policy described below, it is necessary for the RBAC with respect to the data items defined in the authority table 11. Class will be created without omission.

以上のように機能クラス131及びデータクラス141を、権限テーブル11から自動的に生成し、開発者は、これら機能クラス131及びデータクラス141についてプログラミングを行って、アプリケーションの開発を行う。この際、機能クラス131及びデータクラス141において自動生成部分については変更を行わないようにする。上でも述べたように、機能クラス131のカスタマイズ部分については、データフィールドやメソッドを自由に規定することができる。さらに、データクラス141の参照用メソッドの具体的処理部分や更新用メソッドの具体的処理部分については、必要な処理内容を規定することができる。   As described above, the function class 131 and the data class 141 are automatically generated from the authority table 11, and the developer develops an application by programming the function class 131 and the data class 141. At this time, in the function class 131 and the data class 141, the automatic generation part is not changed. As described above, in the customization part of the function class 131, data fields and methods can be freely defined. Furthermore, necessary processing contents can be defined for the specific processing portion of the reference method of the data class 141 and the specific processing portion of the update method.

機能クラス131のメソッドやアプリケーション中の他のクラスのメソッドについては、データクラス141に係るデータ項目に対するアクセスについて、データクラス141の参照用メソッド及び更新用メソッドのみを用いて行うように、プログラミングするものとする。   For the methods of the function class 131 and the methods of other classes in the application, programming is performed so that access to the data items related to the data class 141 is performed using only the reference method and the update method of the data class 141. And

すなわち、構築されるアプリケーションプログラム全体としては図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 server application 100 other than the function class 131 and the data class 141 calls a method in the customization part of the function classes 131a to 131c when executing the function targeted for RBAC. The method in the customization part of the function classes 131a to 131c is the reference method or update method in the corresponding data class of the data classes 141a to 141c when referring to or updating the data item to be subject to RBAC. To call. Although not shown in FIG. 8, when the server application 100 refers to or updates the data item that is the target of the RBAC, the reference method or the update method of the data classes 141a to 141c is called. To do.

以上のように、クラス自動生成器12を用いてRBACの対象機能及びデータ項目について必要な機能クラス131及びデータクラス141を生成してから、上で述べた方針に従ってアプリケーションプログラムの開発を行うようにすれば、開発者側で特別にRBACについて判断したり追加で実装したりする必要がないため、開発者の手間が削減され、実装漏れも避けることができるようになる。   As described above, the function class 131 and the data class 141 necessary for the RBAC target function and data item are generated using the automatic class generator 12, and then the application program is developed according to the above-described policy. This eliminates the need for the RDAC to make a special judgment or additional implementation on the developer side, thereby reducing the effort of the developer and avoiding mounting omissions.

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 OS 31 and also executes an object according to the present embodiment in one process on the OS 31. That is, even if the RBAC base is mounted on the OS 31, it cannot be used, and it is necessary to prepare an RBAC for each application.

また、本実施の形態に関係する構成要素としては、様々な処理を行うサーバアプリケーション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 server application 100 that performs various processes, the object 135 of the function class 131 generated from the authority table 11 as described above, and the authority table in the same manner. 11, an object 145 of the data class 141 generated from 11, an authority checking unit 315 that performs the main processing in the present embodiment with reference to the authority table 11, and a specific method call (in accordance with an instruction from the authority checking unit 315) Specifically, it includes a method call capturing unit 311 that captures a method call of the function class 131, a method call for a reference method or an update method of the data class 141), and outputs the method call to the authority checking unit 315.

サーバアプリケーション100は、例えばユーザ端末1aからのアクセスに応じて認証処理を実施して当該ユーザのユーザ識別子及びロールを特定してユーザ識別子及びロールを含むユーザ識別情報を保持する、当該ユーザについてのセッションオブジェクトを生成するセッションオブジェクト生成部110を有している。セッションオブジェクト生成部110自体は従来から存在しているものである。セッションオブジェクト生成部110によって生成されたセッションオブジェクト313は、セッションIDで識別され、上で述べたようにユーザ識別情報を保持している。権限検査部315は、セッションIDで該当するセッションオブジェクト313を特定し、ユーザ識別情報を取得する。   For example, the server application 100 performs authentication processing in response to access from the user terminal 1a, identifies the user identifier and role of the user, and holds user identification information including the user identifier and role. A session object generation unit 110 that generates an object is included. The session object generation unit 110 itself has existed conventionally. The session object 313 generated by the session object generation unit 110 is identified by a session ID, and holds user identification information as described above. The authority checking unit 315 identifies the corresponding session object 313 with the session ID, and acquires user identification information.

また、メソッド呼出捕捉部311は、上で述べたように、機能クラス131のメソッド呼出、データクラス141の参照用メソッド又は更新用メソッドのメソッド呼出を捕捉対象として指定され、指定に従って該当メソッド呼出を捕捉して、捕捉したメソッド呼出を権限検査部315に出力する。具体的には、メソッドの属するクラスのクラスタイプが「機能」について全てのメソッドが指定され、メソッドの属するクラスのクラスタイプが「データ」について参照用メソッド及び更新用メソッドが指定される。このような機能自体は周知であるので、これ以上述べない。   Further, as described above, the method call capturing unit 311 is designated as a target to capture the method call of the function class 131, the method call of the reference method or the update method of the data class 141, and performs the corresponding method call according to the specification. The captured method call is output to the authority checking unit 315. Specifically, all methods are specified when the class type of the class to which the method belongs is “function”, and the reference method and the update method are specified for the class type of the class to which the method belongs “data”. Such functions themselves are well known and will not be described further.

なお、図9では、権限検査部315が、カスタマイズルール317を参照するようになっているが、本実施の形態ではカスタマイズルール317については用いられない。第3の実施の形態で詳しく述べる。   In FIG. 9, the authority checking unit 315 refers to the customization rule 317, but the customization rule 317 is not used in the present embodiment. This will be described in detail in the third embodiment.

次に、図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 session object 313 including user identification information including the user ID and role ( Step S51).

また、権限検査部315は、機能クラス131のメソッド呼出及びデータクラス141の参照用及び更新用メソッドのメソッド呼出の捕捉を、メソッド呼出捕捉部311に要求する(ステップS53)。メソッド呼出捕捉部311は、権限検査部315からの上記メソッド呼出捕捉要求を受信し、指定されたメソッド呼出を捕捉するように設定する(ステップS55)。設定はメインメモリなどの記憶装置に保持される。   Further, the authority checking unit 315 requests the method call capturing unit 311 to capture the method call of the function class 131 and the method call of the reference and update methods of the data class 141 (step S53). The method call capturing unit 311 receives the method call capturing request from the authority checking unit 315, and sets the specified method call to be captured (step S55). The setting is held in a storage device such as a main memory.

その後、アプリケーションプログラム100などによって、メソッド呼出が行われると(ステップS57)、メソッド呼出捕捉部311は、当該メソッド呼出がステップS55における設定に従ったものであるか確認し、設定に従ったものである場合には捕捉して、権限検査部315に出力する(ステップS59)。一方、メソッド呼出がステップS55における設定に従ったものではない場合、そのままメソッド呼出の宛先オブジェクトに出力される。   After that, when a method call is made by the application program 100 or the like (step S57), the method call capturing unit 311 confirms whether the method call conforms to the setting in step S55, and follows the setting. If there is, it is captured and output to the authority checking unit 315 (step S59). On the other hand, if the method call does not conform to the setting in step S55, it is output as it is to the destination object of the method call.

権限検査部315は、メソッド呼出捕捉部311から、捕捉を要求したメソッド呼出を受信すると(ステップS61)、呼出対象メソッドのオブジェクトから、クラス自動生成器12によって自動的に設定された自動生成項目(すなわちクラスタイプ及びクラス識別名。クラスタイプは既に分かっているので除外しても良い。また、他にも自動的に設定される項目が存在する場合にはその項目をも含む。)のデータを取得する(ステップS63)。自動生成項目データについては、メインメモリなどの記憶装置に保持される。   When receiving the method call that requested the capture from the method call capturing unit 311 (step S61), the authority checking unit 315 automatically sets the automatically generated items (automatically generated items (set by the automatic class generator 12) from the object of the call target method). That is, the class type and class identification name.The class type is already known and may be excluded. In addition, if there are other items that are automatically set, the data is also included.) Obtain (step S63). The automatically generated item data is held in a storage device such as a main memory.

さらに、権限検査部315は、捕捉されたメソッド呼出に含まれるセッションIDから該当するセッションオブジェクト313を特定し、当該セッションオブジェクト313からユーザ識別情報(ユーザ識別子及びロール)を取得する(ステップS65)。ユーザ識別情報については、メインメモリなどの記憶装置に保持される。そして、処理は端子Aを介して図11の処理に移行する。   Further, the authority checking unit 315 identifies the corresponding session object 313 from the session ID included in the captured method call, and acquires user identification information (user identifier and role) from the session object 313 (step S65). The user identification information is held in a storage device such as a main memory. And a process transfers to the process of FIG.

図11の処理の説明に移行して、権限検査部315は、ステップS65の処理結果としてユーザ識別情報を取得できたか、すなわちユーザ識別が完了しているか確認する(ステップS67)。何らかの理由でユーザ識別情報が取得できない場合、すなわちユーザ識別が完了していない場合には、例外を発生させる(ステップS73)。   Shifting to the description of the processing in FIG. 11, the authority checking unit 315 confirms whether or not the user identification information has been acquired as the processing result of Step S65, that is, whether or not the user identification has been completed (Step S67). If the user identification information cannot be acquired for some reason, that is, if the user identification is not completed, an exception is generated (step S73).

一方、ユーザ識別情報を取得できた場合には、権限検査部315は、ユーザ識別情報に含まれているロールと、自動生成項目データに含まれるクラスタイプ及びクラス識別名とで、権限テーブル11を検索して、該当する権限を取得する(ステップS69)。   On the other hand, when the user identification information can be acquired, the authority checking unit 315 updates the authority table 11 with the role included in the user identification information and the class type and class identification name included in the automatically generated item data. The corresponding authority is acquired by searching (step S69).

そして、権限検査部315は、該当する権限から、メソッド呼出から特定される要求処理が許可されているか、すなわち正当なアクセスであるか判断する(ステップS71)。例えば、機能クラス131のメソッドが呼び出された場合には、当該機能クラス131についてのメソッド実行が、権限テーブル11において許可されているか(図2の例では「x」マークが付されているか)判断する。   Then, the authority checking unit 315 determines from the corresponding authority whether the request processing specified from the method call is permitted, that is, whether the access is valid (step S71). For example, when a method of the function class 131 is called, it is determined whether method execution for the function class 131 is permitted in the authority table 11 (in the example of FIG. 2, an “x” mark is attached). To do.

例えば、クラスタイプが「機能」でクラス識別名が「口座開設」であってロールが「顧客」であれば、権限テーブル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 function class 131 whose class type is“ function ”and whose class identification name is“ account opening ”is called, it is determined that the access is valid. On the other hand, if the role is “broker”, it is determined that the access is not authorized because it is not permitted.

また、データクラス141の参照用メソッド又は更新用メソッドが呼び出された場合には、当該データクラス141についての参照r又は更新wが許可されているか判断する。例えば、クラスタイプが「データ」でクラス識別名が「注文」であってロールが「顧客」であれば、権限テーブル11(図2)では、参照も更新も許可されているので、ロールが「顧客」であるユーザ識別情報が取得され、クラスタイプが「データ」でクラス識別名が「注文」であるデータクラス141の更新用メソッドが呼び出された場合には、正当なアクセスであると判断される。一方、ロールが「ブローカ」であれば、許可されていないので正当なアクセスではないと判断される。   When the reference method or update method of the data class 141 is called, it is determined whether the reference r or update w for the data class 141 is permitted. For example, if the class type is “data”, the class identification name is “order”, and the role is “customer”, in the authority table 11 (FIG. 2), both reference and update are permitted. When the user identification information “customer” is acquired and the update method of the data class 141 with the class type “data” and the class identification name “order” is called, it is determined that the access is valid. The On the other hand, if the role is “broker”, it is determined that the access is not authorized because it is not permitted.

正当なアクセスではないと判断された場合には、権限検査部315は、例外を発生させる(ステップS73)。一方、正当なアクセスであると判断された場合には、メソッド呼出を呼出先オブジェクトに出力する(ステップS75)。呼出先オブジェクトである機能クラス131のオブジェクト135又はデータクラス141のオブジェクト145は、メソッド呼出を受信し、要求された処理を実施する(ステップS77)。すなわち、通常どおりの処理を実施する。   If it is determined that the access is not legitimate, the authority checking unit 315 generates an exception (step S73). On the other hand, if it is determined that the access is valid, the method call is output to the callee object (step S75). The object 135 of the function class 131 or the object 145 of the data class 141, which is the call destination object, receives the method call and performs the requested processing (step S77). That is, normal processing is performed.

以上のように、権限検査を行うべきメソッド呼出を、機能クラス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 function class 131 and the method call of the reference or update method of the data class 141. Therefore, the authority inspection unit 315 prepared in advance can perform necessary and sufficient authority inspection intensively. In other words, verification is performed simply by eliminating the effort of the developer and eliminating leakage.

[実施の形態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 authority checking unit 315 confirms whether the user identification information has been acquired as the processing result of step S65, that is, whether the user identification has been completed (step S81). If the user identification information cannot be acquired for some reason, that is, if the user identification is not completed, an exception is generated (step S89).

一方、ユーザ識別情報を取得できた場合には、権限検査部315は、ユーザ識別情報に含まれているロールと、自動生成項目データに含まれるクラスタイプ及びクラス識別名とで、権限テーブル11を検索して、該当する権限を取得する(ステップS83)。   On the other hand, when the user identification information can be acquired, the authority checking unit 315 updates the authority table 11 with the role included in the user identification information and the class type and class identification name included in the automatically generated item data. The corresponding authority is acquired by searching (step S83).

さらに、権限検査部315は、該当権限において所有者限定が含まれている場合には、ユーザ識別情報に含まれるユーザIDと自動生成項目データに含まれる所有者のユーザ識別子とが一致するか確認する(ステップS85)。   Further, the authority checking unit 315 confirms whether the user ID included in the user identification information and the user identifier of the owner included in the automatically generated item data match if the owner limitation is included in the corresponding authority. (Step S85).

そして、権限検査部315は、該当する権限から、メソッド呼出から特定される要求処理が許可されているか、すなわち正当なアクセスであるか判断する(ステップS87)。具体的には、ステップS71と同様の判断を行って、機能クラス131のメソッドが呼び出された場合には、当該機能クラス131についてのメソッド実行が、権限テーブル11において許可されているかを判断し、さらに、データクラス141の参照用メソッド又は更新用メソッドが呼び出された場合には、当該データクラス141についての参照r又は更新wが許可されているか判断する。さらに加えて、ステップS87でユーザ識別情報に含まれるユーザIDと所有者のユーザ識別子とが一致するかを確認する。   Then, the authority checking unit 315 determines from the corresponding authority whether the request processing specified from the method call is permitted, that is, whether the access is valid (step S87). Specifically, the same determination as in step S71 is performed, and when a method of the function class 131 is called, it is determined whether method execution for the function class 131 is permitted in the authority table 11, Furthermore, when the reference method or update method of the data class 141 is called, it is determined whether the reference r or update w for the data class 141 is permitted. In addition, in step S87, it is confirmed whether the user ID included in the user identification information matches the owner's user identifier.

これらの一部でも問題があれば、権限検査部315は、例外を発生させる(ステップS89)。一方、全て問題なく、正当なアクセスである場合には、権限検査部315は、メソッド呼出を呼出先オブジェクトに出力する(ステップS91)。呼出先オブジェクトである機能クラス131のオブジェクト135又はデータクラス141のオブジェクト145は、メソッド呼出を受信し、要求された処理を実施する(ステップS93)。すなわち、通常どおりの処理を実施する。   If there is a problem with any of these, the authority checking unit 315 generates an exception (step S89). On the other hand, if there is no problem and the access is valid, the authority checking unit 315 outputs a method call to the callee object (step S91). The object 135 of the function class 131 or the object 145 of the data class 141, which is the call destination object, receives the method call and performs the requested processing (step S93). That is, normal processing is performed.

以上のような変形を加えることによって、所有者のみが可能となるアクセスなどについても権限検査部315において確認することができる。   By adding the above-described modification, the authority checking unit 315 can also confirm access that only the owner can perform.

[実施の形態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 customization rule 317 shown in FIG. 9 is introduced. The authority checking unit 315 refers to the authority table 11 and checks whether a customization rule such as (R0) or (R1) as shown in FIG. 14 is defined.

カスタマイズルールには、例えば、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 authority checking unit 315 can acquire not only automatically generated item data but also values of other data fields from the object 145 of the data class 141 and the object 135 of the function class 131.

口座開設という機能に設定された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 function class 131 related to the account opening. As a result, the authority checking unit 315 can determine whether the user ID (manager user ID) included in the user identification information matches the user ID in the customer ID field.

なお、口座開設に係る機能クラス131のオブジェクトにおける顧客IDフィールドには、事前にそのオブジェクト自身のメソッドや他の機能クラス131のオブジェクトのメソッドにより、開設口座の顧客のユーザIDを設定しておくものとする。   In the customer ID field of the function class 131 object related to the account opening, the user ID of the customer of the opening account is set in advance by the method of the object itself or the method of the other function class 131 object. And

すなわち、本実施の形態では、機能クラス131のメソッドによる、自分自身を含む機能クラス131のメソッドのメソッド呼出については、権限検査部315の検査対象から外しておくものとする。具体的には、メソッド呼出捕捉部311で捕捉すべきメソッド呼出は、機能クラス131のメソッドのメソッド呼出とデータクラス141の参照用メソッド及び更新用メソッドのメソッド呼出であるが、ここでは、機能クラス131のメソッドのメソッド呼出の呼出元を、サーバアプリケーション100に限定する。   That is, in the present embodiment, the method call of the method of the functional class 131 including itself by the method of the functional class 131 is excluded from the inspection target of the authority inspection unit 315. Specifically, the method calls to be captured by the method call capturing unit 311 are the method call of the method of the function class 131 and the method call of the reference method and the update method of the data class 141. The call source of the method call 131 is limited to the server application 100.

また、取引の注文という機能に設定された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 function class 131 called the order of the transaction. As a result, the authority checking unit 315 can determine whether the user ID (broker user ID) included in the user identification information matches the user ID in the approval broker field.

次に、プログラム実行時の処理内容について説明する。なお、図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 call capturing unit 311 from the authority checking unit 315, excludes the method call from the method of the function class 131, and from the server application 100. The method call is limited by the caller data included in the method call. Thereby, the method call capturing unit 311 captures the method call according to the setting.

そして端子A以降の処理は、図17に示すような処理に置き換える。まず、権限検査部315は、ステップS65の処理結果としてユーザ識別情報を取得できたか、すなわちユーザ識別が完了しているか確認する(ステップS101)。何らかの理由でユーザ識別情報が取得できない場合、すなわちユーザ識別が完了していない場合には、例外を発生させる(ステップS113)。   The processing after the terminal A is replaced with processing as shown in FIG. First, the authority checking unit 315 confirms whether user identification information has been acquired as a processing result of step S65, that is, whether user identification has been completed (step S101). If the user identification information cannot be acquired for some reason, that is, if the user identification is not completed, an exception is generated (step S113).

一方、ユーザ識別情報を取得できた場合には、権限検査部315は、ユーザ識別情報に含まれているロールと、自動生成項目データに含まれるクラスタイプ及びクラス識別名とで、権限テーブル11を検索して、該当する権限を取得する(ステップS103)。   On the other hand, when the user identification information can be acquired, the authority checking unit 315 updates the authority table 11 with the role included in the user identification information and the class type and class identification name included in the automatically generated item data. The corresponding authority is acquired by searching (step S103).

そして、権限検査部315は、取得した権限に、カスタマイズルールが設定されていることを示すデータが含まれるか判断する(ステップS105)。カスタマイズルールが設定されていることを示すデータが含まれない場合には、ステップS111に移行する。なお、ステップS111に移行する場合には、第1の実施の形態と同様の判断を行う。   Then, the authority checking unit 315 determines whether the acquired authority includes data indicating that the customization rule is set (step S105). If the data indicating that the customization rule is set is not included, the process proceeds to step S111. In the case of shifting to step S111, the same determination as in the first embodiment is performed.

一方、カスタマイズルールが設定されていることを示すデータが含まれる場合には、権限検査部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 authority checking unit 315 extracts the customization rule from the customization rule 317 and determines the customization rule from the called object. Data necessary for this is acquired (step S107). For example, in the case of R0 described above, the customer user ID is read from the customer ID field. If it is R1, the user ID of the approved broker is read from the approved broker field.

そして、権限検査部315は、ユーザ識別情報、自動生成項目のデータ及びオブジェクトから取得したデータから、今回のメソッド呼出が、該当するカスタマイズルールに従っているか判断する(ステップS109)。上でも述べたように、R0であれば、ユーザ識別情報に含まれるユーザIDと、オブジェクトから取得したユーザIDとが一致している場合には、カスタマイズルールに反することになる。また、R1であれば、ユーザ識別情報に含まれるユーザIDと、オブジェクトから取得したユーザIDとが一致している場合には、カスタマイズルールに従っていることとなる。   Then, the authority checking unit 315 determines whether the current method call conforms to the corresponding customization rule from the user identification information, the automatically generated item data, and the data acquired from the object (step S109). As described above, if it is R0, if the user ID included in the user identification information matches the user ID acquired from the object, it is against the customization rule. For R1, if the user ID included in the user identification information matches the user ID acquired from the object, the customization rule is followed.

このようにして得られたデータから、今回のメソッド呼出が正当なアクセスであるかを判断し(ステップ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 authority checking unit 315 generates an exception (step S113). ). On the other hand, if the access is legitimate, the authority checking unit 315 outputs a method call to the call destination object (step S115). The object 135 of the function class 131 or the object 145 of the data class 141, which is a call destination object, receives the method call and performs the requested processing (step S117). That is, normal processing is performed.

このように、カスタマイズルール317を権限検査部315の外に規定して、以上のような処理を権限検査部315が実施することによって、さまざまな権限確認を行うことができるようになる。なお、カスタマイズルール317ではなく、カスタマイズルールについて権限検査を行うような処理部を権限検査部315外に設けるようにしても良い。その際には、この場合、カスタマイズルールが規定されていることを検出すると、権限検査部315が、その処理部を起動して、その処理部が権限検査部315に対して必要なデータを取得するように要求する。そして、その処理部は、権限検査部315から得られたデータから、カスタマイズルールに従っているのかを判断する。   As described above, by defining the customization rule 317 outside the authority checking unit 315 and the authority checking unit 315 performing the above-described processing, various authority confirmations can be performed. It should be noted that a processing unit that performs an authority check on the customization rule instead of the customization rule 317 may be provided outside the authority check unit 315. In that case, in this case, when it is detected that the customization rule is defined, the authority checking unit 315 activates the processing unit, and the processing unit acquires necessary data from the authority checking unit 315. Request to do. Then, the processing unit determines from the data obtained from the authority checking unit 315 whether the customization rule is followed.

[その他の実施の形態]
これまでは権限テーブル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, data 1001a of application + personal information (Request + Personal Info) is defined between the customer and the account opening, and an arrow 1001b from the actor to the function representing the reference update authority is also defined. Yes. Similarly, data 1002a called account information (Account Info) is defined between the customer and the account opening, and an arrow 1002b from the function to the actor representing the reference authority is also defined.

さらに、結果(Result)というデータ1003aが、顧客と口座解約との間に規定されており、参照権限を表す、機能からアクタへの矢印1003bも規定されている。同様に、申請(Rquest)というデータ1004aが、顧客と口座解約との間に規定されており、参照更新権限を表す、アクタから機能への矢印1004bも規定されている。   Furthermore, data 1003a called “Result” is defined between the customer and the account cancellation, and an arrow 1003b from the function to the actor representing the reference authority is also defined. Similarly, an application (Rquest) data 1004a is defined between the customer and the account cancellation, and an actor-to-function arrow 1004b representing the reference update authority is also defined.

また、注文(Order)というデータ1005aが、顧客と取引の注文との間に規定されており、参照更新権限を表す、アクタから機能への矢印1005bも規定されている。   Further, data 1005a called “Order” is defined between the customer and the order of the transaction, and an arrow 1005b from the actor to the function representing the reference update authority is also defined.

さらに、資金(Money)というデータ1006aが、顧客と取引の実行との間に規定されており、参照更新権限を表す、アクタから機能への矢印1006bも規定されている。   Furthermore, data 1006a called “Money” is defined between the customer and the execution of the transaction, and an arrow 1006b from the actor to the function representing the reference update authority is also defined.

また、取引情報(Trade Info)というデータ1007aが、監査役と取引情報のチェックとの間に規定されており、参照権限を表す、機能からアクタへの矢印1007bも規定されている。   Further, data 1007a called transaction information (Trade Info) is defined between the auditor and the transaction information check, and an arrow 1007b from the function to the actor representing the reference authority is also defined.

さらに、申請+個人情報(Request+Personal Info)というデータ1008aが、マネージャと口座開設との間に規定されており、参照権限を表す、機能からアクタへの矢印1008bも規定されている。また、口座情報(Account Info)というデータ1009aが、マネージャと口座開設との間に規定されており、参照更新権限を表す、アクタから機能への矢印1009bも規定されている。さらに、申請(Request)というデータ1010aが、マネージャと口座解約との間に規定されており、参照権限を表す、機能からアクタへの矢印1010bも規定されている。さらに、結果(Result)というデータ1011aは、マネージャと口座解約との間に規定されており、参照更新権限を表す、アクタから機能への矢印1011bも規定されている。   Further, data 1008a of application + personal information (Request + Personal Info) is defined between the manager and the account opening, and an arrow 1008b from the function to the actor representing the reference authority is also defined. Further, data 1009a called account information (Account Info) is defined between the manager and the account opening, and an arrow 1009b from the actor to the function representing the reference update authority is also defined. Further, data 1010a called “Request” is defined between the manager and the account cancellation, and an arrow 1010b from the function to the actor representing the reference authority is also defined. Furthermore, data 1011a called “Result” is defined between the manager and the account cancellation, and an arrow 1011b from the actor to the function representing the reference update authority is also defined.

また、注文(Order)というデータ1012aが、ブローカと取引の注文との間に規定されており、参照権限を表す、機能からアクタへの矢印1012bも規定されている。また、資金(Money)というデータ1013aが、ブローカと取引の実行との間に規定されており、参照更新権限を表す、アクタから機能への矢印1013bも規定されている。   Further, data 1012a called “Order” is defined between the broker and the order of the transaction, and an arrow 1012b from the function to the actor representing the reference authority is also defined. Further, data 1013a called money is defined between the broker and the execution of the transaction, and an arrow 1013b from the actor to the function representing the reference update authority is also defined.

なお、データに含まれる<<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 data 1001a, the data 1004a, the data 1005a, the data 1006a, the data 1009a, the data 1011a, and the data 1013a, since an arrow from the actor to the function is set, the reference update authority is given to the actor.

さらに、アクタと機能間にデータが存在している場合には、機能からアクタへのフロー(矢印)を検出して、アクタに、対象データに対する参照権限を付与するように設定する(ステップ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 data 1002a, data 1003a, data 1007a, data 1008a, data 1010a, and data 1012a, an arrow from the function to the actor is set, so that the reference authority is given to the actor.

さらに、データに<<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 authority checking unit 315 can operate with a plurality of servers is prepared, a plurality of servers can be connected in parallel or in cooperation. It is also possible to adopt a configuration that operates in the same manner.

なお、サーバやユーザ端末は、コンピュータ装置であって、図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 memory 2501, a CPU 2503, a hard disk drive (HDD) 2505, a display control unit 2507 connected to the display device 2509, and a removable disk 2511. Drive device 2513, input device 2515, and communication control unit 2517 for connecting to a network are connected by a bus 2519. An operating system (OS) and an application program for executing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503. If necessary, the CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 to perform necessary operations. Further, data in the middle of processing is stored in the memory 2501 and stored in the HDD 2505 if necessary. In the embodiment of the present invention, an application program for performing the above-described processing is stored in a computer-readable removable disk 2511 and distributed, and installed in the HDD 2505 from the drive device 2513. In some cases, the HDD 2505 may be installed via a network such as the Internet and the communication control unit 2517. Such a computer apparatus realizes various functions as described above by organically cooperating hardware such as the CPU 2503 and the memory 2501 described above, the OS, and necessary application programs.

本実施の形態をまとめると以下のようになる。   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 appendix 1, including a step of determining whether or not the user identifier included in the identification information matches.

(付記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;
Supplementary note 1 or 2 program including.

(付記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.

本技術の実施の形態における、プログラム作成時の機能ブロック図である。It is a functional block diagram at the time of the program creation in embodiment of this technique. 第1の実施の形態における権限テーブルの一例を示す図である。It is a figure which shows an example of the authority table in 1st Embodiment. プログラム作成時の処理フローを示す図である。It is a figure which shows the processing flow at the time of program creation. 機能クラス生成処理の処理フローを示す図である。It is a figure which shows the processing flow of a function class production | generation process. 機能クラスの構造を模式的に示す図である。It is a figure which shows the structure of a function class typically. データクラス生成処理の処理フローを示す図である。It is a figure which shows the processing flow of a data class production | generation process. データクラスの構造を模式的に示す図である。It is a figure which shows the structure of a data class typically. プログラム構築後のアプリケーションの構造を模式的に示す図である。It is a figure which shows typically the structure of the application after program construction. プログラム実行時のシステム構成を示す図である。It is a figure which shows the system configuration | structure at the time of program execution. プログラム実行時の処理フローを示す図である。It is a figure which shows the processing flow at the time of program execution. 第1の実施の形態におけるプログラム実行時の処理フローを示す図である。It is a figure which shows the processing flow at the time of the program execution in 1st Embodiment. 第2の実施の形態における権限テーブルの一例を示す図である。It is a figure which shows an example of the authority table in 2nd Embodiment. 第2の実施の形態におけるデータクラスの構造の一例を示す図である。It is a figure which shows an example of the structure of the data class in 2nd Embodiment. 第2の実施の形態におけるプログラム実行時の処理フローを示す図である。It is a figure which shows the processing flow at the time of the program execution in 2nd Embodiment. 第3の実施の形態における権限テーブルの一例を示す図である。It is a figure which shows an example of the authority table in 3rd Embodiment. 第3の実施の形態における機能クラスの構成について説明するための図である。It is a figure for demonstrating the structure of the function class in 3rd Embodiment. 第3の実施の形態における機能クラスの構成について説明するための図である。It is a figure for demonstrating the structure of the function class in 3rd Embodiment. 第3の実施の形態におけるプログラム実行時の処理フローを示す図である。It is a figure which shows the processing flow at the time of the program execution in 3rd Embodiment. その他の実施の形態において用いられるユースケース図である。It is a use case figure used in other embodiment. ユースケース図から権限テーブルを生成するための処理の処理フローを示す図である。It is a figure which shows the processing flow of the process for producing | generating an authority table from a use case figure. その他の実施の形態において生成される権限テーブルの一例を示す図である。It is a figure which shows an example of the authority table produced | generated in other embodiment. コンピュータの機能ブロック図である。It is a functional block diagram of a computer.

符号の説明Explanation of symbols

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 automatic generator 13 Function class storage part 14 Data class storage part 1a, 1b User terminal 3 Server 31 OS
DESCRIPTION OF SYMBOLS 100 Server application 110 Session object production | generation part 311 Method call capture part 313 Session object 315 Authority inspection part 317 Customization rule 135 Function class object 145 Data class object

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.
JP2008278591A 2008-10-29 2008-10-29 Role-based access control method, program, and computer Expired - Fee Related JP5120207B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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