System and method for rule-based entitlements

Information

  • Patent Grant
  • 7451477
  • Patent Number
    7,451,477
  • Date Filed
    Thursday, October 24, 2002
    22 years ago
  • Date Issued
    Tuesday, November 11, 2008
    16 years ago
Abstract
A system and method of authorization comprising associating at least one role with a resource, associating at least one capability with the at least one role, and determining whether to permit a resource operation based on the at least one capability.
Description
COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.


FIELD OF THE DISCLOSURE

The present invention disclosure relates to the field of user authorization and in particular, role-based entitlements.


BACKGROUND

Computer authorization systems are typically permission-based. Once a user is authorized, usually by entering a password, the user is assigned a fixed set of permissions that govern the user's access to resources in an enterprise application. For example, a user may have permission to modify computer files belonging to the accounting department, but not the human resources department. A user's role in an organization will change over time, however, as the user acquires new skills and responsibilities. Access to resources should be tailored to each user's particular circumstances. Accordingly, a user's permissions need to be modified in order to reflect new privileges. When the number of users is great, administering fine-grained details of each individual user's permissions can create significant administrative overhead. As a result, a user's static permissions may not change in step with the user's role in an organization. This problem is exacerbated if privileges are dependent on less tangible factors, such as the time of day or prevailing conditions of a computer network. What is needed is a flexible, rules-based approach to authorization that allows users to dynamically acquire different privileges as their roles change over time.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is an illustration of a static authorization scheme.



FIG. 2
a is an illustration of a dynamic authorization scheme in accordance to one embodiment of the invention.



FIG. 2
b is the dynamic authorization scheme of FIG. 2a in a different state.



FIG. 3 is a system in accordance to one embodiment of the invention.





DETAILED DESCRIPTION

The invention is illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean at least one.


In one embodiment, a resource operation request is sent from a client process (or client) to resource process (or resource). A client can be a task or process through which a user interacts with a resource (e.g., a web browser), or it may simply be an autonomous task or process. A resource is any part of a computer network that can be assigned permissions. For example, a resource can be data, a file, a database, a portion of a database, an object, an operating system resource, an administrative task, a graphical user interface, a process, a thread, a Java™ application, a Java™ applet, a Java™ servlet, or a Java™ Enterprise Bean. Java™ is an objected-oriented programming language and run-time environment available from Sun Microsystems, Inc. of Palo Alto, Calif. An access control mechanism intercepts the resource operation sent by the client to the resource and determines if it is permitted based on the client's entitlements. An entitlement is a business rule that grants or denies access to a resource. In one embodiment, determination of entitlements consists of dynamically associating roles with the client based on rules that take into account information about the client, information about the client's communication session, or the current state of the system. Roles are used to determine which operations the client is permitted to perform on a resource. In one embodiment, if one of the permitted operations matches the requested operation, the client is entitled to perform that operation.


In another embodiment, resources can be associated with portals. A portal is a feature-rich web site. It provides a point of access to enterprise data and applications, presenting a unified and personalized view of that information to employees, customers and business partners. Portals allow multiple web applications within a single web interface. In addition to regular web content that appears in a portal (e.g., text or graphics), portals provide the ability to display portlets—self-contained applications or content—all in a single web interface. Portals also support multiple pages with tab-based navigation, with each page containing its own content and portlets. One such system is the WebLogic Portal™, available from BEA Systems, Inc. of San Jose, Calif.


In one embodiment, clients can belong to one or more portal groups. Roles are used to dynamically determine which portal groups a client belongs to. Portal groups provide a means for organizing users with common characteristics into a single category. Portal groups also allow for the definition of different views of a portal for different portal groups, making it seem as if users in each group are looking at completely different web sites.



FIG. 1 is an illustration of an authorization scheme which utilizes static permissions. Client 1 can access resources A-C according to a fixed set of permissions. For example, resources A-C could be individual portlets on a single portal page. As illustrated in FIG. 1, client 1 can edit resource A, but can only view resource B, and has no access to resource C.



FIG. 2
a is an illustration of an authorization scheme in accordance with one embodiment of the invention. In FIG. 2a, client 1 attempts to edit resource C. The edit operation is intercepted by process 2 which dynamically determines, at that point in time, what resources client 1 may edit. Client 1 is then given permission to edit only those resources. In the current state of the system, client 1 can only edit resource A. Therefore, the edit operation fails.



FIG. 2
b is the authorization scheme of FIG. 2a in a different state. Again, client 1 attempts to edit resource C. The system is now in a different state and process 2 dynamically determines that client 1 can edit resources A and C, but not B. Therefore, the edit operation succeeds.


In one embodiment, to perform an operation on a resource, a client must be entitled to do so. An entitlement in one embodiment is a set of attributes: resource, role, capability, and permission. Given a resource, a role and a capability, a client can perform an operation on the resource corresponding to the capability if the permission allows it. Entitlements can be stored in database and retrieved or queried based on any of their attributes. In one embodiment, an administrative task can involve creating, removing, or modifying information pertaining to users in a system; creating, removing, or modifying attributes of portlets and portal pages; or altering the appearance and behavior of portlets and portal pages. In another embodiment, resource names can be organized in a taxonomy. A taxonomy provides a means of categorizing and uniquely identifying a resource and is hierarchical in nature. For example, a stock quote portlet “Quote” on the “web” portal page could be:


(1) myPortal/stockBroker/quotePortlet


In example (1), “myPortal” is the top level taxonomy name and serves to indicate that the resource is a portal named “myPortal”. The next part of the resource name, “stockBroker”, identifies a portal group within the portal “myPortal” consisting of stockbrokers. The third part of the resource name indicates a portlet “quotePortlet” for the portal group “stockBroker”. Thus, the resource name in (1) identifies a portlet “quotePortlet” within the portal group “stockbroker” and within portal “myPortal”.


In yet another embodiment, resources can be organized into resource groups wherein a single resource group name can represent a collection of resources. An entitlement specifying a resource group, rather than a single resource, can be extended such that the capability and permission attributes would apply to all resources referred to by the resource group name. If a resource operation specifies a resource rather than a resource group, the resource can be mapped to a resource group before determining which entitlements are applicable to the operation. Resource group names could likewise be organized in a taxonomy.


In one embodiment, a role is defined in terms of a rule comprised of one or more logical expressions. In another embodiment, a role rule can be based on evaluation of predicates. A predicate is a rule that evaluates to true or false. By way of a non-limiting example, predicates may include other predicates, logical operators (e.g., AND, NOT and OR), mathematical operations, method calls, calls to external systems, function calls, etc. In another embodiment, rules can be specified in plain English. For example:


(2) When all of these conditions apply, the client is an






    • ExperiencedJavaDeveloper:
      • Developer is equal to true
      • Skill level is equal to ‘High’
      • Preferred language is equal to ‘Java’





In example (2) above, the role that is being determined is “ExperiencedJavaDeveloper”. The predicate “Developer” may evaluate to true when, for instance, information contained in a user profile indicates that the client is a user in the software development department of an organization. Likewise, the other predicates (“Skill level”, “Preferred language”) could similarly be evaluated using information from the user profile. In another embodiment, the predicate can be based on the evaluation of information about a client's session (e.g., the state of communication between the client and other processes in the system). In yet another embodiment, session information can include information about a client's pattern of interaction with a graphical user interface, such as a portlet. It will be apparent to those skilled in the art that a predicate can be based on any information, whether the information is associated with a particular client or not. For example:


(3) When all of these conditions apply, the client is a SystemAdministrator:






    • TimeofDay is between 12:00am and 7:00am

    • SystemLoad is ‘Low’

    • AdminSkillLevel is at least 5





In example (3), two predicates (“TimeofDay” and “SystemLoad”) are based on information unrelated to a particular client. In this example, a client is allowed to be a system administrator if it is the middle of the night, the system is not busy, and the client has level 5 administration skills.


In one embodiment, an entitlement's capability is a operation that can be performed for a given role and on a given resource. For example, if the resource is a portlet, the capability can be “show”, “edit”, or “remove”. These operations control whether the portlet is initially displayed for the client (“show”), whether the client can edit information displayed in the portlet (“edit”), and whether the client can hide a portlet window (“remove”). It will be apparent to one skilled in the art that the capability can be any that is feasible for a given resource. An entitlement's permission corresponds to the capability and indicates whether the capability for the given resource and role is granted, denied or abstained. If the permission is granted, the operation should be permitted on the resource. If the permission is denied, the operation should not be permitted. Finally, if the permission is abstain, then the operation is not explicitly granted or denied. It will be apparent to one skilled in the art that other permissions are possible.



FIG. 3 is a system in accordance with one embodiment of the invention. Client 1 initiates a resource operation directed to resource 3. Client 1 could be, for example, a user interacting with a portal in an attempt to edit information displayed in a portlet named “accountProfilePortlet”. This assumes that client 1 had permission to view the profile portlet in the first place. The resource operation is intercepted by access controller 2. In one embodiment, the resource operation can contain information about a user (e.g., a user identifier or a user profile, characteristics such as gender and age, etc.). In another embodiment, the resource operation can contain information about the session or a hypertext transfer protocol (“HTTP”) request. HTTP request information can pertain to character encoding, remote user, authorization scheme, content length, server port, context path, request URI, request method, scheme, servlet path, content type, remote host, request protocol, locale, server name, remote address, query string, path information, etc. In yet another embodiment, the resource operation can contain any other kind of information relevant to evaluating role rule predicates. Access controller 2 directs role mapper 5 to determine which roles correspond to client 1 at that point in time. Role mapper 5 uses role rules database 6 to dynamically determine which roles apply to the client. If no role is found, a default role of “everyone” is assumed. Suppose, for example, the following roles applied:

    • optionTrader
    • registeredUser


      Access controller 2 would then direct the decision module 4 to find entitlements matching the roles and the resource. If one or more entitlements are found, decision module 4 uses the entitlements to determine if the operation is permitted for client 1. For example, assume the decision module found the following entitlements as shown in Table 1:









TABLE 1







Entitlements










Resource
Role
Capability
Permission





accountProfilePortlet
optionTrader
show
grant


accountProfilePortlet
optionTrader
edit
grant


accountProfilePortlet
registeredUser
edit
deny


accountProfilePortlet
optionTrader
show
grant


accountProfilePortlet
optionTrader
edit
grant


accountProfilePortlet
registeredUser
edit
deny


accountProfilePortlet
everyone
show
deny


accountProfilePortlet
everyone
edit
deny









In one embodiment, entitlements that have capabilities compatible with the requested operation are considered. In this case, there is a conflict between two roles. The role optionTrader allows editing of the accountProfilePortlet whereas the role registeredUser does not. (The default “everyone” roles are ignored in this case since other roles have been established.) In one embodiment, decision module 4 employs an optimistic access scheme by logically OR'ing the entitlements and would thus grant permission to edit the portlet. In another embodiment, decision module 4 logically AND's the entitlements and thus would deny permission to edit the portlet. In yet another embodiment, decision module 4 can use heuristics to determine the permission or rely on other modules to make the decision on its behalf.


In one embodiment, performance can be improved through caching techniques. For example, access controller 2 can cache recently determined roles for clients and thereby forgo utilization of role mapper 5. Of course, roles that are dependent on time-sensitive predicates would have to be reevaluated. Alternatively, role mapper 5 can do the same. Cached roles can automatically be removed from the cache through an aging process or when the cache is full. In another embodiment, access controller 2 or decision module 4 can cache recently determined entitlements. In this way, access controller 2 can forego utilizing role mapper 5 and decision module 4 when cached information is considered consistent with role rules and entitlements.


One embodiment maybe implemented using a conventional general purpose or a specialized digital computer or microprocessor(s) programmed according to the teachings of the present disclosure, as will be apparent to those skilled in the computer art. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art. The invention may also be implemented by the preparation of integrated circuits or by interconnecting an appropriate network of conventional component circuits, as will be readily apparent to those skilled in the art.


One embodiment includes a computer program product which is a storage medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the features presented herein. The storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.


Stored on any one of the computer readable medium (media), the present invention includes software for controlling both the hardware of the general purpose/specialized computer or microprocessor, and for enabling the computer or microprocessor to interact with a human user or other mechanism utilizing the results of the present invention. Such software may include, but is not limited to, device drivers, operating systems, execution environments/containers, and user applications.


The foregoing description of the preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. Embodiments were chosen and described in order to best describe the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention, the various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.

Claims
  • 1. A method of authorization, comprising: receiving a resource operation from a client during a session;determining, in response to receiving the resource operation from the client, at least one role that applies to the client based on evaluating at least one role rule including at least one predicate and at least one logical operator using information about the client's pattern of interaction with a portlet;dynamically associating the at least one role with the client;associating at least one entitlement with the at least one role;determining whether to permit the resource operation on a resource identified in the resource operation based on the at least one entitlement; andwherein evaluating the at least one role rule determines the at least one role.
  • 2. The method of claim 1 wherein: the at least one role rule is specified in plain language.
  • 3. The method of claim 1 wherein: evaluating the at least one role rule uses user information.
  • 4. The method of claim 1 wherein: the at least one role is everyone.
  • 5. The method of claim 1 wherein: the resource is one of a portal page, a portlet, and an administrative task.
  • 6. The method of claim 1 wherein: the resource operation is one of show, edit and remove.
  • 7. The method of claim 1 wherein: the resource is a resource group.
  • 8. The method of claim 1 wherein: determining whether to permit the resource operation is based on an optimistic access scheme.
  • 9. The method of claim 1 wherein: determining the at least one role that applies to the client includes retrieving the at least one role from a cache.
  • 10. The method of claim 1 wherein: associating the at least one entitlement with the at least one role includes retrieving the at least one entitlement from a cache.
  • 11. A method of authorization, comprising: intercepting a resource operation from a client during a session, the resource operation identifying a resource;determining, in response to intercepting the resource operation from the client, at least one role that applies to the client based on evaluating at least one role rule including at least one predicate and at least one logical operator using information about the client's pattern of interaction with a portlet;associating at least one entitlement with the at least one role;dynamically associating the at least one role with the client;allowing the resource operation on the resource identified in the resource operation if the resource operation is permitted based on the at least one entitlement; andwherein evaluating the at least one role rule determines the at least one role.
  • 12. The method of claim 11 wherein: the at least one role rule is specified in plain language.
  • 13. The method of claim 11 wherein: evaluating the at least one role rule uses user information.
  • 14. The method of claim 11 wherein: the at least one role is everyone.
  • 15. The method of claim 11 wherein: the resource is one of a portal page, a portlet, and an administrative task.
  • 16. The method of claim 11 wherein: the resource operation is one of show, edit and remove.
  • 17. The method of claim 11 wherein: the resource is a resource group.
  • 18. The method of claim 11 wherein: determining whether to permit the resource operation is based on an optimistic access scheme.
  • 19. The method of claim 11 wherein: determining the at least one role that applies to the client includes retrieving the at least one role from a cache.
  • 20. The method of claim 11 wherein: associating the at least one entitlement with the at least one role includes retrieving the at least one entitlement from a cache.
  • 21. A method of authorization, comprising: sending a resource request from a client to an access controller during a session, wherein the access controller associates at least one entitlement with the resource request and at least one role; andsending an indication of whether the resource request is permitted on a resource identified in the resource request from the access controller to the client based on the at least one entitlement;wherein associating the at least one entitlement with the resource request and the at least one role includes determining, in response to sending the resource request from the client to the access controller, the at least one role that applies to the client based on evaluating at least one role rule including at least one predicate and at least one logical operator using information about the client's pattern of interaction with a portlet;wherein associating the at least one entitlement with the resource request further includes dynamically associating the at least one role with the client; andwherein evaluating the at least one role rule determines the at least one role.
  • 22. The method of claim 21 wherein: the at least one role rule is specified in plain language.
  • 23. The method of claim 21 wherein: evaluating the at least one role rule uses user information.
  • 24. The method of claim 21 wherein: the at least one role is everyone.
  • 25. The method of claim 21 wherein: the resource is one of a portal page, a portlet, and an administrative task.
  • 26. The method of claim 21 wherein: the resource request includes a resource operation, wherein the resource operation is one of show, edit and remove.
  • 27. The method of claim 21 wherein: the resource is a resource group.
  • 28. The method of claim 21 wherein: determining whether to permit the resource request is based on an optimistic access scheme.
  • 29. The method of claim 21 wherein: determining the at least one role that applies to the client includes retrieving the at least one role from a cache.
  • 30. The method of claim 21 wherein: associating the at least one entitlement with the resource request includes retrieving the at least one entitlement from a cache.
  • 31. A system for authorization, comprising: at least one microprocessor;an access controller adapted to accept a resource operation from a client during a session;a role mapper coupled to the access controller, the role mapper adapted to determine, in response to accepting the resource operation from the client, at least one role that applies to the client based on evaluating at least one role rule including at least one predicate and at least one logical operator using information about the client's pattern of interaction with a portlet, and to dynamically associate the at least one role with the client;a decision module coupled to the access controller, the decision module adapted to associate the at least one role with at least one entitlement and to determine whether access to a resource specified in the resource operation is permitted based upon the at least one role and the at least one entitlement; andwherein evaluating the at least one role rule determines the at least one role.
  • 32. The system of claim 31 wherein: the at least one role rule is specified in plain language.
  • 33. The system of claim 31 wherein: evaluating the at least one role rule uses user information.
  • 34. The system of claim 31 wherein: the at least one role is everyone.
  • 35. The system of claim 31 wherein: the resource is one of a portal page, a portlet, and an administrative task.
  • 36. The system of claim 31 wherein: the resource operation is one of show, edit and remove.
  • 37. The system of claim 31 wherein: the resource is a resource group.
  • 38. The system of claim 31 wherein: determining whether to permit a resource operation is based on an optimistic access scheme.
  • 39. The system of claim 31 wherein: determining the at least one role that applies to the client includes retrieving the at least one role from a cache.
  • 40. The system of claim 31 wherein: the access controller is adapted to associate at least one entitlement with the at least one role; p1 wherein associating the at least one entitlement with the at least one role includes retrieving the at least one entitlement from a cache.
  • 41. A system for authorization, comprising: at least one microprocessor;a client adapted to send a resource operation to an access controller during a session;wherein the access controller is coupled to a role mapper, the role mapper adapted to determine, in response to the client sending the resource operation to the access controller, at least one role that applies to the client based on evaluating at least one role rule including at least one predicate and at least one logical operator using information about the client's pattern of interaction with a portlet, and to dynamically associate the at least one role with the client;wherein the access controller is coupled to an access decision module, the access decision module adapted to associate the at least one role with at least one entitlement and to determine whether access to a resource specified in the resource operation is permitted based upon the at least one entitlement; andwherein evaluating the at least one role rule determines the at least one role.
  • 42. The system of claim 41 wherein: the at least one role rule is specified in plain language.
  • 43. The system of claim 41 wherein: evaluating the at least one role rule uses user information.
  • 44. The system of claim 41 wherein: the at least one role is everyone.
  • 45. The system of claim 41 wherein: the resource is one of a portal page, a portlet, and an administrative task.
  • 46. The system of claim 41 wherein: the resource operation is one of show, edit and remove.
  • 47. The system of claim 41 wherein: the resource is a resource group.
  • 48. The system of claim 41 wherein: determining whether to permit access to the resource is based on an optimistic access scheme.
  • 49. The system of claim 41 wherein: determining the at least one role that applies to the client includes retrieving the at least one role from a cache.
  • 50. The system of claim 41 further comprising wherein: the access controller is adapted to associate at least one entitlement with the at least one role;wherein associating the at least one entitlement with the at least one role includes retrieving the at least one entitlement from a cache.
  • 51. A system for authorization, comprising: at least one microprocessor;a client;an access controller adapted to accept a resource operation from the client during a session, wherein the resource operation identifies a resource;a role mapper coupled to the access controller, adapted to determine, in response to the access controller accepting the resource operation from the client, at least one role that applies to the client based on evaluating at least one role rule including at least one predicate and at least one logical operator using information about the client's pattern of interaction with a portlet, and to dynamically associate the at least one role with the client;an access decision module coupled to the access controller, the access decision module adapted to associate the at least one role with at least one entitlement, and to determine whether access to a resource specified in the resource operation is permitted based upon the at least one entitlement; andwherein evaluating the at least one role rule determines the at least one role.
  • 52. The system of claim 51 wherein: the at least one role rule is specified in plain language.
  • 53. The system of claim 51 wherein: evaluating the at least one role rule uses user information.
  • 54. The system of claim 51 wherein: the at least one role is everyone.
  • 55. The system of claim 51 wherein: the resource is one of a portal page, a portlet, and an administrative task.
  • 56. The system of claim 51 wherein: the resource operation is one of show, edit and remove.
  • 57. The system of claim 51 wherein: the resource is a resource group.
  • 58. The system of claim 51 wherein: determining whether to permit access to the resource is based on an optimistic access scheme.
  • 59. The system of claim 51 wherein: determining the at least one role that applies to the client includes retrieving the at least one role from a cache.
  • 60. The system of claim 51 wherein: the access controller is adapted to associate at least one entitlement with the at least one role;wherein associating the at least one entitlement with the at least one role includes retrieving the at least one entitlement from a cache.
  • 61. A system for authorization, comprising: at least one microprocessor;a means for sending a resource operation from a client during a session;a means for determining, in response to sending the resource operation from the client, at least one role that applies the client based on evaluating at least one role rule including at least one predicate and at least one logical operator using information about the client's pattern of interaction with a portlet, and for dynamically associating the at least one role with the client;a means for associating at least one entitlement with the at least one role;a means for determining whether to permit a resource operation on a resource identified by the resource operation based on the at least one entitlement; andwherein evaluating the at least one role rule determines the at least one role.
  • 62. The system of claim 61 wherein: the at least one role rule is specified in plain language.
  • 63. The system of claim 61 wherein: evaluating the at least one role rule uses user information.
  • 64. The system of claim 61 wherein: the at least one role is everyone.
  • 65. The system of claim 61 wherein: the resource is one of a portal page, a portlet, and an administrative task.
  • 66. The system of claim 61 wherein: the resource operation is one of show, edit and remove.
  • 67. The system of claim 61 wherein: the resource is a resource group.
  • 68. The system of claim 61 wherein: determining whether to permit a resource operation is based on an optimistic access scheme.
  • 69. The system of claim 61 wherein: determining the at least one role that applies to the client includes retrieving the at least one role from a cache.
  • 70. The system of claim 61 wherein: associating the at least one entitlement with the at least one role includes retrieving the at least one entitlement from a cache.
  • 71. A storage medium having instructions stored thereon that when executed by a processor cause a system to: send a resource operation from a client during a session;determine, in response to sending the resource operation from the client, at least one role that applies to the client based on evaluating at least one role rule including at least one predicate and at least one logical operator using information about the client's pattern of interaction with a portlet;dynamically associate the at least one role with the client;associate at least one entitlement with the at least one role;determine whether to permit a resource operation on a resource identified by the resource operation based on the at least one entitlement; andwherein evaluating the at least one role rule determines the at least one role.
  • 72. The storage medium of claim 71 wherein: the at least one role rule is specified in plain language.
  • 73. The storage medium of claim 71 wherein: evaluating the at least one role rule uses user information.
  • 74. The storage medium of claim 71 wherein: the at least one role is everyone.
  • 75. The storage medium of claim 71 wherein: the resource is one of a portal page, a portlet, and an administrative task.
  • 76. The storage medium of claim 71 wherein: the resource operation is one of show, edit and remove.
  • 77. The storage medium of claim 71 wherein: the resource is a resource group.
  • 78. The storage medium of claim 71 wherein: determining whether to permit the resource operation is based on an optimistic access scheme.
  • 79. The storage medium of claim 71 wherein: determining the at least one role that applies to the client includes retrieving the at least one role from a cache.
  • 80. The storage medium of claim 71 wherein: associating the at least one entitlement with the at least one role includes retrieving the at least one entitlement from a cache.
CLAIM OF PRIORITY

This application claims priority from ENHANCED PORTALS [FLAGSTAFF RELEASE], U.S. Provisional Application No. 60/386,487, Inventors: Phil Griffin, et al., filed on Oct. 24, 2001, and which is incorporated herein by reference. This application is related to the following applications which are hereby incorporated by reference in their entirety: SYSTEM AND METHOD FOR SERVER SECURITY AND ENTITLEMENT PROCESSING, U.S. application Ser. No. 09/878,536, Inventor: Paul Patrick, filed on Jun. 11, 2001; and SYSTEM AND METHOD FOR DELEGATED ADMINISTRATION, U.S. application Ser. No. 10/279,543, Inventors: Phil Griffin, et al., filed on Oct. 24, 2002. This application is related to the following publications which are hereby incorporated by reference in their entirety: BEA WebLogic Portal™: Guide to Using the BEA E-Business Control Center (Version 4.0).

US Referenced Citations (295)
Number Name Date Kind
5173939 Abadi et al. Dec 1992 A
5237614 Weiss Aug 1993 A
5335345 Frieder et al. Aug 1994 A
5347653 Flynn et al. Sep 1994 A
5355474 Thuraisngham et al. Oct 1994 A
5369702 Shanton Nov 1994 A
5426747 Weinreb et al. Jun 1995 A
5481700 Thuraisingham Jan 1996 A
5544322 Cheng et al. Aug 1996 A
5557747 Rogers et al. Sep 1996 A
5627886 Bowman May 1997 A
5649195 Scott et al. Jul 1997 A
5757669 Christie et al. May 1998 A
5758355 Buchanan May 1998 A
5797128 Birnbaum Aug 1998 A
5825883 Archibald et al. Oct 1998 A
5826000 Hamilton Oct 1998 A
5826268 Schaefer et al. Oct 1998 A
5838909 Roy et al. Nov 1998 A
5848396 Gerace Dec 1998 A
5867667 Butman et al. Feb 1999 A
5872928 Lewis et al. Feb 1999 A
5889953 Thebaut et al. Mar 1999 A
5911143 Deinhart et al. Jun 1999 A
5918210 Rosenthal et al. Jun 1999 A
5925126 Hsieh Jul 1999 A
5941947 Brown et al. Aug 1999 A
5950195 Stockwell et al. Sep 1999 A
5954798 Shelton et al. Sep 1999 A
5956400 Chaum et al. Sep 1999 A
5956719 Kudo et al. Sep 1999 A
5966707 Van Huben et al. Oct 1999 A
5987469 Lewis et al. Nov 1999 A
5987611 Freund Nov 1999 A
5991735 Gerace Nov 1999 A
5991877 Luckenbaugh Nov 1999 A
6005571 Pachauri Dec 1999 A
6006194 Merel Dec 1999 A
6006265 Rangan et al. Dec 1999 A
6009410 Lemole et al. Dec 1999 A
6026433 D'Arlach et al. Feb 2000 A
6029144 Barrett et al. Feb 2000 A
6029182 Nehab et al. Feb 2000 A
6029196 Lenz Feb 2000 A
6054910 Tada et al. Apr 2000 A
6055515 Consentino et al. Apr 2000 A
6055637 Hudson et al. Apr 2000 A
6058392 Sampson et al. May 2000 A
6073242 Hardy et al. Jun 2000 A
6081829 Sidana Jun 2000 A
6083276 Davidson et al. Jul 2000 A
6088679 Barkley Jul 2000 A
6092083 Brodersen et al. Jul 2000 A
6098173 Elgressy et al. Aug 2000 A
6105027 Schneider et al. Aug 2000 A
6108687 Craig Aug 2000 A
6112192 Capek Aug 2000 A
6122647 Horowitz et al. Sep 2000 A
6128663 Thomas Oct 2000 A
6133915 Arcuri et al. Oct 2000 A
6141010 Hoyle Oct 2000 A
6141686 Jackowski et al. Oct 2000 A
6148333 Guedalia et al. Nov 2000 A
6154844 Touboul et al. Nov 2000 A
6157924 Austin Dec 2000 A
6158010 Moriconi et al. Dec 2000 A
6161139 Win et al. Dec 2000 A
6167407 Nachenberg et al. Dec 2000 A
6167445 Gai et al. Dec 2000 A
6167448 Hemphill et al. Dec 2000 A
6169794 Oshimi et al. Jan 2001 B1
6170009 Mandal et al. Jan 2001 B1
6178172 Rochberger Jan 2001 B1
6182142 Win et al. Jan 2001 B1
6182226 Reid et al. Jan 2001 B1
6182277 DeGroot Jan 2001 B1
6185587 Bernardo et al. Feb 2001 B1
6188399 Voas et al. Feb 2001 B1
6195696 Baber et al. Feb 2001 B1
6202066 Barkley et al. Mar 2001 B1
6202157 Brownlie et al. Mar 2001 B1
6202207 Donohue Mar 2001 B1
6205466 Karp et al. Mar 2001 B1
6209101 Mitchem et al. Mar 2001 B1
6216231 Stubblebine Apr 2001 B1
6226745 Wiederhold May 2001 B1
6233576 Lewis May 2001 B1
6236991 Frauenhofer et al. May 2001 B1
6241608 Torango Jun 2001 B1
6243747 Lewis et al. Jun 2001 B1
6253321 Nikander et al. Jun 2001 B1
6256741 Stubblebine Jul 2001 B1
6260050 Yost et al. Jul 2001 B1
6269393 Yost et al. Jul 2001 B1
6269456 Hodges et al. Jul 2001 B1
6275941 Saito et al. Aug 2001 B1
6285366 Ng et al. Sep 2001 B1
6285983 Jenkins Sep 2001 B1
6285985 Horstmann Sep 2001 B1
6295607 Johnson Sep 2001 B1
6301613 Ahlstrom et al. Oct 2001 B1
6304881 Halim et al. Oct 2001 B1
6308163 Du et al. Oct 2001 B1
6317868 Grimm et al. Nov 2001 B1
6321336 Applegate et al. Nov 2001 B1
6327594 Van Huben et al. Dec 2001 B1
6327618 Ahlstrom et al. Dec 2001 B1
6327628 Anuff et al. Dec 2001 B1
6336073 Ihara et al. Jan 2002 B1
6339423 Sampson et al. Jan 2002 B1
6341352 Child et al. Jan 2002 B1
6353886 Howard et al. Mar 2002 B1
6357010 Viets et al. Mar 2002 B1
6360363 Moser et al. Mar 2002 B1
6377973 Gideon Apr 2002 B2
6381579 Gervais et al. Apr 2002 B1
6393474 Eichert et al. May 2002 B1
6397222 Zellweger May 2002 B1
6412077 Roden et al. Jun 2002 B1
6418448 Sarkar Jul 2002 B1
6430556 Goldberg et al. Aug 2002 B1
6438563 Kawagoe Aug 2002 B1
6449638 Wecker et al. Sep 2002 B1
6457007 Kikuchi et al. Sep 2002 B1
6460084 Van Horne et al. Oct 2002 B1
6460141 Olden Oct 2002 B1
6463440 Hind et al. Oct 2002 B1
6466239 Ishikawa Oct 2002 B2
6473791 Al-Ghosein et al. Oct 2002 B1
6477543 Huang et al. Nov 2002 B1
6477575 Koeppel et al. Nov 2002 B1
6484177 Van Huben et al. Nov 2002 B1
6484261 Wiegel Nov 2002 B1
6487594 Bahlmann Nov 2002 B1
6519647 Howard et al. Feb 2003 B1
6530024 Proctor Mar 2003 B1
6539375 Kawasaki Mar 2003 B2
6542993 Erfani Apr 2003 B1
6571247 Danno et al. May 2003 B1
6574736 Andrews Jun 2003 B1
6581054 Bogrett Jun 2003 B1
6581071 Gustman et al. Jun 2003 B1
6584454 Hummel, Jr. et al. Jun 2003 B1
6587849 Mason et al. Jul 2003 B1
6587876 Mahon et al. Jul 2003 B1
6615218 Mandal et al. Sep 2003 B2
6618806 Brown et al. Sep 2003 B1
6633538 Tanaka et al. Oct 2003 B1
6654747 Van Huben et al. Nov 2003 B1
6665677 Wotring et al. Dec 2003 B1
6668354 Chen et al. Dec 2003 B1
6684369 Bernardo et al. Jan 2004 B1
6697805 Choquier et al. Feb 2004 B1
6715077 Vasudevan et al. Mar 2004 B1
6721888 Liu et al. Apr 2004 B1
6732144 Kizu et al. May 2004 B1
6735586 Timmons May 2004 B2
6735624 Rubin et al. May 2004 B1
6735701 Jacobson May 2004 B1
6738789 Multer et al. May 2004 B2
6751657 Zothner Jun 2004 B1
6751659 Fenger et al. Jun 2004 B1
6754672 McLauchlin Jun 2004 B1
6757698 McBride et al. Jun 2004 B2
6757822 Feiertag et al. Jun 2004 B1
6769095 Brassard et al. Jul 2004 B1
6769118 Garrison et al. Jul 2004 B2
6772332 Boebert et al. Aug 2004 B1
6779002 Mwaura Aug 2004 B1
6789202 Ko et al. Sep 2004 B1
6792537 Liu et al. Sep 2004 B1
6832313 Parker Dec 2004 B1
6834284 Acker et al. Dec 2004 B2
6854035 Dunham et al. Feb 2005 B2
6856999 Flanagin et al. Feb 2005 B2
6857012 Sim et al. Feb 2005 B2
6865549 Connor Mar 2005 B1
6873988 Herrmann et al. Mar 2005 B2
6880005 Bell et al. Apr 2005 B1
6886100 Harrah et al. Apr 2005 B2
6889222 Zhao May 2005 B1
6901403 Bata et al. May 2005 B1
6904454 Stickler Jun 2005 B2
6917975 Griffin et al. Jul 2005 B2
6920457 Pressmar Jul 2005 B2
6922695 Skufca et al. Jul 2005 B2
6931549 Ananda Aug 2005 B1
6934934 Osborne et al. Aug 2005 B1
6957261 Lortz Oct 2005 B2
6961897 Peel et al. Nov 2005 B1
6965999 Fox et al. Nov 2005 B2
6970445 O'Neill et al. Nov 2005 B2
6970876 Hotti et al. Nov 2005 B2
6978379 Goh et al. Dec 2005 B1
6985915 Somalwar et al. Jan 2006 B2
6988138 Alcorn et al. Jan 2006 B1
7003578 Kanada et al. Feb 2006 B2
7035879 Shi et al. Apr 2006 B2
7035944 Fletcher et al. Apr 2006 B2
7047522 Dixon et al. May 2006 B1
7054910 Nordin et al. May 2006 B1
7062490 Adya et al. Jun 2006 B2
7062511 Poulsen Jun 2006 B1
7080000 Cambridge Jul 2006 B1
7089584 Sharma Aug 2006 B1
7093261 Harper et al. Aug 2006 B1
7093283 Chen et al. Aug 2006 B1
7124413 Klemm et al. Oct 2006 B1
7174563 Brownlie et al. Feb 2007 B1
7185192 Kahn Feb 2007 B1
7219140 Marl et al. May 2007 B2
7272625 Hannel et al. Sep 2007 B1
20010009016 Hofmann et al. Jul 2001 A1
20010034771 Hutsch et al. Oct 2001 A1
20010039586 Primak et al. Nov 2001 A1
20010047485 Brown et al. Nov 2001 A1
20020005867 Gvily Jan 2002 A1
20020029296 Anuff et al. Mar 2002 A1
20020059394 Sanders May 2002 A1
20020062451 Scheidt et al. May 2002 A1
20020067370 Forney Jun 2002 A1
20020069261 Bellare et al. Jun 2002 A1
20020087571 Stapel et al. Jul 2002 A1
20020103818 Amberden Aug 2002 A1
20020104071 Charisius et al. Aug 2002 A1
20020107913 Rivera et al. Aug 2002 A1
20020107920 Hotti Aug 2002 A1
20020111998 Kim Aug 2002 A1
20020120685 Srivastava et al. Aug 2002 A1
20020124053 Adams et al. Sep 2002 A1
20020135617 Samid Sep 2002 A1
20020143819 Han et al. Oct 2002 A1
20020147801 Gullotta et al. Oct 2002 A1
20020152279 Sollenberger et al. Oct 2002 A1
20020161903 Besaw Oct 2002 A1
20020169893 Chen et al. Nov 2002 A1
20020169975 Good Nov 2002 A1
20020173971 Stirpe et al. Nov 2002 A1
20020178119 Griffin et al. Nov 2002 A1
20020188869 Patrick Dec 2002 A1
20020194267 Flesner et al. Dec 2002 A1
20030014442 Shiigi et al. Jan 2003 A1
20030046576 High et al. Mar 2003 A1
20030065721 Roskind Apr 2003 A1
20030069874 Hertzog et al. Apr 2003 A1
20030078959 Yeung et al. Apr 2003 A1
20030078972 Tapissier et al. Apr 2003 A1
20030088617 Clark et al. May 2003 A1
20030110448 Haut et al. Jun 2003 A1
20030115484 Moriconi et al. Jun 2003 A1
20030120686 Kim et al. Jun 2003 A1
20030126236 Marl et al. Jul 2003 A1
20030126558 Griffin Jul 2003 A1
20030131113 Reeves et al. Jul 2003 A1
20030140308 Murthy et al. Jul 2003 A1
20030146937 Lee Aug 2003 A1
20030167315 Chowdhry et al. Sep 2003 A1
20030167455 Iborra et al. Sep 2003 A1
20030182577 Mocek Sep 2003 A1
20030187956 Belt et al. Oct 2003 A1
20030200350 Kumar et al. Oct 2003 A1
20030204481 Lau Oct 2003 A1
20030212766 Giles et al. Nov 2003 A1
20030216938 Shour Nov 2003 A1
20030220963 Golovinsky et al. Nov 2003 A1
20030229501 Copeland et al. Dec 2003 A1
20030229623 Chang et al. Dec 2003 A1
20040003071 Mathew et al. Jan 2004 A1
20040010719 Daenen Jan 2004 A1
20040019650 Auvenshine Jan 2004 A1
20040024812 Park et al. Feb 2004 A1
20040030744 Rubin et al. Feb 2004 A1
20040030795 Hesmer et al. Feb 2004 A1
20040078371 Worrall et al. Apr 2004 A1
20040098467 Dewey et al. May 2004 A1
20040098606 Tan et al. May 2004 A1
20040107360 Herrmann et al. Jun 2004 A1
20040162905 Griffin et al. Aug 2004 A1
20040167880 Smith Aug 2004 A1
20040205473 Fisher et al. Oct 2004 A1
20040205557 Bahrs et al. Oct 2004 A1
20040215650 Shaji et al. Oct 2004 A1
20040230546 Rogers Nov 2004 A1
20040236760 Arkeketa et al. Nov 2004 A1
20050021502 Chen et al. Jan 2005 A1
20050021656 Callegari Jan 2005 A1
20050050184 Boden et al. Mar 2005 A1
20050060324 Johnson et al. Mar 2005 A1
20050097008 Ehring et al. May 2005 A1
20050198617 Kim et al. Sep 2005 A1
20050256894 Talanis et al. Nov 2005 A1
20050257267 Williams et al. Nov 2005 A1
20060059107 Elmore et al. Mar 2006 A1
20060085412 Johnson et al. Apr 2006 A1
20060167858 Dennis et al. Jul 2006 A1
Foreign Referenced Citations (7)
Number Date Country
697662 Feb 1996 EP
1 256 889 Nov 2002 EP
WO 0038978 Jun 2000 WO
WO 0114962 Mar 2001 WO
WO 0167285 Sep 2001 WO
WO 0177823 Oct 2001 WO
WO 02063496 Aug 2002 WO
Related Publications (1)
Number Date Country
20030105974 A1 Jun 2003 US
Provisional Applications (1)
Number Date Country
60386487 Oct 2001 US