An authorization data model factors roles into generic roles and responsibilities, using these attributes at run-time to complete an authorization process based on non-static privileges associated with currently defined roles and responsibilities. multiple applications collect current variable authorization information at run-time, when prompted by a user request to access a protected resource, from an external central repository that maintains updated generic role and responsibility information independent of user identity, thus replacing a fixed authorization structure with a flexible wild-card based model.
|
11. A system comprising:
a plurality of applications receiving requests for authorization at run-time from users seeking access to protected resources; and
a central repository storing user information including dynamically variable role data defining generic roles in an organization and to which a user can be assigned, more than one user being assignable to a given generic role in the organization, the user information associating privileges with said generic roles in the organization based on their current respective definitions;
the plurality of applications to independently collect respective authorization information at run-time from the central repository and to grant access to protected resources based on the authorization information collected at run-time;
wherein the central repository contains dynamically variable responsibility data defining generic responsibilities that can be associated with multiple users;
wherein the generic roles in the organization can be varied independently of the generic responsibilities and user associations with the generic roles in the organization;
wherein the generic responsibilities can be varied independently of the generic roles in the organization and user associations with the generic responsibilities;
wherein the receiving requests for authorization at a plurality of applications at run-time from users seeking access to protected resources comprises:
receiving a request from one of the users seeking access to an object that is one of the protected resources, the one of the users being assigned to one of the generic roles and one of the generic responsibilities, the one of the generic roles being associated with privileges, the one of the generic responsibilities being associated with privileges; and
wherein to grant access to protected resources based on the authorization information collected at run-time in response to a given request comprises:
to grant access to the protected resource based on the privileges associated with the one of the generic roles, the privileges associated with the one of the generic responsibilities and the object to which the one of the users seeks access.
1. A multiple application authorization process, comprising:
receiving requests for authorization at a plurality of applications at run-time from users seeking access to protected resources,
independently collecting, at the applications, respective authorization information at run-time from a central repository containing user information, the user information including dynamically variable role data defining generic roles in an organization and to which a user can be assigned, more than one user being assignable to a given generic role in the organization, the user information associating privileges with said generic roles in the organization based on their current respective definitions, and
granting access to protected resources based on the authorization information collected at run-time in response to a given request;
wherein the central repository contains dynamically variable responsibility data defining generic responsibilities that can be associated with multiple users;
wherein the generic roles in the organization can be varied independently of the generic responsibilities and user associations with the generic roles in the organization;
wherein the generic responsibilities can be varied independently of the generic roles in the organization and user associations with the generic responsibilities;
wherein the receiving requests for authorization at a plurality of applications at run-time from users seeking access to protected resources comprises:
receiving a request from one of the users seeking access to an object that is one of the protected resources, the one of the users being assigned to one of the generic roles and one of the generic responsibilities, the one of the generic roles being associated with privileges, the one of the generic responsibilities being associated with privileges; and
wherein the granting access to protected resources based on the authorization information collected at run-time in response to a given request comprises:
granting access to the protected resource based on the privileges associated with the one of the generic roles, the privileges associated with the one of the generic responsibilities and the object to which the one of the users seeks access.
2. The multiple application authorization process of
3. The authorization process of
wherein a second one of users is assigned to the first one of the generic roles and a second one of the generic responsibilities; and
wherein a third one of the users is assigned to a second one of the generic roles and the first one of the generic responsibilities.
4. The authorization process of
altering said dynamically variable role data from time to time to change a definition of a given role independently of user associations; and
making a current variable value of a privilege status, with respect to a given protected resource, associated with a currently defined role assigned to a user, available at run-time to one of the plurality of applications receiving the requests for authorization at run-time from users seeking access to protected resources.
5. The multiple application authorization process of
6. The multiple application authorization process of
7. The multiple application authorization process of
8. The multiple application authorization process of
9. The authorization process of
10. The authorization process of
mapping the actions and objects onto respective generic roles and responsibilities stored in said repository, and
assigning the respective roles and responsibilities to the user.
|
This is a divisional of co-pending U.S. patent application Ser. No. 10/447,680, filed May 28, 2003.
The present application is related to an application entitled “An Authorization Mechanism,” filed in the U.S. Patent & Trademark Office by Cristina Buchholz on Feb. 21, 2003, Ser. No. 10/372,030, which application in its entirety is incorporated by reference herein.
This invention relates to information technology security sometimes referred to as e-security, and more particularly to authorization management within the context of information technology.
The working environment of e-business is characterized by open networks and cross-company business transactions, replacing closed, monolithic systems with intrinsic security mechanisms. In the world of Web services in eCommerce, access will depend more and more on authorization. In this environment, ways of rationalizing the authorization process and authorization status will be key.
Existing solutions for authorization management share a common constraint: they are all tailored to particular applications. Consequently, every time a new application is introduced into the corporate landscape, the user management tool has to create yet another adaptor for it. In most cases, the connection to a central user management tool also requires a plug-in to be installed in the software in order to accomplish the connection. While the user and current role information is centrally kept, because the information has to be prepared by and immediately available to each connected system, there is likely to be redundant storage. For example, where the same users have essentially the same roles and authorizations on different systems, the same user information may wind up being stored separately for multiple systems.
The amount of user information that must be handled is further exacerbated by the need to define and maintain separate roles for each distinct position within the organization, each distinct role being understood as a specific collection of privileges associated with a particular position. While user administration can rely on these roles for administering access rights, the advantages realized by the use of roles, in terms of easier inclusion of new users and grouping of function-related authorizations, are overridden by the huge number of roles to be maintained for even a medium-sized organization. Merely creating derived roles does not solve this problem of proliferation. In the case where the individual's actual role is merely a qualified version of a higher order role, the derived or qualified role merely gives rise to still another discretely defined role associated on an ad hoc basis with a specific privilege set for a specific position. Derived roles thus do not avoid proliferating data to be analyzed and maintained by the user management tools.
The invention is based on an authorization data model that uses generic roles and, if applicable, responsibilities at run-time to complete an authorization process based on non-static privileges associated with the currently defined roles and responsibilities associated with a given user. In one aspect of the invention, when prompted by a user request to access a protected resource, such as a data file, via an application, the application collects information at run-time about the user's currently defined role, e.g., sales manager, and privileges associated with that role, dynamically decides whether the user is authorized to access a given protected resource based on the current variable role-based information, rather than the user's identity, collected at run-time. In a preferred system, the collection of this authorization information is accomplished by querying a central authorization data repository external to the application. The central authorization repository preferably stores and maintains dynamically variable role data defining generic roles that can be associated with multiple users and assigns users to said generic roles, more than one user being assignable to a given role. The role data can be altered from time to time to change a definition of a given role independently of user associations, and preferably independently of the respective responsibilities of users associated with a given generic role or responsibility. The repository associates privileges with said roles based on their current respective definitions. The information collected from said repository by the application includes the current variable value of the privilege status, with respect to the sought-after protected resource or type of resource, associated with the currently defined role assigned to the user requesting access.
In addition to roles, the repository can store and maintain generic responsibilities, e.g., sales territory, in the same manner described for roles, the responsibilities being variable, independently of the roles and users, and assignable to multiple users.
In the preferred system, the users are assigned to roles and responsibilities by decomposing a given user's positional functions and responsibilities into basic actions and objects to which the actions are applied, mapping the actions and objects onto respective generic roles and responsibilities stored in said repository, and assigning the respective roles and responsibilities to the user.
In another aspect of the invention, multiple applications collect current, variable authorization information at run-time from an external central repository that maintains updated generic role and, if applicable, generic responsibility information independent of user identity, thus replacing a fixed authorization structure with a flexible wild-card based model. Upon receiving requests for authorization at a plurality of applications from users seeking access to protected resources, the applications independently collect respective authorization information at run-time from a central repository containing user information, the user information including non-static roles whose definitions and corresponding privileges are variable, independently of the users associated with said roles. The applications base decisions on access to protected resources on the current authorization information collected at run time in response to a given request.
Still another aspect of the invention comprises an authorization information management process comprising storing in a central repository dynamically variable role data defining generic roles that can be associated with multiple users, along with responsibility data in the same manner, if applicable. In this process privileges are associated with the roles or responsibilities based on their current respective definitions. When queried by an external application, the current variable value of the privilege status, with respect to a given protected resource or type of resource, associated with the currently defined role, and responsibility, if applicable, assigned to a user, is made available at run-time to the respective external application requesting access authorization for a user who seeks access to said protected resource via said application. In the preferred system, the central repository runs on and is maintained by the same system that hosts the user management system or directory, such as the human resources, customer relationship management or project planning system.
Advantages
The data model, which is object of the invention, proposes a novel organization of the privileges held by system users, thus simplifying the maintenance of authorizations. Under the premise that the privileges of a user are bundled in roles, the purpose of the data model is to ease the role management by dramatically reducing the number of roles necessary in a system. The present invention will enable user management to evolve from proprietary, application-specific solutions that contain only high-level role information to central generic authorization repositories that offer not only role data, but also detailed, ready-to-use authorization information. Applications will be able to use information supplied by the central user repositories without additional processing or checking, eliminating the need for sophisticated user management functions within individual business applications, thus relieving the administrator from maintaining the access rights with every participating system. The needed authorization information is managed, maintained by and kept at the appropriate system that hosts the user base, e.g., human resources.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.
Introduction
Maintaining separate roles for each distinct position within the organization results in a proliferation of specific roles, which often differ only by virtue of the individual's location geographically or within the organization chart. For example, the positions of sales manager for Brazil and sales manager for Portugal would typically differ critically not in function but in the geographical territory of responsibility, cost center, reporting lines, etc.
The data model of the present invention relies on the separation between roles in the functional sense and responsibilities. In other words, the actions that the user is allowed to make, in terms of access to services or processing steps, are distinguished in the data model from the resources, usually, data, on which these actions are performed. As a consequence, different responsibilities of users having the same function do not require different roles to be maintained in the system. Conversely, the area of responsibility may be the same but different users within the same area can have different functional roles. In the end, the privileges of a given user are defined by the combination of both parts, the functional roles and the areas of responsibilities.
The data model which is object of the invention takes advantage of this new way of looking at roles by taking into account the divisibility and fungibilty of roles and responsibilities and using this logic to create a novel organization of the privileges held by system users, thus simplifying the maintenance of authorizations. Under the premise that the privileges of a user are bundled in roles, the purpose of the data model is to ease the role management by dramatically reducing the number of roles necessary in a system.
Instead of treating roles as a flat enumeration, the invention is based upon a quadratic model, i.e., one in which each position within the enterprise is defined as the product of two types of variables: (1) a generic role (which may be comprised of a unique set of sub roles) and (2) a specific set of responsibilities to go with the roles.
Conventional roles, i.e., “specific roles,” more in the nature of position descriptions, can be separated from their associated responsibilities and thus factored into generic roles and subroles on the one hand and responsibilities and sub-responsibilities on the other hand. Generic roles can be redefined to represent exclusively the functions of the individual's position reflected in the actions he or she is allowed to perform without consideration of the objects upon which those actions are executed. The functions at the atomic level can be aggregated to form generic roles associated commonly with similar positions among the company's staff. So all the functions associated with a basic sales position would be assigned to a generic sales role. Separately, the responsibilities consist of the objects upon which the actions are executed, e.g., data that an action modifies. For sales roles, the corresponding set of responsibility parameters would include, e.g., responsibility for a particular sales territory, or range of products, or customers within a certain size range, business or other category, etc. Taken alone, these generic roles and responsibilities are an incomplete description. But together the intersection of a generic role and a specific set of responsibilities fully specifies the individual's position, or conventionally, his specific role in the organization.
This approach imparts object-oriented programming principles to role administration in the sense that the generic roles or responsibilities are treated as objects that have predefined characteristics and inheritance properties. Thus when new positions are added in the company the same modular objects (i.e., generic roles) can be re-used in most cases without generating new roles.
Solution: Authorization Data Model
The subject of the invention is a way of modeling authorization information that dramatically reduces the number of roles, which need to be maintained in a role-based system. The core idea is to separate the role, reflecting the position of an individual in an organization, from the responsibilities, reflecting the areas of activity, which need to be accessed by this individual.
The simplest reflection upon the system is that the information about the actions an individual is allowed to take are separated from the information qualifying the data upon which these actions are taken.
The general structure of existing authorization management systems is composed of individuals, roles, profiles or groups that qualify these individuals and authorizations/privileges that belong to the individual.
This leads to the implementation of the data model in a typical relational database as shown in
Performing the same actions, or having the same access rights for different objects, results in different authorizations. In order to differentiate, one will need to create different roles to reflect those changes. Imagine the simple example of one company giving the sales people the right to access the product sales information in their own area. For each and every area, there will be another sales role created for that company.
With the model proposed by this invention, the fields are not static anymore, but include generic variables. The input for filling the fields is requested at run-time from an external system containing information about the user, and/or the fields of the record that are already filled at the time of the enquiry.
This can be for example realized through a backtracking link as shown in the figure. The static authorizations composed of the elements object, action and value are replaced by authorizations composed mainly of wildcards for the elements action and value. The object will be given at runtime by the application proving the access rights.
The system relies on decomposition or factoring of positions into two basic components: roles and responsibilities.
Objects are “protected resources” and could be data or a transaction or instantiation of a class, etc. In the context of authorization, an “object” is a protected resource that the user wishes to access in some way. The “action” is the requested manner and extent of access that the user seeks with respect to the object. So if the object is data in a database, the action could be read, write, edit, move, or delete. If the object was a particular screen, the action could be display. If the object was a transaction, the action could be approve, reject, comment, review, complete, and so on.
One example of this dynamic authorization decision process is shown in
Another visualization of this concept is provided in
The meaning or definition and associated privileges are defined by a role definition management system, through which the description and functions of the roles can be manipulated and redefined from time to time, independent of the identity of the individual having those roles and independent of changes in personnel. In addition, the repository might contain a plurality of responsibility descriptions, corresponding, e.g., to territories, cost centers, groups, etc. As with the roles, the responsibility descriptions are tended by a responsibility definition management system, which operates independently of the identity of the individual users, through which the responsibilities can be enlarged, contracted, supplemented or redefined from time to time.
The group of roles and responsibility definitions have associated with them a plurality of privileges that govern access to protected resources, or objects. In
At the time of a user access request, assuming the users ID is in the repository, the system will find the corresponding privileges, existing at run time, for the generic roles and responsibilities as they are defined at run time, to which the user's ID is linked in the database. Then the systems will apply the privileges to the object for which access is sought, resulting in a value corresponding to granted or withheld or some other logical condition with respect to the processing of the user's approved access to the protected resource.
Because the role and responsibility data is not fixed but is dynamically variable, the action/value data is are wild cards for any object. They are not fixed. Authorization may be available one day or moment but not the next.
While
A number of embodiments of the invention have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the use of a true relational database is not required. Accordingly, other embodiments are within the scope of the following claims.
Buchholz, Frank, Buchholz, Cristina
Patent | Priority | Assignee | Title |
10171472, | Mar 02 2016 | Microsoft Technology Licensing, LLC | Role-specific service customization |
10873587, | Mar 27 2017 | ZENEDGE, INC | Authenticating access configuration for application programming interfaces |
11245706, | Mar 27 2017 | ZENEDGE, INC | Protection configuration for application programming interfaces |
11546349, | Mar 27 2017 | Oracle Systems Corporation | Authenticating access configuration for application programming interfaces |
9298933, | Jul 18 2013 | SYBASE, Inc. | Autonomous role-based security for database management systems |
Patent | Priority | Assignee | Title |
6236996, | Oct 31 1997 | Sun Microsystems, Inc. | System and method for restricting database access to managed object information using a permissions table that specifies access rights to the managed objects |
6308274, | Jun 12 1998 | Microsoft Technology Licensing, LLC | Least privilege via restricted tokens |
6466932, | Aug 14 1998 | Microsoft Technology Licensing, LLC | System and method for implementing group policy |
7107610, | May 11 2001 | Intel Corporation | Resource authorization |
20010047485, | |||
20020083059, | |||
20020108057, | |||
20030023874, | |||
20030055704, | |||
20030074580, | |||
20030088786, | |||
20030200467, | |||
20040088560, | |||
20040216150, | |||
20060230281, | |||
EP697662, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 27 2003 | BUCHHOLZ, CRISTINA | SAP Aktiengesellschaft | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 055869 | /0150 | |
Oct 27 2003 | BUCHHOLZ, FRANK | SAP Aktiengesellschaft | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 055869 | /0150 | |
Jan 14 2008 | SAP AG | (assignment on the face of the patent) | / | |||
Jul 07 2014 | SAP AG | SAP SE | CHANGE OF NAME SEE DOCUMENT FOR DETAILS | 033625 | /0334 |
Date | Maintenance Fee Events |
Jan 14 2011 | ASPN: Payor Number Assigned. |
Jan 19 2011 | ASPN: Payor Number Assigned. |
Jan 19 2011 | RMPN: Payer Number De-assigned. |
May 26 2014 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Jun 19 2018 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
Aug 15 2022 | REM: Maintenance Fee Reminder Mailed. |
Jan 30 2023 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Dec 28 2013 | 4 years fee payment window open |
Jun 28 2014 | 6 months grace period start (w surcharge) |
Dec 28 2014 | patent expiry (for year 4) |
Dec 28 2016 | 2 years to revive unintentionally abandoned end. (for year 4) |
Dec 28 2017 | 8 years fee payment window open |
Jun 28 2018 | 6 months grace period start (w surcharge) |
Dec 28 2018 | patent expiry (for year 8) |
Dec 28 2020 | 2 years to revive unintentionally abandoned end. (for year 8) |
Dec 28 2021 | 12 years fee payment window open |
Jun 28 2022 | 6 months grace period start (w surcharge) |
Dec 28 2022 | patent expiry (for year 12) |
Dec 28 2024 | 2 years to revive unintentionally abandoned end. (for year 12) |