Computers and computing systems have affected nearly every aspect of modern living. Computers are generally involved in work, recreation, healthcare, transportation, entertainment, household management, etc.
When thinking of the rules governing the management of objects two main areas are usually considered: the permissions governing access to those objects and the events or workflows they trigger as part of those operations. The basic conceptual process is to define one or more conditions that are occurring and then express the management policy that should be enforced when those conditions occur. Or simply, “When this happens, I do that.” The sample relationships presented can be defined in terms of access control conditions and the events that result from the operations.
An access control system enforces access to computer resources based on predefined conditions. The access control system may be itself protecting access to resources or be a controlling module for a specialized system, like an identity management system or other system.
Access control grants the permissions of a user to perform the operation. Events, on the other hand, are triggered by the operations occurring and add workflows to the various processing stages of the same relationship. Together they define the management policy for the operation described by the expression.
In identity management systems available today, both the access control and events have been treated independently and distinct object definitions are used for both, separating the access control from the response to the actions in the system. The systems define the “when this happens” expression and then grant principals the access to perform that operation—this is known as an access control rule. Similarly, the systems define, through a different object or expression, the “when this happens” (i.e. when some operation is performed) expressions and then add the resulting processing rules for that event to respond to it.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.
One embodiment described herein includes a method practiced in a computing environment. The method includes acts for defining a unified access management policy expression for access control and events or workflows. The events or workflows are just examples of possible responses to the requested action in the system that makes the definition of the management policy. The basic conceptual process is to define the condition that is occurring and then express the management policy that should be enforced when that condition occurs. Or simply, “When this happens, I do that.” The event and workflow is analogous to the “I do that” in the policy expression or the reaction to the incoming request. The method stores access control information that defines permissions for access to resources based on one or more entities and one or more operations requested by the one or more entities. Events or workflows are stored that are executed in response to the one or more operations being performed. Storing events or workflows includes storing the events or workflows in a same definition as the access control information. A request is received to execute the one or more operations on one or more objects. The access control information is verified against the request. Verifying includes performing a single retrieval, retrieving both the access control information and the events or workflows. The workflows defined in the definition are executed.
In another embodiment practiced in a computing environment, a method of defining a unified management policy expression for access control and events or workflows is implemented. The method includes receiving user input at a computer implemented user interface selecting one or more principals. User input is received at a computer implemented user interface selecting one or more operation to be performed on one or more objects by the one or more principals. Additional user input is received at a computer implemented user interface selecting one or more attributes of the one or more resources. The attributes are attributes that the one or more principals perform the one or more operations on. User input is received at a computer implemented user interface defining one or more workflows that are performed if conditions of the unified management policy rule are met. One or more unified management policy rules are defined for the one or more operations. The unified management policy rules control access to resources. Defining unified management policy rules includes defining access control information and including workflows that are executed. The one or more unified management policy rules, including the workflows that are executed in response to the one or more operations being allowed, are stored. Storing events or workflows includes storing the events or workflows in a same definition as the access control information; in a computer readable medium among a collection of unified management policy rules.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Additional features and advantages will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by the practice of the teachings herein. Features and advantages of the invention may be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. Features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
In order to describe the manner in which the above-recited and other advantages and features can be obtained, a more particular description of the subject matter briefly described above will be rendered by reference to specific embodiments which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments and are not therefore to be considered to be limiting in scope, embodiments will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Some embodiments described herein include functionality for defining and/or implementing a unified management policy rule that contains both rights and workflow definitions grouped for authentication, authorization and action categories of the policy. In particular some embodiments include functionality to unify the events or workflows and access control rules into a single concept, more particularly into a single object definition. This unification defines a single and consistent mechanism to describe what is occurring in the system and to attach what workflow actions are performed as part of the processing. In this model a single definition of the condition(s) that are occurring in the system is used to grant the permissions and at the same time to define the operations performed in response to the actions in the system. The system can perform a single calculation to determine both pieces of information through a consistent definition in the system. Conceptually, rights are just expressions granting the permission for someone to request to perform a defined operation.
Some embodiments include functionality for unifying the access control definition together with the events that are triggered as part of the same operation in the system. Some embodiments include functionality for performing a single calculation to determine both the access permissions and required events to be triggered in the system. Some embodiments include functionality for having a single definition of a condition in the system that is shared across both the access control rules and the event triggering mechanism. Some embodiments include functionality for implementing a flexible model where the unified management rule could represent just an access control rule; or alternatively the definition can be used to just represent the events to be fired in the system without granting any permissions as part of its definition. Some embodiments include functionality for—allowing the single definition to define the conditions in the system using variations before the current state when the operation is being requested and the final state after the operation completes, as described above. For example, some embodiments may be used to perform the following:
Embodiments may include functionality for defining and comparing object's previous state and current state as part of determining if a management policy applies for a specific operation.
The system can also be used to describe the management policy rules for managing access to the rules themselves.
A unified management policy rule, or ManagementPolicyRule is based on the concept that a single definition can be used to describe what is occurring in the system. That single definition will then be bound to grant permissions and define the processes that should run as a response to the occurring operation.
Referring now to
The conditions information data structure 102 is associated with an access control data structure 103. The access control data structure defines if access is granted or not based on the conditions in the condition information data structure having been met.
Referring now to
Unified management policy rules may also allow for reflexivity, also referred to as reflexive rules. Reflexive rules allow definition where the requester is dynamic depending on what the target resource is. For example, one can define a single rule for all groups, where each group contains an attribute “owners” and the requestor is defined as the “owner” of the group object. When a request is received, the user is granted access only if they are identified in the owner attribute of the group. Different groups may have different owners. But a single rule can express this relationship. Other relationships can be expressed as long as the target object has a reference field to who the requesters can be. One can also do the inverse where the subject object has a reference to some object, and the resource object is defined in terms of the requester object. For example, a rule may be implemented where the requester can modify their own user object data.
An example of a simplified definition for a unified rule data structure illustrated as a ManagementPolicyRule is as follows:
In the above definition, the first 5 elements define the condition when the management policy is applicable. This is information such as that shown in the permissions data structure 102. For example, when a full time employee (FTE) updates Group object's groupType attribute and the updated group is part of the distribute groups. This example would be expressed as:
The GrantRight field includes information to facilitated deciding if this rule grants the requester the permission to request the operation. The remaining elements define the processing rules once this condition is met. For example, the information in the events data structure 104 may be included in the ManagementPolicyRule. In the following example, the permissions for this operation will be granted and an approval workflow is defined by group owners and all the group members are notified and the email system administrator is notified. This complete definition would now be:
One very specific embodiment, not intended to limit the scope of other embodiments may include definitions for elements of a unified model as presented in the following table. Notably, other embodiments may include other definitions and requirements and different terminology. Thus, a reference to an element being required or the use of the term “must” or other limiting terms, is only limiting to the particular example illustrated. Other unified rule models, unifying permissions information and events information may vary in their requirements.
In some embodiments, a management policy object can define only a right in the system without including any processes. Further, a management policy object can define any of Authentication, Authorization, or action processes without granting the permission. A management policy object can both grant the permission in the system and define any of Authentication, Authorization, or action processes as well.
Another important note is a distinction regarding how rights and events are applied and processed. In some embodiments, for a permission to be granted to perform an operation, any ManagementPolicyRule found that satisfies the operation criteria is sufficient. In some embodiments, when multiple ManagementPolicyRule objects match the access criteria, only the existence of the match is sufficient for the right to be granted. When multiple ManagementPolicyRule objects are matched, then all the processes for each of the matched objects may be required to be run as part of each stage.
Administrators can define a unified management policy rule through the systems user interface (UI) which models both the current and after operation states of the resource being acted on, together with the operations and its parameters and subjects to which it applies and includes the event definitions that are attached to those conditions.
Referring now to
A user can select the operations and users tab 210 (See
The principals element 216 allows a user to configure to whom (e.g. what users or requesters) the rule applies. As illustrated, in this example, this may be specified based on a specific set of users. For example, an object or list identifying objects corresponding to users may be specified. In some embodiments, the principals element 216 may be used to configure to whom the rule applies by specifying users in terms of principals as related to a resource. For example, the attributes of an object may be examined to determine principals. This enables single rule definition that covers broad relationships between the target resources and the principals requesting the operation. Examples include: Only owners of the group objects can perform updates to the group definition. Only objects creators can delete the objects.
The attributes element 218 can be used to select object attributes for a rule. In particular, a user may be given authorization to only perform actions on certain attributes of a resource. In the example illustrated, an administrative user may specify that a principal can perform specified operations on all attributes, or on selected specific attributes.
Selecting the “Next” button 212 in the operations and users tab 210 causes the selection of the condition before tab 220 (see
Selecting the “Next” button 212 in the condition before tab 220 selects the condition after tab 230 (see
Selecting the “Next” button 212 in the condition after tab 230 selects the policy workflows tab 240 (see
Selecting the create button 232 causes the rule to be created and stored in a repository of rules. The repository can then be used to determine access control permissions for operations on resource objects and the associated workflows that need to be applied to operations on those resource objects.
The system can also be used to describe the unified management policy rules for managing the policy to perform operations on various resources including the rules themselves.
The following discussion now refers to a number of methods and method acts that may be performed. It should be noted, that although the method acts may be discussed in a certain order or displayed in the Figures in a certain order, no particular ordering is necessarily required unless specifically stated, or required because an act is dependent on another act being completed prior to the act being performed.
Referring now to
The method 300 further includes receiving a request to execute the one or more operations (act 306) on one or more objects. For example, a requester may request an operation to be performed on a resource object.
The method 300 further includes computing the applicable unified management policy rules that apply for the incoming request, verifying the access control information against the request (act 308) for the rules that grant access. Computing includes performing a single retrieval, retrieving both the access control information and the events or workflows. Verifying may further include evaluating the access control information. For example, in the example illustrated in
The method 300 further includes executing the workflows defined in the definition (act 310). For example, as illustrated in
The method 300 may be performed where verifying the access control information against the request comprises performing a single calculation to determine both the access control information and the events or workflows through a consistent definition in the system. In particular, a single calculation is performed to determine if operations requested by requesters should be allowed to succeed and to determine that workflows, such as those defined in fields 116-120 of
Embodiments of the method 300 may be practiced to use pre-operation and post-operation state information to determine if a unified management policy rule should be applicable. As such, some embodiments may be practiced where verifying the access control information against the request includes determining the states of the one or more object when the operation is requested, determining the states of the one or more objects if the operation were to proceed, generating a comparison between the states of the one or more objects when the operation is requested and the states of the one or more objects if the operation were allowed to succeed, referencing one or more unified management policy rules where the unified management policy rules control access to resources based on current and post operation state, and determining that a rule exists that allows the operation to succeed based on the comparison.
In this example, allowing the operation to succeed may include having a rule that grants permission to perform the operation. The operation is then performed resulting in a change to the one or more objects stored on the computer readable media. In an alternative embodiment, allowing the operation to succeed includes committing the operation, such that one or more changes to the one or more objects are ratified such that subsequent requests for operations on the one or more objects are based on the operation after the one or more changes have been performed on the one or more objects. In particular, an operation may be performed when requested, but may not be ratified until the policy conditions of a unified management policy rule have been met. If the conditions are not met, the operation is rolled back.
Thus, embodiments may be implemented where determining the states of the one or more objects if the operation were allowed to succeed includes calculating one or more post-operation states without actually performing the operation on a resource object, or where determining the states of the one or more objects if the operation were allowed to succeed includes examining the one or more objects after the operation has been performed on the one or more objects, with the option of rolling back any operations.
As noted previously, unified management policy information may be stored related to one or more of operations, principals, attributes, states, or other information. As such, the method 300 may be performed by storing unified policy information that defines permissions for access to resources based on one or more entities and one or more operations requested by the one or more entities includes storing information about operations including one or more of create, delete, read, modify, modify insert, or modify remove operations. Alternatively or additionally, the method 300 may be performed by storing unified policy information that defines permissions for access to resources based on one or more entities and one or more operations requested by the one or more entities includes storing information about principal entities by specifying the principal entities as a group of principals. Alternatively or additionally, the method 300 may be performed by storing unified policy information that defines permissions for access to resources based on one or more entities and one or more operations requested by the one or more entities includes storing information about principal entities by specifying the principal entities as attributes of a resource object. Alternatively or additionally, the method 300 may be performed by storing unified policy information that defines permissions for access to resources based on one or more entities and one or more operations requested by the one or more entities includes storing information about attributes of a resource. The attributes of a resource are the attributes which operations can be performed on by the one or more entities. Alternatively or additionally, the method 300 may be performed by storing unified policy information that defines permissions for access to resources based on one or more principals or entities and one or more operations requested by the one or more principals or entities includes storing information about pre-operation state and post-operation state of resource objects.
Referring now to
The method 400 further includes receiving user input at a computer implemented user interface selecting one or more operation to be performed on one or more objects by the one or more principals (act 404). An example of this is illustrated in
The method 400 further includes receiving user input at a computer implemented user interface selecting one or more attributes of the one or more resources (act 406). The attributes are attributes that the one or more principals perform the one or more operations on. An example of this is illustrated at 218 of
The method 400 further includes receiving user input at a computer implemented user interface defining one or more workflows that are performed if conditions of the unified management policy rule are met (act 408). An example of this is illustrated at
The method 400 further includes defining one or more unified management policy rules for the one or more operations (act 410) based on the user input received. The unified management policy rules control access to resources. Defining unified management policy rules includes defining the access control information and workflows that are to be executed on the incoming request. The method 400 further includes storing the one or more unified management policy rules, including the workflows (act 412) that are executed in response to the one or more operations being performed. Storing events or workflows includes storing the events or workflows in a same definition as the unified management policy information; in a computer readable medium among a collection of unified management policy rules. For example, when a user clicks the create button 232 on the interface illustrated at
Embodiments of the present invention may comprise or utilize a special purpose or general-purpose computer including computer hardware. For example, the embodiments described previously may be implemented using computing system comprising appropriate hardware and/or software including processors, memory, storage, operating systems, application software or other hardware or software. Additionally components may be implemented on each their own separate stand-alone computer system including individualized hardware where the machines are interconnected through network communication channels or other communication channels. Alternatively, components may be implemented on a common shared computer system, where the machines share resources, such as processor resources, memory resources, storage resources, or other resources.
Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system. Computer-readable media that store computer-executable instructions are physical storage media. Computer-readable media that carry computer-executable instructions are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: physical storage media and transmission media.
Physical storage media includes RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer.
A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer, the computer properly views the connection as a transmission medium. Transmissions media can include a network and/or data links which can be used to carry or desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Combinations of the above should also be included within the scope of computer-readable media.
Further, upon reaching various computer system components, program code means in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to physical storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., a “NIC”), and then eventually transferred to computer system RAM and/or to less volatile physical storage media at a computer system. Thus, it should be understood that physical storage media can be included in computer system components that also (or even primarily) utilize transmission media.
Computer-executable instructions comprise, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.
Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, pagers, routers, switches, and the like. The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
This application claims the benefit of U.S. Provisional Application 61/032564 titled “RESOURCE STATE TRANSITION ACCESS CONTROL AND UNIFIED MANAGEMENT POLICY” filed on Feb. 29, 2008, which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
61032564 | Feb 2008 | US |