[0001] 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.
[0002] This application is related to the following co-pending application which is hereby incorporated by reference in its entirety: SYSTEM AND METHOD FOR RULE-BASED ENTITLEMENTS, U.S. Application Serial No. ______, Inventors: Phil Griffin, et al., filed on ______.
[0003] 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.
[0004] The present invention disclosure relates to the field of authorization in computer networks and, in particular, delegation of administrative privileges in an enterprise application.
[0005] Administration of an enterprise application is typically carried out by a system administrator who can perform tasks that are otherwise off-limits to non-privileged users. Such tasks can include administering user accounts, altering the layout and content of pages on a website, installing applications, running diagnostics, adding or removing components to a network, or reconfiguring a network. However, as enterprise applications grow large and complex, so do the number of administrative tasks. One way to reduce the number of tasks that a system administrator is responsible for is to distribute the tasks among a number of administrators. This approach can be problematic, however, since administrators may unwittingly perform conflicting operations. Another problem with this approach is that it increases the likelihood that the security of the enterprise application will be breached since system level privileges are entrusted to more than one individual. What is needed is a means to conveniently delegate system administration privileges while at the same time limiting the scope of such privileges.
[0006]
[0007]
[0008]
[0009]
[0010] 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.
[0011] In one embodiment, delegated system administration involves the conveying of a capability (e.g., the ability to perform a system administration task) from one user to another, from a process to a user, from a user to a process, or from a process to a process. A process can include, for example, a thread, a distributed object, a lightweight process, or a program of any kind that is able to execute on one or more computers. In another embodiment, a process and a user are synonymous. By way of a non-limiting illustration, the conveyed capability can include any task, operation or privilege that is able to be performed on any resource available on a computer network. For example, if a resource is a computer database, capabilities can comprise creating, reading, updating or deleting data contained therein. If the resource is an administrative task, for example, capabilities can include creating a new user account, associating an existing user account with a user group, or delegating the ability to perform a system administration task to a user.
[0012]
[0013] A portal is a feature-rich web site. It provides a point of access to enterprise data and applications, presenting a unified and potentially 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 (e.g., a web browser). Portals also support multiple pages through navigation mechanisms (e.g., 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.
[0014] In one embodiment, a portal user can be an administrator. As such, the user can create new portals, modify the privileges of visitors and other administrators, and modify many of the attributes displayed in the portal. In another embodiment, a portal user can belong to one or more groups. Groups provide a means for organizing users with common characteristics into a single category. For example, it might be desirable to differentiate the web services offered to bank customers with large assets versus small assets in order to serve these groups better. An association between a portal and a user group is a Group portal. Group portals allow for the definition of different views of a portal for different user groups, making it seem as if users in each group are looking at completely different web sites. Multiple group portals can be created within a single portal. In one embodiment, group portals can be managed by delegated administration.
[0015] In addition to groups, in one embodiment of the invention, users can also be organized into a hierarchy. In one embodiment, a hierarchy can include one or more users designated as system administrators (SA's), zero or more users designated as portal administrators (PA's), and zero or more users designated as group administrators (GA's). Those skilled in the art will recognize that many such hierarchies are possible. In one embodiment, an SA is able to perform all system administration tasks, whereas a PA can perform administration tasks only for a single portal, and a GA can perform administrative tasks only for a single group portal. In another embodiment, users are not organized into a hierarchy.
[0016] In one embodiment, initially there is a single user designated as an SA. The remaining users optionally belong to an “admin eligible” group. Membership in a group can be dynamically determined by evaluating rules. Users belonging to the admin eligible group can be promoted to SA, PA or GA. In another embodiment, group membership is not a prerequisite to promotion. In one embodiment, an SA can promote users in the admin eligible group to SA, PA or GA. Once promoted to SA, a user can likewise promote others to SA, PA or GA. In another embodiment, a PA can promote other users to PA or GA, and a GA can promote other users to GA. It will be apparent to those skilled in the art that user promotion can be accomplished in a number of ways, including automatically via evaluation of rules or manually via administrative tools.
[0017]
[0018] In one embodiment, there are four administrative tasks that an administrator (e.g., SA, PA or GA) can potentially control: user management, portal page management, portlet management and visual appearance. In one embodiment, if an administrator has the capability of managing users, the administrator can create users and optionally store information about them. In addition, an administrator can also create groups and add users to them.
[0019] In one embodiment, if an administrator has the capability of managing portal pages, the administrator can control behavioral aspects that a visitor experiences when accessing a portal, such as whether a portlet is viewed as a maximized presentation or a minimized presentation within the page of origin. If an administrator has the capability to alter the visual appearance, the administrator can modify a portal's look and feel, define and arrange the pages and portlets displayed in a portal, define the different views of the portal that different visitors see, and control access to pages and portlets within a group portal. By way of a non-limiting illustration, general portal visual characteristics can include header and footer graphics, content, icon graphics, color schemes, cascading style sheets and hypertext markup language (HTML) layouts. In another embodiment, an administrator can determine the appearance of a portal by selecting from the available skins. A skin is a collection of HTML code and graphics that affect the appearance of a portal, for example, the colors and fonts used.
[0020] In one embodiment, if an administrator has the capability of managing portlets, the administrator can define and modify the resources that are available for a portlet. The administrator can also set portlet defaults, such as whether the portlet will be available to users, whether the portlet can be minimized, whether the portlet can be maximized, etc.
[0021] Table 1 summarizes administrative tasks and their associated capabilities in one embodiment (parenthetical capability codes are provided for use in TABLE 1 Administrative Task Capabilities Task Capabilities User Management Manage (A Page Management Manage (B Portlet Management Manage (C Visual Appearance Manage (D Management
[0022] In one embodiment, if an administrator possesses the “manage” capability, the administrator is permitted to manage the given task. If an administrator possesses the “delegate” capability, the administrator can delegate the capability to another. Finally, if an administrator has the capability “set entitlements”, the administrator can define roles for dynamically associating users with resources. In one embodiment, roles allow for the definition of different views of a portal for different users. By creating groupings of characteristics, such as gender, browser type, or date, any web site visitors who match those characteristics dynamically become members of the role. Such dynamic roles are used to target visitors with campaigns and personalized content, and to control the pages and portlets web site visitors can view.
[0023]
[0024] In one embodiment, delegated administration can be implemented using entitlements. An entitlement is a mechanism for dynamically associating capabilities with a user. In one embodiment, an entitlement includes a resource, a capability, a permission, and a role rule. For example, if evaluation of a role rule places a user in the role of SA, PA or GA, that user then possesses the capability associated with the resource, assuming that the permission allows it. A permission in one embodiment can be grant, deny or abstain. A resource can include any resource available on a computer network and, in another embodiment, a resource can include logical resources.
[0025] In one embodiment, resource names can be arranged in a taxonomy. A taxonomy provides a means of categorizing and uniquely identifying a resource and is hierarchical in nature. For example, a resource name could be “myPortal.bankerGroup.pageMgmt.smith”. In this example, “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, “bankerGroup”, identifies a user group associated with the portal “myPortal” consisting of bankers. The third part of the resource name indicates an administrative task (i.e., page management) for the group portal “bankerGroup”. Finally, the last part of the resource name identifies a particular user, “smith”. Thus, the resource name in this example identifies a user “smith” that has been delegated at least one capability associated with page administration, wherein the page administration is for the group portal “bankerGroup” within portal “myPortal”.
[0026] In one embodiment, a role rule is defined in terms of one or more logical expressions. A role rule of “everyone” is provided as a default and evaluates to “true” for any user. 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:
[0027] When all of these conditions apply, the user is a groupAdmin:
[0028] Administrative Skill Level at least 5
[0029] Trustworthiness is ‘High’
[0030] Time of day is between 12:00 am and 6:00 am.
[0031] In the example above, the role that is being determined is “groupAdmin”. The predicate “Administrative Skill Level is at least 5” evaluates to true when a user's predefined administration level is set to five or higher. The “Trustworthiness is High” predicate evaluates to true if, for example, a predefined trustworthiness level is set to high. The “Time of day” predicate evaluates to “true” if the time of day is between 12:00 am and 6:00 am. It will be apparent to those skilled in the art that any type of predicate can be included in a role rule. To summarize, this role rule allows a user to become a group administrator if their skill level is at least five, they are trustworthy and it is the middle of the night.
TABLE 2 Administrative Task Entitlements Resource Name Capability Role Perm myPortal.bankerGroup. manage (A groupAdmin deny userMgmt myPortal.bankerGroup. delegate (A groupAdmin deny userMgmt myPortal.bankerGroup. manage (B groupAdmin grant pageMgmt myPortal.bankerGroup. delegate (B groupAdmin deny pageMgmt myPortal.bankerGroup. entitlements (B groupAdmin grant pageMgmt myPortal.bankerGroup. manage (C groupAdmin grant portletMgmt myPortal.bankerGroup. delegate (C groupAdmin deny portletMgmt myPortal.bankerGroup. entitlements (C groupAdmin grant portletMgmt myPortal.bankerGroup. manage (D groupAdmin deny visualMgmt myPortal.bankerGroup. delegate (D groupAdmin deny visualMgmt
[0032] In one embodiment, by way of example, exemplary entitlements for GA
[0033] In another embodiment, by way of illustration, a user is associated with an administrative role by incorporating the user's name in the resource name. Exemplary entitlements for GA TABLE 3 Administrative Task Entitlements Resource Name Capability Role Perm MyPortal.bankerGroup. manage (A everyone deny userMgmt.smith MyPortal.bankerGroup. delegate (A everyone deny userMgmt.smith MyPortal.bankerGroup. manage (B everyone grant pageMgmt.smith MyPortal.bankerGroup. delegate (B everyone deny pageMgmt.smith MyPortal.bankerGroup. entitlements (B everyone grant pageMgmt.smith MyPortal.bankerGroup. manage (C everyone grant portletMgmt.smith MyPortal.bankerGroup. delegate (C everyone deny portletMgmt.smith MyPortal.bankerGroup. entitlements (C everyone grant portletMgmt.smith MyPortal.bankerGroup. manage (D everyone deny visualMgmt.smith MyPortal.bankerGroup. delegate (D everyone deny visualMgmt.smith
[0034] Since the role rule is “everyone”, every user will satisfy the role. Therefore, discrimination among users is based on the resource which includes a user name. When evaluating entitlements in Table 3, the resource name is incorporated with the name of the user under consideration. In this example, if the user is “smith”, the user will be entitled to the same capabilities as the groupAdmin in Table 2.
[0035] In another embodiment, a user is associated with an administrative role (e.g., SA, PA or GA) through a mapping between users and administrators. Those skilled in the art will recognize that such a mapping can be implemented in a number of ways, including a database table, a cache, a function, or any combination thereof. In yet another embodiment, a user can be identified as an administrator based on group membership. For example, an SA belongs to the SA group, etc.
[0036]
[0037] 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.