(19) (12) EUROPEAN PATENT SPECIFICATION (11) EP 1 674 960 B1 (45) Date of publication and mention of the grant of the patent: 05..2011 Bulletin 2011/40 (51) Int Cl.: G06F 21/24 (2006.01) (21) Application number: 04293112.1 (22) Date of filing: 23.12.2004 (54) Reverse engineering access control Umgekehrtes Herleiten von Zugriffsteuerungen Détermination de contrôle d accès par rétroconception (84) Designated Contracting States: AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU MC NL PL PT RO SE SI SK TR (43) Date of publication of application: 28.06.2006 Bulletin 2006/26 (73) Proprietor: SAP AG 69190 Walldorf (DE) (72) Inventors: Rits, Maarten E. 06300 Nice (FR) De Boe, Benjamin Kontich 2550 (BE) (74) Representative: Müller-Boré & Partner Patentanwälte Grafinger Straße 2 81671 München (DE) (56) References cited: WO-A-02/41150 WO-A-03/019854 US-A- 5 335 346 US-A1-2004 128 556 EP 1 674 960 B1 Note: Within nine months of the publication of the mention of the grant of the European patent in the European Patent Bulletin, any person may give notice to the European Patent Office of opposition to that patent, in accordance with the Implementing Regulations. Notice of opposition shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention). Printed by Jouve, 75001 PARIS (FR)
1 EP 1 674 960 B1 2 Description Field [0001] The present application relates to access control in computer systems communication, and in particular, systems and methods for reverse engineering access control in computer systems. Background [0002] Many software applications include some type of access control technology, either for the application itself or for one or more of the components used by the application such as database components or web services components. Access control technologies vary, and include role based security, user identification and authorization, rights based access, or access privileges. In certain cases, use of access control and the assignment of appropriate roles may be legally mandated. For example, the Health Insurance Portability and Accountability Act of 1996 includes security and data privacy provisions that make access control a vital part of software in the health care industry. [0003] Access control may be complicated by the fact that software applications may be combined in workflows. Workflows are typically a series of two or more applications that perform a series of tasks. Each of the software applications in the workflow may use differing types and combinations of access control technology, each of which may require different roles, rights or privileges. [0004] It is desirable that a user of a software application have a role with sufficient rights or privileges to use the application, but not more rights or privileges that appropriate for the role. Determining the appropriate role, rights or privileges can be difficult in an environment where multiple access control technologies may be present in a workflow or application. A user whose role or privileges are insufficient will be unable to successfully execute the application or workflow. A user whose role or privileges are set too high may be granted access to applications or data they shouldn t have. [0005] WO 02/41150 A1 discloses an application for protecting software applications and their underlying proprietary data. The ability of clients to utilize various functionality of software applications having a hierarchy of functions, sub-functions and sub-sub-functions is controlled by an application security database system (ASDS). The ASDS relies on a database which stores information that correlates different applications and functions with different clients and users. This stored information is consulted by the ASDS when determining whether a requested function can be performed by the requesting user. The database preferably relates the functions of each application in a hierarchical fashion. This allows an administrator to suspend access to an application or some of its parts thereby affecting all clients 5 15 20 25 30 35 40 45 50 55 and groups of clients globally. [0006] US 2004/128556 A1 discloses an algorithm that manages the ability of a user or software program to access certain protected file resources. In particular, a method for file system security is described, that controls access to the file system resources using externally stored attributes. During a file access attempt, an identifier of this file will be matched against a set of protected files in a security database. If that file is not in the database, there is no protection on the file and the requesting user will be allowed to access the file. If a match does show that the file is protected there will be a determination as to whether the requesting user will be allowed access to the file. [0007] US 5 335 346 A describes a system and a method for providing an access control list which spans across object boundaries in an object oriented database. Within the entries of the access control lists, each of the permissions for read, write, and execute can be assigned separately to each of a number of ids representing user ids or group ids. Upon request for access to the data by the user, the user id of the user and the group ids for which the user is a member are searched for within the entries to determine whether the user has the privileges to perform the operation requested against the objects. [0008] Because it can be difficult to determine a correct role or privilege level, system administrators are often tempted to err on the side of making sure the user can run the application or workflow by setting the role or privilege level higher than the user s actual role warrants. This is undesirable because the user may then either inadvertently or maliciously gain access to software and data that the user is not meant to access. [0009] It is the object of the invention to provide a computer implemented method and a computer system for improving security for assigning appropriate access rights to a user for the use of particular software applications. [00] This object is fulfilled by method, a computerreadable medium and a system having the features disclosed in the independent claims. Preferred embodiments are defined in the dependent subclaims. Brief Description of Drawings [0011] Figure 1 illustrates a workflow in which embodiments of the invention may be practiced. [0012] Figure 2 illustrates a software application environment in which embodiments of the invention may be practiced. [0013] Figures 3A - 3C illustrate example configuration files use in access control technologies used in various embodiments of the invention. [0014] Figure 4 provides further details for a software application environments in which embodiments of the invention may be practiced. [0015] Figure 5 is a flowchart illustrating methods for reverse engineering access control according to embod- 2
3 EP 1 674 960 B1 4 iments of the invention. [0016] Figure 6 illustrates an example configuration file according to an embodiment of the invention. [0017] Figure 7 illustrates an example report according to an embodiment of the invention. Detailed Description [0018] In the following detailed description of example embodiments of the invention, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration specific example embodiments in which the inventive subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the various embodiments of the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the scope of the inventive subject matter. The following detailed description is, therefore, not to be taken in a limiting sense. [0019] In the Figures, the same reference number is used throughout to refer to an identical component which appears in multiple Figures. Signals and connections may be referred to by the same reference number or label, and the actual meaning will be clear from its use in the context of the description. [0020] FIG. 1 illustrates an example workflow software environment in which embodiments of the invention may be practiced. In the example environment, workflow 2 includes three software applications 1, 112 and 114. The workflow invokes each of the applications as needed or as indicated by a user. Although three software applications are shown in FIG. 1, those of skill in the art will appreciate that a workflow may be comprised of any number of software applications. In some embodiments, a software application may be developed using the JAVA programming language and a suitably configured development environment. However, the embodiments of the inventions are not limited to a particular programming language or development environment. In alternative embodiments, the software applications may be developed using ABAP (Advanced Business Application Programming Language) programming language and development environment available from SAP or the.net framework development environment available from Microsoft Corporation. [0021] FIG. 2 illustrates the major components of a software application 1 in which embodiments of the invention may be practiced. At one or more points during its control flow, software application 1 may execute code to invoke an access control target 202, 204 or 206. For the purposes of this specification, an access control target is a call to a function, method, subroutine or component where execution of the function, method, subroutine or component is limited to those users that have been granted access to the function, method, subroutine or component. Access may be granted on the basis of roles, 5 15 20 25 30 35 40 45 50 55 privileges, rights, user identifiers, passwords and combinations thereof. The embodiments of the invention are not limited to any particular access control mechanism. In some embodiments, role based access control is used. The access control target may be used to limit access to functionality that is part of the software application, or it may be used to provide access to services. Examples of such services include web servers 222, J2EE services 224 and database services 226. [0022] Access to the services may be directly through the access control target, or through an intermediate interface. Examples of such intermediate interfaces include web service proxy (WSProxy) interfaces 212 and JAVA database connectivity (JDBC) interfaces 216. The embodiments of the invention are not limited to particular service interfaces. [0023] Access control to the functions and services may be defined as access control policies 232, 234 and 236. Varying services may use varying types of access control mechanisms and therefore have differing ways of configuring access control policies. In some embodiments of the invention, access control may be provided and/or enforced by JAAS (JAVA Authentication and Authorization Service), XACML (extensible Access Control Markup Language) policy based enforcement components, container managed security mechanisms offered by standard J2EE (Java 2 Platform Enterprise Edition), and database security mechanisms such as stored procedures. Further information on XACML is available from OASIS Open, a consortium of major software vendors. Further information on JAAS and J2EE is available from Sun Microsystems, Inc. [0024] In the example application configuration illustrated in FIG. 2, access to web services 222 is defined by XACML based policy 232, access to J2EE services 224 is defined by J2EE policies or JAAS policies 234, and access to database services 236 may be defined by database security policy 236. It should be noted that these access control mechanisms are exemplary, and that no embodiment of the invention is limited to a particular access control mechanism or combination of access control mechanisms. [0025] FIGs. 3A, 3B and 3C are example policy configuration excerpts, each of which expresses the concept that "a user having a role of minister is allowed to display a draft of a bill." FIG. 3A is an excerpt of an example policy configuration defined conforming to XACML standards. As shown in the example configuration, a subjectmatch tag is used to indicate that if the attribute role contains a string that equals "minister", then the user will be permitted to execute a method named "displaydraft." [0026] FIG. 3B is an excerpt of an example policy configuration defined that conforms to J2EE standards. As shown in the example configuration, a user with a role name of "minister" is permitted to execute a displaydraft method or a reviewdraft method. [0027] FIG. 3C is an excerpt of an example policy configuration defined that conforms to JAAS standards. As 3
5 EP 1 674 960 B1 6 5 15 20 25 30 35 40 45 50 55 shown in the example configuration, a user with a role principal (i.e. identification) or "minister" is granted permission to execute exit, displaydraft, reviewdraft, start- Draft and display Review methods. [0028] FIG. 4 is a diagram providing further details of a software application incorporating embodiments of the invention. In order to avoid obscuring the invention, the services components 222-226, while they may be present in varying embodiments, are not illustrated in FIG. 4. In some embodiments of the invention, a call to an access control policy engine 412 is inserted (represented as calls 402, 404 and 406 in the example configuration) at points where an access control target is invoked through a call or other method of invocation, by a code weaving component 414. [0029] Code weaving component 414 may be any type of code weaving software (also referred to as aspect weaving). In some embodiments, code weaving component 414 is the AspectJ code weaver. The AspectJ code weaver is available from the Eclipse Foundation at the URL "www.eclipse.org." In some embodiments, code weaving component 414 reads a target configuration file 420 to determine which functions, methods or components are access control functions, subroutines, methods or components of interest. An example target configuration file is shown in FIG. 6. In varying embodiments, code weaving component 414 may operate on source code or object code. In particular embodiments, code weaving component 414 operates on JAVA byte code for a JAVA virtual machine. [0030] The inserted calls cause an access control policy analysis engine 412 to be invoked. Access control policy analysis engine 412 reads and interprets the various policy configuration files 232, 234 and 236 for various supported access control policy files. When invoked, the control policy analysis engine4 412 interprets the appropriate policy based on the type of access control mechanism and determines the current access control parameters (roles, privileges, rights, user IDs etc.) needed to successfully execute the access control target. These parameters may then be reported on report 422. Report 422 may be a printable report, or report 422 may be a set of data in a database or file. An example report 422 is provided in FIG. 7. Further details on the operation of the above described system are provided below with reference to the flow chart illustrated in FIG. 5. [0031] FIG. 5 is a flowchart illustrating methods for reverse engineering access control according to various embodiments of the invention. The methods may be performed within an operating environment such as that described above with reference to FIG. 4 or within alternative environments. The methods to be performed by the operating environment constitute computer programs made up of computer-executable instructions. Describing the methods by reference to a flowchart enables one skilled in the art to develop such programs including such instructions to carry out the methods on suitable computers (the processor of the computer executing the instructions from machine-readable media such as RAM, ROM, CD-ROM, DVD-ROM, flash memory etc.). The methods illustrated in FIG. 5 are inclusive of the acts performed by an operating environment executing an example embodiment of the invention. [0032] The method begins by determining a set of access control targets for an application or set of applications in a workflow (block 502). In some embodiments of the invention, the set of access control targets is determined by reading a configuration file such as that illustrated in FIG. 6. The configuration file may include the names, classes and access control types for various access control functions, methods, subroutines or components. [0033] Next, a system executing the method determines whether any of the access control targets are present in a software application (block 504). In some embodiments, this determination may be made by scanning the source code for the access control targets. In alternative embodiments, this determination may be made by interpreting and scanning object code to determine if the access control targets are present. In some embodiments, calls to invoke an access control policy analysis engine are inserted in the source code or object code wherever an access control target is present. In particular embodiments, this insertion is accomplished using the AspectJ code weaver. [0034] Next, a system executing the method determines access control parameters for the access control target (block 506), In those embodiments where calls to an access control policy engine have been inserted, this determination is made by running the subject software application. During the course of the execution of the software application, the calls to the policy engine will be invoked. The access control policy engine will then determine what access control parameters may be used to allow execution of the access control target. It should be noted that during this run of the software application, the user running the application does not necessarily need the required role, privilege or other rights necessary to execute the target. This is because the access control policy analysis engine may be used to interpret the access control policy independently of whether or not the user has the requisite role, privilege or right. [0035] Next, a system executing the method reports on the roles, rights, or privileges that may be used to successfully execute the access control target. As noted above, this report may be a printable report. In alternative embodiments, the reporting step may comprise storing data in a database or other persistent storage. [0036] Next, in some embodiments, the system executing the method determines if other applications are Ieft to be analyzed (block 5). If so, the system returns to block 504 to analyze the next application. Otherwise, the system proceeds to block 512 to determine the set of access control parameters that are common across each of the access control targets. In other words, the system determines a least common denominator for 4
7 EP 1 674 960 B1 8 roles, privileges, rights, or other access control parameters. The set of common access control parameters may then be reported (block 514). As noted above, the report may be a printable report, or the report may comprise data store in a database, text file, or other persistent storage. [0037] FIG. 6 illustrates an excerpt of an example configuration file according to an embodiment of the invention. The example configuration illustrated in FIG. 6 comprises a listing of access control targets that may potentially exist in software applications that are processed by the system and method embodiments. The example configuration has three sections, one for each access control type, J2EE, XACML and JAAS. Each section lists the access control targets applicable for the access control type. In the example configuration, a class name and a method name for provided for each access control target. It should be noted that the configuration file illustrated in FIG. 6 is but one example of a configuration file format. Those of skill in the art will appreciate that a configuration file may have a variety of alternative formats to that illustrated in FIG 6 and that such alternative formats are within the scope of the present invention. [0038] FIG. 7 illustrates an excerpt of an example report according to an embodiment of the invention. The example report includes information produced by particular embodiments of the invention after analyzing the access control policies utilized by a single application. The example report includes information about the access control target that was executed. In some embodiments, this information includes the method name of the access control target, a stack trace indicating where in the application the access control target was called, and a list of roles allowed to execute the method according to the access control policy in force for the application. In the example provided in FIG. 7, the access control policy in effect when the application was analyzed indicates that for the method entitled "doaction" in the "reac.j2ee.beans.business.business" class, a user with a role of "judicial authority", "minister", "president", and "admin" may execute the method. In a subsequent access control target method call, a user with a role of "president" and "admin" may execute the method. Thus the two common roles that may execute both methods are "president" and "admin." Those of skill in the art will appreciate that other report formats are possible and within the scope of the present invention. [0039] In the foregoing detailed description of embodiments of the invention, various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments of the invention require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the detailed description of embodiments of the invention, with 5 15 20 25 30 35 40 45 50 55 each claim standing on its own as a separate embodiment. It is understood that the above description is intended to be illustrative, and not restrictive. It is intended to cover all alternatives, modifications and equivalents as may be included within the scope of the present invention as defined in the appended claims. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of the invention should, therefore, be determined with reference to the appended claims, along with the full scope of equivalents to which such claims are entitled. In the appended claims, the terms "including" and "in which" are used as the plain-english equivalents of the respective terms "comprising" and "wherein," respectively. Moreover, the terms "first," "second," and "third," etc., are used merely as labels, and are not intended to impose numerical requirements or orders on their objects unless such requirements or orders are clear from the context of their use. Claims 1. A computer implemented method for access control comprising: a step (502) of determining a set of access control targets, said access control targets comprising calls to methods and/or functions and/or subroutines and/or components used by software applications, where the execution of said methods and/or functions and/or subroutines and/or components is limited to users that have been granted access thereto on the basis of an access control policy for each access control target; a step (504) of analyzing at least one software application (1) to determine the presence of at least one access control target (202) of the determined set of access control targets in the at least one software application (1); a step (506) of analyzing the access control policy (232) for the at least one access control target (202) present in the at least one software application (1) to determine access control parameters comprising the privileges needed to allow successful execution of the at least one access control target, wherein analyzing the access control policy (232) for the at least one access control target (202) comprises inserting a call (402) to an access control analysis component (412) in the at least one software application (1); and a step (508) of reporting the access control parameters; and a step (512) of analyzing the report to determine and report (514) the set of access control parameters common to the set of access control targets present in the at least one software ap- 5
9 EP 1 674 960 B1 plication (1), wherein said set of access control parameters is the least common denominator for the privileges comprised in said access control parameters. 2. The method of claim 1, wherein the at least one software application (1) comprises source code. 3. The method of any one of the preceding claims, wherein the at least one software application (1) comprises object code. 4. The method of claim 3, wherein the object code comprises byte code for a JAVA virtual machine. 5. The method of claim 1, wherein inserting the call (402) to the access control analysis component (412) includes utilizing a code weaving process. 6. The method of any one of the preceding claims, wherein the at least one software application comprises at least two software applications (1, 112) in a workflow (2). 7. The method of claim 6, further comprising determining a set of access control privileges common across all access control targets of the set of access control targets in the workflow (2). 8. The method of any one of the preceding claims, wherein the set of access control targets (202) include an access control target selected from the group consisting of XACML, JAAS, J2EE and database roles. 9. A computer-readable medium having computer executable instructions for performing a method according to any one of the preceding claims.. A computer system comprising: an access control policy analysis component (412); and a code weaving component (414) operable to: 5 15 20 25 30 35 40 45 50 55 read a set of access control targets, said access control targets comprising methods and/or functions and/or subroutines and/or components the execution of which is limited to users that have been granted access thereto on the basis of an access control policy for each access control target, analyze at least one software application (1) to determine the presence of at least one access control target (202) of the set of access control targets in the at least one software application, and insert a call (402) to the access control policy analysis component (412); wherein the access control policy analysis component (412) is further operable to: read the access control policy for the at least one determined access control target (202), analyze the read access control policy to determine access control parameters comprising the privileges needed to allow successful execution of the at least one access control target (202), report the access control parameters, and analyze the report to determine and report the set of access control parameters common to the set of access control targets (202, 204, 206) present in the at least one software application (1), wherein said set of access control parameters is the least common denominator for the privileges comprised in said access control parameters. 11. The computer system of claim, wherein the at least one software application (1) comprises source code. 12. The computer system of claim or 11, wherein, the at least one software application (1) comprises object code. 13. The computer system of claim 12, wherein the object code comprises byte code for a JAVA virtual machine. 14. The computer system of any one of claims to 13, further comprising a workflow (2) and wherein the at least one software application (1) comprises at least two software applications (1, 112) in the workflow (2). 15. The computer system of claim 14, wherein the access control policy analysis component (412) is further operable to determine a set of access control privileges common across all of the set of access control targets (202, 204, 206) in the workflow (2). 16. The computer system of any one of claims to 15, wherein the set of access control target types include an access control target type selected from the group consisting of XACML, JAAS, J2EE and database roles. Patentansprüche 1. Computerimplementiertes Verfahren zur Zugriffssteuerung, umfassend: 6
11 EP 1 674 960 B1 12 einen Schritt (502) zum Bestimmen eines Satzes von Zugriffssteuerzielen, wobei die Zugriffssteuerziele Aufrufe von Verfahren und/oder Funktionen und/oder Subroutinen und/oder Komponenten, die von Softwareanwendungen verwendet werden, umfassen, wobei die Ausführung der Verfahren und/oder Funktionen und/oder Subroutinen und/oder Komponenten auf Anwender begrenzt ist, denen auf Grundlage eines Zugriffssteuerregelwerkes für jedes Zugriffssteuerziel ein Zugriff hierauf gestattet worden ist; einen Schritt (504) zum Analysieren wenigstens einer Softwareanwendung (1) zum Bestimmen des Vorhandenseins wenigstens eines Zugriffssteuerzieles (202) des bestimmten Satzes von Zugriffssteuerzielen in der wenigstens einen Softwareanwendung (1); einen Schritt (506) zum Analysieren des Zugriffssteuerregelwerkes (232) für das wenigstens eine Zugriffssteuerziel (202), das in der wenigstens einen Softwareanwendung (1) vorhanden ist, zum Bestimmen von Zugriffssteuerparametern, die die Vorrechte umfassen, die benötigt werden, um eine erfolgreiche Ausführung des wenigstens eines Zugriffssteuerzieles zu ermöglichen, wobei das Analysieren des Zugriffssteuerregelwerkes (232) für das wenigstens eine Zugriffssteuerziel (202) ein Einfügen eines Aufrufes (402) in eine Zugriffssteueranalysekomponente (412) in der wenigstens einen Softwareanwendung (1) umfasst; und einen Schritt (508) zum Berichten der Zugriffssteuerparameter; und einen Schritt (512) zum Analysieren des Berichtes zum Bestimmen und Berichten (514) des Satzes von Zugriffssteuerparametern, die dem Satz von Zugriffssteuerzielen gemeinsam sind, die in der wenigstens einen Softwareanwendung (1) vorhanden sind, wobei der Satz von Zugriffssteuerparametern der kleinste gemeinsame Nenner für die Vorrechte ist, die in den Zugriffssteuerparametern umfasst sind. 2. Verfahren nach Anspruch 1, wobei die wenigstens eine Softwareanwendung (1) Quellcode umfasst. 3. Verfahren nach einem der vorhergehenden Ansprüche, wobei die wenigstens eine Softwareanwendung (1) Objektcode umfasst. 4. Verfahren nach Anspruch 3, wobei der Objektcode Bytecode für eine virtuelle JAVA-Maschine umfasst. 5 15 20 25 30 35 40 45 50 55 5. Verfahren nach Anspruch 1, wobei das Einfügen des Aufrufes (402) in die Zugriffssteueranalysekomponente (412) ein Verwenden eines Codewebprozesses (code weaving process) beinhaltet. 6. Verfahren nach einem der vorhergehenden Ansprüche, wobei die wenigstens eine Softwareanwendung wenigstens zwei Softwareanwendungen (1, 112) in einem Workflow (2) umfasst. 7. Verfahren nach Anspruch 6, des Weiteren umfassend ein Bestimmen eines Satzes von Zugriffssteuervorrechten, die allen Zugriffssteuerzielen des Satzes von Zugriffssteuerzielen in dem Workflow (2) gemeinsam sind. 8. Verfahren nach einem der vorhergehenden Ansprüche, wobei der Satz von Zugriffssteuerzielen (202) ein Zugriffssteuerziel beinhaltet, das aus seiner Gruppe ausgewählt ist, die aus XACML, JAAS, J2EE und Datenbankrollen (database roles) besteht. 9. Computerlesbares Medium mit computerausführbaren Anweisungen zur Durchführung eines Verfahrens nach einem der vorhergehenden Ansprüche.. Computersystem, umfassend: eine Zugriffssteuerregelwerkanalysekomponente (412); und eine Codewebkomponente (414), die betrieben werden kann zum: Lesen eines Satzes von Zugriffssteuerzielen, wobei die Zugriffssteuerziele Verfahren und/oder Funktionen und/oder Subroutinen und/oder Komponenten umfassen, deren Ausführung auf Anwender beschränkt ist, denen auf Grundlage eines Zugriffssteuerregelwerkes für jedes Zugriffssteuerziel ein Zugriff hierauf gestattet worden ist, Analysieren wenigstens einer Softwareanwendung (1) zum Bestimmen des Vorhandenseins wenigstens eines Zugriffssteuerzieles (202) des Satzes von Zugriffssteuerzielen in der wenigstens einen Softwareanwendung und Einfügen eines Aufrufes (402) in die Zugriffssteuerregelwerkanalysekomponente (412); wobei die Zugriffssteuerregelwerkanalysekomponente (412) des Weiteren betrieben werden kann zum: Lesen des Zugriffssteuerregelwerkes für das wenigstens eine bestimmte Zugriffssteuerziel (202); Analysieren des gelesenen Zugriffssteuerregelwerkes zum Bestimmen von Zugriffs- 7
13 EP 1 674 960 B1 14 steuerparametern, die die Vorrechte umfassen, die benötigt werden, um eine erfolgreiche Ausführung des wenigstens einen Zugriffssteuerzieles (202) zu ermöglichen, Berichten der Zugriffssteuerparameter und Analysieren des Berichtes zum Bestimmen und Berichten des Satzes von Zugriffssteuerparametern, die dem Satz von Zugriffssteuerzielen (202, 204, 206) gemeinsam sind, die in der wenigstens einen Softwareanwendung (1) vorhanden sind, wobei der Satz von Zugriffssteuerparametern der kleinste gemeinsame Nenner für die Vorrechte ist, die in den Zugriffssteuerparametern enthalten sind. 11. Computersystem nach Anspruch, wobei die wenigstens eine Softwareanwendung (1) Quellcode umfasst. 12. Computersystem nach Anspruch oder 11, wobei die wenigstens eine Softwareanwendung (1) Objektcode umfasst. 13. Computersystem nach Anspruch 12, wobei der Objektcode Bytecode für eine virtuelle JAVA-Maschine umfasst. 14. Computersystem nach einem der Ansprüche bis 13, des Weiteren umfassend einen Workflow (112), wobei die wenigstens eine Softwareanwendung (1) wenigstens zwei Softwareanwendungen (1, 112) in dem Workflow (2) umfasst. 15. Computersystem nach Anspruch 14, wobei die Zugriffssteuerregelwerkanalysekomponente (412) des Weiteren betrieben werden kann zum: Bestimmen eines Satzes von Zugriffssteuervorrechten, die allen aus dem Satz von Zugriffssteuerzielen (202, 204, 206) in dem Workflow (2) gemeinsam sind. 16. Computersystem nach einem der Ansprüche bis 15, wobei der Satz von Zugriffssteuerzieltypen einen Zugriffssteuerzieltyp beinhaltet, der aus einer Gruppe ausgewählt ist, die aus XACML, JAAS, J2EE und Datenbankrollen (database roles) besteht. Revendications 1. Procédé mis en oeuvre par ordinateur pour le contrôle d accès comprenant : 5 15 20 25 30 35 40 45 50 55 une étape (502) consistant à déterminer un ensemble de cibles de contrôle d accès, lesdites cibles de contrôle d accès comprenant des appels à des procédés et/ou fonctions et/ou sousroutines et/ou composants utilisés par des applications logicielles, où l exécution desdits procédés et/ou fonctions et/ou sous-routines et/ou composants est limitée à des utilisateurs à qui l accès a été accordé en fonction d une politique de contrôle d accès pour chaque cible de contrôle d accès ; une étape (504) consistant à analyser au moins une application logicielle (1) pour déterminer la présence d au moins une cible de contrôle d accès (202) de l ensemble déterminé de cibles de contrôle d accès dans l au moins une application logicielle (1) ; une étape (506) consistant à analyser la politique de contrôle d accès (232) pour l au moins une cible de contrôle d accès (202) présente dans l au moins une application logicielle (1) pour déterminer des paramètres de contrôle d accès comprenant les privilèges nécessaires pour permettre l exécution réussie de l au moins une cible de contrôle d accès, dans lequel l analyse de la politique de contrôle d accès (232) pour l au moins une cible de contrôle d accès (202) comprend l insertion d un appel (402) à un composant d analyse de contrôle d accès (412) dans l au moins une application logicielle (1) ; et une étape (508) consistant à rapporter les paramètres de contrôle d accès ; et une étape (512) consistant à analyser le rapport pour déterminer et rapporter (514) l ensemble de paramètres de contrôle d accès communs à l ensemble de cibles de contrôle d accès présentes dans l au moins une application logicielle (1), dans lequel ledit ensemble de paramètres de contrôle d accès est le dénominateur le moins commun pour les privilèges compris dans lesdits paramètres de contrôle d accès. 2. Procédé selon la revendication 1, dans lequel l au moins une application logicielle (1) comprend du code source. 3. Procédé selon l une quelconque des revendications précédentes, dans lequel l au moins une application logicielle (1) comprend du code exécutable. 4. Procédé selon la revendication 3, dans lequel le code exécutable comprend du code intermédiaire pour une machine virtuelle JAVA. 5. Procédé selon la revendication 1, dans lequel l insertion de l appel (402) au composant d analyse de contrôle d accès (412) inclut l utilisation d un processus de tissage de code. 6. Procédé selon l une quelconque des revendications précédentes, dans lequel l au moins une application logicielle comprend au moins deux applications lo- 8
15 EP 1 674 960 B1 16 gicielles (1, 112) dans un flux de production (2). 7. Procédé selon la revendication 6, comprenant en outre la détermination d un ensemble de privilèges de contrôle d accès communs en travers de toutes les cibles de contrôle d accès de l ensemble de cibles de contrôle d accès dans le flux de production (2). 8. Procédé selon l une quelconque des revendications précédentes, dans lequel l ensemble de cibles de contrôle d accès (202) inclut une cible de contrôle d accès sélectionnée parmi le groupe constitué de XACML, JAAS, J2EE et de rôles de base de données. 5 15 lire la politique de contrôle d accès pour l au moins une cible de contrôle d accès déterminée (202), analyser la politique de contrôle d accès lue pour déterminer des paramètres de contrôle d accès comprenant les privilèges nécessaires pour permettre l exécution réussie de l au moins une cible de contrôle d accès (202), rapporter les paramètres de contrôle d accès, et analyser le rapport pour déterminer et rapporter l ensemble de paramètres de contrôle d accès communs à l ensemble de cibles de contrôle d accès (202, 204, 206) présentes dans l au moins une application logicielle (1), dans lequel ledit ensemble de paramètres de contrôle d accès est le dénominateur le moins commun pour les privilèges compris dans lesdits paramètres de contrôle d accès. 11. Système informatique selon la revendication, dans lequel l au moins une application logicielle (1) comprend du code source. 9. Support lisible par ordinateur ayant des instructions exécutables par ordinateur pour réaliser un procédé selon l une quelconque des revendications précédentes.. Système informatique comprenant : un composant d analyse de politique de contrôle d accès (412) ; et un composant de tissage de code (414) pouvant opérer pour : lire un ensemble de cibles de contrôle d accès, lesdites cibles de contrôle d accès comprenant des procédés et/ou fonctions et/ou sous-routines et/ou composants dont l exécution est limitée à des utilisateurs à qui l accès a été accordé en fonction d une politique de contrôle d accès pour chaque cible de contrôle d accès, analyser au moins une application logicielle (1) pour déterminer la présence d au moins une cible de contrôle d accès (202) de l ensemble de cibles de contrôle d accès dans l au moins une application logicielle, et insérer un appel (402) au composant d analyse de politique de contrôle d accès (412); dans lequel le composant d analyse de politique de contrôle d accès (412) peut en outre opérer pour : 20 25 30 35 40 45 12. Système informatique selon la revendication ou 11, dans lequel l au moins une application logicielle (1) comprend du code exécutable. 13. Système informatique selon la revendication 12, dans lequel le code exécutable comprend du code intermédiaire pour une machine virtuelle JAVA. 14. Système informatique selon l une quelconque des revendications à 13, comprenant en outre un flux de production (2) et dans lequel l au moins une application logicielle (1) comprend au moins deux applications logicielles (1, 112) dans le flux de production (2). 15. Système informatique selon la revendication 14, dans lequel le composant d analyse de politique de contrôle d accès (412) peut en outre opérer pour déterminer un ensemble de privilèges de contrôle d accès communs en travers de l intégralité de l ensemble de cibles de contrôle d accès (202, 204, 206) dans le flux de production (2). 16. Système informatique selon l une quelconque des revendications à 15, dans lequel l ensemble de types de cibles de contrôle d accès inclut un type de cibles de contrôle d accès sélectionné parmi le groupe constitué de XACML, JAAS, J2EE et de rôles de base de données. 50 55 9
11
12
13
14
15
16
17
18
REFERENCES CITED IN THE DESCRIPTION This list of references cited by the applicant is for the reader s convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard. Patent documents cited in the description WO 0241150 A1 [0005] US 2004128556 A1 [0006] US 5335346 A [0007] 19